Workplaceのカスタム統合により、グループおよびチャットの参加者とやり取りできる便利なボットを作成できるようになりました。
自動でコンテンツをグループに投稿したり、追加情報を使用して質問に応答したり、投稿のコメントでメンションされたときにアクションを実行したりするボットを構築できます。また、ワークチャットの参加者と会話したり、リアルタイムで情報を提供したり、クイック返信や固定メニューなどの構造化された会話要素を使用してリクエストを処理したりできるボットも構築できます。
コミュニティ用のボットを構築するには、システム管理者の役割が必要です。
Workplaceコミュニティの管理者でない場合、ボットを構築するには管理者の協力を得る必要があります。
Workplaceでは、Messengerプラットフォームと同様に、ボットはページとして表現されます。カスタム統合アプリを作成すると、自動的にページが作成されます。Workplaceコミュニティの参加者は、このページでボットを見つけてやり取りできます。
ボットページは組織内で公開されるため、Workplaceコミュニティのメンバーは誰でもボットの表示、タグ付け、メッセージ送信を行うことができます。ただし、ボットの作成時に選択したアクセス許可レベルによっては、Workplace上のコンテンツの一部を表示または操作できない場合があります。
例えば、ボットにグループコンテンツの読み取りアクセス許可がある場合は、グループ内のコンテンツを表示できます。ボットにグループへの投稿アクセス許可がない場合は、どのグループのコンテンツにも返信できません。
また、利用者がワークチャットでボットを見つけてメッセージを送信できるのは、ボットがメンバーとのメッセージのやり取りのアクセス許可を持っている場合のみです。
グループでは、ボットは利用者ができることの大半を実行できます。つまり、新しいコンテンツを投稿したり、新しい情報を使用してコンテンツにコメントしたり、投稿に「いいね!」して認知や同意を示したりするボットを構築できます。
ボットは、利用者の注意を引くために@メンションすることも、@メンションされて特定のワークフローを開始したり質問したりすることもできます。
最後に、ボットはグループおよび@メンションWebhookをサブスクリプション登録できます。これにより、コンテンツをモニタリングして柔軟な方法でユーザーと対話することが可能になります。
グループ内のボットは、利用者のグループで非同期的に情報を取得したり共有したりできます。チャット内のボットは、1人の利用者または定義済みの利用者グループとのリアルタイムの直接的なやり取りに適しています。
例えば、チャットボットを使用すると、面接や会議などのイベント予定に基づいて、重要なリマインダーや通知を利用者に送信できます。また、ワークチャットボットを使用すると、会話を通してユーザーとエンゲージし、受け取ったフィードバックに応じてフォローアップアクションを実行できます。
このインタラクションモデルは、Messengerプラットフォームで使用されているのと同じコンセプトに基づいています。そのため、ワークチャットボットは、固定メニュー、クイック返信、テンプレートなどの機能を使用して、ユーザーエクスペリエンスを向上させることができます。
ボットが任意のメンバーへのメッセージ送信アクセス許可を持っている場合、利用者のメールアドレスまたはWorkplace IDを使用して、Messenger送信APIによりWorkplaceの利用者にダイレクトメッセージを送信できます。
任意のメンバーへのメッセージ送信アクセス許可がある場合は、ボットをWorkplaceチャット画面の自動入力に表示することもできます。
ページメッセージWebhookをサブスクリプション登録すると、ユーザーがボットにメッセージを送信したときに、ボットは通知を受け取ります。これにより、送信と受信を組み合わせて会話フローを構築することが可能になります。
任意のメンバーへのメッセージ送信アクセス許可とグループチャットボットアクセス許可を持つボットは、参加者が複数のグループチャットスレッドを作成し管理することができ、そのスレッドに参加することもできます。ボットは、受信者のリストを指定することにより、新しいグループスレッドを作成できます。また、スレッドの名前を変更して、特定のトピックに関する特定の参加者とのチャットディスカッションを作成できます。
グループチャットのサポートを有効にすると、既存のグループチャットスレッドの[メンバーを追加]自動入力にボットが表示されます。これにより、ボットはそのスレッド内で利用者から送信されたメッセージごとに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}/participants
エッジに、POST
リクエストを送信してスレッドに参加者を追加したり、DELETE
リクエストを送信してスレッドから参加者を削除したりすることもできます。
POST t_<thread_id>/participants { "to": [<user_ids>] } DELETE t_<thread_id>/participants { "to": [<user_ids>] }
/{thread}/participants
エッジでの操作は、統合によって作成されたスレッドでのみ実行できます。
メッセージでボットがメンションされると、次のペイロードのように、そのメッセージでタグ付けされたメンバーのリストがWebhooksから送信されます。
{ "object":"page", "entry":[{ "id":"746230239054322", "time":1539281406974, "messaging":[{ ... "message":{ "mid":"<message id>", "seq":2192, "text":"@Edu Gomes @Example Bot What's 2+2?" }, "mentions":[{ "offset":0, "length":10, "id":"100017376437045" }, { "offset":11, "length":12, "id":"746230239054322" }] }] }] }
Workplaceには、Workplaceでのボットのサポートをすでに構築しているボットプラットフォームパートナーが数多く存在します。そうしたパートナーのリストは、こちらで確認できます。これらのプラットフォームのいずれかを利用すると、コードを1行も記述せずに強力なボットを構築できます。
ボットでグループでのインタラクションとチャットでのインタラクションのどちらを構築するかを決定する際は、ボットがどのような場合に最も役立つかを検討することが重要です。
単一のアプリでこれらのチャネルの両方を処理できます。例えばヘルプデスクボットは、あるときはワークチャットでメッセージを受信し、別のときはグループに投稿して返信を受け取る必要があります。
https://w.m.me/{page-id}
のリンクフォーマットを使って、Workplace上のチャットボットに直接リンクします。現在、Workplaceチャットでは、ウェブ、Android、iOSを使用している場合のみこの機能がサポートされています。Workplaceチャットアプリがインストールされたモバイルプラットフォームの場合、アプリ内で直接リンクが開きます。
リファーラルパラメーターを使用して、リンクにより多くの情報を盛り込むこともできます。これにより、ユーザーがどのユーザーをクリックしてボットにたどり着いたかに基づいて、ボットにカスタムアクションを実行させる、といったことが可能になります。
この機能を使用するには、https://w.m.me/{page-id}?ref={referral_parameter}
のリンクフォーマットを利用してください。この機能は、Messengerプラットフォームと同様の方法で実装されます。詳しくは、Messengerドキュメントをご覧ください。
関連するWebhookフィールドはmessaging_referrals
であり、新しいサブスクリプションが必要になります。以前、WorkplaceアプリはこのWebhookフィールドを使用できませんでしたが、今では通常の方法でサブスクリプション登録できるようになりました。
Webhookペイロードは、WorkplaceではページスコープIDではなくアプリスコープIDを使用するという従来の相違点を除いて、Messengerと同じフォーマットになります。さらにWorkplaceは、WebhookにコミュニティIDを指定できるコミュニティフィールドも提供します。
アプリがWebhookをサブスクリプション登録すると、グループの投稿またはコメントでメンションされたときに、ボットは通知を受け取ります。ボットがメンションに対してタイムリーに応答することが重要です。ボットが返信する前にリクエストを処理する必要がある場合は、コメントに「いいね!」して、メンションされたことをボットが認識していることを相手に知らせるのが効果的です。
次に、コメントでメンションされた後に情報を提供する場合は、スレッド化された返信を追加してその後のグループの会話の流れが途切れないようにします。
ボットが元の投稿者に情報を提供する必要がある場合は、投稿自体にコメントを追加して、投稿者にも通知が届くようにします。
ワークチャット内のボットのインタラクションでは、Messengerプラットフォームと同様の機能がサポートされます。そうした機能には、ボットの会話に決定木を実装するのに役立つクイック返信ボタンとテンプレートがあります。
これらを利用すると、便利なワークフローを非常に簡単に構築でき、必要な作業量が削減されます。高度な自然言語処理は不要です。したがって、グローバルな社員向けボットを構築する場合、国際化が大幅に簡素化されます。