チャットボットと連動させてみよう!
最終更新日:2022年10月24日
SHOWBYとチャットボットの連携を想定したサンプルをPHPを使ってご紹介します。
※以下の解説では、チャットボットの問い合わせ担当者A〜Dの4名が在籍しており、SHOWBYにも同様の担当者がユーザー登録されている想定です。
①お問い合わせに対応できる担当者を探します
各担当者の商談状況を確認するため、現在作成されている商談ルームの一覧をAPIに問い合わせます。
②現在作成されている商談ルームの一覧
下記URLにAPIリクエストを行い商談ルームの一覧を取得します。
/v0/room/get_url_list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$token = 'XXXXXX(APIのアクセストークン)'; $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $token]); curl_setopt($ch, CURLOPT_URL, 'https://api.showby.cloud/v0/room/get_url_list'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $results = curl_exec($ch); // ステータスコードを取得します。 $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE); if($status === 200) { $results = json_decode($results, true); } curl_close($ch); |
現在作成されている商談ルームがある場合、
レスポンスデータ内に商談ルームの情報や作成したSHOWBYのユーザー情報が格納されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[ { "room_showby_id": "123456", "room_url": "https://showby.link/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "room_status": "occupied", "room_type": "normal", "host_user_mailaddr": "tantou.a@example.com", "host_user_name": "担当者A", "start": "20220930120000", "end": "20220930121000", "created": "20220930120000", "expire": "20220930121000" }, { "room_showby_id": "654321", "room_url": "https://showby.link/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "room_status": "occupied", "room_type": "normal", "host_user_mailaddr": "tantou.b@example.com", "host_user_name": "担当者B", "start": "20220930120000", "end": "20220930121000", "created": "20220930120000", "expire": "20220930121000" } ] |
このレスポンスデータでは担当者A、担当者Bは商談中であることを示しています。
※商談ルームが1つも作られていない場合はレスポンスヘッダが404となります。
1 2 3 4 |
{ "error": "not_found", "message": "商談ルームが見つかりません。" } |
③対応できる担当者をお客様へ通知します
担当者A、担当者Bは商談中であるため、チャットボット側にはすぐに対応できる担当者Cを通知します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// チャットボット側の担当者一覧 $staff = [ [ 'email' => 'tantou.a@example.com', 'name' => '担当者A' ], [ 'email' => 'tantou.b@example.com', 'name' => '担当者B' ], [ 'email' => 'tantou.c@example.com', 'name' => '担当者C' ], [ 'email' => 'tantou.d@example.com', 'name' => '担当者D' ] ]; // ステータスコードが200の場合は商談ルームが存在します。 if($status === 200) { foreach ($staff as $key => $person) { foreach ($results as $result) { if($result['host_user_mailaddr'] === $person['email']) { // 空き担当者を抽出します。 unset($staff[$key]); } } } $staff = array_values($staff); } if(!empty($staff)) { // チャットボットから空き担当者を通知します。 $data = [ 'email' => $staff[0]['email'], 'name' => $staff[0]['name'] ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://example.com'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); curl_close($ch); } |
④担当者とWEB会議を行う
担当者CとWEB会議を行うため、ゲストが入室できる商談ルームを作成します。
⑤担当者のメールアドレスで商談ルームを作成
ホストとなる担当者Cのメールアドレスを下記URLへAPIリクエストを行います。
/v0/room/create
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$data = [ 'host_user_mailaddr' => 'tantou.c@example.com' ]; $token = 'XXXXXX(APIのアクセストークン)'; $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $token]); curl_setopt($ch, CURLOPT_URL, 'https://api.showby.cloud/v0/room/create'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE); if($status === 200) { $result = json_decode($result, true); } curl_close($ch); |
担当者Cの商談ルームが作成され、ゲストが入室できる商談ルームのURLを返却します。
1 2 3 4 5 6 |
{ "room_showby_id": "123456", "room_url": "https://showby.link/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "expire": "20220930122500", "message": "商談ルームを作成しました。" } |
⑥商談ルームのURLを受け取ってゲストへ通知
受け取った商談ルームのURLをチャットボット側で返信してゲストを商談ルームへ誘導します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// ステータスコードが200の場合は招待URLを送信します。 if($status === 200) { // チャットボットから商談ルームのURLを通知します。 $data = [ 'link' => $result['room_url'] ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://example.com'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); curl_close($ch); } |
ホストはSHOWBYの会員ページでゲストの入室を確認後、商談ルームへ入室して商談を開始します。
その他のAPI
その他のAPIは下記よりご確認頂けます。
この情報は役に立ちましたか?
この情報は役に立ちましたか?
記事URL: