Auditoría completa de SEO basada en expertos GPT-4, usando Analytics, Search Console y PageSpeed

Avanzado

Este es unMarket Research, AI Summarizationflujo de automatización del dominio deautomatización que contiene 38 nodos.Utiliza principalmente nodos como Set, Code, Merge, HttpRequest, GoogleSheets. 基于 GPT-4 专家de全面 SEO 审计,uso Analytics、Search Console y PageSpeed

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "8599d7845a778242eb2b590f9276e0b22e25a242e7728a8fa6887cb7c35c668a",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "934d8441-bf80-4dec-9423-8adc877d55d7",
      "name": "Disparador Programado",
      "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": "Modelo de Chat 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": "Añadir fila",
      "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": "Modelo de Chat OpenAI1",
      "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": "Modelo de Chat OpenAI2",
      "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": "Modelo de Chat OpenAI3",
      "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": "Modelo de Chat OpenAI4",
      "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": "Obtener fila(s)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": "Combinar",
      "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": "Establecer Sitio Web Objetivo",
      "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": "Formatear Datos de 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": "Agente Especialista en Analytics",
      "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": "Formatear Datos de 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": "Agente Especialista en 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": "Obtener Datos de 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": "Formatear Datos de 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": "Agente Especialista en Rendimiento",
      "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": "Rastrear Página de Inicio del Sitio",
      "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": "Extraer Datos SEO On-Page",
      "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": "Puntuar SEO On-Page",
      "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": "Agente de Auditoría Técnica",
      "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": "Agregar Todos los Informes",
      "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": "Agente Analista Principal",
      "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": "Obtener Historial de 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": "Obtener Historial de 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": "Obtener Historial de 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": "Obtener Historial de Auditoría Técnica",
      "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": "Guardar Informe Final en Hoja",
      "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": "Obtener un informe",
      "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": "Obtener fila(s) en hoja en 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": "Obtener fila(s) en hoja en Google Sheets1",
      "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": "Obtener fila(s) en hoja en Google Sheets2",
      "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": "Nota Adhesiva",
      "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": "Nota Adhesiva1",
      "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": "Nota Adhesiva2",
      "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": "Nota Adhesiva3",
      "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": "Nota Adhesiva4",
      "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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Investigación de mercado, Resumen de IA

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos38
Categoría2
Tipos de nodos11
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34