【Dify】Googleスプレッドシートの連携方法|プラグイン設定とGASの使い分け

ながみえ

DifyとGoogleスプレッドシートを連携する方法は、主に「google_sheetsプラグイン」「GAS(Google Apps Script)」の2つです。

表のデータを定型的に取得・更新したい場合はgoogle_sheetsプラグイン、複雑な条件分岐やGmail・Googleドライブなども含めて自動化したい場合はGASが向いています。初心者は、まずプラグインから試すのがおすすめです。

本記事では、DifyとGoogleスプレッドシートを連携するために必要な設定項目、権限の選び方、接続確認、エラー対処を整理します。変更されやすい画面操作については、Dify MarketplaceとGoogle Cloudの公式ページを案内します。

さらに、プラグインとGASの違い、データを読み取り・更新するときの考え方、接続できない場合の確認ポイントも整理します。

この記事でわかること

  • google_sheetsプラグインとGASの選び分け
  • サービスアカウントとGoogle Sheets APIの設定方法
  • Difyに認証情報を登録する手順
  • スプレッドシートのデータを取得・更新する方法
  • 接続エラーが起きたときの確認ポイント

※2026年7月31日時点で、Dify Marketplaceに掲載されている「omluc/google_sheets」のバージョンは0.0.2です。画面や対応操作は更新される可能性があります。また、サービスアカウントのJSON秘密鍵は、記事・画像・共有フォルダなどで公開しないでください。

Difyプラグインの共通的な導入手順を先に確認したい方は、Lesson6-1:ツールとプラグインの役割と違い・使い分け をご覧ください。

あわせて読みたい
【Dify】Lesson6-1:ツールとプラグインの役割と違い・使い分け【外部連携入門】
【Dify】Lesson6-1:ツールとプラグインの役割と違い・使い分け【外部連携入門】

DifyとGoogleスプレッドシートを連携する2つの方法

DifyとGoogleスプレッドシートを連携する方法は、主に「google_sheetsプラグイン」と「GAS(Google Apps Script)」の2つです。

決まった範囲のデータを取得・更新する場合はgoogle_sheetsプラグイン、条件分岐や複数サービスを組み合わせた処理まで作りたい場合はGASが向いています。

比較項目google_sheetsプラグインGAS
主な用途シート内のデータ取得・更新独自の業務処理や自動化
Difyからの接続方法Difyのツールとして実行WebアプリなどをHTTP経由で呼び出す
コード作成原則不要JavaScriptによる実装が必要
初期設定サービスアカウント、Sheets API、共有設定スクリプト作成、権限設定、デプロイ
得意な処理決まった範囲の取得・更新条件分岐、入力チェック、複数シートの処理
Googleサービス連携Google Sheetsが中心Gmail、Googleドライブ、カレンダーなどにも拡張可能
保守プラグインの仕様や更新に依存自分でコードと権限を管理する

google_sheetsプラグインが向いているケース

google_sheetsプラグインは、GoogleスプレッドシートをDifyアプリのデータ保存先や参照先として使いたい場合に向いています。

たとえば、次のような処理です。

  • 指定したセル範囲のデータを取得する
  • 取得した表の内容をLLMノードに渡す
  • Difyで生成した結果を指定範囲へ書き込む
  • 複数の範囲をまとめて取得・更新する

2026年7月31日時点で、Dify Marketplaceに掲載されている「omluc/google_sheets」が提供している主な操作は、Batch GetとBatch Updateです。

コードを書く必要はありませんが、サービスアカウントの作成、Google Sheets APIの有効化、対象シートの共有設定は必要です。

Difyプラグインの共通的な導入方法については、Lesson6-1:ツールとプラグインの役割と違い・使い分け で確認できます。

GASが向いているケース

GASは、スプレッドシートの取得・更新だけでは完結しない処理に向いています。

たとえば、次のような場合です。

  • 入力内容によって処理するシートを切り替える
  • 複雑な入力チェックやデータ整形を行う
  • 複数のスプレッドシートを横断して処理する
  • GmailやGoogleドライブなどと連携する
  • 実行ログ、エラー処理、再試行処理を独自に実装する

GASをWebアプリとして公開し、DifyからHTTPリクエストを送ることで、独自の処理を呼び出せます。ただし、コードの作成、公開範囲、実行権限、保守を自分で管理する必要があります。

