Workplaceのカスタム統合により、グループおよびチャットの参加者とやり取りできる便利なボットを作成できるようになりました。
自動でコンテンツをグループに投稿したり、追加情報を使用して質問に応答したり、投稿のコメントでメンションされたときにアクションを実行したりするボットを構築できます。また、ワークチャットの参加者と会話したり、リアルタイムで情報を提供したり、クイック返信や固定メニューなどの構造化された会話要素を使用してリクエストを処理したりできるボットも構築できます。
コミュニティ用のボットを構築するには、システム管理者の役割が必要です。
Workplaceコミュニティの管理者でない場合、ボットを構築するには管理者の協力を得る必要があります。
Workplaceでは、Messengerプラットフォームと同様に、ボットはページとして表現されます。カスタム統合アプリを作成すると、自動的にページが作成されます。Workplaceコミュニティの参加者は、このページでボットを見つけてやり取りできます。
ボットページは組織内で公開されるため、Workplaceコミュニティのメンバーは誰でもボットの表示、タグ付け、メッセージ送信を行うことができます。ただし、ボットの作成時に選択したアクセス許可レベルによっては、Workplace上のコンテンツの一部を表示または操作できない場合があります。
たとえば、ボットがグループコンテンツの読み取りアクセス許可を持っている場合、ボットはグループ内のコンテンツを表示できます。ボットがグループへの投稿アクセス許可を持っていない場合、ボットはどのグループのコンテンツにも返信できません。
また、利用者がワークチャットでボットを見つけてメッセージを送信できるのは、ボットが任意のメンバーへのメッセージ送信アクセス許可を持っている場合のみです。
グループでは、ボットは利用者ができることの大半を実行できます。つまり、新しいコンテンツを投稿したり、新しい情報を使用してコンテンツにコメントしたり、投稿に「いいね!」して認知や同意を示したりするボットを構築できます。
ボットは、利用者の注意を引くために@メンションすることも、@メンションされて特定のワークフローを開始したり質問したりすることもできます。
最後に、ボットはグループおよび@メンションWebhookをサブスクリプション登録できます。これにより、コンテンツをモニタリングして柔軟な方法でユーザーと対話することが可能になります。
グループ内のボットは、利用者のグループで非同期的に情報を取得したり共有できます。チャット内のボットは、1人の利用者または定義済みの利用者グループとのリアルタイムの直接的なやり取りに適しています。
たとえば、チャットボットを使用すると、面接や会議などのイベント予定に基づいて、重要なリマインダーや通知を利用者に送信できます。また、ワークチャットボットを使用すると、会話を通してユーザーとエンゲージし、受け取ったフィードバックに応じてフォローアップアクションを実行できます。
このインタラクションモデルは、Messengerプラットフォームで使用されているのと同じコンセプトに基づいています。したがって、ワークチャットボットは、固定メニュー、クイック返信、テンプレートなどの機能を使用して、ユーザーエクスペリエンスを強化することができます。
ボットは、ボットがメンバーになっているチャットスレッド(1対1のチャットまたはグループチャット)にのみ返信できます。さらに、ボットは任意のメンバーへのメッセージ送信アクセス許可を持っている必要があります。
ボットが任意のメンバーへのメッセージ送信アクセス許可を持っている場合、利用者のメールアドレスまたはWorkplace IDを使用して、Messenger送信APIによりWorkplaceの任意の利用者にダイレクトメッセージを送信できます。
任意のメンバーへのメッセージ送信アクセス許可がある場合は、ボットをWorkplaceチャット画面の自動入力に表示することもできます。
ページメッセージWebhookをサブスクリプション登録すると、ユーザーがボットにメッセージを送信したときに、ボットは通知を受け取ります。これにより、送信と受信を組み合わせて会話フローを構築することが可能になります。
ボットは、複数の参加者からなるグループチャットスレッドを作成および管理し、それに参加することもできます。ボットは、受信者のリストを指定することにより、新しいグループスレッドを作成できます。また、スレッドの名前を変更して、特定のトピックに関する特定の参加者とのチャットディスカッションを作成できます。
ボットがWorkplaceユーザーとのグループチャットを作成できるようにするには、[カスタム統合を編集]ダイアログの[アクセス許可]パネルを開いて、[グループチャットでこの統合を有効にする]チェックボックスをオンにします。
グループチャットのサポートを有効にすると、既存のグループチャットスレッドの[メンバーを追加]自動入力にボットが表示されます。これにより、ボットはそのスレッド内で利用者から送信されたメッセージごとにWebhookを受信し、thread ID
を使用してそのスレッドに返信できます。
特定の受信者からなる新しいスレッドを作成するには、次のように、recipient IDs
の配列と初期message
ペイロードを指定して、/me/messages
エンドポイントにPOST
リクエストを送信します:
POST /me/messages { "recipient": { "ids": [<user_ids>] }, "message": <message_payload> }
フォローアップメッセージで使用できるthread ID
を含む応答ペイロードが返されます。
もう一度同じ受信者リストを指定して同じエンドポイントを使用すると、新しいスレッドが作成されます。作成済みのスレッドにフォローアップメッセージを送信するには、次のように、recipient
ペイロード内のthread_id
を使用して/me/messagesエンドポイントにPOST
リクエストを送信します:
POST /me/messages { "recipient": { "thread_key": <thread_id> }, "message": <message_payload> }
ボットによって作成されたスレッドの名前を変更するには、次のように、/{thread}/threadname
エッジにPOST
リクエストを送信します:
POST /t_<thread_id>/threadname { "name": "new name" }
エッジのパスのthread_id
の前に「t_
」を付ける必要があることに注意してください。
次のように、/{thread}/?fields=participants
エッジにGETリクエストを送信して、スレッドの参加者のリストを取得することもできます:
GET /t_<thread_id>/?fields=participants
次のように、/{thread}/participants
エッジにPOST
リクエストを送信してスレッドに参加者を追加したり、DELETE
リクエストを送信してスレッドから参加者を削除したりすることもできます:
POST t_<thread_id>/participants { "to": [<user_ids>] } DELETE t_<thread_id>/participants { "to": [<user_ids>] }
Workplaceには、Workplaceでのボットのサポートをすでに構築しているボットプラットフォームパートナーが数多く存在します。そうしたパートナーのリストは、こちらで確認できます。これらのプラットフォームのいずれかを利用すると、コードを1行も記述せずに強力なボットを構築できます。
ボットでグループでのインタラクションとチャットでのインタラクションのどちらを構築するかを決定する際は、ボットがどのような場合に最も役立つかを検討することが重要です。
単一のアプリでこれらのチャネルの両方を処理できます。たとえば、ヘルプデスクボットは、あるときはワークチャットでメッセージを受信し、別のときはグループに投稿して返信を受け取る必要があります。
アプリがWebhookをサブスクリプション登録すると、グループの投稿またはコメントでメンションされたときに、ボットは通知を受け取ります。ボットがメンションに対してタイムリーに応答することが重要です。ボットが返信する前にリクエストを処理する必要がある場合は、コメントに「いいね!」して、メンションされたことをボットが認識していることを相手に知らせるのが効果的です。
次に、コメントでメンションされた後に情報を提供する場合は、スレッド化された返信を追加してその後のグループの会話の流れが途切れないようにします。
ボットが元の投稿者に情報を提供する必要がある場合は、投稿自体にコメントを追加して、投稿者にも通知が届くようにします。
ワークチャット内のボットのインタラクションでは、Messengerプラットフォームと同様の機能がサポートされます。そうした機能には、ボットの会話に決定木を実装するのに役立つクイック返信ボタンとテンプレートがあります。
これらを利用すると、便利なワークフローを非常に簡単に構築でき、必要な作業量が削減されます。高度な自然言語処理は不要です。したがって、グローバルな社員向けボットを構築する場合、国際化が大幅に簡素化されます。