TypeformをShopify Flowに連携する方法
Typeformでは、誰かがフォームに入力を完了するたびに、回答内容をすべてペイロードに含めたWebhookが送信されます。Workflow Webhooksはこの呼び出しをShopify Flowのトリガーに変換するため、ストア側でそれに応じて対応することができます。具体的には、お客様へのタグ付け、注文メモの追加、社内メールの送信、メタフィールドの更新など、Shopify Flowで可能なあらゆる操作を実行できます。
このガイドでは、Typeformからの送信、Workflow Webhooksでの受信と検証、Shopify Flowでの処理という一連の流れをすべて設定します。すべてのリクエストにおいてTypeformのHMAC署名が確認されるため、Typeform以外からはワークフローを開始することはできません。
どのようなものを作れるか
- 購入後のアンケートに回答したお客様に対し、その回答内容に基づいてタグを付けます。
- お客様レコードに、メタフィールドとして満足度スコアを登録してください。
- 不満の声が寄せられた場合は、その内容をメールで直接サポートチームに転送してください。
送信される代表的なイベント:フォームの送信が完了しました。
始める前に
- Workflow Webhooks Shopifyストアにインストールされています。
- Shopify Flow インストール済みです。これは、ShopifyのApp Storeから無料で入手できます。
- Webhookを作成する権限を持つTypeformのアカウントです。
ステップ 1 - Workflow Webhooks で Webhook を作成します
- Workflow Webhooks を開き**、[Webhook] → [Webhook を作成]** の順に選択し、Shopify Flow で識別しやすい名前(例:
Typeform events)を付けてください。 - **「認証」**で、「**HMAC」**を選択してください。
- 「署名プロバイダー」で「Typeform」を選択してください。このアプリが、ヘッダー、アルゴリズム、署名付きペイロード、リプレイウィンドウを自動的に入力してくれます。これ以外に設定する必要はありません。
- 「シークレット」の欄はひとまず空のままにして、「保存」をクリックしてください。ページに表示されているWebhookのURLをコピーしてください。
その他の認証モードについては、認証 を、Shopify Flow に送信するフィールドの選択については、ペイロードのマッピングとShopify Flow変数 をご参照ください。
ステップ 2 - Typeform にエンドポイントを追加する
フォームを開き、**「Connect」→「Webhook」→「Add a Webhook」**の順に進み、URLを貼り付けてから、「secret」のスイッチをオンにして、シークレットを入力してください。
Typeformの署名用シークレットを確認する方法
TypeformのWebhookで設定されたシークレットです。
Webhookの署名に関するTypeformの公式ドキュメント()には、お客様のアカウントに適用される正確な文言とスクリーンショットが掲載されています。
そのシークレットを、Workflow Webhooks の Webhook の**「Secret」**フィールドに貼り付けて、保存してください。それ以降、Typeform からのすべての送信データは、Shopify Flow に届く前に検証されるようになります。
これが何をチェックするのか
| 何 | 値 |
|---|---|
| 署名ヘッダー | Typeform-Signature |
| 署名の位置 | プレフィックス「sha256=」の後のヘッダー値 |
| 何が署名されたのでしょうか | {body} |
| 署名 | HMAC-SHA256、Base64エンコード済み |
| タイムスタンプ | この送信者には使用されていません |
| リプレイ防止機能 | なし - この送信者はタイムスタンプに署名を行わないため、すべての有効な署名は引き続き有効です |
| その秘密 | プレーンテキストとして使用します。送信者が表示した通りに、そのまま貼り付けてください。 |
署名付きペイロードにおいて、{body} は、バイト単位でそのままのリクエスト本文です。
これらのいずれかの条件を満たさないリクエストは、401 のエラーで拒否され、沿革とトラブルシューティング に記録され、ワークフローは開始されません。
ステップ 3 - 「Shopify Flow」ワークフローを作成する
- Shopify Flow でワークフローを作成し、「Workflow Webhooks」トリガーを選択してください。
- 「イベントの記録」をクリックし、Typeformからテストイベントを送信してください(またはWorkflow Webhooksの「テスト送信」機能をご利用ください)。これにより、Shopify Flowがデータの構造を学習します。
- 所有しているすべてのWebhookは同じFlowトリガーを起動するため、このワークフローをTypeformのみに限定するには、Webhook IDを最初の条件として追加してください。IDはWebhookページに表示されています。
- アクションを追加してください ― お客様にタグを付けたり、メモを追加したり、社内メールを送信したり、メタフィールドを更新したりできます。



ステップ4 - エンドツーエンドでテストする
Typeformで実際のイベントをトリガーします。**「Workflow Webhooks」→「History」**に、ステータスが「**Success」**の呼び出しが表示されるはずです。署名が正しくない場合は、その理由が記載された失敗エントリが表示されます。また、署名付きWebhookの検証 では、どのステップで失敗したかを正確に示す署名テスターについて解説しています。

署名が一致しません▾
順に、シークレット(最も一般的な原因は、余分なスペースや、間違った環境のキーの使用です)、送信者が別のエンドポイントのシークレットを使用していないか、そしてTypeformとアプリの間でボディが書き換えられていないか、という点です。署名は生のバイトを対象としているため、JSONのフォーマットを変更するプロキシによって署名が破損してしまいます。 Webhook ページの署名テスターには、署名された正確なテキストが表示されます。
どのリクエストでも401エラーが発生します▾
Webhookの認証が**「HMAC」**に設定され、プロバイダーとして「Typeform」が選択されていること、シークレットが入力されていること、そしてTypeformがアプリに表示されているURL(末尾のコードを含めて)に正確に投稿していることをご確認ください。
「履歴」には何も表示されません▾
リクエストは届きませんでした。TypeformでURLを再確認し、Typeformの配信ログで受信した応答内容をご確認ください。「404」というエラーは、Webhookの設定が間違っているか削除されていることを意味します。「429」というエラーは、ご利用のプランの呼び出し上限を超えていることを意味します。詳細は プランと利用方法 をご覧ください。
ワークフローが誤ったイベントに対して実行されてしまいます▾
ストア内のすべてのWebhookは、同じShopify Flowトリガーを起動します。ワークフローの最初のステップとして、Webhook IDに基づく条件を追加するか、Typeformから送信するイベントを絞り込んでください。
関連情報
- 署名付きWebhookの検証 - 当社が審査済みのすべてのプロバイダー、および審査対象外のプロバイダーの記載方法について。
- ペイロードのマッピングとShopify Flow変数 - ペイロードから適切なフィールドを抽出し、Shopify Flowに取り込むこと。
- 重複配送防止 - Typeformが配信を再試行すると、どのようなことが起こるのでしょうか。
- 沿革とトラブルシューティング - すべてのリクエストのログ(再生機能付き)。

