Webhook
回答が送信されたり、アンケートのステータスが変わったりした際に、リアルタイムでイベント通知を受け取れます。
Webhookは、QuestionPunk内で何かが発生した際にイベントをサーバーへ送信する仕組みです。回答の開始・完了、アンケートの公開・非公開、回答数上限への到達などが対象です。ポーリングを行うことなく、後続のワークフローをトリガーできます。
手順
- Webhookを作成設定>開発者に移動し、Webhookを作成をクリックします。POSTリクエストを受け取る、外部からアクセス可能なHTTPS URLを入力します。
- イベントを選択購読するイベントを選択します。response.completed、response.started、survey.published、survey.unpublished、survey.response_limit_reached、recruitment.started、recruitment.fulfilled、recruitment.partial、recruitment.failed、panel.submission.approved、panel.submission.rejected、panel.submission.payout_released、panel.submission.paidから選ぶか、ワイルドカード(*)を使ってすべてのイベントを受信できます。
- 署名を検証各Webhookの配信には、ヘッダーにSHA-256 HMAC署名が含まれています。Webhookシークレットを使ってこの署名を検証し、リクエストがQuestionPunkから送信されたものであることを確認してください。
- 配信状況を監視開発者設定ページには、HTTPステータスコードや応答時間を含む配信履歴が表示されるため、失敗の原因を診断できます。
Webhookを使うと、QuestionPunkのイベントにリアルタイムで対応できます。代表的な用途として、回答完了時にSlack通知を送る、CRMへデータを同期する、分析パイプラインをトリガーするといった使い方があります。
イベントタイプは4つのカテゴリにわたり、全部で13種類用意されています。回答イベント:response.completed(回答者がアンケートを完了)とresponse.started(回答者が開始)。アンケートイベント:survey.published(アンケートが公開される)、survey.unpublished(非公開になる)、survey.response_limit_reached(回答数上限に到達)。リクルーティングイベント:recruitment.started、recruitment.fulfilled、recruitment.partial、recruitment.failedは、パネルリクルーティングのライフサイクルを追跡します。パネル提出イベント:panel.submission.approved、panel.submission.rejected、panel.submission.payout_released、panel.submission.paidは、個々の参加者への謝礼の支払いや承認状況を追跡します。
Webhookシークレットは、保存時にAES-256-GCMで暗号化されます。各配信にはSHA-256 HMACによる署名が付与されており、サーバー側で真正性を検証できます。
配信に失敗した場合は、Developer設定内の配信ログでHTTPステータスコードとレスポンス本文を確認し、原因を診断してください。