【よくある質問】Webhook
Webhookで同じデータが2回登録されてしまうのはなぜですか?タイムアウトの時間を延ばすことはできますか?上記はどうすれば解決できますか?リダイレクト(302 ※成功レスポンス2xx以外)が発生した場合、追跡を行わずエラー判定となる仕様ですか
Webhookで同じデータが2回登録されてしまうのはなぜですか?
formrunでは、Webhookの送信後、受信側がデータを受け取っていても、3秒以内に成功レスポンス(2xx)を返せないと、送信が失敗したと判断して自動的に再送を行います。
受信側のシステムが処理に時間がかかっていると、実際にはデータを受け取っていても「タイムアウト」と判定されるため、同じデータが再度送られ、重複登録が起きてしまいます。
※成功レスポンス(2xx)は、リクエストが正常に処理され、期待するデータが返されたことを示すHTTPステータスコードです。
タイムアウトの時間を延ばすことはできますか?
現時点では、全ユーザー共通のタイムアウト設定(接続:3秒、読み取り:3秒)の変更は行っておりません。
タイムアウト値を延ばすと、処理の遅い送信が原因で他のWebhook送信にも遅延が生じるリスクがあるため、仕様として設定しています。
上記はどうすれば解決できますか?
受信側のシステムの実装を見直すことで対応できます。
Webhookを受け取ったら、業務処理の完了を待たずに、まずHTTP 2xxなどの成功レスポンスをすぐ返すようにしてください。
その後の処理(データの保存・連携など)はバックグラウンドで続けて行う設計にすることで、タイムアウトによる誤判定と再送を防ぐことができます。
リダイレクト(302 ※成功レスポンス2xx以外)が発生した場合、追跡を行わずエラー判定となる仕様ですか
はい、エラー判定となります。
以下のどちらかにて対応いただけますと事象が改善するかと存じます。
・HTTP 2xxなどの成功レスポンスをそのまま返す状態にする
・Zapierやworkrunなど、別のワークフローツールを介して連携を行う
また、workrunは弊社の姉妹サービスとなっております。
サービスサイト:workrun(ワークラン)AIワークフロー自動化ツール
https://b-work.run/home
関連ページ