関数でコードを再利用する
関数 は、ワークスペースに一度保存して、どのフローからでも使える JavaScript です。コードのステップ が 1 つのフローに属するのに対し、関数は共有されます。関数のバグを一度直せば、その関数を呼び出すすべてのフローに修正が反映されます。
自社の割引ルールでの価格計算、郵便番号のチェック、API のレスポンスをテーブルの形に変換する処理など、複数の場所で必要なロジックに使います。
1. 関数を作成する
- サイドバーの 関数 を開き、関数を作成 をクリックして ゼロから作成 を選びます(ファイルからインポート は、ほかのワークスペースからエクスポートした関数を読み込みます)。
- 関数名 と、何をするかがわかる説明を付けます。フローでは名前で関数を選ぶため、
calc2より注文合計を計算のほうがわかりやすくなります。
ビルダーを開くと、左側にひな形のコード、右側に関数の名前・説明・入力パラメータ・出力 が表示されます。ひな形にはサンプルの greeting パラメータがあるので、自分のパラメータを追加したら削除してください。

2. 入力を定義する
入力パラメータ で、関数に必要な値ごとに 入力パラメータを作成 をクリックします。
| 設定 | 用途 |
|---|---|
| 名前 | コードで使う名前(例: items)。英数字と _ を使います。 |
| 型 | 文字列・数値・ブール値・オブジェクト・配列 のいずれか。 |
| 必須 | フローから必ず渡す必要があるかどうか。 |
| デフォルト値 | フローが値を渡さなかったときに使う値。 |
| 説明 | 何を渡すか。フローで関数を使う人に表示されます。 |
3. コードを書く
名前付きの関数を書きます。AI Studio はコード内の 最初の function 名前(...) を呼び出し、その戻り値が関数の出力になります。入力の受け取り方は、関数の引数で決まります。
- 引数が 1 つ(例:
function calculateTotal(input)): すべての入力パラメータを 1 つのオブジェクトとして受け取ります。input.itemsが入力パラメータitemsです。 - 引数が複数(例:
function calculateTotal(items, coupon)): 各引数に、同じ名前の入力パラメータが入ります。
例:
function calculateTotal(input) {
const subtotal = input.items.reduce((sum, item) => sum + item.price * item.quantity, 0);
const discount = subtotal >= 10000 ? 0.1 : 0;
const tax = 0.1;
return {
subtotal,
discount: Math.round(subtotal * discount),
total: Math.round(subtotal * (1 - discount) * (1 + tax)),
};
}ひな形の先頭のコメントに、import せずに使えるライブラリ(radash・dateFns・dateFnsTz・Decimal・nanoid)が書かれています。console.log(...) の出力は、実行したときに Logs に表示されます。
4. テストする
- 実行 は各入力パラメータの デフォルト値 を使うため、現実的なデフォルト値を設定しておきます。オブジェクト や 配列 は JSON で入力します(例:
[{"price": 4000, "quantity": 3}])。 - 実行 をクリックします。Input・Output・Logs・Error のタブを持つパネルが開きます。
- 必要に応じて、関数が返す値の例を 出力例 に入力します。フローを作る人が出力の形を把握できます。

動作したら 保存 をクリックします。保存すると関数が公開され、ツールバーの バージョン履歴 で以前のバージョンを確認できます。
5. フローから呼び出す
フローで ステップを追加 をクリックし、組み込み を開いて 関数 を選び、関数実行 を選びます。
関数ID で関数を選びます。
入力 に、入力パラメータごとに項目を追加します。キーはパラメータ名、値は多くの場合参照です。リストやオブジェクトの型を保つため、参照だけを入れてください。
キー 値 items$trigger.output.items後続のステップは、結果をステップの
outputから読みます(例:$.<関数のステップ>.output.output.total)。関数がオブジェクトではなく単一の値やリストを返す場合は、output.valueに入ります。
コードがエラーを投げるとステップは失敗し、メッセージはステップの error に入ります。エラーとリトライに対処する を参照してください。
フローで使っている関数を変更する
フローは、公開済みのフローも含め、関数の最新の保存内容を呼び出します。それが関数の利点ですが、間違いも一度にすべてのフローに届きます。変更を保存する前に:
- 入力と出力の互換性を保ちます。新しい入力は任意にし、フローが使っている出力のフィールドの名前を変えたり削除したりしないでください。
- 実際のフローが渡す入力でテストします。実行履歴 の実行からコピーできます。
- 互換性のない変更は、⋮ メニューの 複製 でコピーを作り、フローを 1 つずつコピーに切り替えます。
関数とコードのステップの違い
| コードのステップ | 関数 | |
|---|---|---|
| 置き場所 | 1 つのフロー | ワークスペース |
| 変更が反映されるとき | フローを公開したとき | 関数を保存したとき |
| テスト方法 | フローを実行する | 単独で 実行 する |
| 向いている用途 | その場限りの変換 | 共通の業務ルール |