Difyワークフロー構成例
具体的プロンプト・ノード設定・実装ガイド
SEO記事戦略レポート:3フェーズワークフロー
フェーズ1
準備
メインキーワード受け取り → 上位10サイト取得 → 分析起点設定
フェーズ2
分析
関連キーワード抽出 → 競合順位調査 → マトリックス作成 → 検索意図特定 → 中間レポート作成
フェーズ3
記事設計
競合分析 → 差別化切り口発見 → 追加調査 → 記事ストーリー設計 → SEO記事戦略レポート完成
0
【人間】キーワード選定
→
1
Start(キーワード入力)
→
2
Search(上位10サイト取得)
→
3
Extract(競合本文抽出)
→
4
Gemini(クエリ分析・ペルソナ深掘り)
→
5
GPT-4/Claude(共起語・関連キーワード抽出)【心臓部】
→
6
Claude/GPT-4(競合分析・差別化切り口発見)
→
7
GPT-4/Claude(アウトライン生成)
→
8
Gemini(一次情報追加・知識ギャップ解消)
→
9
Claude→GPT-4(本文生成・10重チェック指示)
→
10
Gemini/GPT o3-mini(ファクトチェック)
→
11
GPT-4(最終リライト・品質向上)
① Start ノード(ユーザー入力)
ワークフローの開始点、ユーザーからの入力を受け取る
入力変数設定
keyword
string
例:「派遣法 教育訓練 義務化」
persona
string (optional)
例:「派遣会社 教育担当」
article_type
enum
例:「解説」/「比較」/「事例」
⓪【人間作業】キーワード選定
問い合わせ獲得・CV目的に基づいたキーワード決定
作業内容
- 目的の明確化:問い合わせ獲得、資料DL、認知拡大など
- ターゲット設定:誰に向けた記事か(例:派遣会社の教育担当者)
- キーワード選定:検索ボリューム、競合性、CVへの距離を考慮
- 記事タイプ決定:悩み解決型 or 情報提供型
- クエリの確認:Google検索窓のサジェストキーワード確認
決定事項
- メインキーワード:1つに絞る(SEO原則)
- 記事の方向性:問い合わせまでの導線設計
- ペルソナ想定:読者像の仮説
② Search ノード(競合記事検索)
上位10サイトを取得して徹底分析
プラグイン設定
検索プラグイン(Dify内蔵 or 外部API)
検索クエリ
{{keyword}}
検索件数
10件
出力変数
search_results
タイトル/URL/スニペット一覧(10件)
③ Extract ノード(本文抽出)
競合記事の詳細コンテンツを取得
プラグイン設定
Scrape as Markdown
入力URL
{{search_results.urls}}
出力変数
competitor_articles
各記事の本文(Markdown形式)
④ Gemini ノード(クエリ分析・ペルソナ深掘り分析)
検索クエリを分析し、Question(検索意図)を明確化
モデル設定
Gemini Pro
プロンプト例
あなたはSEOエキスパートです。
キーワード「{{keyword}}」をGoogle検索窓に入れた際のサジェストクエリと、上位10記事を分析し、
検索者の「Question(疑問・検索意図)」を明確化してください。
【作業手順】
1. 検索クエリサジェスト分析
- Google検索窓に表示されるサジェストキーワードを確認
- 関連性の高いクエリの傾向を把握
2. ペルソナ深掘り
- このキーワードで検索する人の具体像(職種、課題、目的)
- 検索者が真に知りたいこと(Question)
3. Question の明確化
- 「何を知りたいのか」を一文で表現
- 検索者の疑問を段階的に分解(疑問A → 疑問B → 疑問C)
【重要】
- QuestionとAnswerのズレがないことが良質記事の条件です
- 検索者の疑問を正確に捉え、後続のAnswer作成に繋げます
【出力形式】JSON
{
"query_suggestions": ["サジェスト1", "サジェスト2", ...],
"persona_profile": "具体的なペルソナ像",
"core_question": "検索者の中心的な疑問(一文)",
"question_breakdown": ["疑問A", "疑問B", "疑問C"],
"tone_guideline": "推奨トーン・文体"
}
入力: {{keyword}}, {{competitor_articles}}
出力変数
query_suggestions[]
検索サジェストクエリ
core_question
検索者の中心的疑問(Question)
persona_profile
具体的ペルソナ像
tone_guideline
推奨文体・トーン
⑤ GPT-4/Claude ノード(共起語・関連キーワード抽出)【心臓部】
Questionに対する的確なAnswerを作成するための材料抽出
モデル設定
GPT-4(推奨) or Claude 3.5 Sonnet
プロンプト例
あなたはSEOエキスパートです。
この工程は「心臓部」です。Questionに対する的確なAnswerを作成するため、
競合記事から「共起語」と「関連キーワード」を徹底抽出してください。
【作業手順】
1. クエリの確認(最優先)
- Google検索窓のサジェストクエリ: {{query_suggestions}}
- これらのクエリから、検索者のニーズを把握
2. 共起語の抽出
- 競合10記事で頻出する単語・フレーズを抽出
- AND検索なのかOR検索なのかを判断
- 全記事共通の共起語を優先(重要度高)
3. 関連キーワードの抽出
- メインキーワード「{{keyword}}」の類義語・関連語
- 見出しパターンの分析
- FAQ・よくある疑問の整理
4. Answer準備
- 上記の材料を用いて「Question: {{core_question}}」に答えられるか確認
- 不足している論点・切り口を指摘
【重要原則】
✓ QuestionとAnswerのズレをなくす
✓ 競合が見落としている論点を発見する
【出力形式】JSON
{
"kyoki_words": ["共起語1", "共起語2", ...],
"related_keywords": ["関連KW1", "関連KW2", ...],
"headings_patterns": ["見出しパターン1", ...],
"faqs": ["FAQ1", "FAQ2", ...],
"missing_topics": ["競合が見落としている論点1", ...],
"sources": ["URL1", "URL2", ...]
}
入力: {{keyword}}, {{core_question}}, {{query_suggestions}}, {{competitor_articles}}
出力変数
kyoki_words[]
共起語(頻出単語・フレーズ)
related_keywords[]
関連キーワード
headings_patterns[]
競合見出しパターン
faqs[]
よくある質問
missing_topics[]
競合の見落とし論点
⑥ Claude/GPT-4 ノード(競合分析・差別化切り口発見)
競合の強み・弱みを整理し、情報のフレッシュネスと独自の切り口を発見
モデル設定
Claude 3.5 Sonnet(推奨) or GPT-4
プロンプト例
あなたはSEOエキスパートです。
競合分析から差別化戦略を策定してください。
【最重要】差別化の2大要素
1. 情報のフレッシュネス(最新性)を最優先で考慮
2. 競合が見落としている論点・切り口の発見(必須)
【分析材料】
- 競合記事: {{competitor_articles}}
- 検索意図(Question): {{core_question}}
- ペルソナ: {{persona_profile}}
- 共起語: {{kyoki_words}}
- 見落とし論点: {{missing_topics}}
【分析内容】
1. 各競合記事の強み・弱みを整理
2. 【必須】競合が見落としている論点・切り口を発見
3. 【最優先】情報のフレッシュネス分析
- 最新データは引用されているか?
- 法改正・制度変更は反映されているか?
- 競合記事の更新日時は?
4. ペルソナにとって最も価値のある差別化要素を特定
5. 読者の疑問を解決しやすい記事ストーリーの方向性を提案
【出力形式】JSON
{
"competitor_analysis": {
"strengths": ["競合の強み1", "競合の強み2"],
"weaknesses": ["競合の弱み1", "競合の弱み2"]
},
"freshness_analysis": {
"latest_data_found": "最新データの有無",
"update_dates": ["競合記事の更新日"],
"freshness_opportunity": "フレッシュネスで勝てるポイント"
},
"differentiation_opportunities": ["差別化切り口1", "差別化切り口2"],
"story_direction": "記事ストーリーの方向性"
}
入力: {{keyword}}, {{core_question}}, {{competitor_articles}}, {{kyoki_words}}, {{missing_topics}}
出力変数
competitor_analysis
競合の強み・弱み分析
freshness_analysis
情報のフレッシュネス分析
differentiation_opportunities
差別化切り口(必須)
story_direction
記事ストーリー方向性
⑦ GPT-4/Claude ノード(戦略的アウトライン生成)
差別化戦略を反映した記事構成を作成し、タイトル・見出し案を生成
モデル設定
GPT-4(推奨) or Claude 3.5 Sonnet
プロンプト例
あなたはSEO戦略レポート作成のエキスパートです。
差別化戦略を反映した、読者の疑問解決に特化した記事アウトラインを作成してください。
【戦略的要素】
- 検索意図: {{core_search_intent}}
- ペルソナ: {{persona_profile}}
- 差別化切り口: {{differentiation_opportunities}}
- 記事ストーリー方向性: {{story_direction}}
- 競合見出しパターン: {{headings_patterns}}
- FAQ: {{faqs}}
【アウトライン作成要件】
1. 競合にはない独自の切り口を盛り込む
2. ペルソナの疑問を段階的に解決する構成にする
3. 検索意図を満たしつつ、差別化要素を強調する
4. タイトル案も複数提案する
【出力形式】
{
"title_options": ["タイトル案1", "タイトル案2", "タイトル案3"],
"outline": [
{"level": "H1", "text": "見出し"},
{"level": "H2", "text": "見出し"},
{"level": "H3", "text": "見出し"}
],
"knowledge_gaps": ["不足情報1", "不足情報2"],
"unique_value_props": ["独自価値1", "独自価値2"]
}
出力変数
outline[]
記事アウトライン
title_options[]
戦略的タイトル案
knowledge_gaps[]
不足している論点(ループ判定用)
unique_value_props[]
記事の独自価値提案
⑧ Loop ノード(一次情報追加・知識ギャップ解消)
信頼性の高い一次情報を組み込み、知識ギャップを徹底的に解消
ループ条件
knowledge_gaps.length > 0
かつ
loop_count < 3
ループ内処理(最重要)
1
【最優先】一次情報の組み込み
- 国・銀行・公的機関の最新データ
- 信頼性が高く鮮度のある情報を優先
- 法規・政策・ガイドラインの引用
- 国・銀行・公的機関の最新データ
- 信頼性が高く鮮度のある情報を優先
- 法規・政策・ガイドラインの引用
2
追加調査項目での再Search → Extract → 分析
3
差別化要素を強化し、アウトライン更新
4
knowledge_gaps を再評価(ゼロになるまで繰り返し)
一次情報収集プロンプト
【一次情報収集プロンプト】
[入力されたキーワード]に関する一次情報を以下の条件で収集してください。
### 収集する情報の種類:
1. 公的機関の統計データ・調査結果
2. 学術論文・研究報告書
3. 業界団体の公式発表・レポート
4. 政府機関の政策・ガイドライン
5. 大手企業の公式プレスリリース・決算報告
6. 専門家・有識者の公式見解(インタビュー記事など)
### 情報収集の条件:
- 過去2年以内の最新情報を優先
- 日本語情報を中心に、必要に応じて英語情報も含める
- 出典元のURLと発表日を必ず明記
- 情報の信頼性を3段階で評価(高・中・低)
### 出力形式:
各情報について以下の形式でまとめてください:
**情報タイトル**
- 情報源:[組織名/著者名]
- 発表日:[YYYY年MM月DD日]
- URL:[リンク]
- 信頼性:[高/中/低]
- 要約:[100文字程度で要点をまとめる]
- SEO活用ポイント:[この情報をどのように記事に活用できるか]
⑨ Claude→GPT-4 ノード(本文生成・10重チェック指示)
Claude で正確なドラフト生成 → GPT-4 で表現をブラッシュアップ
モデル設定
Claude 3.5 Sonnet(ドラフト) → GPT-4(ブラッシュアップ)
プロンプト例
あなたはSEOエキスパートです。
以下の条件で、QuestionとAnswerのズレがない高品質なSEO記事本文を作成してください。
【最重要原則】
✓ QuestionとAnswerのズレをゼロにする
✓ 情報をスキップしない(10重チェック指示)
【記事戦略】
- Question(検索意図): {{core_question}}
- ペルソナ: {{persona_profile}}
- トーン: {{tone_guideline}}
- 共起語: {{kyoki_words}}
- 差別化切り口: {{differentiation_opportunities}}
- 一次情報: {{primary_sources}}
【本文作成要件】
1. 【最優先】QuestionとAnswerのズレをなくす
- 検索者の疑問に対して、的確に回答する
- 不要な情報を入れない、必要な情報を漏らさない
2. 競合記事の文字数を参考にボリューム調整
- 通常3,000〜10,000文字の範囲
- 内容が薄い記事を長く書かない
- 簡潔に解決できることは簡潔に
3. 一次情報(最新データ)を必ず組み込む
- 国・公的機関・銀行等の信頼できるデータ
- 引用元URLを明記
4. 【重要】10重チェック指示
- 出力前に、提供した知識データを10回チェックする
- スキップ厳禁:AIが勝手に省略しないよう徹底
- 時間がかかっても確実性を優先
5. 出力はMarkdown形式(H1/H2/H3見出し、箇条書き使用)
アウトライン: {{outline}}
競合記事の平均文字数: {{avg_word_count}}
出力変数
draft_article
記事ドラフト(Markdown形式・10重チェック済み)
⑩ Gemini/GPT o3-mini ノード(ファクトチェック)
Gemini推奨(最新情報検証) / GPT o3-miniはオプション
モデル設定
Gemini Pro(推奨) or GPT o3-mini(オプション)
ファクトチェックプロンプト
【ファクトチェックプロンプト(GPT o3/o4用)】
【目的】
この記事の全文をファクトチェックしてください。
あらゆる手段を尽くして、以下の手順に従って進めてください。
【手順】
1. 記事を精読し、含まれる主張・数値・引用などの「事実」を一つずつ抽出してください。
2. 抽出した事実ごとに調査を行い、「真実」「虚偽」「不明瞭」のいずれかを判定してください。
3. 各事実について、信頼性の高い独立した情報源を最低3件探し、判定の根拠として示してください。
※学術論文、政府・公的機関、一次資料、主要報道などを優先
【出力形式】
以下の3セクションに分けて一覧化してください。
■ 真実
・事実A|簡潔な根拠説明|参考: 媒体名, 媒体名, 媒体名
・事実B|...
■ 虚偽
・事実C|簡潔な根拠説明|参考: 媒体名, 媒体名, 媒体名
■ 不明瞭
・事実D|判断に足る公開情報が不足|参考: 媒体名, 媒体名, 媒体名
【補足ルール】
・「不明瞭」の判定基準は「公開情報が乏しい」「一次資料間で結論が分かれる」など、どちらとも確定できない場合とします
・引用元は必ず媒体名にリンクを埋め込むこと(URLは本文に表示しない)
・判定プロセスで矛盾や疑義が見つかった場合は、メモとして指摘し、調査を継続してください
・箇条書きには必ず「・」を使用し、Markdownの「-」「*」などの自動変換記号は使わないでください
入力記事: {{draft_article}}
出力変数
fact_check_report
ファクトチェック結果(真実/虚偽/不明瞭)
corrected_article
修正済み記事
⑪ GPT-4 ノード(最終リライト・品質向上)
文体統一・トーン調整・冗長表現削除で読みやすさを向上
モデル設定
GPT-4(推奨)
プロンプト例
以下の記事を読みやすくブラッシュアップしてください。
【リライト要件】
- 冗長表現を削除
- 文末を敬体で統一
- 読者が理解しやすいように箇条書きを追加
- FAQは会話調に調整
- 段落構成を最適化
- ペルソナ「{{persona_profile}}」に合わせたトーン調整
入力: {{corrected_article}}
出力変数
final_article
最終調整済み記事
最終出力
完成記事(Markdown)
{{final_article}}
メタ情報
title/desc/slug/OG案
ファクトチェック結果
{{fact_check_report}}
差別化戦略
{{differentiation_opportunities}}
一次情報ソース
{{primary_sources}}
内部リンク候補
{{sources}}
実装のポイント
エラーハンドリング
各ノードでタイムアウトやAPI制限に対する適切なエラーハンドリングを実装する
パフォーマンス最適化
並列実行可能な部分は並列化し、処理時間の短縮を図る
セキュリティ
APIキーは環境変数で管理し、ログに機密情報が残らないよう注意
設定の柔軟性
プロンプトやパラメータは外部設定ファイルで管理し、調整しやすくする