Dify移行:WebhookとGoogle Sheetsの連携ワークフローをAI Flowi Workflowへ
Dify移行では、本番環境でテスト済みのVerification Router設計を使い、Google Sheetsに行を追加する前に受信フィールドを検証してください。 AI Flowi側は2026年10月8日に本番環境でテストされました。受け入れられた入力には200、検証で拒否された入力には理由付きの422、キーの欠落や無効なキーには403が返されました。拒否された場合、行は書き込まれませんでした。機密情報を除去したワークフローJSONを新規フローにインポートし、再テストも行いました。Dify側は文書で確認していますが、Ai Flowiによるテストは行っていません。
構築手順の詳細:WebhookとGoogle Sheetsの連携チュートリアル。機密情報を除去した検証済みワークフローJSONのZIPをダウンロード。
Dify DSLはAI Flowiにインポートできる形式ではありません。 Difyは独自のDSL YAMLをエクスポートし、AI Flowiは独自のワークフローJSONをインポートします。動作を再構築する際は、Difyのエクスポートを参考資料として使ってください。ファイル名を変更したり構文を変換したりしても、コンポーネントや認証情報に互換性が生まれるわけではありません。
始める前に
- 現在のDifyの入力フィールド、変換処理、列の順序、書き込み先、認証、呼び出し元への応答、重複配信の処理方針を記録してください。
DifyとAI Flowiの対応関係とプラットフォーム上の注意点
Difyの文書にはWebhook TriggerとHTTP Requestノードが記載されています。マーケットプレイスで提供されているomluc製Google Sheetsプラグインv0.0.2はサードパーティ製で、サービスアカウントのJSONによる認証を使うBatch GetとBatch Updateが掲載されています。2026年10月8日の確認時点では、Difyの公式ドキュメントに公式Google Sheetsツールは見つかりませんでした。追記を行う方法として文書から導かれるのは、範囲を指定したBatch Update、またはHTTP RequestでSheets APIのvalues:append操作を呼び出す経路です。範囲の更新がそのまま追記になるわけではありません。現在のフローが書き込み先をどう選んでいるか記録してください。
DifyのWebhook Triggerの文書には、既定値が200で、カスタムステータスの範囲が200–399と記載されています。現在の送信元が前提としている応答を記録してください。これらのDifyの詳細は文書で確認済みですが、Ai Flowiによるテストは未実施です。このチュートリアルでは、文書から導いたDifyの経路を実行したとは主張していません。
関連情報:n8nのWebhook連携を移行:Google Sheetsへの書き込みをAI Flowi Workflowで再構築。
| Difyの処理経路 | AI Flowiでの移行先 | 手動再構築の注意点 |
|---|---|---|
| Webhook Trigger | Universal Webhook | 受信フィールド、認証、呼び出し元への応答を記録し、テスト後に送信元の接続先を変更してください。 |
| HTTP RequestによるSheets APIのvalues:append、またはサードパーティ製プラグインのBatch Updateで範囲を指定する方法 | Append Rows | name/email/requestと列の対応付けを再構築してください。範囲の更新がそのまま追記になるわけではありません。既存の経路が書き込み先をどう選んでいるか記録してください。 |
| Google Sheetsプラグインで使用するサービスアカウントのJSON | Google Connection | 書き込み先のアカウントを再認可してください。プラグインの認証情報は引き継がれません。 |
手動で再構築する項目
DifyのDSLエクスポートには、サードパーティ製ツールのAPIキーやナレッジベースの実際の内容は含まれません。サービスアカウントを使うプラグインの認証情報はAI FlowiのGoogle Connectionとは異なるため、書き込み先のアカウントを再認可してください。エクスポートを共有する前に、機密情報が含まれていないか確認してください。提供されている公開JSONは機密情報を除去済みですが、通常の一括エクスポートにはアカウントのラベル、接続識別子、スプレッドシートID、エンドポイントURLが残ることがあります。
引き継がれない項目
- 直接インポートには非対応: Dify DSL YAMLはAI Flowiにインポートできません。動作を手動で再構築してください。提供されているAI Flowi JSONは出発点となる構成例であり、Difyのワークフローを変換したものではありません。
- この構成例で同等の動作をテストしていない機能: サードパーティ製SheetsプラグインのBatch Get / Batch Updateの経路や、DifyのWebhookのカスタムステータス範囲200–399があることだけでは、AI Flowiでも同等の追記や呼び出し元への応答ができるとは確認できません。これらの移行元プラットフォームの詳細は文書で確認済み(公式情報、確認日:2026年10月8日)ですが、Ai Flowiによるテストは未実施です:Difyマーケットプレイスのプラグイン掲載ページとDify Webhook Trigger。必要な動作は別途再構築し、テストしてください。
- 認証情報とナレッジの内容: Google接続とWebhook認証をAI Flowiで再作成してください。Dify DSLにはサードパーティ製ツールのAPIキーやナレッジベースの実際の内容は含まれません(文書で確認済み(公式情報、確認日:2026年10月8日)ですが、Ai Flowiによるテストは未実施です)。必要なナレッジ文書は別途保管してください。
- WebhookのURL: 受け入れ確認後、送信元は新しいAI FlowiのProduction Endpointを使う必要があります。切り戻しに備え、旧Dify URLと必要な過去のログを保管してください。
AI Flowiのテスト結果(2026年10月8日)
提供されている設計は2026年10月8日に、本番環境でのテストと新規フローへのインポート後のテストに合格しました。これらの結果が対象とするのはAI Flowiの構成例であり、移行後の個々のDifyワークフローではありません。ご自身のフィールド対応付け、認証情報、書き込み先を再構築し、送信元を切り替える前に、呼び出し元への応答とシートへの書き込みの両方を確認してください。
| テスト項目 | 記録されたHTTP応答 | 記録された書き込み先の結果 |
|---|---|---|
| 有効な本文とプラットフォームキー | 200、追記結果を含む | name/email/requestの順序で1行追加 |
| フィールドの欠落、型の不一致、無効なメールアドレス | 422、フィールドごとの理由を含む | 行は追加されない |
| 不正な形式のJSON | 422、本文がオブジェクトであるべきことを示すエラーを含む | 行は追加されない |
| プラットフォームキーの欠落または無効なキー | 403、フロー実行前に拒否 | 行は追加されない |
| 不正なスプレッドシートID、元のフローのみでテスト | 404、Googleコンポーネントのエラーをそのまま返す | テスト用シートに変更なし |
| 同一の有効なイベントを2回配信 | 各配信に200を返す | 2行追加、重複排除なし |
新規フローにインポートしたコピーでも、成功、検証による拒否、キーによる拒否、重複時の動作が再現されました。不正なIDのテストは元の設計のみで実施しています。各テスト後に応答本文を比較し、実際のシートを読み戻してください。キャンバスの表示やインポートの成功だけでは、書き込みが行われたことの証明にはなりません。
既知の制限: 10月8日の簡易な追記版は、重複配信のたびに行を追加します。再試行を行う送信元には、重複防止版を使い、テストしてください。この版は2026年10月9日に本番環境でテストされており、順次配信に対してevent_idとUpsert Rowを使います。ただし、同時配信では両方が挿入される可能性が残ります。Sheetsの障害時には、API URL内のスプレッドシートIDを含むGoogleのエラー詳細がそのまま露出しました。この構成例には、そのエラーをフロー内で捕捉するサポート済みの仕組みがありません。自動再試行/復旧、結果が不明なタイムアウト、スループット、全般的な信頼性、外部で作成したシート、External Provider認証は未検証です。無効な本文を変更せずに再試行しても、問題は解消しません。
認証情報、ナレッジ文書、必要な過去のログは別途保管してください。DifyのDSLからAI Flowi JSONをインポートしても、これらは移行されません。ノード名が似ていても、呼び出し元への応答、再試行方針、アクセスルールは動作確認が必要です。
切り替えチェックリスト
再構築したDifyワークフローに対して、以下の手順を実施してください。これは運用上のチェックリストであり、このプラットフォーム間の切り替えをテスト済みであることの証拠ではありません。
- 構築と設定: 通常は基本チュートリアルの設定手順に従い、再試行を行う送信元には同チュートリアルの重複防止の設定手順を使ってください。Google接続を再作成し、Spreadsheet ID、タブ、列の順序、フィールド対応付け、POSTメソッド、Platform API Key認証、From Flow応答モードを確認してください。JQフィールドは表示したままにしてください。
- AI Flowiで受け入れテストを実施: 認証済みの有効な入力は200を返し、1行を書き込む必要があります。フィールドの欠落、型の不一致、無効なメールアドレス、不正な形式のJSONは、行を書き込まずに422を返す必要があります。キーの欠落や無効なキーは、行を書き込まずに403を返す必要があります。各テスト後にシートを読み戻してください。
- 重複配信をテスト: 追記版は、同一の有効な配信を2回受けると2行を書き込みます。重複防止版では、同じ
event_idを順番に送信してください。最初は200と{"status":"inserted"}、次は200と{"status":"duplicate"}が返され、追加の行が書き込まれないことを確認します。同時配信では、両方が挿入される可能性が残ります。 - テスト用シートで両システムを並行実行: 同じテスト用の入力をDifyとAI Flowiに送信し、書き込みを比較できるよう、テスト用スプレッドシートの別々のタブを使ってください。対応付けられた値、列の順序、HTTP応答、重複時の動作を、記録しておいた呼び出し元との取り決めに照らして比較します。本番の送信元を変更する前に、相違点を解消してください。
- 送信元の接続先URLを切り替え: 旧URLと切り替え時刻を記録し、DifyのWebhook URLをAI FlowiのProduction Endpointに置き換えて、送信元のAI Flowi認証を設定してください。
- 最初のリクエストを監視: 呼び出し元へのステータス/本文と実際の書き込み先の行を確認し、書き込みの欠落や重複がないか調べてください。Sheetsの障害時にはプラットフォームのエラーがそのまま返される場合があり、テスト済みの構成例にはフロー内でエラーを捕捉する仕組みがありません。再構築した動作が確認条件を満たさない場合は、切り戻し計画を実行してください。
- 切り戻し可能な期間を確保: 切り替え後、旧Difyワークフローを無効にしてください。設定した切り戻し可能期間が終わるまでは削除せずに無効のまま保持し、URLと設定を参照できる状態にしてください。
切り戻し計画
- 配信を復旧: 送信元の接続先を記録済みのDify Webhook URLに戻し、元の認証を復元して、旧ワークフローを再度有効にしてください。リクエストと書き込み先の行を確認してから、置き換え先のAI Flowiフローを無効にします。
- 切り替え期間中のデータを照合: 重複防止版を使う場合は、欠落したイベントを再送する前に、切り替え期間中に書き込まれた行と送信元の記録を
event_idで照合してください。再試行では同じ識別子を使います。Upsert Rowは一致する既存の行を更新しますが、既存の重複行を統合するものではなく、キーの有効範囲は1つのワークシートです。旧ワークフローがevent_idを保存しない場合は、手動照合に備えて送信元の記録に残してください。追記版にはevent_idによる重複防止がないため、再送前に切り替え期間中の行を手動で確認してください。
切り戻しても、シートへの書き込みは取り消されません。これは手動で行う運用上の切り戻しです。テスト済みの重複防止機能の制限は引き続き適用され、同時に挿入される可能性も残ります。
参照情報と検証範囲
- 更新済みのWebhookとGoogle Sheetsの連携チュートリアルと機密情報を除去したワークフローJSONのZIP。構成例、正確なJQ、応答、制限は、2026年10月8日付の本番環境および新規フローへのインポート後のテスト報告に基づいています。ポートは機密情報を除去したインポートファイルと一致しています。
- Google Connection、AI Flowiワークフローのインポート/エクスポート、AI Flowiの料金。
- Dify DSLのエクスポート、Webhook Trigger、HTTP Request、omluc製Google Sheetsプラグイン、公式ツールカタログ。公式情報は2026年10月8日に確認しました。文書で確認済みですが、Ai Flowiによるテストは未実施です。