Livraison automatique de rapports SEO hebdomadaires avec les insights de GPT-4 et Slack

Avancé

Ceci est unMarket Research, AI Summarizationworkflow d'automatisation du domainecontenant 42 nœuds.Utilise principalement des nœuds comme Set, Code, Merge, Slack, SplitOut. Automatiser la livraison des rapports SEO hebdomadaires avec les insights de GPT-4 et Slack

Prérequis
  • Token Bot Slack ou URL Webhook
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "name": "Automate Weekly SEO Report with GPT-4 Insights and Slack Delivery",
  "nodes": [
    {
      "id": "43d47434-1125-439d-ba6a-cab092db3f46",
      "name": "Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        -1380,
        520
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9941e108-1e6c-4050-8401-9e6125a847de",
              "name": "site_url",
              "type": "string",
              "value": "sc-domain:your-domain.com"
            },
            {
              "id": "06978aeb-e021-4b59-8a42-4225857d7778",
              "name": "date_start",
              "type": "string",
              "value": "={{ $now.minus(1,'month').format('yyyy-LL-dd') }}"
            },
            {
              "id": "780c04e5-5e2d-4a0c-9629-8d7ea7a4be8c",
              "name": "date_end",
              "type": "string",
              "value": "={{ $now.format('yyyy-LL-dd') }}"
            },
            {
              "id": "66e78b2a-965e-4e44-a88b-d31338175fe2",
              "name": "date_prev_month_start",
              "type": "string",
              "value": "={{ $now.minus(2,'month').minus(1,'day').format('yyyy-LL-dd') }}"
            },
            {
              "id": "332eae7c-0318-4cdc-a924-0f5b1ed22dbf",
              "name": "date_prev_month_end",
              "type": "string",
              "value": "={{ $now.minus(1,'month').minus(1,'day').format('yyyy-LL-dd') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "448882ac-8fe0-45fb-b86f-7d019f9268ac",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2120,
        420
      ],
      "parameters": {
        "width": 420,
        "height": 560,
        "content": "# Welcome to Weekly SEO Report Workflow!\n\n**This workflow has the following sequence:**\n1. Time trigger (e.g. every Monday at 8 a.m.)\n2. Retrieval of Google Search Console data from the last month and previous month (or any period you want)\n3. Format it and generate AI insight of the data\n4. Transform it into a PDF report using pdforge (Using the pre-made SEO Report Template)\n5. Sending the report as a Slack Message (You can change it to send an e-mail, whatsapp or telegram message)\n\n\n**The following accesses are required for the workflow:**\n- Google Oauth2 (via Google Console API): [Documentation](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic)\n- pdforge account: [Create here](https://app.pdforge.com/auth/sign-up)\n- AI API access (e.g. via OpenAI, Anthropic, Google or Ollama)\n- Slack Connection: [Documentation](https://docs.n8n.io/integrations/builtin/credentials/slack)\n\n\nYou can contact me via LinkedIn, if you have any questions: https://www.linkedin.com/in/marceloamiranda"
      },
      "typeVersion": 1
    },
    {
      "id": "319de69b-177d-4d42-b4cb-3e35ba5e80dc",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1440,
        420
      ],
      "parameters": {
        "color": 4,
        "width": 220,
        "height": 320,
        "content": "**Here you'll configure:**\n- Site URL\n- Date range"
      },
      "typeVersion": 1
    },
    {
      "id": "0b8f7ebe-4629-405a-84ff-0dcf9334f272",
      "name": "Pdforge",
      "type": "n8n-nodes-pdforge.pdforge",
      "position": [
        600,
        520
      ],
      "parameters": {
        "options": {},
        "variables": "={{ JSON.stringify($json) }}",
        "templateId": "template_seo_report"
      },
      "credentials": {
        "pdforgeApi": {
          "id": "fFuvCIsBkIHHd0ct",
          "name": "Pdforge account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c744768d-3ffc-4ec8-8526-62992e9cdea0",
      "name": "Télécharger le binaire",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        820,
        520
      ],
      "parameters": {
        "url": "={{ $json.signedUrl }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "1f0baeea-eb35-4dff-b9c4-1b4a95b53121",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -40,
        700
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "3hJLI2ahkB4Zjnwd",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "41fa4fa0-72a7-4402-b1ae-73615d55b3ec",
      "name": "Générer des variables",
      "type": "n8n-nodes-base.code",
      "position": [
        380,
        520
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const base = $(\"Format data\").first().json\n\nreturn {\n      ...base,                                           \n      insights_content:     $json.output,\n    };\n"
      },
      "typeVersion": 2
    },
    {
      "id": "639a05bc-e87f-4d1b-afb7-d95a3926676c",
      "name": "Slack - Envoyer un message avec fichier",
      "type": "n8n-nodes-base.slack",
      "position": [
        1040,
        520
      ],
      "webhookId": "12b44f56-30b4-4278-ad22-32bcb952006e",
      "parameters": {
        "options": {
          "fileName": "=SEO Report - {{ $('Generate variables').first().json.report_date }}",
          "channelId": "C093723CAN6",
          "initialComment": "📊 *Here's your Weekly SEO Report*"
        },
        "resource": "file",
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "ombwJbyognfRtMoj",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "16032072-de5c-40c5-b8c3-52c6575e1157",
      "name": "Tous les lundis à 8h",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1600,
        520
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "94ab0f9b-2c78-4e41-8388-2c707b4965ca",
      "name": "HTTP Requête - Google Search Console - Requête - Mois précédent",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        1120
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_prev_month_start }}\",\n  \"endDate\": \"{{ $json.date_prev_month_end }}\",\n  \"dimensions\": [\"query\"],\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "ef74bcb0-c187-4135-ac30-fe6ec31723bf",
      "name": "HTTP Requête - Google Search Console - Page - Mois précédent",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        1320
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_prev_month_start }}\",\n  \"endDate\": \"{{ $json.date_prev_month_end }}\",\n  \"dimensions\": [\"page\"],\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "58b0abf2-d9f7-41bc-b6cb-c4c57b60e6d2",
      "name": "Séparer les pages - Mois précédent",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        1320
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "0c7e046b-6a6c-4465-b265-c353f40fc7e0",
      "name": "Formater la requête - Mois précédent",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        1120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bcec450e-ca15-42e9-9644-b4e8c49d8ffb",
              "name": "query",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "72775f4f-742e-4597-bf75-971d1d280285",
      "name": "HTTP Requête - Google Search Console - Date",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        -80
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_start }}\",\n  \"endDate\": \"{{ $json.date_end }}\",\n  \"dimensions\": [\"date\"],\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "c5be25f2-011b-4680-ab57-aab7f2ef96f7",
      "name": "Séparer la date",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        -80
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "ce7e232a-47dc-4844-b603-de92e3b2b624",
      "name": "Formater la date",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        -80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d94b7a08-4e03-4f4d-8f8c-9200632305a5",
              "name": "date",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "26335560-27b4-4d61-ae22-52a2932bb2c8",
      "name": "HTTP Requête - Google Search Console - Aperçu",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        -280
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_start }}\",\n  \"endDate\": \"{{ $json.date_end }}\",\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "f6f9d96e-6db8-4626-b717-cd9b020b98a8",
      "name": "Séparer l'aperçu",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        -280
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "ab057902-8e4c-4beb-bc00-13fcd3d4d0ce",
      "name": "Formater l'aperçu",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        -280
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "61e0c8ee-f857-4089-ad25-85b3d9a5d44e",
      "name": "HTTP Requête - Google Search Console - Page",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        320
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_start }}\",\n  \"endDate\": \"{{ $json.date_end }}\",\n  \"dimensions\": [\"page\"],\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "73834d1c-19a3-4161-892c-7bd3615b41e9",
      "name": "Séparer les pages",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        320
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "945371f9-5929-415b-990b-3074653c0c17",
      "name": "HTTP Requête - Google Search Console - Appareil",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        520
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_start }}\",\n  \"endDate\": \"{{ $json.date_end }}\",\n  \"dimensions\": [\"device\"],\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "99d8bd82-b42f-4251-9ab2-1da57af41bf1",
      "name": "Séparer les appareils",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        520
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "6774bd8f-e3f7-4bde-a59f-da4caff3b4d2",
      "name": "Formater les appareils",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        520
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d94b7a08-4e03-4f4d-8f8c-9200632305a5",
              "name": "device",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7222f304-0e37-4583-ad6c-53a0ef021833",
      "name": "HTTP Requête - Google Search Console - Pays",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        720
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_start }}\",\n  \"endDate\": \"{{ $json.date_end }}\",\n  \"dimensions\": [\"country\"],\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "316674b1-8bc4-413f-8011-a70f12578dde",
      "name": "Séparer le pays",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        720
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "2fc1ba15-52d7-4eb3-92b2-dc68a2d44e27",
      "name": "Formater le pays",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        720
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d94b7a08-4e03-4f4d-8f8c-9200632305a5",
              "name": "country",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "46bfc8e3-f7ee-43bc-a397-35760f2bdee7",
      "name": "HTTP Requête - Google Search Console - Requête",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        120
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_start }}\",\n  \"endDate\": \"{{ $json.date_end }}\",\n  \"dimensions\": [\"query\"],\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "13fca08f-2bc8-41ac-af85-568b68ff2767",
      "name": "Séparer la requête",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        120
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "0959323a-313d-4da9-85f1-3af769dcfd00",
      "name": "Formater la requête",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bcec450e-ca15-42e9-9644-b4e8c49d8ffb",
              "name": "query",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b46adb8d-2ecb-42b4-9497-7dac642ec733",
      "name": "Formater la page - Mois précédent",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        1320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bcec450e-ca15-42e9-9644-b4e8c49d8ffb",
              "name": "page",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "baf8ea63-023b-4df5-8327-93fcae96a77c",
      "name": "Formater la page",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bcec450e-ca15-42e9-9644-b4e8c49d8ffb",
              "name": "page",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ed5e27a0-c217-4fe6-8267-b732eb3dbe09",
      "name": "HTTP Requête - Google Search Console - Aperçu - Mois précédent",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1100,
        920
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/{{ $json.site_url }}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $json.date_prev_month_start }}\",\n  \"endDate\": \"{{ $json.date_prev_month_end }}\",\n  \"rowLimit\": 25000\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "e4c320dd-ab02-48d5-af80-0bc1e918366d",
      "name": "Séparer la requête - Mois précédent",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        1120
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "2fcfa4eb-2b42-4d34-a393-2710f9ab634d",
      "name": "Séparer l'aperçu - Mois précédent",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -880,
        920
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "ec6c8668-bf12-4aa0-9c3c-9a3c8975f996",
      "name": "Formater l'aperçu - Mois précédent",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        920
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5db89e4b-3694-4471-b43a-2a45862c61cc",
              "name": "clicks",
              "type": "string",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "fba7ee18-7d4e-4ad7-bb0d-aa651eea9490",
              "name": "impressions",
              "type": "string",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "6a1b6b46-464e-4fd0-9faa-abfec6d9729c",
              "name": "ctr",
              "type": "string",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "7770d1e7-d892-4598-9a20-c5fef76adcf4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1eee216f-b8cb-43d6-913a-1fcecf7bd785",
      "name": "Formater les données",
      "type": "n8n-nodes-base.code",
      "position": [
        -220,
        520
      ],
      "parameters": {
        "jsCode": "// Pull each dataset using .all()\nconst overview        = $('Format Overview').all()[0].json;\nconst dateData        = $('Format Date').all().map(item => item.json);\nconst pageData        = $('Format Page').all().map(item => item.json);\nconst queryData       = $('Format Query').all().map(item => item.json);\nconst deviceData      = $(\"Format Devices\").all().map(item => item.json);\nconst countryData     = $('Format Country').all().map(item => item.json);\nconst overviewPrev    = $('Format Overview - Previous month').all()[0].json;\nconst queryPrevData   = $('Format Query - Previous month').all().map(item => item.json);\nconst pagePrevData    = $('Format Page - Previous month').all().map(item => item.json);\n\n\n// // Helper for subtitles\nfunction pctSubtitle(curr, prev) {\n  const diff  = curr - prev;\n  const arrow = diff >= 0 ? '↗' : '↘';\n  const col   = diff >= 0 ? 'green' : 'red';\n  const pct   = prev === 0 ? 'N/A' : Math.abs(diff / prev * 100).toFixed(1) + '%';\n  return `<p style='color:${col}'>${arrow} ${pct} vs last month</p>`;\n}\nfunction numSubtitle(curr, prev) {\n  const diff  = curr - prev;\n  const arrow = diff >= 0 ? '↗' : '↘';\n  const col   = diff >= 0 ? 'green' : 'red';\n  return `<p style='color:${col}'>${arrow} ${Math.abs(diff)} vs last month</p>`;\n}\n\n// helper to remove protocol+domain, leaving only the path\nfunction stripPath(url) {\n  return url.replace(/^https?:\\/\\/[^/]+/, '');\n}\n\n// just above your report definition, build a Set of previous-month queries:\nconst prevQueries = new Set(queryPrevData.map(q => q.query));\n\n// Build the output\nconst report = {\n  report_date: `${dateData[0].date} to ${dateData[dateData.length - 1].date}`,\n  overview: {\n    impressions: {\n      value:    overview.impressions,\n      subtitle: pctSubtitle(overview.impressions, overviewPrev.impressions),\n    },\n    clicks: {\n      value:    overview.clicks,\n      subtitle: pctSubtitle(overview.clicks,    overviewPrev.clicks),\n    },\n    average_ctr: {\n      value:    (parseFloat(overview.ctr)*100).toFixed(2)+\"%\",\n      subtitle: pctSubtitle(overview.ctr, overviewPrev.ctr),\n    },\n    average_position: {\n      value:    parseFloat(overview.position).toFixed(1),\n      subtitle: pctSubtitle(overview.position, overviewPrev.position),\n    },\n  },\n  performance: {\n    impressions: dateData.map(d => d.impressions),\n    clicks:      dateData.map(d => d.clicks),\n    labels:      dateData.map(d => d.date),\n  },\n  top_10_countries: {\n    clicks:  countryData.sort((a, b) => b.clicks - a.clicks).slice(0,10).map(d => parseInt(d.clicks)),\n    labels:  countryData.sort((a, b) => b.clicks - a.clicks).slice(0,10).map(d => d.country),\n  },\n  devices: {\n    clicks:  deviceData.sort((a, b) => b.clicks - a.clicks).slice(0,10).map(d => parseInt(d.clicks)),\n    labels:  deviceData.sort((a, b) => b.clicks - a.clicks).slice(0,10).map(d => d.device),\n  },\n  organic_keywords_ranking: {\n    top_3: {\n      value:    queryData.filter(q => q.position <= 3).length,\n      subtitle: numSubtitle(\n                   queryData.filter(q => q.position <= 3).length,\n                   queryPrevData.filter(q => q.position <= 3).length\n                ),\n    },\n    from_3_10: {\n      value:    queryData.filter(q => q.position >= 4 && q.position <= 10).length,\n      subtitle: numSubtitle(\n                   queryData.filter(q => q.position >= 4 && q.position <= 10).length,\n                   queryPrevData.filter(q => q.position >= 4 && q.position <= 10).length\n                ),\n    },\n    from_11_20: {\n      value:    queryData.filter(q => q.position >= 11 && q.position <= 20).length,\n      subtitle: numSubtitle(\n                   queryData.filter(q => q.position >= 11 && q.position <= 20).length,\n                   queryPrevData.filter(q => q.position >= 11 && q.position <= 20).length\n                ),\n    },\n    from_21_100: {\n      value:    queryData.filter(q => q.position >= 21).length,\n      subtitle: numSubtitle(\n                   queryData.filter(q => q.position >= 21).length,\n                   queryPrevData.filter(q => q.position >= 21).length\n                ),\n    },\n  },\n  top_5_pages: pageData\n    .sort((a, b) => b.clicks - a.clicks)\n    .slice(0,5)\n    .map(d => ({\n      page:       `<p style='max-width:200px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis'><strong>${stripPath(d.page)}</strong></p>`,\n      clicks:     d.clicks,\n      impressions: d.impressions,\n      ctr:         (parseFloat(d.ctr)*100).toFixed(2)+\"%\",\n      position:    parseFloat(d.position).toFixed(1),\n    })),\n  top_5_keywords: queryData\n    .sort((a, b) => b.clicks - a.clicks)\n    .slice(0,5)\n    .map(d => ({\n      keyword:    `<p style='max-width:180px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis'><strong>${d.query}</strong></p>`,\n      clicks:     d.clicks,\n      impressions: d.impressions,\n      ctr:         (parseFloat(d.ctr)*100).toFixed(2)+\"%\",\n      position:    parseFloat(d.position).toFixed(1),\n    })),\n  pages_who_lost_most_traffic_vs_last_month:pagePrevData\n  .map(prev => {\n    const curr = pageData.find(d => d.page === prev.page) || { clicks: 0 };\n    const delta = prev.clicks - curr.clicks;            // positive = clicks lost\n    return {\n      page: prev.page,\n      clicks: curr.clicks,\n      clicks_last_month: prev.clicks,\n      delta\n    };\n  })\n  .sort((a, b) => b.delta - a.delta)                   // highest drops first\n  .slice(0, 5)\n  .map(({ page, clicks, clicks_last_month, delta }) => ({\n    page: `<p style='max-width:200px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis'><strong>${stripPath(page)}</strong></p>`,                             // removes protocol+domain\n    clicks,\n    clicks_last_month,\n    delta:\"-\"+delta\n  })),\n  top_5_new_keywords_last_month: queryData\n   // keep only queries not present last month\n  .filter(d => !prevQueries.has(d.query))\n  // sort by clicks descending\n  .sort((a, b) => b.clicks - a.clicks)\n  // take top 5\n  .slice(0, 5)\n  // format exactly like your other lists\n  .map(d => ({\n    keyword:    `<p style='max-width:180px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis'><strong>${d.query}</strong></p>`,\n    clicks:     d.clicks,\n    impressions:d.impressions,\n    ctr:         (parseFloat(d.ctr)*100).toFixed(2) + \"%\",\n    position:    parseFloat(d.position).toFixed(1),\n  }))\n};\nreturn [{ json: report }];"
      },
      "executeOnce": false,
      "typeVersion": 2
    },
    {
      "id": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
      "name": "Fusionner",
      "type": "n8n-nodes-base.merge",
      "position": [
        -440,
        400
      ],
      "parameters": {
        "numberInputs": 9
      },
      "typeVersion": 3.2
    },
    {
      "id": "c3190924-430d-4950-a715-fb577d4a0ee6",
      "name": "Génération d'insights pour les résultats SEO",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        0,
        520
      ],
      "parameters": {
        "text": "={{ JSON.stringify($json) }}",
        "options": {
          "systemMessage": "=## Persona\nYou are a data-driven Search Console Insights Agent: concise, analytical, and focused on turning raw organic traffic metrics into clear, actionable narrative insights.\n\n## Objective\n- Ingest structured Search Console data (overview, by date, by page, by query, by device, by country, plus prior-period comparisons).\n- Produce a plain-text “Insights” section, not JSON.\n\n## Rules\n\n### Formatting\n- Output **only** plain text.\n- DO NOT output the word \"Insight:\" at the beginning\n- Summarize everything into a single paragraph of **300–400 characters**.\n- Do **not** include lists, bullet points, or any JSON—just free-flowing prose.\n\n### Content\n- The paragraph must:\n  1. Summarize one key trend or change (e.g. a drop in clicks on a specific URL, a spike in impressions on a query).\n  2. Contrast current vs. prior period (using percentages or absolute numbers).\n  3. Suggest a concrete, actionable next step.\n  4. Be as specific as possible, focusing on specific keywords and pages\n\n- Write in idiomatic, professional English, with one clear recommendation.\n\n## Step-by-Step Instructions\n1. **Parse Input**: Read the incoming report object with fields like:\n   - `overview` (clicks, impressions, ctr, position vs. prior)\n   - `dateData` (daily metrics)\n   - `pageData`, `queryData`, `deviceData`, `countryData`\n   - prior-period equivalents\n2. **Identify Top Insights**:\n   - Biggest drop or gain in clicks/impressions overall.\n   - Pages or queries with largest percentage changes.\n   - Biggest opportunity on CTR drop and impressions increase or click drops and impressions increase\n3. **Compose the Paragraph**:\n   - Describe the metric change, e.g. “We noticed that the page /blog/… experienced a 32% drop…”\n   - Be specific on pages and keywords, not only general metrics\n   - Offer a hypothesis (e.g. “This could indicate…”).\n   - End with an actionable recommendation (e.g. “Consider updating titles and meta descriptions…”).\n4. **Length Check**: Ensure the insight is between 300 and 400 characters.\n\n## Example Output\nInsights:\nWe noticed that the page /blog/2024/seo-strategy-guide experienced a 32% drop in clicks since April, despite a stable average position. This could indicate decreased search demand or less engaging titles/meta descriptions. The most urgent action is to refresh the title and meta description to better match user intent."
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "c39bd736-3d76-4236-b79f-9e1e52f0fd7a",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1800,
        -180
      ],
      "parameters": {
        "color": 5,
        "width": 580,
        "height": 540,
        "content": "## To connect to Google OAuth2, you'll need to fill these information\n\n### Step 1: Enable & configure your Search Console API credentials\n\n\t**1.\tEnable the API**\n\t•\tIn the [Google Cloud Console](https://console.cloud.google.com/), enable the Search Console API for your project.\n\n\t**2.\tCreate an OAuth2 client**\n\t•\tUnder APIs & Services → Credentials, click Create Credentials → OAuth client ID.\n\t•\tSelect Web application, and add your n8n callback URL (e.g. https://<your-n8n-domain>/rest/oauth2-credential/callback).\n\t•\tNote the Client ID and Client Secret.\n\n\n### Step 2: Set up OAuth2 credentials in n8n\nIn n8n, go to Credentials → New → OAuth2.\nFill in:\n \t•\tAuth URI: https://accounts.google.com/o/oauth2/auth\n\t•\tAccess Token URI: https://oauth2.googleapis.com/token\n\t•\tClient ID: Copy from OAuth2 on Google Console\n\t•\tClient Secret: Copy from OAuth2 on Google Console\n\t•\tScope: https://www.googleapis.com/auth/webmasters.readonly\n\t•\tRedirect URI: n8n’s callback URL"
      },
      "typeVersion": 1
    },
    {
      "id": "ccc3a82c-b906-4332-8739-e46b0e70f7d5",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        840
      ],
      "parameters": {
        "color": 3,
        "width": 360,
        "height": 320,
        "content": "**If you're unsure of your siteUrl, use this node to check the list of siteUrls your user have access**"
      },
      "typeVersion": 1
    },
    {
      "id": "fd06a84f-de27-441d-9de9-e9691ea71d96",
      "name": "HTTP Requête - Google Search Console - Lister les SiteUrls dont je suis responsable",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1480,
        960
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "oAuth2Api"
      },
      "credentials": {
        "oAuth2Api": {
          "id": "bGn73u7RA2mZCksv",
          "name": "Google OAuth2"
        },
        "httpHeaderAuth": {
          "id": "Z9SGcPUjCFlHCdPM",
          "name": "Google Auth"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    }
  ],
  "connections": {
    "beac970b-49f9-4a23-9a46-5aeb8e062f87": {
      "main": [
        [
          {
            "node": "1eee216f-b8cb-43d6-913a-1fcecf7bd785",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0b8f7ebe-4629-405a-84ff-0dcf9334f272": {
      "main": [
        [
          {
            "node": "c744768d-3ffc-4ec8-8526-62992e9cdea0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ce7e232a-47dc-4844-b603-de92e3b2b624": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "baf8ea63-023b-4df5-8327-93fcae96a77c": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "1eee216f-b8cb-43d6-913a-1fcecf7bd785": {
      "main": [
        [
          {
            "node": "c3190924-430d-4950-a715-fb577d4a0ee6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0959323a-313d-4da9-85f1-3af769dcfd00": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "43d47434-1125-439d-ba6a-cab092db3f46": {
      "main": [
        [
          {
            "node": "72775f4f-742e-4597-bf75-971d1d280285",
            "type": "main",
            "index": 0
          },
          {
            "node": "61e0c8ee-f857-4089-ad25-85b3d9a5d44e",
            "type": "main",
            "index": 0
          },
          {
            "node": "945371f9-5929-415b-990b-3074653c0c17",
            "type": "main",
            "index": 0
          },
          {
            "node": "7222f304-0e37-4583-ad6c-53a0ef021833",
            "type": "main",
            "index": 0
          },
          {
            "node": "94ab0f9b-2c78-4e41-8388-2c707b4965ca",
            "type": "main",
            "index": 0
          },
          {
            "node": "ef74bcb0-c187-4135-ac30-fe6ec31723bf",
            "type": "main",
            "index": 0
          },
          {
            "node": "26335560-27b4-4d61-ae22-52a2932bb2c8",
            "type": "main",
            "index": 0
          },
          {
            "node": "ed5e27a0-c217-4fe6-8267-b732eb3dbe09",
            "type": "main",
            "index": 0
          },
          {
            "node": "46bfc8e3-f7ee-43bc-a397-35760f2bdee7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2fc1ba15-52d7-4eb3-92b2-dc68a2d44e27": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "6774bd8f-e3f7-4bde-a59f-da4caff3b4d2": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "c5be25f2-011b-4680-ab57-aab7f2ef96f7": {
      "main": [
        [
          {
            "node": "ce7e232a-47dc-4844-b603-de92e3b2b624",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c744768d-3ffc-4ec8-8526-62992e9cdea0": {
      "main": [
        [
          {
            "node": "639a05bc-e87f-4d1b-afb7-d95a3926676c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ab057902-8e4c-4beb-bc00-13fcd3d4d0ce": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "73834d1c-19a3-4161-892c-7bd3615b41e9": {
      "main": [
        [
          {
            "node": "baf8ea63-023b-4df5-8327-93fcae96a77c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "13fca08f-2bc8-41ac-af85-568b68ff2767": {
      "main": [
        [
          {
            "node": "0959323a-313d-4da9-85f1-3af769dcfd00",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1f0baeea-eb35-4dff-b9c4-1b4a95b53121": {
      "ai_languageModel": [
        [
          {
            "node": "c3190924-430d-4950-a715-fb577d4a0ee6",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "316674b1-8bc4-413f-8011-a70f12578dde": {
      "main": [
        [
          {
            "node": "2fc1ba15-52d7-4eb3-92b2-dc68a2d44e27",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "99d8bd82-b42f-4251-9ab2-1da57af41bf1": {
      "main": [
        [
          {
            "node": "6774bd8f-e3f7-4bde-a59f-da4caff3b4d2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "41fa4fa0-72a7-4402-b1ae-73615d55b3ec": {
      "main": [
        [
          {
            "node": "0b8f7ebe-4629-405a-84ff-0dcf9334f272",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6f9d96e-6db8-4626-b717-cd9b020b98a8": {
      "main": [
        [
          {
            "node": "ab057902-8e4c-4beb-bc00-13fcd3d4d0ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "16032072-de5c-40c5-b8c3-52c6575e1157": {
      "main": [
        [
          {
            "node": "43d47434-1125-439d-ba6a-cab092db3f46",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b46adb8d-2ecb-42b4-9497-7dac642ec733": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 8
          }
        ]
      ]
    },
    "0c7e046b-6a6c-4465-b265-c353f40fc7e0": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 7
          }
        ]
      ]
    },
    "639a05bc-e87f-4d1b-afb7-d95a3926676c": {
      "main": [
        []
      ]
    },
    "ec6c8668-bf12-4aa0-9c3c-9a3c8975f996": {
      "main": [
        [
          {
            "node": "beac970b-49f9-4a23-9a46-5aeb8e062f87",
            "type": "main",
            "index": 6
          }
        ]
      ]
    },
    "58b0abf2-d9f7-41bc-b6cb-c4c57b60e6d2": {
      "main": [
        [
          {
            "node": "b46adb8d-2ecb-42b4-9497-7dac642ec733",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e4c320dd-ab02-48d5-af80-0bc1e918366d": {
      "main": [
        [
          {
            "node": "0c7e046b-6a6c-4465-b265-c353f40fc7e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c3190924-430d-4950-a715-fb577d4a0ee6": {
      "main": [
        [
          {
            "node": "41fa4fa0-72a7-4402-b1ae-73615d55b3ec",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2fcfa4eb-2b42-4d34-a393-2710f9ab634d": {
      "main": [
        [
          {
            "node": "ec6c8668-bf12-4aa0-9c3c-9a3c8975f996",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "72775f4f-742e-4597-bf75-971d1d280285": {
      "main": [
        [
          {
            "node": "c5be25f2-011b-4680-ab57-aab7f2ef96f7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "61e0c8ee-f857-4089-ad25-85b3d9a5d44e": {
      "main": [
        [
          {
            "node": "73834d1c-19a3-4161-892c-7bd3615b41e9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "46bfc8e3-f7ee-43bc-a397-35760f2bdee7": {
      "main": [
        [
          {
            "node": "13fca08f-2bc8-41ac-af85-568b68ff2767",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "945371f9-5929-415b-990b-3074653c0c17": {
      "main": [
        [
          {
            "node": "99d8bd82-b42f-4251-9ab2-1da57af41bf1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7222f304-0e37-4583-ad6c-53a0ef021833": {
      "main": [
        [
          {
            "node": "316674b1-8bc4-413f-8011-a70f12578dde",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "26335560-27b4-4d61-ae22-52a2932bb2c8": {
      "main": [
        [
          {
            "node": "f6f9d96e-6db8-4626-b717-cd9b020b98a8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ef74bcb0-c187-4135-ac30-fe6ec31723bf": {
      "main": [
        [
          {
            "node": "58b0abf2-d9f7-41bc-b6cb-c4c57b60e6d2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "94ab0f9b-2c78-4e41-8388-2c707b4965ca": {
      "main": [
        [
          {
            "node": "e4c320dd-ab02-48d5-af80-0bc1e918366d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ed5e27a0-c217-4fe6-8267-b732eb3dbe09": {
      "main": [
        [
          {
            "node": "2fcfa4eb-2b42-4d34-a393-2710f9ab634d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Étude de marché, Résumé IA

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds42
Catégorie2
Types de nœuds11
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34