GPT-4専門家による包括のなSEO审计(検索最適化診断)—Analytics、Search Console、PageSpeedを使用

上級

これはMarket Research, AI Summarization分野の自動化ワークフローで、38個のノードを含みます。主にSet, Code, Merge, HttpRequest, GoogleSheetsなどのノードを使用。 GPT-4 専門家による Analytics、Search Console、PageSpeed を使用した包括のな SEO 監査

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
  • OpenAI API Key

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "8599d7845a778242eb2b590f9276e0b22e25a242e7728a8fa6887cb7c35c668a",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "934d8441-bf80-4dec-9423-8adc877d55d7",
      "name": "スケジュールトリガー",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -4680,
        -580
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "months",
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "122563ce-0d90-4adc-bcc0-8e806c19e114",
      "name": "OpenAI チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -2860,
        -1120
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-nano",
          "cachedResultName": "gpt-4.1-nano"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "QrtszTAQelTLppHh",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2f9345a9-c5f1-4564-8ef3-836d75281fe1",
      "name": "行を追加",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2620,
        -1120
      ],
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1OiqXcLWhxBewkm88MN2etNutPA2IgiyRwMmyNeLAyz4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OiqXcLWhxBewkm88MN2etNutPA2IgiyRwMmyNeLAyz4/edit?usp=drivesdk",
          "cachedResultName": "Rapport GA"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "57e0c737-c007-4a9e-9258-df083a3bfd50",
      "name": "OpenAI チャットモデル1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -2860,
        -320
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-nano",
          "cachedResultName": "gpt-4.1-nano"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "QrtszTAQelTLppHh",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "50dd07fa-a710-4d03-8a81-95098a6454e5",
      "name": "OpenAI チャットモデル2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -2860,
        -720
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-nano",
          "cachedResultName": "gpt-4.1-nano"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "QrtszTAQelTLppHh",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "fdb3b364-b3a0-4a45-8f71-c27fd8a91c8b",
      "name": "OpenAI チャットモデル3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -2860,
        180
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-nano",
          "cachedResultName": "gpt-4.1-nano"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "QrtszTAQelTLppHh",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8deb28d8-858d-42df-8802-3c339c83494f",
      "name": "OpenAI チャットモデル4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1780,
        -420
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-nano",
          "cachedResultName": "gpt-4.1-nano"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "QrtszTAQelTLppHh",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4ef711bd-bcaa-4b61-8dfd-f4cc36f8a0a1",
      "name": "行を取得4",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -1600,
        -420
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "a0760c4c-5455-42e5-88c2-fcaa0f3141b0",
      "name": "マージ",
      "type": "n8n-nodes-base.merge",
      "position": [
        -2200,
        -660
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.2
    },
    {
      "id": "8376066b-cb77-4b60-93d1-c883eaafbb39",
      "name": "Search Console",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -3300,
        -440
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ encodeURIComponent($('Set Target Website').item.json.domain) }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n  \"startDate\": \"{{ $now.minus({months: 1}).toFormat('yyyy-MM-dd') }}\",\n  \"endDate\": \"{{ $now.toFormat('yyyy-MM-dd') }}\",\n  \"dimensions\": [\"query\"],\n  \"rowLimit\": 10\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "EanrW0MuDv56q9BH",
          "name": "search console"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d3676416-da4b-41ea-8b9b-b18ea5adbef8",
      "name": "ターゲットWebサイト設定",
      "type": "n8n-nodes-base.set",
      "position": [
        -4380,
        -580
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e3962683-6d91-4db2-af47-8ade2b8fb444",
              "name": "domain",
              "type": "string",
              "value": "https://www.your-website.com"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ef6218b1-dff2-41fc-9aad-6d7e7a3c809a",
      "name": "GAデータ整形",
      "type": "n8n-nodes-base.code",
      "position": [
        -3080,
        -1240
      ],
      "parameters": {
        "jsCode": "// n8n code to aggregate all Google Analytics data into a single block for the LangChain agent\n\n// Get all input data from the Google Analytics node\nconst inputData = $input.all();\n\n// Function to format numbers with thousand separators\nfunction formatNumber(num) {\n  return parseInt(num).toLocaleString('en-US');\n}\n\n// Function to extract the domain from a URL\nfunction extractDomain(url) {\n  if (!url) return 'unknown';\n  try {\n    const cleanUrl = url.replace(/^https?:\\/\\//, '').replace(/^www\\./, '');\n    const domain = cleanUrl.split('/')[0];\n    return domain;\n  } catch (error) {\n    return 'unknown';\n  }\n}\n\n// Aggregate all data\nconst allData = inputData.map(item => item.json);\n\n// Calculate totals and global metrics\nconst aggregatedMetrics = {\n  totalSessions: allData.reduce((sum, item) => sum + parseInt(item.sessions || 0), 0),\n  totalUsers: allData.reduce((sum, item) => sum + parseInt(item.totalUsers || 0), 0),\n  totalPageViews: allData.reduce((sum, item) => sum + parseInt(item.screenPageViews || 0), 0),\n  countries: [...new Set(allData.map(item => item.country).filter(Boolean))],\n  urls: [...new Set(allData.map(item => item.pageLocation).filter(Boolean))],\n  dataCount: allData.length\n};\n\n// Calculate derived metrics\naggregatedMetrics.avgPageViewsPerSession = (aggregatedMetrics.totalPageViews / aggregatedMetrics.totalSessions).toFixed(2);\naggregatedMetrics.avgSessionsPerUser = (aggregatedMetrics.totalSessions / aggregatedMetrics.totalUsers).toFixed(2);\naggregatedMetrics.returnUserRate = ((aggregatedMetrics.totalSessions - aggregatedMetrics.totalUsers) / aggregatedMetrics.totalSessions * 100).toFixed(1);\n\n// Create the comprehensive text summary\nconst comprehensiveReport = `\n=== GOOGLE ANALYTICS REPORT - LAST 30 DAYS ===\n\n📊 GLOBAL METRICS:\n• Total sessions: ${formatNumber(aggregatedMetrics.totalSessions)}\n• Unique users: ${formatNumber(aggregatedMetrics.totalUsers)}\n• Total page views: ${formatNumber(aggregatedMetrics.totalPageViews)}\n• Page views per session: ${aggregatedMetrics.avgPageViewsPerSession}\n• Sessions per user: ${aggregatedMetrics.avgSessionsPerUser}\n• Returning user rate: ${aggregatedMetrics.returnUserRate}%\n\n🌍 GEOGRAPHICAL BREAKDOWN:\n• Number of countries: ${aggregatedMetrics.countries.length}\n• Main countries: ${aggregatedMetrics.countries.join(', ')}\n\n🔗 WEBSITES ANALYZED:\n• Number of URLs: ${aggregatedMetrics.urls.length}\n• Main URLs: ${aggregatedMetrics.urls.join(', ')}\n`.trim();\n\n// Simplified return with a single \"content\" field\nreturn [{\n  json: {\n    content: comprehensiveReport\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "ed1a7666-4808-44cf-a415-7ccc76f22d2a",
      "name": "アナリティクス専門エージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2828,
        -1340
      ],
      "parameters": {
        "text": "=Aujourd'hui nous sommes le {{ $now }}\n\nTu es un expert Google Analytics spécialisé dans l'analyse de sites web tech/IA. \n\nMISSION : Analyser les données GA4 pour nana-intelligence.fr et identifier les opportunités d'optimisation.\n\nDONNÉES D'ENTRÉE : {{ $json.content }}\n\nANALYSE REQUISE :\n📊 Métriques de performance globale\n- Sessions, utilisateurs, taux de rebond\n- Durée moyenne des sessions\n- Pages vues par session\n- Sources de trafic principales\n\n🎯 Analyse comportementale\n- Pages les plus performantes\n- Parcours utilisateur type\n- Points de friction identifiés\n- Taux de conversion par source\n\n📈 Tendances et évolution\n- Comparaison avec période précédente\n- Saisonnalité du trafic\n- Impact des publications de contenu\n- Croissance du trafic organique\n\nFOCUS SPÉCIAL NICHE IA :\n- Performance du contenu IA/tech\n- Engagement sur les articles techniques\n- Conversion des visiteurs intéressés par l'IA\n\nFORMAT DE SORTIE :\nRetourne un objet JSON structuré avec :\n{\n  'performance_globale': {...},\n  'comportement_utilisateurs': {...},\n  'tendances': {...},\n  'recommandations_analytics': [...]\n\n",
        "options": {
          "systemMessage": "={\n  \"systemMessage\": \"Tu es un analyste web senior avec 10 ans d'expérience dans l'analyse de sites tech/IA. Ton ton est professionnel mais accessible. Tu détectes les patterns cachés dans les données et proposes des actions concrètes. Tu maîtrises parfaitement les spécificités du secteur de l'intelligence artificielle et du marketing digital.IMPORTANT: Termine TOUJOURS ta réponse par un JSON structuré avec les KPIs demandés, puis un paragraphe de synthèse executive claire pour le chef d'entreprise.\n\"\n}\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "95e9373d-cbfd-42ae-aba4-fc3e351f0a0f",
      "name": "Search Consoleデータ整形",
      "type": "n8n-nodes-base.code",
      "position": [
        -3080,
        -440
      ],
      "parameters": {
        "jsCode": "// Formatting for Search Console with handling of empty data\nconst data = $input.first().json;\n\n// Check if we have actual data\nconst hasData = data.rows && data.rows.length > 0;\n\nif (!hasData) {\n  // Case for a new/recent site - Constructive response\n  const reportText = `\n=== GOOGLE SEARCH CONSOLE REPORT - TARGET WEBSITE ===\n📊 ANALYSIS DATE: ${new Date().toLocaleDateString('en-US')}\n\n🆕 STATUS: SITE IN SEO START-UP PHASE\n• No Search Console data available (this is normal for a new site).\n• API functional: ✅ Authentication successful.\n\n🚀 POSITIVE DIAGNOSIS:\n• Technical setup: Correct.\n• Google API access: Validated.\n• Indexing: In progress.\n\n🎯 RECOMMENDATIONS TO SPEED UP INDEXING:\n• Submit the XML sitemap to Google Search Console.\n• Create high-quality content regularly.\n• Obtain natural backlinks.\n• Optimize meta descriptions and titles.\n• Use Google Search Console to request manual indexing.\n\n⏳ EXPECTED TIMELINE:\n• First GSC data: 2-4 weeks after indexing.\n• Significant data: 2-3 months with regular content.\n• Mature SEO performance: 6-12 months.\n`;\n\n  return [{\n    json: {\n      content: reportText,\n      searchConsoleData: {\n        status: \"new_site\",\n        hasData: false,\n      }\n    }\n  }];\n}\n\n// If we have data\nconst searchData = data.rows.map(row => ({\n  query: row.keys[0] || 'Not specified',\n  clicks: row.clicks || 0,\n  impressions: row.impressions || 0,\n  ctr: ((row.ctr || 0) * 100).toFixed(2),\n  position: (row.position || 0).toFixed(1)\n}));\n\nconst totalClicks = searchData.reduce((sum, item) => sum + item.clicks, 0);\nconst totalImpressions = searchData.reduce((sum, item) => sum + item.impressions, 0);\n\nconst reportText = `\n=== GOOGLE SEARCH CONSOLE REPORT - DATA AVAILABLE ===\n📊 METRICS: ${totalClicks} clicks, ${totalImpressions} impressions.\n🔝 TOP QUERIES: ${searchData.slice(0, 5).map(item => item.query).join(', ')}\n`;\n\nreturn [{\n  json: {\n    content: reportText,\n    searchConsoleData: {\n      status: \"data_available\",\n      hasData: true,\n      totalClicks,\n      totalImpressions,\n      topQueries: searchData.slice(0, 5)\n    }\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "d7d2dda7-896b-462c-b959-e782dac35e52",
      "name": "SEO専門エージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2828,
        -540
      ],
      "parameters": {
        "text": "=Tu es un consultant SEO senior spécialisé dans le lancement de sites tech/IA.\n\nMISSION : Analyser la situation Search Console et proposer une stratégie d'accélération SEO.\n\nDONNÉES REÇUES : {{ $json.content }}\nSTATUT TECHNIQUE : {{ $json.searchConsoleData }}\n\nCONTEXTE SPÉCIFIQUE :\n- Site spécialisé en intelligence artificielle  \n- Phase de démarrage SEO (normal d'avoir peu/pas de données)\n- Besoin de stratégie d'accélération de la visibilité\n\nANALYSE REQUISE :\n\n🚀 Diagnostic Phase de Démarrage\n- Évaluation de la situation actuelle\n- Identification des leviers prioritaires\n- Timeline réaliste d'acquisition de trafic\n\n🎯 Stratégie Contenu IA/Tech  \n- Mots-clés prioritaires secteur IA\n- Sujets de contenu à forte valeur ajoutée\n- Optimisation technique pour Google\n\n📈 Plan d'Accélération SEO\n- Actions week 1-4 (indexation rapide)\n- Actions mois 2-3 (construction autorité)  \n- Actions mois 3-6 (scaling traffic organique)\n\n💰 ROI et Objectifs Chiffrés\n- Objectifs de trafic réalistes par trimestre\n- KPIs à tracker prioritairement\n- Budget/ressources recommandées\n\nFORMAT RÉPONSE :\n- Synthèse situationnelle (2-3 phrases)\n- Top 3 actions immédiates (cette semaine)\n- Stratégie contenu IA 30-60-90 jours\n- Objectifs chiffrés à 6 mois\n\nSois encourageant, précis et axé ROI. Utilise des émojis pour structurer.\n",
        "options": {
          "systemMessage": "You must respond only in English. Be precise, actionable, and results-oriented. Use quantified data whenever possible.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "40f48efd-4c90-4e05-82c8-8eee42838955",
      "name": "PageSpeedデータ取得",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -3300,
        -840
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url={{ $json.domain }}&category=performance&category=accessibility&category=best-practices&category=seo",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth"
      },
      "credentials": {
        "httpQueryAuth": {
          "id": "RF8SXqKZv6zCD2Q4",
          "name": "pagespeed_insight"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "186246bb-53c6-4f42-94db-657253bcff70",
      "name": "PageSpeedデータ整形",
      "type": "n8n-nodes-base.code",
      "position": [
        -3080,
        -840
      ],
      "parameters": {
        "jsCode": "// Advanced formatting of Page Speed Insights data\nconst data = $input.first().json;\n\n// Verify that the data is valid\nif (!data.lighthouseResult) {\n  return [{\n    json: {\n      error: \"Invalid Page Speed Insights data\",\n      content: \"Error while fetching performance metrics\"\n    }\n  }];\n}\n\nconst lighthouse = data.lighthouseResult;\n\n// Generate the text report for the AI agent\nconst reportText = `\n=== PAGE SPEED INSIGHTS REPORT - TARGET WEBSITE ===\n📊 ANALYSIS DATE: ${new Date().toLocaleDateString('en-US')} - Strategy: ${lighthouse.configSettings.emulatedFormFactor}\n\n🎯 LIGHTHOUSE SCORES:\n• Performance: ${Math.round(lighthouse.categories.performance.score * 100)}/100\n• Accessibility: ${Math.round(lighthouse.categories.accessibility.score * 100)}/100\n• Best Practices: ${Math.round(lighthouse.categories['best-practices'].score * 100)}/100\n• SEO: ${Math.round(lighthouse.categories.seo.score * 100)}/100\n\n⚡ CORE WEB VITALS:\n• First Contentful Paint: ${lighthouse.audits['first-contentful-paint'].displayValue}\n• Largest Contentful Paint: ${lighthouse.audits['largest-contentful-paint'].displayValue}\n• Cumulative Layout Shift: ${lighthouse.audits['cumulative-layout-shift'].displayValue}\n• Speed Index: ${lighthouse.audits['speed-index'].displayValue}\n`;\n\nreturn [{\n  json: {\n    content: reportText\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "589300cb-913e-4dfe-b987-cb9077c3049a",
      "name": "パフォーマンス専門エージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2820,
        -940
      ],
      "parameters": {
        "text": "=Aujourd'hui nous sommes le {{ $now }}\n\nTu es un expert en performance web et Core Web Vitals, spécialisé dans l'optimisation de sites tech/IA.\n\nMISSION : Analyser les métriques PageSpeed Insights de nana-intelligence.fr et proposer des optimisations concrètes.\n\nDONNÉES REÇUES : {{ $json.content }}\nMÉTRIQUES STRUCTURÉES : {{ $json.pagespeed_data }}\n\nANALYSE REQUISE :\n\n⚡ Core Web Vitals\n- Évaluation LCP, FID, CLS vs seuils Google\n- Impact sur l'expérience utilisateur\n- Priorisation des corrections\n\n📱 Performance Mobile vs Desktop\n- Identification des goulots d'étranglement\n- Optimisations spécifiques par device\n\n🔧 Optimisations Techniques Prioritaires\n- Resources bloquantes critiques\n- Optimisation images et médias\n- Minification CSS/JS\n- Stratégies de cache\n\n🎯 Impact SEO & Business\n- Corrélation performance/classements Google\n- ROI estimé des optimisations\n- Objectifs chiffrés à 30 jours\n\nCONTEXTE : Site IA/tech avec contenu riche nécessitant performance optimale.\n\nFORMAT RÉPONSE :\n- Synthèse performance actuelle (2-3 phrases)\n- Top 3 optimisations prioritaires avec impact estimé\n- Plan d'action technique avec timeline\n- Objectifs de performance à atteindre\n\nUtilise des émojis pour structurer ta réponse et sois concret dans tes recommandations.",
        "options": {
          "systemMessage": "You must respond only in English. Be precise, actionable, and results-oriented. Use quantified data whenever possible.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "bb516f2c-aa34-48dc-9201-19fcace4e1f6",
      "name": "Webサイトホームページクロール",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -3520,
        -40
      ],
      "parameters": {
        "url": "={{ $json.domain }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (compatible; n8n-seo-audit/1.0)"
            },
            {
              "name": "Accept",
              "value": "text/html,application/xhtml+xml"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3d69a9e4-a206-491f-80d0-6b28da693fab",
      "name": "オンページSEOデータ抽出",
      "type": "n8n-nodes-base.code",
      "position": [
        -3300,
        -40
      ],
      "parameters": {
        "jsCode": "// Complete extraction of SEO data from HTML\nconst html = $input.first().json.body || $input.first().json.data || '';\n\nif (!html) {\n  return [{\n    json: {\n      error: \"No HTML content retrieved\",\n      content: \"Error while scraping the site\"\n    }\n  }];\n}\n\nfunction cleanText(text) {\n  return text ? text.replace(/<[^>]*>/g, '').trim() : '';\n}\n\nconst seoExtraction = {\n  title: cleanText(html.match(/<title[^>]*>(.*?)<\\/title>/i)?.[1]) || 'Not found',\n  metaDescription: html.match(/<meta[^>]*name=[\"']description[\"'][^>]*content=[\"']([^\"']*)[\"'][^>]*>/i)?.[1] || 'Not found',\n  h1Tags: (html.match(/<h1[^>]*>(.*?)<\\/h1>/gi) || []).map(h1 => cleanText(h1)),\n  totalImages: (html.match(/<img[^>]*>/gi) || []).length,\n  imagesWithAlt: (html.match(/<img[^>]*alt=[\"'][^\"']*[\"'][^>]*>/gi) || []).length,\n};\n\nseoExtraction.imagesWithoutAlt = seoExtraction.totalImages - seoExtraction.imagesWithAlt;\n\nreturn [{\n  json: seoExtraction\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "c8b99b81-c718-4477-b59d-7bbbb0779ac5",
      "name": "オンページSEOスコアリング",
      "type": "n8n-nodes-base.code",
      "position": [
        -3080,
        -40
      ],
      "parameters": {
        "jsCode": "// Complete analysis and scoring of extracted SEO data\nconst seoData = $input.first().json;\n\nif (!seoData || !seoData.title) {\n  return [{\n    json: {\n      error: \"Missing SEO data\",\n      content: \"Unable to proceed with the audit\"\n    }\n  }];\n}\n\n// SEO scoring system (out of 100 points)\nconst scoring = {\n  technical: 0,\n  onPage: 0,\n};\n\n// TECHNICAL SCORE\nif (seoData.title && seoData.title !== 'Not found') scoring.technical += 10;\nif (seoData.metaDescription && seoData.metaDescription !== 'Not found') scoring.technical += 10;\n\n// ON-PAGE SCORE\nif (seoData.h1Tags.length === 1) scoring.onPage += 10;\nif (seoData.imagesWithoutAlt === 0 && seoData.totalImages > 0) scoring.onPage += 10;\n\nconst totalScore = scoring.technical + scoring.onPage;\nlet scoreStatus = '';\nif (totalScore >= 80) scoreStatus = 'EXCELLENT';\nelse if (totalScore >= 60) scoreStatus = 'GOOD';\nelse if (totalScore >= 40) scoreStatus = 'AVERAGE';\nelse scoreStatus = 'POOR';\n\nconst criticalIssues = [];\nif (!seoData.title || seoData.title === 'Not found') criticalIssues.push('❌ CRITICAL: Missing title');\nif (!seoData.metaDescription || seoData.metaDescription === 'Not found') criticalIssues.push('❌ CRITICAL: Missing meta description');\nif (seoData.h1Tags.length === 0) criticalIssues.push('❌ CRITICAL: No H1 tag detected');\nelse if (seoData.h1Tags.length > 1) criticalIssues.push('⚠️ IMPORTANT: Multiple H1 tags detected');\n\nconst recommendations = [];\nif (seoData.imagesWithoutAlt > 0) recommendations.push(`🖼️ Add alt text to ${seoData.imagesWithoutAlt} images`);\n\n// Complete audit report\nconst auditReport = `\n=== COMPLETE TECHNICAL SEO AUDIT - TARGET WEBSITE ===\n📊 ANALYSIS DATE: ${new Date().toLocaleDateString('en-US')}\n\n★ GLOBAL SEO SCORE: ${totalScore}/100 (${scoreStatus})\n\n📋 ON-PAGE ANALYSIS:\n• Title: ${seoData.title !== 'Not found' ? '✅ ' + seoData.title.substring(0, 80) : '❌ Missing'}\n• Meta description: ${seoData.metaDescription !== 'Not found' ? '✅ ' + seoData.metaDescription.substring(0, 100) : '❌ Missing'}\n• H1: ${seoData.h1Tags.length} found(s) ${seoData.h1Tags.length === 1 ? '✅' : '⚠️'}\n• Images with alt text: ${seoData.imagesWithAlt}/${seoData.totalImages} ${seoData.imagesWithoutAlt === 0 ? '✅' : '❌'}\n\n${criticalIssues.length > 0 ? '🚨 CRITICAL ISSUES:\\n' + criticalIssues.join('\\n') : ''}\n${recommendations.length > 0 ? '💡 PRIORITY RECOMMENDATIONS:\\n' + recommendations.map(rec => '• ' + rec).join('\\n') : ''}\n`;\n\nreturn [{\n  json: {\n    content: auditReport,\n    auditData: {\n      totalScore,\n      scoreStatus,\n      scoring,\n      criticalIssues,\n      recommendations,\n    }\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "4901342b-1f93-4083-9cc1-1ae4d28d011d",
      "name": "技術監査エージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -2820,
        -40
      ],
      "parameters": {
        "text": "=You are a senior technical SEO expert, specializing in auditing and optimizing AI/tech websites.\n\nMISSION: Analyze the complete technical audit and create a prioritized action plan.\n\nAUDIT DATA: {{ $json.content }}\nDETAILED METRICS: {{ $json.auditData }}\n\n### In-Depth Analysis Required:\n\n🔍 **Expert Diagnosis**\n- Evaluate the overall score and position against competitors.\n- Identify quick wins versus long-term optimizations.\n- Prioritize based on SEO impact vs. required effort.\n\n⚡ **Immediate Action Plan (7 days)**\n- Critical fixes to implement first.\n- Quick on-page optimizations.\n- Essential technical improvements.\n\n📈 **Technical Roadmap (30-90 days)**\n- Phase 1 (0-30d): Solid SEO foundations.\n- Phase 2 (30-60d): Advanced optimizations.\n- Phase 3 (60-90d): Performance and monitoring.\n\n💰 **ROI and Estimated Impact**\n- Potential traffic gain per improvement.\n- Required resources vs. benefits.\n- Realistic timeline to see results.\n\n### TOOL USAGE INSTRUCTIONS (VERY IMPORTANT)\nOnce your analysis is complete, before formulating your final response, you MUST use the `Append or update row in sheet in Google Sheets` tool to save a summary.\nTo do this, you must provide data in a perfect JSON format matching the spreadsheet columns:\n\n{\n  \"Date\": \"{{ $now.toISODate() }}\", // Use current date in YYYY-MM-DD format\n  \"Source\": \"Technical SEO Audit\",\n  \"Rapport\": \"Insert a concise summary of your audit here (2-3 paragraphs max).\",\n  \"Recommandations\": \"List the top 3 most critical recommendations here as a bulleted list.\"\n}\n\nAfter successfully calling this tool, you can then formulate your full response for the end-user.\n\n### RESPONSE FORMAT:\nStructure your final response with emojis, clear sections, and highly concrete recommendations. Conclude with a dashboard of 5 main KPIs to track.\n",
        "options": {
          "systemMessage": "You must respond only in English. Be precise, actionable, and results-oriented. Use quantified data whenever possible.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "8b01b20c-c10c-43a9-8fe7-34d3d703933c",
      "name": "全レポート統合",
      "type": "n8n-nodes-base.code",
      "position": [
        -1980,
        -640
      ],
      "parameters": {
        "jsCode": "// Simple aggregator - post-merge\nconst allInputs = $input.all();\n\n// Extract contents\nconst reports = allInputs.map((input, index) => ({\n  index: index + 1,\n  content: input.json.output || input.json.content || JSON.stringify(input.json),\n}));\n\n// Create the consolidated text\nconst consolidatedText = `\n=== CONSOLIDATED DATA FOR MASTER ANALYST ===\n📊 Reports received: ${reports.length}/4\n\n📄 REPORT 1 (ANALYTICS):\n${reports[0]?.content.substring(0, 1000)}...\n\n📄 REPORT 2 (PAGESPEED):\n${reports[1]?.content.substring(0, 1000)}...\n\n📄 REPORT 3 (SEARCH CONSOLE):\n${reports[2]?.content.substring(0, 1000)}...\n\n📄 REPORT 4 (TECHNICAL AUDIT):\n${reports[3]?.content.substring(0, 1000)}...\n\n🎯 MASTER ANALYST INSTRUCTIONS:\nAnalyze these 4 reports and create a comprehensive SEO summary with a prioritized action plan.\n`;\n\nreturn [{\n  json: {\n    textSummary: consolidatedText\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "4d826fd3-118b-4316-bb10-0ac18bf8d694",
      "name": "マスターアナリストエージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1760,
        -640
      ],
      "parameters": {
        "text": "=You are the MASTER SEO ANALYST, an expert in strategic synthesis and actionable recommendations.\n\nCONSOLIDATED DATA RECEIVED: {{ $json.textSummary }}\nMETADATA: {{ $json.reportMetadata }}\n\nMISSION: Create a 360° SEO analysis and a prioritized action plan for nana-intelligence.fr.\n\nSPECIFIC CONTEXT:\n- Site specializing in artificial intelligence\n- Growth and SEO optimization phase\n- Need for concrete and prioritized recommendations\n\nCOMPLETE ANALYSIS REQUIRED:\n\n🎯 EXECUTIVE SUMMARY\n- Estimated overall SEO score (/100)\n- 3 main strengths identified\n- 3 critical weaknesses to correct\n- Estimated competitive positioning\n\n📊 CROSS-FUNCTIONAL ANALYSIS\n- Consistency between Analytics, Performance, SEO, and Technical aspects\n- Identification of important correlations\n- Friction points in the user experience\n- Cross-channel improvement opportunities\n\n🚀 PRIORITIZED ACTION PLAN (90 DAYS)\n- WEEK 1-2: Critical actions (immediate impact)\n- MONTH 1: Fundamental optimizations\n- MONTHS 2-3: Development and growth\n\n💰 ROI AND MEASURABLE GOALS\n- 30/60/90-day traffic goals\n- Priority KPIs to track\n- Estimated resources/budget required\n- Expected business impact\n\n🔍 MONITORING AND ALERTS\n- Metrics to monitor monthly\n- Alert thresholds to configure\n- Corrective actions in case of degradation\n\nRESPONSE FORMAT:\nStructure your response with emojis, clear sections, and highly actionable recommendations. Conclude with a tracking dashboard featuring 5 main KPIs.\n\nIMPORTANT: Be precise, actionable, and tailor your recommendations to the AI/tech sector.\n",
        "options": {
          "systemMessage": "Tu réponds uniquement en français. Sois précis, actionnable et orienté résultats. Utilise des données chiffrées quand possible."
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "734dd3f2-b839-45b8-816e-55537d49fa46",
      "name": "GA履歴取得",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2740,
        -1120
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "c2fc9adc-ea41-4487-b3a9-8aa8c9958363",
      "name": "Search Console履歴取得",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2740,
        -320
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f3d33302-cd1d-40f0-9582-f0af420ad4dd",
      "name": "PageSpeed履歴取得",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2740,
        -720
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "fd76ab3f-ed79-46b9-9ff6-d5ba1d00d71b",
      "name": "技術監査履歴取得",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2740,
        180
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "aca46735-6331-49e9-b4e7-5a8aff96b23d",
      "name": "最終レポートをシートに保存",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1180,
        -640
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "0571f8a4-b8da-4025-98f5-82586847d996",
      "name": "レポート取得",
      "type": "n8n-nodes-base.googleAnalytics",
      "position": [
        -3340,
        -1240
      ],
      "parameters": {
        "metricsGA4": {
          "metricValues": [
            {}
          ]
        },
        "propertyId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "dimensionsGA4": {
          "dimensionValues": [
            {}
          ]
        },
        "additionalFields": {}
      },
      "credentials": {
        "googleAnalyticsOAuth2": {
          "id": "IdJyLR8hvyqvt2XQ",
          "name": "Google Analytics account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3e1cf038-fe51-4938-a963-b44e476c8b9b",
      "name": "Google Sheetsのシートで行を取得",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2620,
        -720
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "7e0f155e-47d4-42bc-b5d9-ccd8af2fc320",
      "name": "Google Sheetsのシートで行を取得1",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2620,
        -320
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f075de2e-af7a-49c7-8fca-4b61d2147b44",
      "name": "Google Sheetsのシートで行を取得2",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        -2620,
        180
      ],
      "parameters": {
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "lmJOtRvKMOD3WkGJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "dec783ed-8df6-440a-87b2-a114db375be0",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -4840,
        -1220
      ],
      "parameters": {
        "color": 5,
        "width": 1180,
        "height": 920,
        "content": "# 🚀 Automated SEO Audit: Setup & Overview\n\nThis workflow performs a fully automated monthly SEO audit using a team of specialized AI agents. It gathers data from Google Analytics, Search Console, PageSpeed, and a live website crawl to generate a comprehensive report.\n\n### ⚠️ CRITICAL SETUP REQUIRED\n\nBefore you can run this workflow, you MUST configure the following:\n\n1.  **Set Target Domain**: In the `Set Target Website` node, replace the default URL with your own website's URL.\n2.  **Configure Trigger**: Click the `Schedule Trigger` to set the day and time for your monthly report.\n3.  **Connect Credentials**:\n    *   **OpenAI**: Add your API key to all `OpenAI Chat Model` nodes.\n    *   **Google**: Connect your Google account to all `Google Sheets`, `Google Analytics` (Get a report), and `Search Console` (HTTP Request) nodes.\n    *   **PageSpeed**: Create a \"Generic Credential\" for your Google API key and select it in the `Fetch PageSpeed Data` node.\n4.  **Update Google Sheet ID**: In **ALL** `Google Sheets` nodes, replace the default \"Document ID\" with the ID of your own Google Sheet.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f6e8b2f2-a7eb-478f-b435-f7d3d718c420",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3640,
        -1740
      ],
      "parameters": {
        "color": 4,
        "width": 700,
        "height": 1940,
        "content": "# 1. Data Collection Phase\n\nThis is the starting point of the audit. The workflow runs four branches in parallel to gather raw data from key sources.\n\n- **Google Analytics**: Fetches overall traffic and user behavior data.\n- **Google Search Console**: Retrieves organic search performance metrics.\n- **PageSpeed Insights**: Gathers technical performance and Core Web Vitals scores.\n- **Live Website Crawl**: Scrapes the homepage for on-page SEO elements (titles, headings, etc.).\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1ee5c1d8-deb5-453c-96fa-1861e70f6960",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2920,
        -1740
      ],
      "parameters": {
        "width": 580,
        "height": 2100,
        "content": "# 2. Specialist AI Analysis\n\nThis is the core intelligence of the workflow. Each data stream is processed by a dedicated AI agent with a specific area of expertise.\n\n- **Analytics Specialist**: Interprets GA4 data to find trends.\n- **Performance Specialist**: Analyzes PageSpeed scores and recommends technical fixes.\n- **SEO Specialist**: Evaluates Search Console data for organic growth opportunities.\n- **Technical Audit Agent**: Scores the on-page SEO elements from the live crawl.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c2525899-4b56-4c73-8ae6-6814cce13820",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2320,
        -1000
      ],
      "parameters": {
        "color": 3,
        "width": 1020,
        "height": 780,
        "content": "# 3. Aggregation & Master Synthesis\n\nIn this phase, all four specialist reports are collected and merged.\n\nA final **Master Analyst Agent** then receives this consolidated data package. Its mission is to synthesize all the information into a single, high-level strategic summary with a prioritized, actionable roadmap for the business.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b1a0957f-fe63-499d-8764-57638a26309d",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1280,
        -880
      ],
      "parameters": {
        "width": 440,
        "height": 500,
        "content": "# 4. Final Output & Storage\n\nThis is the final step. All individual reports, as well as the final comprehensive report from the Master Analyst, are automatically saved to your designated Google Sheet.\n\nThis creates a historical archive of your monthly SEO performance, allowing you to track progress over time.\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "a0760c4c-5455-42e5-88c2-fcaa0f3141b0": {
      "main": [
        [
          {
            "node": "8b01b20c-c10c-43a9-8fe7-34d3d703933c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2f9345a9-c5f1-4564-8ef3-836d75281fe1": {
      "ai_tool": [
        [
          {
            "node": "ed1a7666-4808-44cf-a415-7ccc76f22d2a",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "4ef711bd-bcaa-4b61-8dfd-f4cc36f8a0a1": {
      "ai_tool": [
        [
          {
            "node": "4d826fd3-118b-4316-bb10-0ac18bf8d694",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "0571f8a4-b8da-4025-98f5-82586847d996": {
      "main": [
        [
          {
            "node": "ef6218b1-dff2-41fc-9aad-6d7e7a3c809a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef6218b1-dff2-41fc-9aad-6d7e7a3c809a": {
      "main": [
        [
          {
            "node": "ed1a7666-4808-44cf-a415-7ccc76f22d2a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "734dd3f2-b839-45b8-816e-55537d49fa46": {
      "ai_tool": [
        [
          {
            "node": "ed1a7666-4808-44cf-a415-7ccc76f22d2a",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "8376066b-cb77-4b60-93d1-c883eaafbb39": {
      "main": [
        [
          {
            "node": "95e9373d-cbfd-42ae-aba4-fc3e351f0a0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "934d8441-bf80-4dec-9423-8adc877d55d7": {
      "main": [
        [
          {
            "node": "d3676416-da4b-41ea-8b9b-b18ea5adbef8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "122563ce-0d90-4adc-bcc0-8e806c19e114": {
      "ai_languageModel": [
        [
          {
            "node": "ed1a7666-4808-44cf-a415-7ccc76f22d2a",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "c8b99b81-c718-4477-b59d-7bbbb0779ac5": {
      "main": [
        [
          {
            "node": "4901342b-1f93-4083-9cc1-1ae4d28d011d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "57e0c737-c007-4a9e-9258-df083a3bfd50": {
      "ai_languageModel": [
        [
          {
            "node": "d7d2dda7-896b-462c-b959-e782dac35e52",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "50dd07fa-a710-4d03-8a81-95098a6454e5": {
      "ai_languageModel": [
        [
          {
            "node": "589300cb-913e-4dfe-b987-cb9077c3049a",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "fdb3b364-b3a0-4a45-8f71-c27fd8a91c8b": {
      "ai_languageModel": [
        [
          {
            "node": "4901342b-1f93-4083-9cc1-1ae4d28d011d",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "8deb28d8-858d-42df-8802-3c339c83494f": {
      "ai_languageModel": [
        [
          {
            "node": "4d826fd3-118b-4316-bb10-0ac18bf8d694",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "d3676416-da4b-41ea-8b9b-b18ea5adbef8": {
      "main": [
        [
          {
            "node": "0571f8a4-b8da-4025-98f5-82586847d996",
            "type": "main",
            "index": 0
          },
          {
            "node": "40f48efd-4c90-4e05-82c8-8eee42838955",
            "type": "main",
            "index": 0
          },
          {
            "node": "8376066b-cb77-4b60-93d1-c883eaafbb39",
            "type": "main",
            "index": 0
          },
          {
            "node": "bb516f2c-aa34-48dc-9201-19fcace4e1f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "40f48efd-4c90-4e05-82c8-8eee42838955": {
      "main": [
        [
          {
            "node": "186246bb-53c6-4f42-94db-657253bcff70",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4d826fd3-118b-4316-bb10-0ac18bf8d694": {
      "main": [
        [
          {
            "node": "aca46735-6331-49e9-b4e7-5a8aff96b23d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d7d2dda7-896b-462c-b959-e782dac35e52": {
      "main": [
        [
          {
            "node": "a0760c4c-5455-42e5-88c2-fcaa0f3141b0",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "8b01b20c-c10c-43a9-8fe7-34d3d703933c": {
      "main": [
        [
          {
            "node": "4d826fd3-118b-4316-bb10-0ac18bf8d694",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "186246bb-53c6-4f42-94db-657253bcff70": {
      "main": [
        [
          {
            "node": "589300cb-913e-4dfe-b987-cb9077c3049a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f3d33302-cd1d-40f0-9582-f0af420ad4dd": {
      "ai_tool": [
        [
          {
            "node": "589300cb-913e-4dfe-b987-cb9077c3049a",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "4901342b-1f93-4083-9cc1-1ae4d28d011d": {
      "main": [
        [
          {
            "node": "a0760c4c-5455-42e5-88c2-fcaa0f3141b0",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "bb516f2c-aa34-48dc-9201-19fcace4e1f6": {
      "main": [
        [
          {
            "node": "3d69a9e4-a206-491f-80d0-6b28da693fab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3d69a9e4-a206-491f-80d0-6b28da693fab": {
      "main": [
        [
          {
            "node": "c8b99b81-c718-4477-b59d-7bbbb0779ac5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ed1a7666-4808-44cf-a415-7ccc76f22d2a": {
      "main": [
        [
          {
            "node": "a0760c4c-5455-42e5-88c2-fcaa0f3141b0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "95e9373d-cbfd-42ae-aba4-fc3e351f0a0f": {
      "main": [
        [
          {
            "node": "d7d2dda7-896b-462c-b959-e782dac35e52",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c2fc9adc-ea41-4487-b3a9-8aa8c9958363": {
      "ai_tool": [
        [
          {
            "node": "d7d2dda7-896b-462c-b959-e782dac35e52",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "fd76ab3f-ed79-46b9-9ff6-d5ba1d00d71b": {
      "ai_tool": [
        [
          {
            "node": "4901342b-1f93-4083-9cc1-1ae4d28d011d",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "589300cb-913e-4dfe-b987-cb9077c3049a": {
      "main": [
        [
          {
            "node": "a0760c4c-5455-42e5-88c2-fcaa0f3141b0",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "3e1cf038-fe51-4938-a963-b44e476c8b9b": {
      "ai_tool": [
        [
          {
            "node": "589300cb-913e-4dfe-b987-cb9077c3049a",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "7e0f155e-47d4-42bc-b5d9-ccd8af2fc320": {
      "ai_tool": [
        [
          {
            "node": "d7d2dda7-896b-462c-b959-e782dac35e52",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "f075de2e-af7a-49c7-8fca-4b61d2147b44": {
      "ai_tool": [
        [
          {
            "node": "4901342b-1f93-4083-9cc1-1ae4d28d011d",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - 市場調査, AI要約

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数38
カテゴリー2
ノードタイプ11
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34