ボットイベントは、ボットの会話中に特定のアクションが発生したとき、またはボットチャネルで特定のイベントが発生したときにトリガーされます。
たとえば、ユーザーが開始ボタンをクリックして、FB Messenger ボットとのチャットを開始すると、Facebookウェルカムイベントがトリガーされます。このイベントを使用して、ユーザーの名字および名前でのパーソナライズ、ユーザーからの追加情報の取得、バックエンドシステムの更新など、ウェルカムグリーティングのカスタマイズを行うことができます。
ボットの動作
開発者は、以下のオプションを使用して、イベントがトリガーされた際のボットの動作を定義することができます。
タスクを実行する
イベントが発生した際に呼び出されるダイアログタスク(標準または非表示)を選択します。イベントがトリガーされると、ダイアログの実行が開始されます。他のインテント検出によって一時停止された場合は、一時停止と再開の設定が有効になります。実行中に、選択済みのダイアログがボットで公開されていない場合、イベントは破棄されます。場合によっては、タスクが未公開、一時停止されている、あるいは単にユーザーに割り当てられていないなどの様々な理由により、会話中にユーザーがダイアログを利用できない場合があります。このような場合、ボットは、そのタスクが現在実行できないというエラーメッセージを表示します。開発者は、デバッグモードでボットをテストすることにより、こうした事態を未然に防ぐことができます。デバッグコンソールは、タスクが利用できない理由など、エラーの詳細を示します。
スクリプトを実行する
イベントが発生した際に実行するJavaScriptを定義します。スクリプトは、セッション、コンテキストオブジェクト、ボット変数、ボット関数など、該当するすべてのコンポーネントを利用することができます。デバッグモードを使用してコードを修正することもできます。
メッセージを表示する
イベントが発生した際にユーザーに表示するシンプルなメッセージまたは詳細なメッセージを定義します。ボットプラットフォームで利用可能なすべてのメッセージフォーマット機能をサポートしており、チャネルの上書きオプションを使用した複数のメッセージにも対応しています。多言語ボットの動作:
- 言語固有のメッセージを定義することができます。
- 特定の言語のイベントからメッセージが削除された場合、ボットの他のすべての言語からも削除されます。
- ある言語でメッセージが追加されると、他のすべての言語で同じ内容のメッセージが追加されます。
- ある言語でメッセージの内容が変更された場合、その変更内容はその言語のみに適用されます。
イベントタイプ
以下のイベントが応答のトリガーとなるように設定することができます。
イベント | トリガー |
ウェルカムイベント | チャネルでユーザーからの最初のメッセージを受信した時。 |
Facebookウェルカムイベント | Facebook Messengerからウェルカムイベントを受信した時。ボットに両方が設定されている場合、このイベントはウェルカムイベントよりも優先されます。 |
テレフォニーウェルカムイベント | IVR、Twilio、Audio Codesなどの音声チャネルからユーザーの呼び出しを受信した時。詳細は以下をご確認ください。(旧称:Twilio音声ウェルカムイベント) |
Telegramウェルカムイベント | Telegramからウェルカムイベントを受信した時。ボットに両方が設定されている場合、このイベントはウェルカムイベントよりも優先されます。 |
接続時 | ユーザーがウェブ/モバイルSDKチャネルで会話するたび。このイベントは、ユーザーが会話を開始したかどうかにかかわらず、トリガーされます。このイベントはウェブ/モバイルSDKチャネルにのみ適用され、両方設定されている場合はこのイベントがウェルカムイベントよりも優先されることにご注意ください。 |
会話の終了 | 会話の終了を迎えた時。詳細は以下をご確認ください。 |
タスクの実行に失敗しました | ダイアログタスクの実行中に、以下のようなエラーが発生した時。
|
RCS オプトイン イベント | ユーザーがRCSメッセージングチャネルを選択したというメッセージを受信した時。 |
RCS オプトアウト イベント | ユーザーがRCSメッセージングチャネルからオプトアウトしたというメッセージを受信した時。 |
設定
設定オプションでは、以下のことができます。
- 変数の名前空間の管理で、イベントハンドラーで使用する変数の名前空間を関連付けます。このオプションは、ボットで変数の名前空間が有効になっている場合にのみ表示されます。詳細は、名前空間の管理をご確認ください。
その他の注意事項
タスク実行の失敗イベント
- このイベントは、v6.40リリース以降利用可能です。
- デフォルトでは、このイベントはメッセージを表示オプションで常に有効になっています。このイベントを無効にすることはできません。
- このボットレベルの動作は、ダイアログタスクの設定からタスク固有の失敗イベントを定義することで、特定のタスクに対して上書きすることができます。方法はこちらを参照してください。
ようこそオンコネクトイベント
ユーザーは、簡単な挨拶から、直接的な意思表示やFAQの質問まで、様々な方法でボットとの会話を始めることができます。ユーザーの選択に応じて開発者がボットの応答をカスタマイズできるように、イベント設定としてタスクを開始またはメッセージを表示を選択した場合、ウェルカムイベントには追加のオプションが出現します。例えば、最初のユーザーの発話がボットのタスクにマッピングされている場合、ボットはイベントベースのタスクまたはユーザーインテントを最初に実行する必要がありますか?ver9.0以降では、BotUserSessionコンテキストオブジェクトのisReturningUserパラメータを使用して、リピーターを識別し、適切なウェルカムメッセージを送信できます(コンテキストオブジェクトについてはこちらを参照してください)。開発者は、ユーザーが挨拶、タスク、FAQなどでボットとの会話を始めたときのボットの優先順位を、以下のオプションから定義することができます。
イベントの設定 | オプション |
タスクを開始 |
タスクがまだ公開されていない、一時停止されている、単にユーザーに割り当てられていないなどの理由で、タスクがユーザーに利用されていない場合、ボットは、そのタスクが現在実行できないというエラーメッセージを表示します。 |
メッセージを表示 |
|
会話の終了
会話の終了は、ボットがユーザーにメッセージを送信したり、ユーザーからメッセージを受信したりすることを想定されなくなった場合にトリガーされます。タスクの終了イベントに追加された、タスクを終了する理由を示す新しいフラグは、会話の終了の動作を決定するのに役立ちます。BotKits、RTM、Webhookチャネルのクライアント側の実装では、このタスク完了フラグの理由をコンテキストで使用して、適切な動作を決定することができます。このイベントがトリガーされると、以下の詳細とともにコンテキストが更新されます。
- イベント発生の理由(下表参照)
- 終了したばかりのタスクの名前。FAQの場合、タスク名に「FAQ」が設定されます。
シナリオ | 会話の終了フラグ |
ダイアログの最後のノードに到達 | 遂行済み |
タスクがユーザーにキャンセルされた | キャンセル済み |
タスクまたはFAQの実行時のエラー(タスク失敗イベントなし、タスクの一時停止なし) | 失敗 |
リンクされたダイアログが親ダイアログに戻らずに終了する | Fulfilled_LinkedDialog |
FAQへの回答時 | 遂行済み |
スクリプトを実行またはメッセージを表示によるイベント実行の完了(一時停止中のタスクなし) | Fulfilled_Event |
スクリプトを実行またはメッセージを表示によるイベントを実行時のエラー(一時停止中のタスクなし) | Failed_Event |
ユーザーが一時停止中のタスクの再開を拒否(他に一時停止されているタスクがない場合) | キャンセル済み |
IVR Impact このイベントを使用して、音声ベースのチャネルのコールをいつどのように終了させるかを定義することもできます。IVRの導入が強化され、「会話の終了」が完了したときにのみセッション/コールを閉じることができるようになりました。方法はこちらをご確認ください。
テレフォニーウェルカムイベント
このイベントは、任意の音声チャネルからプラットフォームへの音声通話を受信した際にトリガーされます。このイベントは、初回だけでなく、ユーザーの通話がプラットフォームで受信されるたびに発生します。これには「ダイアログの実行」と「音声通話のプロパティ」の2つのオプションがあります。
- ダイアログの実行 – 与えられたドロップダウンリストからトリガーされるタスクを選択します。
- 音声通話のプロパティは以下のように設定することができます。
- 「初期プロンプト」を少なくとも1つ定義します。
- タイムアウトや一致なしのプロンプトを定義することができます。
- 高度なコントロールで、タイムアウト、試行回数、バージインなどの設定を定義することができます。詳細はこちらをご確認ください。