Webhookフィールドマッピング:Google Sheets向け
Webhookフィールドマッピングで、Webhook本文のJSONサンプルから、指定した順序でシートの列を作成できます。この無料ツールは末端フィールドのパスと型を一覧表示し、JQによる行マッピングを生成して値をプレビューします。ブラウザー内で動作し、サンプルを送信したり保存したりしません。
著者:Ai Flowi · 公開日:
フィールドをマッピングする
bodyで包まず、本文そのものを貼り付けてください。認証情報や個人データを含まない架空のサンプルを使用してください。生成されるJQはWebhookノードの.bodyを読み取ります。
配列では最初の要素だけを使用します。items[0].skuは最初の項目のSKUを選択します。2番目以降の項目と、それらにしか存在しないフィールドは一覧に表示されません。空のオブジェクトと空の配列には末端の値がありません。
1. 末端フィールドを選択する
2. シートの列順を指定する
「上へ移動」または「下へ移動」を使ってください。新しく選択したフィールドは末尾に追加されます。ヘッダーには本文内のパスを使うため、入れ子になったフィールドの名前も区別できます。
3. マッピングをコピーする
この式は{values: [[ ... ]]}を生成します。受信リクエストの検証は行いません。検証付きレシピでは、検証クエリ内の行を組み立てる部分を変更し、ガード条件と後続の{values: .values}による射影は維持してください。貼り付け先の説明を見る。
このマッピングツールを使う場面
Google Sheetsのシートに必要な値がすでにWebhookに含まれていて、列順を指定したい場合に使います。入れ子のオブジェクトからも、contact.emailのような列を取り出せます。JSON内にすでに存在するフィールドの抽出にモデルは必要ありません。
認証、検証、シートの設定は、WebhookからGoogle Sheetsへの連携レシピに従ってください。このレシピの検証付きワークフローと、そのインポート済みコピーは2026年10月8日に本番環境でテスト済みです。この結果はそのレシピに対するものであり、ここで生成するすべての独自マッピングに適用されるわけではありません。
具体例:name、email、request
この架空のサンプルを読み込み、name、email、requestをこの順番で選択してください。
{"name":"Amina","email":"amina@example.com","request":"Send a workflow demo"}
ヘッダー行はname、email、requestです。マッピング式は次のとおりです。
(.body) as $b
| {values: [[ $b.name, $b.email, $b.request ]]}
行のプレビューは次のとおりです。
["Amina","amina@example.com","Send a workflow demo"]
emailをnameより上に移動すると、ヘッダー行、JQのアクセサー、プレビューがまとめて変更されます。contact.emailという名前のキー自体を参照する場合は$b.["contact.email"]を使い、入れ子のemailを参照する場合は$b.contact.emailを使います。
レシピ内でJQを貼り付ける場所
- マッピングのみの構成:Universal Webhook → JSONをJSON Operations → JSONに接続します。JQ Expressionを選択し、クエリフィールドを表示したまま、生成された式を貼り付けます。JSON出力をAppend Rows → Rowsに接続します。この構成では入力の検証は行いません。
- 本番環境でテスト済みの検証付きレシピ:最初のJSON Operationsノードでは、すでに
(.body) as $bで変数を束縛し、必須フィールドをチェックしています。生成された$bアクセサーを使い、成功時の分岐にあるvalues: [[ ... ]]の部分だけを置き換えてください。verified: true、検証チェック、エラー分岐、Verification Routerは維持してください。新しいフィールドには適切な検証を追加してください。このマッピングのみの式で、検証クエリ全体を置き換えないでください。 - Verified分岐にある2番目のJSON Operationsノードは、
{values: .values}の設定を維持してください。このノードが受け取るのは検証済みのオブジェクトであり、Webhookの生の本文ではありません。このレシピでは、最初のノードで行を組み立て、2番目のノードで射影します。 - 生成されたヘッダーをシートの1行目に貼り付け、列数に合わせてシートの範囲を設定してください。重複防止レシピでは、
event_idを選択したまま、キー列のヘッダーを一致させてください。使用前に、架空のリクエストを使ってエディターでフロー全体をテストしてください。
制限と使用前の確認事項
- 実行時の検証はありません:表示される型は、このサンプルだけの型です。以降のリクエストでは、フィールドが欠けたり型が変わったりする可能性があります。プレビューではJQの実行、Webhookの送信、Google Sheetsへの書き込みは行いません。フィールドの欠落や型の変更も含め、生成された式をエディターでテストしてください。
- 配列:入れ子の配列も含め、インデックス
[0]だけを調べます。繰り返し処理、項目ごとに1行を作るマッピング、後続要素のフィールドを統合する処理は行いません。これらが必要な場合は、別のJQ変換を使ってください。 - nullとスカラー型:nullは
nullのまま、数値と真偽値は元のJSONの型を維持します。文字列への自動変換は行いません。Sheetsノードがこれらをどう扱うかをエディターで確認してください。本文の最上位がスカラー値の場合、ヘッダーはvalueになります。 - ブラウザーの制限:入力は最大100,000文字、入れ子は最大50階層、末端フィールドは最大500個です。ブラウザーで表現できる有限の範囲を超える数値や、安全に精度を保てる範囲を超える整数は拒否されます。大きな識別子はJSON文字列で表してください。
- シートでの解釈:このツールはGoogle Sheetsの書式設定を制御しません。基本レシピは
USER_ENTEREDを使い、重複防止レシピはRAWを使って、001などのテキストをそのまま維持します。データに適した書き込みモードを確認してください。
関連ツールと設定
WebhookからGoogle Sheetsへの連携レシピ · Google Sheets連携 · JSON検証ツール
マッピングしたフローを構築してテストする前に、AI Flowi Workflowの製品概要をお読みください。