Skip to content

ファイルを扱う ​

フローはファイルを読み込んだり(毎月アップロードされる価格表など)、作成したり(CSV のレポートや PDF の見積書など)できます。このガイドでは、CSV の取り込み、作成したレポートのメール送信、テンプレートからの PDF 作成という 3 つのよくある作業を説明します。

ファイルの置き場所 ​

実行中のファイルは 2 つの場所で扱われます。どちらがどちらかを知っておくと、ほとんどの設定の意味がわかります。

場所ファイルを保持する期間ステップがファイルを指定する方法
ストレージ(サイドバーの ファイル タブ)削除されるまでファイル ID
実行の 作業領域実行が終わるまでファイル名

ファイルストレージ › ファイルをダウンロード はストレージから作業領域へ、ファイルをアップロード はその逆へファイルをコピーします。ファイルから抽出 や ファイルに変換 など、ファイルの中身を読み書きするステップは作業領域で動きます。全体像は ストレージ を参照してください。

メール › メール送信 の Attachments のように、ファイルを直接受け取る項目もあります。次の 2 つから選びます。

  • 参照: この実行の前のステップのファイル。$ を入力してステップを選び、ファイルを持つフィールドを選びます。
  • 新規ファイルを添付: 今アップロードするファイル。以降のすべての実行で同じファイルが使われます。

CSV をテーブルに取り込む ​

ストレージにアップロードされた CSV の各行を、テーブルに追加します。

  1. ストレージ › ファイル で CSV をアップロードし、ファイル ID をコピーします。

  2. フローで ステップを追加 をクリックし、組み込み を開いて ファイルストレージ を選び、ファイルをダウンロード を選びます。ファイルID に ID を貼り付けます。

  3. 組み込み › ファイルから抽出 › CSV を JSON にパース を追加します。ファイル名 にダウンロードのステップの fileName を設定します。1 行目が列名なら ヘッダーあり はオンのままにします。

  4. 行はステップの data に、1 行につき 1 つのオブジェクトとして、列名をキーにして入ります。

    json
    [
      { "sku": "P-100", "name": "緑茶", "price": "1200" },
      { "sku": "P-101", "name": "ほうじ茶", "price": "980" }
    ]
  5. 値 にその data への参照を設定した ループ を追加し、その中に テーブル › レコード作成 のステップを置いて、ループ.currentItem.sku などの列をフィールドに対応させます。

CSV の値はすべてテキストとして届きます。数値のフィールドには $number($.<ループのステップ>.output.currentItem.price) のような式で変換してください。

毎回新しいファイルを取り込むには

固定の ID を貼り付ける代わりに、ファイルをダウンロード の前に ファイルストレージ › ファイル一覧 を置き、いちばん新しいファイルの ID を使います。

CSV のレポートをメールで送る ​

スケジュール実行のフローで、レコードを取得して CSV にし、メールで送ります。

  1. データを取得します(例: テーブル › レコード一覧)。

  2. CSVとして保存 には、1 行ずつ改行で区切ったテキストの CSV が必要です。レコードを入力パラメータ rows として渡した コード のステップで組み立てます。

    js
    const header = "名前,メールアドレス,プラン";
    const lines = rows.map((r) => [r.name, r.email, r.plan].map((v) => `"${String(v ?? "").replace(/"/g, '""')}"`).join(","));
    return [header, ...lines].join("\n");
  3. 組み込み › ファイルに変換 › CSVとして保存 を追加します。内容 にコードのステップの results を、ファイル名 に customers.csv などを設定します。

  4. 組み込み › メール › メール送信 を追加します。Attachments に項目を追加して 参照 を選び、CSVとして保存 のステップのファイルを選びます。

控えも残すには、ファイルストレージ › ファイルをアップロード を追加し、ソースファイル名 に同じファイル名を設定します。出力の fileId が新しいファイルの ID です。

添付ファイルは 1 件 3 MB まで、1 通につき 10 件までです。大きなレポートは、ストレージにアップロードしてリンクやファイル ID を送ってください。

テンプレートから PDF を作る ​

PDF › PDF を生成 は、HTML を PDF にしてストレージに保存します。

  1. 組み込み › PDF › PDF を生成 を追加します。

  2. テンプレートソース: ステップの中に HTML を書くなら インライン HTML、ストレージにアップロードした HTML テンプレートを使うならファイルを選びます。

  3. テンプレートを書きます。値を入れる場所に {{ .customer }} のようなプレースホルダーを置きます。

    html
    <h1>{{ .customer }} 様 お見積書</h1>
    <p>合計: {{ .total }} 円</p>
    <p>有効期限: {{ .validUntil }}</p>
  4. コンテキスト: プレースホルダーと同じキーを持つオブジェクト。値は前のステップから設定します(例: customer に Current Trigger.company)。

  5. Output File Name: PDF のファイル名(例: quote.pdf)。

ステップの出力には、ストレージに保存された PDF の fileId が入るので、後から探したり、ほかへ送ったりできます。メールで送るには、メールのステップの Attachments で 参照 を選び、PDF のステップのファイルを選びます。

プレースホルダーは Go のテンプレート構文です。{{ range .items }}…{{ end }} と書くと、リストの項目ごとにブロックを繰り返します。

PDF を生成の設定。テンプレートソースはインライン HTML、プレースホルダー customer・total・validUntil を含むテンプレート HTML、各プレースホルダーを Current Trigger の値に対応させたコンテキスト、Output File Name は quote.pdf

ファイルでできるほかのこと ​

作業ステップ
文書のテキストを読み、LLM で要約するファイルから抽出 › ファイルをテキストに抽出 の後に LLM のステップ
画像などファイルで返る API のレスポンスを保存するレスポンス形式 を ファイル にした HTTP の後に ファイルストレージ › ファイルをアップロード
ほかのフローが後で読む JSON を保存するバイナリファイルモード をオフにし、ファイル内容 に JSON を入れた ファイルストレージ › ファイルをアップロード
作成した古いファイルを片付けるファイルストレージ › ファイル一覧、ループ、ファイル削除

関連ページ ​