迷った場合の選び方

初めてGoogleスプレッドシートと連携する場合は、まずgoogle_sheetsプラグインを選んでください。

決まった範囲の取得・更新だけであれば、プラグインで対応できます。プラグインでは実現できない条件分岐や、Google Sheets以外のサービスとの連携が必要になった段階でGASを検討します。

google_sheetsプラグインの設定に必要なもの

DifyとGoogleスプレッドシートを連携するには、Dify側だけでなく、Google Cloudと対象スプレッドシートの設定も必要です。

画面の構成やボタン名は変更される可能性があるため、本記事では設定に必要な項目と確認ポイントを整理します。

最新の画面操作は、Dify MarketplaceGoogle Cloudの公式ページで確認してください。

設定前に準備するもの

設定を始める前に、次のものを用意します。

  • Googleアカウント
  • Google Cloudプロジェクト
  • 連携に使用するGoogleスプレッドシート
  • google_sheetsプラグインをインストールできるDifyワークスペース
  • サービスアカウントのJSONキーを安全に保管する場所

本番データを使用する前に、接続確認用のテストスプレッドシートを別に作成しておくと安全です。

設定の全体的な流れ

設定は次の順番で進めます。

  1. Google Cloudプロジェクトを作成または選択する
  2. Google Sheets APIを有効化する
  3. サービスアカウントを作成する
  4. サービスアカウントのJSONキーを作成する
  5. 対象スプレッドシートをclient_emailと共有する
  6. Dify Marketplaceからgoogle_sheetsプラグインをインストールする
  7. Difyの認証設定にJSONファイルの内容を登録する
  8. Batch Getで接続を確認する
  9. 更新が必要な場合はBatch Updateもテストする

最新の画面操作は、以下のページで確認できます。

Google Sheets APIは、Google Cloud Consoleの「APIとサービス」から有効化します。

スプレッドシートの共有権限を選ぶ

サービスアカウントを作成すると、JSONファイル内のclient_emailに専用のメールアドレスが記載されます。

このメールアドレスを、連携対象のGoogleスプレッドシートの共有先へ追加します。

付与する権限は、Difyから行う処理に合わせて選びます。

  • Batch Getでデータを取得するだけの場合:閲覧者
  • Batch Updateでデータを更新する場合:編集者

更新が不要な場合は、編集者権限を付与しないでください。また、Googleドライブ全体ではなく、Difyから利用するスプレッドシートだけを共有します。

共有ドライブ内のスプレッドシートを使用する場合は、サービスアカウントを共有ドライブのメンバーとして追加する必要があります。

JSONキーを安全に管理する

サービスアカウントのJSONファイルには、Google APIへ接続するための秘密鍵が含まれています。

次の場所には保存・掲載しないでください。

  • WordPressのメディアライブラリ
  • 記事内の画像やコード
  • GitHubなどの公開リポジトリ
  • 誰でも閲覧できる共有フォルダ
  • メールやチャットの本文

JSONファイルの内容は、Difyプラグインの認証情報欄にだけ登録します。

秘密鍵が流出した可能性がある場合は、Google Cloudで該当キーを削除し、新しいキーを作成してください。

Difyにプラグインと認証情報JSONを登録する

Google側の準備が完了したら、Difyのワークスペースにgoogle_sheetsプラグインを追加します。

  1. Difyのプラグイン画面を開く
  2. Marketplaceで「google_sheets」を検索する
  3. 提供者が「omluc」であることを確認する
  4. google_sheetsプラグインをインストールする
  5. インストールしたプラグインの認証設定を開く
  6. 認証情報JSONの入力欄に、サービスアカウントのJSONファイルの内容をすべて貼り付ける
  7. 認証情報を保存する

JSONファイルからclient_emailやprivate_keyだけを抜き出すのではなく、最初の{から最後の}までを登録してください。

認証情報JSONは、LLMノードのプロンプト、ツールの通常入力欄、記事本文などには貼り付けません。必ずプラグインの認証情報欄へ登録します。

Difyの画面構成やボタン名は変更される可能性があります。現在のプラグイン情報と最新の設定方法は、Dify Marketplaceの掲載ページで確認してください。

Dify Marketplace|google_sheets

