変数とデータの受け渡し
「前のノードで取得したデータを、次のノードでどう使うか」をまとめたページです。 変数ピッカーから挿入する方法、手書きで書く場合の構文、配列やネストの参照、 うまく値が出ないときのチェックポイントまで一通り解説します。
ノード間でデータが流れる仕組み
ワークフローのノードは線(エッジ)でつながった順番に実行され、前のノードの「出力」が後ろのノードの「入力」になります。 後ろのノードでは、前のノードが出した値を {{ノードID.項目名}} という形で参照して、メッセージ本文や API のパラメータに差し込めます。
{ } ボタン(変数ピッカー)を押せば、前のノードの項目が一覧で出てくるので、 クリックするだけで挿入できます。下記の構文は「自分で書きたい人向けのリファレンス」です。データの流れ(例)
下の例では、Webhook で受け取った会社名を AI で要約し、Slack に投稿しています。 各ノードが「次のノードに何を渡すか」を意識すると組み立てやすくなります。
| ノード | 出力(次に渡す内容) | 後ろのノードで使うときの書き方 |
|---|---|---|
Webhook 受信 (webhook-1) | 会社名 / 担当者名 / 問い合わせ本文 | {{webhook-1.company}} |
AI 要約 (ai-1) | 要約テキスト | {{ai-1.summary}} |
Slack 通知 (slack-1) | (最終出力 / 後続無し) | — |
変数ピッカーで挿入する(推奨)
ノードの設定パネルで、テキスト入力欄や「メッセージ」「本文」等のフィールドにフォーカスすると、 右側に { } ボタン(変数ピッカー)が出ます。 これをクリックすると、このノードに繋がっている前のノードたちの出力項目がツリーで表示されます。 項目をクリックすると、その場に変数が挿入されます。
{ } ボタンを押して変数ピッカーを開く{{ノードID.項目名}}形式で挿入されます。後ろに普通の文字も書き足せます。- まだ前のノードを 1 度も実行していない 場合、 出力項目を Pigeon Workflow が把握できないため候補が出ません。 一度テスト実行すると、その結果から項目が自動で読み込まれます
- AI 系ノードの場合は、設定の「出力フォーマット」(output schema)を埋めると、 後ろのノードからその項目がピッカーで選べるようになります
- ピッカー右上の Dev Mode をオンにすると、 内部 path(
node-id.fieldの生の表記)が表示されます
{{...}} 構文を手書きする
ピッカーを使わず直接書くこともできます。 基本は {{ノードID.項目名}} の形で、ドット区切りで項目を辿ります。 ノードID(webhook-1 のような短い英数字)は、 キャンバスでノードをクリックしたときに設定パネルの上部に表示されます。
| 用途 | 書き方 | 意味 |
|---|---|---|
| シンプルな項目 | {{webhook-1.email}} | ノード webhook-1 の出力にある email を差し込む |
| 入れ子(オブジェクト) | {{form.contact.name}} | contact オブジェクトの中の name を辿る |
| 配列の N 番目(角括弧) | {{api.records[0].title}} | records 配列の 1 番目の title。 番号は 0 始まり |
| 配列の N 番目(ドット記法) | {{api.records.0.title}} | 上と同じ意味(どちらの書き方でも動きます) |
| シークレットの参照 | {{secret:STRIPE_API_KEY}} | 組織設定の Secrets Manager から取得(実行時のみ展開・ログに残らない) |
| 環境変数の参照 | {{env:APP_URL}} | ワークフロー実行環境の env を参照 |
webhook-1 のような短い ID です。 ノードの表示名を変えても、すでに書いた変数の参照は壊れません。AI ノードの「出力フォーマット」を後ろで使う
AI 抽出・AI 生成 (AI GEN)・CUSTOM AI などの AI 系ノードは、「出力フォーマット」(output schema)を設定しておくと、 出した項目が後ろのノードの変数ピッカーに自動で並びます。 ピッカーから安心してクリック挿入できるので、可能な限り設定しておくのがおすすめです。
| 例 | AI ノードの「出力フォーマット」 | 後ろのノードでの参照 |
|---|---|---|
メールから氏名・希望職種を抽出 (extract-1) | name(文字列)/ position(文字列) | {{extract-1.name}} ・ {{extract-1.position}} |
商談録画から要点と次回アクション (summary-1) | summary(文字列)/ next_actions(配列) | {{summary-1.summary}} ・ {{summary-1.next_actions[0]}} |
うまくいかないときのチェックリスト
| 症状 | 原因 | 対処 |
|---|---|---|
実行結果に {{...}} がそのまま残る | 変数のパスが間違っている / 前のノードがその項目を出していない | 前のノードをテスト実行 → 出力データパネルで実際の項目名を確認 → ピッカーから入れ直す |
| 空文字になる | 前のノードはその項目を出しているが、値が null や空配列 | 分岐(IF / SWITCH)ノードで「値があるか」をチェックしてから後段に流す |
| ピッカーに前のノードが出ない | ノードが線(エッジ)で繋がっていない | キャンバスで前ノードと後ろノードを線で繋ぐ。 繋がっていれば自動でピッカー候補に出ます |
| 配列を指定したのに 1 件だけ出る | 配列全体ではなく records[0] など特定要素を参照している | 全件処理したい場合は LOOP / ITERATION ノードを挟む。 全件まとめて文字列に展開するなら配列全体({{api.records}})で渡し JSON 出力 |
AI ノードの出力が {{ai.data.text}} でないと取れない | 古いノードは出力が data 階層で包まれていた | 現行は {{ai.text}} と {{ai.data.text}} の両方が動きます。 新しく書く場合は短い前者で OK |
変数が見つからないときの動作(ワークフロー設定)
WorkflowBuilder 右上ツールバーの歯車(ワークフロー設定)→「変数が見つからない時の動作」で、 未解決の {{...}} をどう扱うかを選べます。
| 選択肢 | 挙動 |
|---|---|
| そのまま表示する(既定) | 解決できなかった {{...}} は、その文字列のまま出力に残ります。 通知が空になるより「どこが未解決か」が見えるため、まずはこちらで様子を見るのが無難です。 |
| エラーで停止する | 未解決の変数があった時点でワークフローを停止します。 データの不整合を早期に検知したい本番運用向けです。 |
関連ページ
- ワークフローサンプル集 — どのノードを繋ぐと何ができるかの例
- AI エージェントノード — 各 AI ノードの設定項目と出力フォーマット
- 処理ノード — TRANSFORM / VALIDATE / FILTER でデータを整える
- 条件分岐・繰り返し — LOOP / ITERATION で配列を 1 件ずつ処理