自動ガイドボットのWebhookブロックを通じて外部アプリ/システムとデータ通信が行われる際には、外部アプリ/システムに対してリクエストが送信されます。場合によっては、送信したリクエストに対する外部アプリ/システムのレスポンスに時間がかかることもあります。
Webhookブロックでは、このような場合に備えてリクエストのタイムアウトを設定できます。
リクエストのタイムアウトを設定することで、外部アプリ/システムのレスポンスの待機時間を設定することが可能です。レスポンスにかかる時間が長すぎる場合、リクエストを停止して、指定した別の処理を実行できます。以下では、Webhookブロックのリクエストのタイムアウトの概要や使用例について説明します。
リクエストのタイムアウトとは
リクエストのタイムアウトでは、送信したリクエストに対する外部アプリ/システムからのレスポンスの待機時間を設定できます。待機時間内にレスポンスがなかった場合、リクエストは自動で停止します(時間切れとして処理されます)。
リクエストのタイムアウトを設定することで、外部アプリ/システムからのレスポンスに時間がかかる場合に、時間をおいて再試行するように促したり、他の処理を行うように切り替えたりすることが可能です。
リクエストのタイムアウトの設定の主な流れ
リクエストのタイムアウトの設定は、Webhookブロックの設計画面で行うことができます。こちらから、レスポンスの待機時間を5~40秒に設定することが可能です。
適切な待機時間の設定例は、以下のとおりです。
- 素早いレスポンスが見込まれる外部アプリ/システムの場合、5~10秒などの短めの時間を設定します。例:顧客のデータが保存されているクラウドデータベース
- レスポンスに時間がかかる外部アプリ/システムの場合、40秒などの長めの時間を設定します。例:過去のデータが保存されているレガシーシステム
設定した待機時間内にレスポンスがなかった場合、リクエストはキャンセルされ、Webhookの経路の処理に失敗したものとして識別されます。この場合に複数経路を設定することで、レスポンスがない旨のメッセージを表示したり、処理をもう一度実行するためのボタンを配置したり、サポート担当者にエスカレーションしたりすることが可能です。
リクエストのタイムアウトのメリット
リクエストのタイムアウトの設定には、顧客満足度の向上をはじめとしたさまざまなメリットがあります。
主なメリットは、以下のとおりです。
- チャットの利用者に対して、応答がない状態を防ぐことができます。
- チャットボットからの反応がない場合、チャットの利用者はエラーが発生した、または無視されたと考える可能性があります。リクエストのタイムアウトを設定することで、このような状態を回避することが可能です。
- 外部アプリ/システムの処理状況に応じて、サポート担当者にチャットを転送できます。
- リクエストがキャンセルされた場合に備えて、経路を複数設定することが可能です。
- 対象の外部アプリ/システムに応じた待機時間を設定できます。
- レスポンスがなかった場合に、代わりとなる経路を設定することが可能です。
- 設定した待機時間を過ぎた場合に、チャットの利用者に対してメッセージを表示できます。例:処理に時間がかかっています。時間をおいてから、もう一度お試しください。
使用例
Webhookブロックを通じて注文管理システムと連携し、注文状況を確認するとします。
通常のレスポンスには2秒ほどかかるため、待機時間を7秒に設定しました。
これにより、待機時間に応じて以下のように経路を設定できます。
- レスポンスまでの時間が7秒以内の場合、ボットによって注文状況を表示するための処理を引き続き実行します。
- レスポンスまでの時間が7秒を超える場合、以下のメッセージを表示します。
- 処理に時間がかかっています。もう一度処理を実行するか、サポート担当者にお問い合わせください。
外部アプリ/システムのレスポンスにかかる時間にかかわらず、チャットの利用者に対して常に応答することが可能です。
使用に関するヒント
- 待機時間を初期値のままにせずに、対象の外部アプリ/システムの要件に応じて設定を行ってください。
- 通常のレスポンスにかかる時間に関しては、開発者や該当の外部アプリ/システムのサポート窓口にお問い合わせください。
- 通常のレスポンスにかかる時間が不明な場合は、待機時間を10~15秒に設定して、その後の状況に応じて時間を調整してください。
- 複数経路を併せて設定することで、レスポンスの時間に応じて処理を実行できます(例:レスポンスがない場合にメッセージを表示する)。
設定時の留意事項
- Webhookブロックにおいて、URLと外部連携の項目を入力する必要があります。これらの項目で、リクエストの送信先と認証方法を指定します。
- ヘッダー、クエリーパラメーター、ボディなどの項目が入力必須であるかどうかは、連携させる外部アプリ/システムによって異なります。必要に応じて入力してください。