設定完了を判断する方法

認証情報を保存できただけでは、連携が成功したとは判断できません。

次の項目を確認してください。

  • google_sheetsプラグインがインストールされている
  • サービスアカウントのJSON全体が認証情報として登録されている
  • 対象スプレッドシートがclient_emailと共有されている
  • Google Sheets APIが有効になっている
  • Batch Getでテスト用セルの内容を取得できる
  • 更新が必要な場合は、Batch Updateでテスト用セルを更新できる

テスト用スプレッドシートで取得または更新を確認できれば、基本的な接続設定は完了です。

Batch GetとBatch Updateでデータを取得・更新する

google_sheetsプラグインには、Googleスプレッドシートの値を取得する「Batch Get」と、値を更新する「Batch Update」が用意されています。

どちらを使う場合も、次の情報が必要です。

  • 操作するスプレッドシートのID
  • 操作するシート名
  • 取得または更新するセル範囲

スプレッドシートIDとセル範囲を確認する

スプレッドシートIDは、GoogleスプレッドシートのURLに含まれています。

URLが次の形式の場合、

https://docs.google.com/spreadsheets/d/スプレッドシートID/edit

/d/」と「/edit」の間がスプレッドシートIDです。

セル範囲は、シート名とセル番地を組み合わせたA1形式で指定します。

Sheet1!A1:C3

この例では、Sheet1のA1セルからC3セルまでを指定しています。

シート名に空白が含まれる場合は、シート名をシングルクォートで囲みます。

'問い合わせ 管理'!A1:C3

スプレッドシートIDと、画面下部に表示されるシートID(gid)は別の値です。google_sheetsプラグインには、URLの「/d/」と「/edit」の間にあるスプレッドシートIDを指定します。

Batch Getでデータを取得する

Batch Getは、一つまたは複数のセル範囲からデータを取得する操作です。

入力例は次のとおりです。

{
  "spreadsheet_id": "ここにスプレッドシートIDを入力",
  "ranges": [
    "Sheet1!A1:C10"
  ]
}

spreadsheet_idには対象スプレッドシートのIDを指定します。

rangesには、取得するセル範囲を配列として指定します。一つの範囲だけを取得する場合も、配列の形で入力します。

取得に成功すると、指定した範囲とセルの値がvalueRangesとして返されます。

Batch Getでデータを取得するだけの場合は、対象スプレッドシートをサービスアカウントに「閲覧者」として共有すれば利用できます。

取得結果は、後続のLLMノードで要約、分類、回答生成などに利用できます。

Batch Updateでデータを更新する

Batch Updateは、一つまたは複数のセル範囲へ値を書き込む操作です。

入力例は次のとおりです。

{
  "spreadsheet_id": "ここにスプレッドシートIDを入力",
  "data": [
    {
      "range": "Sheet1!A1:B2",
      "values": [
        ["A", "B"],
        ["C", "D"]
      ]
    }
  ]
}

dataには、更新する範囲と値を指定します。

rangeには更新対象のセル範囲を指定し、valuesには書き込む値を行と列の配列として指定します。

たとえば、A1からB2までの2行2列を更新する場合は、valuesも2行2列にします。

Batch Updateを利用する場合は、対象スプレッドシートをサービスアカウントに「編集者」として共有する必要があります。

指定した範囲の既存データが置き換わる可能性があるため、最初はテスト用スプレッドシートで実行してください。

Difyワークフローでの使い分け

Difyのワークフローでは、次のように使い分けられます。

データを参照する場合:

  1. Batch Getでスプレッドシートの値を取得する
  2. 取得結果をLLMノードへ渡す
  3. LLMノードで要約、分類、回答生成を行う

生成結果を記録する場合:

  1. 入力フォームやLLMノードでデータを作成する
  2. Batch Updateで書き込み先のセル範囲を指定する
  3. 処理結果をスプレッドシートへ書き込む

この記事では、google_sheetsプラグイン固有の入力項目と使い分けだけを扱います。

Difyのツールノードに関する共通操作は、Lesson6-1:ツールとプラグインの役割と違い・使い分け を参照してください。

あわせて読みたい
【Dify】Lesson6-1:ツールとプラグインの役割と違い・使い分け【外部連携入門】
【Dify】Lesson6-1:ツールとプラグインの役割と違い・使い分け【外部連携入門】

