デフォルトで、エージェントは、一致したインテントに静的レスポンスで応答します。統合のいずれかのオプションを使用している場合は、フルフィルメントを使用してより動的なレスポンスを提供できます。インテントのフルフィルメントを有効にすると、Dialogflow は、定義されたサービスを呼び出してそのインテントに応答します。たとえば、エンドユーザーが金曜日にヘアカットの予定を入れる場合、サービスはデータベースをチェックし、金曜日の空き情報をエンドユーザーに返します。
各インテントには、フルフィルメントを有効にする設定があります。インテントがシステムによるアクションまたは動的レスポンスを必要とする場合は、インテントに対してフルフィルメントを有効にします。フルフィルメントが有効でないインテントが一致した場合、Dialogflow ではそのインテントに対して定義されている静的レスポンスが使用されます。
フルフィルメントが有効であるインテントが一致した場合は、Dialogflow から Webhook サービスにそのインテントに関する情報をリクエストします。システムは、必要なアクションを実行し、続行する方法に関して Dialogflow に応答します。フルフィルメントが有効な場合、インテントに定義した静的レスポンスは、Webhook サービスが失敗した場合にのみ使用されます。次の図は、フルフィルメントの処理フローを示しています。
- エンドユーザーが表現を入力または発声します。
- Dialogflow がエンドユーザー表現をインテントにマッチングさせ、パラメータを抽出します。
- Dialogflow は Webhook サービスに Webhook リクエスト メッセージを送信します。このメッセージには、一致インテント、アクション、パラメータ、インテントに定義されたレスポンスに関する情報が組み込まれます。
- サービスが、データベース クエリや外部 API 呼び出しなど、必要に応じてアクションを実行します。
- サービスから Webhook レスポンス メッセージが Dialogflow に送信されます。このメッセージには、エンドユーザーに送信する必要があるレスポンスが含まれています。
- Dialogflow からエンドユーザーにレスポンスが送信されます。
- エンドユーザーがレスポンスを確認または聞き取ります。