メインコンテンツへスキップ
Workflows

変数とデータの受け渡し

「前のノードで取得したデータを、次のノードでどう使うか」をまとめたページです。 変数ピッカーから挿入する方法、手書きで書く場合の構文、配列やネストの参照、 うまく値が出ないときのチェックポイントまで一通り解説します。

ノード間でデータが流れる仕組み

ワークフローのノードは線(エッジ)でつながった順番に実行され、前のノードの「出力」が後ろのノードの「入力」になります。 後ろのノードでは、前のノードが出した値を {{ノードID.項目名}} という形で参照して、メッセージ本文や API のパラメータに差し込めます。

覚えるのは 1 つだけ: ほとんどの場面では、入力欄の右側にある { } ボタン(変数ピッカー)を押せば、前のノードの項目が一覧で出てくるので、 クリックするだけで挿入できます。下記の構文は「自分で書きたい人向けのリファレンス」です。

データの流れ(例)

下の例では、Webhook で受け取った会社名を AI で要約し、Slack に投稿しています。 各ノードが「次のノードに何を渡すか」を意識すると組み立てやすくなります。

ノード出力(次に渡す内容)後ろのノードで使うときの書き方
Webhook 受信 (webhook-1)会社名 / 担当者名 / 問い合わせ本文{{webhook-1.company}}
AI 要約 (ai-1)要約テキスト{{ai-1.summary}}
Slack 通知 (slack-1)(最終出力 / 後続無し)

変数ピッカーで挿入する(推奨)

ノードの設定パネルで、テキスト入力欄や「メッセージ」「本文」等のフィールドにフォーカスすると、 右側に { } ボタン(変数ピッカー)が出ます。 これをクリックすると、このノードに繋がっている前のノードたちの出力項目がツリーで表示されます。 項目をクリックすると、その場に変数が挿入されます。

1
入力欄をクリックしてフォーカス
Slack の「メッセージ」、Email の「本文」、AI ノードの「プロンプト」など、 変数を埋め込みたい入力欄にカーソルを置きます。
2
{ } ボタンを押して変数ピッカーを開く
入力欄の右端のボタン、またはサイドのデータパネルから開きます。 繋がっている前のノードがツリー表示され、項目名(日本語)で見えます。
3
使いたい項目をクリック
クリックした項目がカーソル位置に{{ノード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 を参照
「ノードID」と表示名: 変数ピッカーには分かりやすい日本語名(ノードの表示名)が出ますが、 内部に保存されているのは 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]}}
出力フォーマットを設定していない場合: AI が返した自由な JSON がそのまま入っているので、 ピッカーには項目が出ません。 その場合は AI ノードを 1 回テスト実行すれば、 返ってきた構造から自動でピッカー候補が作られます。

うまくいかないときのチェックリスト

症状原因対処
実行結果に {{...}} がそのまま残る変数のパスが間違っている / 前のノードがその項目を出していない前のノードをテスト実行 → 出力データパネルで実際の項目名を確認 → ピッカーから入れ直す
空文字になる前のノードはその項目を出しているが、値が null や空配列分岐(IF / SWITCH)ノードで「値があるか」をチェックしてから後段に流す
ピッカーに前のノードが出ないノードが線(エッジ)で繋がっていないキャンバスで前ノードと後ろノードを線で繋ぐ。 繋がっていれば自動でピッカー候補に出ます
配列を指定したのに 1 件だけ出る配列全体ではなく records[0] など特定要素を参照している全件処理したい場合は LOOP / ITERATION ノードを挟む。 全件まとめて文字列に展開するなら配列全体({{api.records}})で渡し JSON 出力
AI ノードの出力が {{ai.data.text}} でないと取れない古いノードは出力が data 階層で包まれていた現行は {{ai.text}}{{ai.data.text}} の両方が動きます。 新しく書く場合は短い前者で OK

変数が見つからないときの動作(ワークフロー設定)

WorkflowBuilder 右上ツールバーの歯車(ワークフロー設定)→「変数が見つからない時の動作」で、 未解決の {{...}} をどう扱うかを選べます。

選択肢挙動
そのまま表示する(既定)解決できなかった {{...}} は、その文字列のまま出力に残ります。 通知が空になるより「どこが未解決か」が見えるため、まずはこちらで様子を見るのが無難です。
エラーで停止する未解決の変数があった時点でワークフローを停止します。 データの不整合を早期に検知したい本番運用向けです。
なお、分岐(条件分岐)ノードの条件式は、この設定の対象外です。 条件式の中の変数は分岐の評価ロジック側で処理されます。

関連ページ