現在のプラグインでできないこと

2026年7月31日時点のgoogle_sheetsプラグインで提供されている主な操作は、Batch GetとBatch Updateです。

そのため、次の処理には専用の操作が用意されていません。

  • 最終行を自動的に探して追記する
  • 新しいシートを作成する
  • 行や列を挿入・削除する
  • セルの色や文字サイズを変更する
  • 複雑な条件に従って書き込み先を変更する

これらが必要な場合は、GAS、別のプラグイン、独自APIなどを検討してください。

特に「追記」については、Batch Updateで固定範囲を更新する処理とは異なります。既存データの次の行へ自動的に追加したい場合は、別の方法が必要です。

google_sheetsプラグインで接続できないときの対処法

google_sheetsプラグインでエラーが発生した場合は、設定を最初からやり直すのではなく、次の順番で確認してください。

  1. Google Sheets APIが有効になっているか
  2. 認証情報JSONをすべて登録しているか
  3. 対象スプレッドシートをclient_emailと共有しているか
  4. spreadsheet_idが正しいか
  5. シート名とセル範囲が正しいか
  6. 更新に必要な編集権限があるか
  7. 入力するデータの行数と列数が合っているか

Permission deniedや403エラーが表示される

権限に関するエラーが表示される場合は、サービスアカウントが対象スプレッドシートへアクセスできていない可能性があります。

次の項目を確認してください。

  • JSONファイル内のclient_emailを共有先に追加している
  • Batch Getでは閲覧者以上の権限がある
  • Batch Updateでは編集者権限がある
  • 保護されたセル範囲を更新しようとしていない
  • 共有ドライブを使用する場合は、サービスアカウントがメンバーになっている
  • サービスアカウントを作成したGoogle CloudプロジェクトでGoogle Sheets APIが有効になっている

個人のGoogleアカウントではなく、サービスアカウントのclient_emailを共有先へ追加する点に注意してください。

Sheet not foundや404エラーが表示される

対象のスプレッドシートやシートが見つからない場合は、ID、シート名、共有設定のいずれかが間違っている可能性があります。

次の項目を確認してください。

  • スプレッドシートのURL全体ではなく、/d//editの間にあるIDを指定している
  • URL末尾のgidをspreadsheet_idとして使用していない
  • 対象スプレッドシートが削除されていない
  • サービスアカウントに対象スプレッドシートを共有している
  • シート名を正確に入力している
  • シート名の前後に不要な空白が入っていない
  • 空白を含むシート名をシングルクォートで囲んでいる

たとえば、シート名が「問い合わせ 管理」の場合は、次のように指定します。

'問い合わせ 管理'!A1:C10

400エラーや入力形式のエラーが表示される

400エラーは、spreadsheet_id、ranges、dataなどの入力形式が正しくない場合に発生します。

Batch Getでは、rangesを配列として指定します。

{
  "spreadsheet_id": "ここにスプレッドシートIDを入力",
  "ranges": [
    "Sheet1!A1:C10"
  ]
}

Batch Updateでは、更新範囲とvaluesの行数・列数を合わせます。

{
  "spreadsheet_id": "ここにスプレッドシートIDを入力",
  "data": [
    {
      "range": "Sheet1!A1:B2",
      "values": [
        ["A", "B"],
        ["C", "D"]
      ]
    }
  ]
}

A1からB2までは2行2列なので、valuesも2行2列にします。

また、JSONの括弧、カンマ、ダブルクォートが不足していないか確認してください。JSONの基本文法については、DifyのJSON入門記事を参照してください。

認証情報に関するエラーが表示される

認証情報のエラーが表示される場合は、Difyに登録したJSONを確認してください。

  • JSONファイルの内容を最初から最後まで登録している
  • client_emailやprivate_keyだけを抜き出していない
  • private_key内の改行を削除していない
  • Google Cloudで該当するキーを削除していない
  • 別のサービスアカウントのJSONを登録していない
  • JSONの前後に説明文やコードブロックの記号を入れていない

JSONキーを作り直す場合は、使用しなくなった古いキーをGoogle Cloudで削除してください。

Batch Getで値が返らない

