「Difyで生成した回答をExcelやスプレッドシートに自動で保存したい」
「実行ログをデータベースとして蓄積して、後で分析したい」
Difyには標準で「結果をExcelに出力する」というブロックはありませんが、Google Apps Script (GAS) と連携させることで、Googleスプレッドシートへの自動書き込みが可能になります。
この記事では、Difyのワークフロー実行結果をGoogleスプレッドシートにリアルタイムで追記していく仕組みの作り方を解説します。
仕組みの概要
Difyから直接スプレッドシートを操作するのではなく、以下の流れでデータを渡します。
- Googleスプレッドシートを用意する。
- GASで「データを受け取ってシートに書き込むWeb API」を作成する。
- Difyのワークフローから、そのAPIに対してデータを送信(HTTPリクエスト)する。
STEP 1:Googleスプレッドシート側の準備
1. スプレッドシートの作成
新規スプレッドシートを作成し、1行目にヘッダー(列名)を入力します。
今回は例として、aaa, bbb, ccc という列名にしておきます。

このシートのURLから、「スプレッドシートID」をメモしておいてください。
https://docs.google.com/spreadsheets/d/【この部分】/edit
2. Google Apps Script (GAS) の作成
スプレッドシートのメニューから「拡張機能」→「Apps Script」を開きます。
以下のコードをコピーして貼り付けてください。
function doPost(e) { try { // リクエストボディからデータを取得 const requestData = JSON.parse(e.postData.contents); const fileId = requestData.fileId; // Difyから送るシートID
// スプレッドシートを取得
const sheet = SpreadsheetApp.openById(fileId).getSheets()[0];
// 1行目のヘッダーを取得
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
const newRow = [];
// ヘッダーに対応するデータをマッピング
headers.forEach(header => {
newRow.push(requestData[header] || "");
});
// 新しい行を追記
sheet.appendRow(newRow);
return ContentService.createTextOutput(JSON.stringify({ status: "success" }))
.setMimeType(ContentService.MimeType.JSON);
} catch (error) { return ContentService.createTextOutput(JSON.stringify({ status: "error", message: error.message })) .setMimeType(ContentService.MimeType.JSON); } }
3. Webアプリとしてデプロイ
作成したスクリプトを外部(Dify)からアクセスできるように公開します。
- 画面右上の「デプロイ」→「新しいデプロイ」をクリック。
- 「種類の選択」で「ウェブアプリ」を選択。
- アクセスできるユーザーを「全員」に設定します。(これが重要です)
- 「デプロイ」ボタンを押し、アクセス権限を承認します。
- 発行された「ウェブアプリのURL」をコピーしてメモしておきます。

STEP 2:Difyワークフローの設定
Dify側で、データを送信する設定を行います。
1. 環境変数の設定
ワークフロー内の「環境変数」に、先ほどの情報を登録しておくと便利です。
endpoint:GASのウェブアプリURLsheetFileId:スプレッドシートID

2. HTTPリクエストノードの追加
ワークフローの最後に「HTTPリクエスト」ノードを追加し、以下のように設定します。
- URL:環境変数の
endpointを選択 - メソッド:
POST - ボディ:「JSON」を選択し、以下のように記述します。
{ "fileId": "{{#env.sheetFileId#}}", "aaa": "{{#直前のノード.出力変数1#}}", "bbb": "{{#直前のノード.出力変数2#}}", "ccc": "固定値も入力可能" }
※キー名(aaa, bbb)は、スプレッドシートの1行目に書いたヘッダー名と完全に一致させる必要があります。

まとめ
この仕組みを使えば、Difyで生成したブログ記事の案や、要約したニュース、顧客からの問い合わせ内容などを、自動的にスプレッドシート(Excel)に蓄積していくことができます。
一度設定してしまえば、あとはDifyを実行するだけでデータが溜まっていくため、業務効率化の強力な武器になります。
【推奨】業務システム化に有効なアイテム
生成AIを学ぶ



システム化のパートナー



VPSサーバの選定





コメント