Workplace用ボット

グループとチャットのWorkplace用ボットを構築する

概要

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プラットフォームと同様の機能がサポートされます。そうした機能には、ボットの会話に決定木を実装するのに役立つクイック返信ボタンとテンプレートがあります。

これらを利用すると、便利なワークフローを非常に簡単に構築でき、必要な作業量が削減されます。高度な自然言語処理は不要です。したがって、グローバルな社員向けボットを構築する場合、国際化が大幅に簡素化されます。