エラーは出ないものの値が返らない場合は、指定したセル範囲にデータがない可能性があります。

次の項目を確認してください。

  • 指定した範囲に実際の値が入力されている
  • シート名が正しい
  • 行番号と列番号が正しい
  • 結合セルや非表示行だけを参照していない
  • 最初から大きな範囲を指定せず、A1などの小さな範囲で試している

まずは、文字列を直接入力した小さなテスト範囲を取得してください。テスト範囲を取得できたら、実際に使用する範囲へ広げます。

429や503エラーが表示される

429エラーは、短時間にGoogle Sheets APIを呼び出しすぎた場合に発生します。

503エラーは、Google側の一時的な問題や、処理するスプレッドシート・リクエストが複雑すぎる場合に発生することがあります。

次の方法で負荷を減らしてください。

  • 一つずつ呼び出さず、Batch Get・Batch Updateでまとめる
  • 必要なセル範囲だけを指定する
  • 大きなスプレッドシートを一度に取得しない
  • 短時間に同じ処理を繰り返さない
  • 少し時間を空けてから再実行する
  • 再試行する場合は、待ち時間を徐々に長くする
  • 複雑な数式やIMPORTRANGEが多いシートでは、処理範囲を小さくする

APIの利用上限は変更される可能性があるため、最新情報はGoogle Sheets APIの公式ページで確認してください。

解決しない場合の確認先

ここまで確認しても解決しない場合は、次の情報を整理します。

  • 使用しているプラグイン名と提供者
  • プラグインのバージョン
  • Batch GetとBatch Updateのどちらで発生したか
  • エラーメッセージ
  • 指定した範囲
  • 閲覧者または編集者の共有権限
  • Google Sheets APIの有効化状況

秘密鍵や認証情報JSONは、問い合わせ時にも掲載しないでください。

プラグイン固有の問題は、Dify Marketplaceに掲載されているサポート先を確認します。Google Sheets API側の問題は、Google公式の障害情報とエラー対処資料を確認してください。

まとめ

DifyとGoogleスプレッドシートを連携する方法には、google_sheetsプラグインとGASがあります。

決まった範囲のデータを取得・更新する場合はgoogle_sheetsプラグイン、複雑な条件分岐や他のGoogleサービスまで含めて自動化する場合はGASが向いています。

google_sheetsプラグインを利用するときは、次の点を確認してください。

  • Google Sheets APIを有効化する
  • サービスアカウントとJSONキーを用意する
  • 対象スプレッドシートをclient_emailと共有する
  • Batch Getだけなら閲覧者、Batch Updateを使うなら編集者にする
  • JSONキーを記事・画像・公開フォルダへ掲載しない
  • 本番データを操作する前にテスト用シートで確認する

2026年7月31日時点のgoogle_sheetsプラグインで利用できる主な操作は、Batch GetとBatch Updateです。

専用の追記操作、シートの作成、行や列の追加、セルの書式変更などが必要な場合は、GASや別のプラグインを検討してください。

画面構成やボタン名は変更される可能性があります。最新の設定手順は、Dify MarketplaceとGoogle Cloudの公式ページを確認してください。

次は実際にスプレッドシート連携アプリを作ってみましょう

プラグインの設定だけでは、Difyアプリから自動的にGoogleスプレッドシートが呼び出されるわけではありません。

ワークフローの中にツールを配置し、前のノードから値を渡して初めて、データの取得や更新が実行されます。

実際のアプリを作りながらスプレッドシート連携を試したい方は、次のLessonへ進んでください。

Lesson6-2:ボイスメモ自動要約アプリを作ろう|音声文字起こし&スプレッドシート連携

あわせて読みたい
【Dify】Lesson6-2:ボイスメモ自動要約アプリを作ろう
【Dify】Lesson6-2:ボイスメモ自動要約アプリを作ろう

ツールとプラグインの基本的な違いや、ワークフローでツールを呼び出す共通手順を確認したい方は、先にLesson6-1をご覧ください。

Lesson6-1:ツールとプラグインの役割と違い・使い分け

あわせて読みたい
【Dify】Lesson6-1:ツールとプラグインの役割と違い・使い分け【外部連携入門】
【Dify】Lesson6-1:ツールとプラグインの役割と違い・使い分け【外部連携入門】
記事URLをコピーしました