Surveillance des prix de produits multi-sites : Claude-Sonnet, Google Sheets et alertes Telegram

Avancé

Ceci est unMarket Research, AI Summarizationworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme Code, Wait, Merge, SplitOut, Telegram. Système de surveillance des prix de commerce électronique avec Firecrawl, Claude-Sonnet AI et les alertes Telegram

Prérequis
  • Token Bot Telegram
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
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
{
  "id": "YnD0kvM9AYMjYxmj",
  "meta": {
    "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502",
    "templateCredsSetupCompleted": true
  },
  "name": "Multi-Site Product Price Monitor: Claude-Sonnet , Google Sheets & Telegram Alert",
  "tags": [
    {
      "id": "7zsdOA50QGm7RNqx",
      "name": "Monitoring",
      "createdAt": "2025-10-23T16:41:17.031Z",
      "updatedAt": "2025-10-23T16:41:17.031Z"
    },
    {
      "id": "BL8TsHYj5FkNYzfi",
      "name": "E-commerce",
      "createdAt": "2025-10-23T16:41:16.985Z",
      "updatedAt": "2025-10-23T16:41:16.985Z"
    },
    {
      "id": "dlf9zFSN3j6s2jgO",
      "name": "Business Intelligence",
      "createdAt": "2025-10-23T16:41:17.008Z",
      "updatedAt": "2025-10-23T16:41:17.008Z"
    },
    {
      "id": "lpozR2Ct8reF9bCk",
      "name": "AI",
      "createdAt": "2025-10-23T16:41:17.062Z",
      "updatedAt": "2025-10-23T16:41:17.062Z"
    }
  ],
  "nodes": [
    {
      "id": "306294b3-27b8-4821-9b04-0e8d210af07e",
      "name": "⏰ Surveiller toutes les 6 heures",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "Triggers the workflow every 6 hours to check competitor data",
      "position": [
        -832,
        352
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 6
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8b934690-1e26-4810-820d-8ff785691adf",
      "name": "Extraire le contenu d'une URL",
      "type": "@mendable/n8n-nodes-firecrawl.firecrawl",
      "position": [
        -1408,
        96
      ],
      "parameters": {
        "url": "https://www.on.com/en-sg/shop/mens/shoes",
        "operation": "scrape",
        "scrapeOptions": {
          "options": {
            "formats": {
              "format": [
                {
                  "type": "json",
                  "prompt": "price of the shoe"
                }
              ]
            },
            "headers": {}
          }
        },
        "requestOptions": {}
      },
      "credentials": {
        "firecrawlApi": {
          "id": "t2Tp5wdqfarSfsZ4",
          "name": "Firecrawl account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "90ed5eb7-6236-47e1-88c6-c5278efe24fa",
      "name": "Envoyer un message à un modèle",
      "type": "n8n-nodes-base.perplexity",
      "position": [
        -1568,
        0
      ],
      "parameters": {
        "model": "sonar",
        "options": {},
        "messages": {
          "message": [
            {
              "content": "Price of the shoe  "
            }
          ]
        },
        "requestOptions": {}
      },
      "credentials": {
        "perplexityApi": {
          "id": "hmDBlVXt4GJKfIfz",
          "name": "Perplexity account new"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e1e006de-d363-4e5a-adbd-77ffc901f42d",
      "name": "Diviser",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1296,
        0
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "citations"
      },
      "typeVersion": 1
    },
    {
      "id": "11fdf8bc-aa37-4f42-8bbe-8e16c47c8b47",
      "name": "Obtenir les résultats Apify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1216,
        272
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/compass~google-maps-extractor/runs/last/dataset/items?token=YOUR API KEY",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "vPMKFhRN7iuRAL86",
          "name": "Apify"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "b6a20e25-d82a-493b-b305-066e043f6ba1",
      "name": "Démarrer l'acteur Apify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1616,
        272
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/compass~google-maps-extractor/runs?token=YOUR API KEY",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n    \"language\": \"en\",\n    \"locationQuery\": \"worldwide\",\n    \"maxCrawledPlacesPerSearch\": 50,\n    \"searchStringsArray\": [\n        \"shoe stores\",\n        \"shoe shops\"\n    ],\n    \"skipClosedPlaces\": false\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "vPMKFhRN7iuRAL86",
          "name": "Apify"
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "47a1e71a-6bbf-4cfe-82f1-b46744d247ee",
      "name": "Convertir le texte IA non structuré en champs de données organisés et utilisables",
      "type": "n8n-nodes-base.code",
      "notes": "Parses and validates the AI extracted data",
      "position": [
        -576,
        192
      ],
      "parameters": {
        "jsCode": "// Parse AI response and clean data\nconst items = [];\n\nfor (const item of $input.all()) {\n  try {\n    // Parse the AI response\n    let parsed;\n    const response = item.json.choices?.[0]?.message?.content || item.json.message || '';\n    \n    // Remove markdown code blocks if present\n    const cleaned = response.replace(/```json\\n?|```\\n?/g, '').trim();\n    \n    try {\n      parsed = JSON.parse(cleaned);\n    } catch (e) {\n      // Try to extract JSON from the response\n      const jsonMatch = cleaned.match(/\\{[\\s\\S]*\\}/);\n      if (jsonMatch) {\n        parsed = JSON.parse(jsonMatch[0]);\n      } else {\n        throw new Error('Could not parse JSON from AI response');\n      }\n    }\n    \n    // Enrich with metadata\n    items.push({\n      json: {\n        ...parsed,\n        scrapedAt: new Date().toISOString(),\n        priceChange: 0, // Will be calculated in comparison\n        priceChangePercent: 0,\n        isNewLow: false,\n        alertLevel: 'none'\n      }\n    });\n  } catch (error) {\n    console.error('Failed to parse item:', error.message);\n    // Add error item for debugging\n    items.push({\n      json: {\n        error: error.message,\n        rawResponse: item.json,\n        competitorName: 'Parse Error',\n        scrapedAt: new Date().toISOString()\n      }\n    });\n  }\n}\n\nreturn items;"
      },
      "typeVersion": 2
    },
    {
      "id": "3e8d7348-ccef-4cb5-aca4-d5ed6f210199",
      "name": "🔀 Fusionner Actuel avec Historique1",
      "type": "n8n-nodes-base.merge",
      "notes": "Combines current scrape with historical data for comparison",
      "position": [
        -384,
        224
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "fieldsToMatchString": "rawResponse.message.content"
      },
      "typeVersion": 3
    },
    {
      "id": "7e24cbab-31e4-47ba-97f2-9a7a71335905",
      "name": "🔍 Détecter les changements de prix et de stock1",
      "type": "n8n-nodes-base.code",
      "notes": "Intelligent change detection with alert level classification",
      "position": [
        -208,
        224
      ],
      "parameters": {
        "jsCode": "// Compare current prices with historical and detect changes\nconst results = [];\n\nfor (const item of $input.all()) {\n  const current = item.json;\n  \n  // Skip error items\n  if (current.error) {\n    results.push({ json: current });\n    continue;\n  }\n  \n  // Find historical data for this competitor\n  const historical = $('📊 Read Historical Data').all()\n    .find(h => h.json.competitorName === current.competitorName);\n  \n  let alertLevel = 'none';\n  let changes = [];\n  \n  if (historical && historical.json.currentPrice) {\n    const oldPrice = parseFloat(historical.json.currentPrice);\n    const newPrice = parseFloat(current.currentPrice);\n    const priceChange = newPrice - oldPrice;\n    const priceChangePercent = ((priceChange / oldPrice) * 100).toFixed(2);\n    \n    current.priceChange = priceChange;\n    current.priceChangePercent = parseFloat(priceChangePercent);\n    current.previousPrice = oldPrice;\n    \n    // Determine alert level based on price changes\n    if (Math.abs(priceChangePercent) >= 20) {\n      alertLevel = 'critical';\n      changes.push(`Price ${priceChange > 0 ? 'increased' : 'decreased'} by ${Math.abs(priceChangePercent)}%`);\n    } else if (Math.abs(priceChangePercent) >= 10) {\n      alertLevel = 'warning';\n      changes.push(`Price ${priceChange > 0 ? 'increased' : 'decreased'} by ${Math.abs(priceChangePercent)}%`);\n    } else if (Math.abs(priceChangePercent) >= 5) {\n      alertLevel = 'info';\n      changes.push(`Minor price change: ${priceChangePercent}%`);\n    }\n    \n    // Check if it's a new low price\n    const historicalLow = parseFloat(historical.json.lowestPrice || oldPrice);\n    if (newPrice < historicalLow) {\n      current.isNewLow = true;\n      alertLevel = alertLevel === 'none' ? 'info' : alertLevel;\n      changes.push('🎯 NEW LOWEST PRICE!');\n    }\n    current.lowestPrice = Math.min(newPrice, historicalLow);\n    \n    // Stock level changes\n    if (historical.json.stockLevel !== current.stockLevel) {\n      if (current.stockLevel === 'Out of Stock') {\n        alertLevel = 'critical';\n        changes.push('📦 Product went OUT OF STOCK');\n      } else if (current.stockLevel === 'Low Stock') {\n        alertLevel = alertLevel === 'none' ? 'warning' : alertLevel;\n        changes.push('⚠️ Stock level is LOW');\n      } else if (historical.json.stockLevel === 'Out of Stock' && current.inStock) {\n        alertLevel = alertLevel === 'none' ? 'info' : alertLevel;\n        changes.push('✅ Back in stock!');\n      }\n    }\n    \n    // Rating changes\n    const oldRating = parseFloat(historical.json.rating || 0);\n    const newRating = parseFloat(current.rating || 0);\n    const ratingChange = newRating - oldRating;\n    \n    if (Math.abs(ratingChange) >= 0.5) {\n      alertLevel = alertLevel === 'none' ? 'info' : alertLevel;\n      changes.push(`⭐ Rating ${ratingChange > 0 ? 'improved' : 'dropped'} by ${Math.abs(ratingChange).toFixed(1)} stars`);\n    }\n    \n    // Review count changes\n    const oldReviews = parseInt(historical.json.reviewCount || 0);\n    const newReviews = parseInt(current.reviewCount || 0);\n    const reviewDiff = newReviews - oldReviews;\n    \n    if (reviewDiff > 0) {\n      changes.push(`💬 ${reviewDiff} new review${reviewDiff > 1 ? 's' : ''}`);\n    }\n  } else {\n    // First time seeing this competitor\n    alertLevel = 'info';\n    changes.push('🆕 First time tracking this competitor');\n    current.lowestPrice = current.currentPrice;\n  }\n  \n  current.alertLevel = alertLevel;\n  current.changesSummary = changes.join(' | ');\n  current.hasChanges = alertLevel !== 'none';\n  \n  results.push({ json: current });\n}\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "4b8b4578-e6aa-461a-ae0a-7289bd0bf7e3",
      "name": "💾 Mettre à jour les données historiques1",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Saves current data to historical tracking sheet",
      "position": [
        -32,
        320
      ],
      "parameters": {
        "columns": {
          "value": {
            "rating": "={{ $json.rating }}",
            "inStock": "={{ $json.inStock }}",
            "currency": "={{ $json.currency }}",
            "scrapedAt": "={{ $json.scrapedAt }}",
            "productUrl": "={{ $json.productUrl }}",
            "stockLevel": "={{ $json.stockLevel }}",
            "lowestPrice": "={{ $json.lowestPrice }}",
            "productName": "={{ $json.productName }}",
            "reviewCount": "={{ $json.reviewCount }}",
            "currentPrice": "={{ $json.currentPrice }}",
            "originalPrice": "={{ $json.originalPrice }}",
            "competitorName": "={{ $json.competitorName }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "mode": "name",
          "value": "Historical Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "= {{ $env.GOOGLE_SHEET_ID }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "aGWAWeimeVnptYQh",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "28d2de55-ef62-40cd-a22b-a13eee3c2dc8",
      "name": "Lors du clic sur 'Exécuter le workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1760,
        144
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "62cf73d2-a328-463b-9ea5-0d3fa8e3ba56",
      "name": "🤖 Extraire les données produit par IA avec Claude-Sonnet 4.5",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "position": [
        -864,
        192
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-5-20250929",
          "cachedResultName": "claude-sonnet-4-5-20250929"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "You are an accurate e-commerce data parser. From the provided HTML, extract shoe details and output a pure JSON object—no markdown or extra text.\n\nInclude the following fields:\n\n- productName: string \n- currentPrice: number (numeric value only, no currency symbols) \n- originalPrice: number (if discounted, otherwise same as currentPrice) \n- currency: string (USD, EUR, etc.) \n- inStock: boolean \n- stockLevel: string (\"In Stock\", \"Low Stock\", \"Out of Stock\", \"Limited\", etc.) \n- rating: number (0-5 scale) \n- reviewCount: number \n- lastUpdated: string (current ISO timestamp) \n- productUrl: string (from context) \n- competitorName: string (from context)\n\nOutput only the JSON object—no notes, comments, or formatting.\n"
            }
          ]
        }
      },
      "credentials": {
        "anthropicApi": {
          "id": "S8laStQPC1u3EYuZ",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e5998861-2d29-4fdb-a5c0-445cf79ac50e",
      "name": "🔀 Fusionner Actuel avec Historique",
      "type": "n8n-nodes-base.merge",
      "notes": "Combines current scrape with historical data for comparison",
      "position": [
        -1024,
        176
      ],
      "parameters": {
        "numberInputs": 3
      },
      "typeVersion": 3
    },
    {
      "id": "6815d6c1-43c5-49a8-8f41-eafa0ee83363",
      "name": "📊 Lire les données historiques",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Loads previous scan data for comparison",
      "position": [
        -624,
        352
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "mode": "name",
          "value": "Historical Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEET_ID }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "aGWAWeimeVnptYQh",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "0c300e39-74da-4947-ab75-1360158f48a1",
      "name": "📝 Enregistrer les détails de l'alerte",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Logs all alerts to separate tracking sheet",
      "position": [
        -48,
        160
      ],
      "parameters": {
        "columns": {
          "value": {
            "rating": "={{ $json.rating }}",
            "timestamp": "={{ $json.scrapedAt }}",
            "alertLevel": "={{ $json.alertLevel }}",
            "productUrl": "={{ $json.productUrl }}",
            "stockLevel": "={{ $json.stockLevel }}",
            "priceChange": "={{ $json.priceChange || 0 }}",
            "productName": "={{ $json.productName }}",
            "currentPrice": "={{ $json.currentPrice }}",
            "previousPrice": "={{ $json.previousPrice || 'N/A' }}",
            "changesSummary": "={{ $json.changesSummary }}",
            "competitorName": "={{ $json.competitorName }}",
            "priceChangePercent": "={{ $json.priceChangePercent || 0 }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "mode": "name",
          "value": "Alert Log"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEET_ID }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "aGWAWeimeVnptYQh",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "1833ee8f-13ca-40f3-a3ce-e7c09bbff5fc",
      "name": "Envoyer un message texte",
      "type": "n8n-nodes-base.telegram",
      "position": [
        112,
        240
      ],
      "webhookId": "ae976d33-11d1-4d92-9289-fc86a1525828",
      "parameters": {
        "text": "The competitors’ pricing has been finalized.",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "mYO3O1232v1KxESH",
          "name": "Telegram account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1209134e-cb58-4525-bbcb-ffee2a890ddb",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2336,
        -336
      ],
      "parameters": {
        "width": 2576,
        "height": 880,
        "content": "## Introduction\nAutomate price monitoring for e-commerce competitors—ideal for retailers, analysts, and pricing teams. Scrapes competitor sites, \nextracts pricing/stock data via AI, detects changes, and sends instant alerts for dynamic pricing strategies.\n## How It Works\nScrapes competitor URLs via Firecrawl and Apify, extracts data with AI, detects price/stock changes, logs to Google Sheets, and sends Telegram alerts.\n## Workflow Template\nTrigger → Scrape URL → AI Extract → Parse → Merge Historical → Detect Changes → Update Sheets + Send Telegram Alert\n## Workflow Steps\n1. **Trigger & Scrape** → Manual/scheduled trigger → Firecrawl + Apify fetch competitor data\n2. **AI Processing** → Claude extracts product details → Parses and structures data\n3. **Change Detection** → Reads historical prices → Merges with current data → Identifies updates\n4. **Output** → Logs alerts to Sheets → Updates historical data → Sends Telegram notification\n## Setup Instructions\n**1. Firecrawl API**\nGet key from dashboard → Add to n8n\n**2. Apify API**\nGet key from console → Add to n8n → Configure actors\n**3. AI Model (Claude/OpenAI)**\nGet API key → Add to n8n\n**4. Google Sheets OAuth2**\nCreate OAuth2 in Google Cloud Console → Authorize in n8n → Enable API\n**5. Telegram Bot**\nCreate via BotFather → Get token & chat ID → Add to n8n\n**6. Spreadsheet Setup**\nCreate Sheet with required columns → Copy ID → Paste in workflow\n## Prerequisites\nSelf-hosted n8n, Firecrawl account, Apify account, Claude/OpenAI API key,\nGoogle account (Sheets OAuth2),Telegram bot\n## Customization\nAdd more URLs, adjust scraping intervals, change detection thresholds, switch to Slack/email alerts,\nintegrate databases\n## Benefits\nSaves 2+ hours daily, real-time tracking, automated alerts, historical analysis, multi-source scraping\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "864886e9-21d0-402f-8f1f-46216a5e1373",
      "name": "Mettre en pause le workflow pour laisser la tâche de scraping Apify se terminer",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1424,
        272
      ],
      "webhookId": "426f22d5-31db-4344-ae7a-13dedfc46bf4",
      "parameters": {
        "amount": 25
      },
      "typeVersion": 1.1
    },
    {
      "id": "5b798a21-b3e1-4fb4-816a-d32a63367933",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        -304
      ],
      "parameters": {
        "color": 5,
        "width": 352,
        "height": 256,
        "content": "## Google Sheets Structure\n**Required Columns:**\n- **Product Name** (Column A)\n- **Current Price** (Column B)\n- **Previous Price** (Column C)\n- **Stock Status** (Column D)\n- **Last Updated** (Column E)\n- **URL** (Column F)\n- **Change Detected** (Column G)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7e9182a3-7a64-45a2-9632-3de5d2917fcd",
  "connections": {
    "e1e006de-d363-4e5a-adbd-77ffc901f42d": {
      "main": [
        [
          {
            "node": "e5998861-2d29-4fdb-a5c0-445cf79ac50e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "90ed5eb7-6236-47e1-88c6-c5278efe24fa": {
      "main": [
        [
          {
            "node": "e1e006de-d363-4e5a-adbd-77ffc901f42d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "11fdf8bc-aa37-4f42-8bbe-8e16c47c8b47": {
      "main": [
        [
          {
            "node": "e5998861-2d29-4fdb-a5c0-445cf79ac50e",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "b6a20e25-d82a-493b-b305-066e043f6ba1": {
      "main": [
        [
          {
            "node": "864886e9-21d0-402f-8f1f-46216a5e1373",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0c300e39-74da-4947-ab75-1360158f48a1": {
      "main": [
        [
          {
            "node": "1833ee8f-13ca-40f3-a3ce-e7c09bbff5fc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "306294b3-27b8-4821-9b04-0e8d210af07e": {
      "main": [
        [
          {
            "node": "6815d6c1-43c5-49a8-8f41-eafa0ee83363",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6815d6c1-43c5-49a8-8f41-eafa0ee83363": {
      "main": [
        [
          {
            "node": "3e8d7348-ccef-4cb5-aca4-d5ed6f210199",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "4b8b4578-e6aa-461a-ae0a-7289bd0bf7e3": {
      "main": [
        [
          {
            "node": "1833ee8f-13ca-40f3-a3ce-e7c09bbff5fc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b934690-1e26-4810-820d-8ff785691adf": {
      "main": [
        [
          {
            "node": "e5998861-2d29-4fdb-a5c0-445cf79ac50e",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "e5998861-2d29-4fdb-a5c0-445cf79ac50e": {
      "main": [
        [
          {
            "node": "62cf73d2-a328-463b-9ea5-0d3fa8e3ba56",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7e24cbab-31e4-47ba-97f2-9a7a71335905": {
      "main": [
        [
          {
            "node": "4b8b4578-e6aa-461a-ae0a-7289bd0bf7e3",
            "type": "main",
            "index": 0
          },
          {
            "node": "0c300e39-74da-4947-ab75-1360158f48a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3e8d7348-ccef-4cb5-aca4-d5ed6f210199": {
      "main": [
        [
          {
            "node": "7e24cbab-31e4-47ba-97f2-9a7a71335905",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "28d2de55-ef62-40cd-a22b-a13eee3c2dc8": {
      "main": [
        [
          {
            "node": "90ed5eb7-6236-47e1-88c6-c5278efe24fa",
            "type": "main",
            "index": 0
          },
          {
            "node": "8b934690-1e26-4810-820d-8ff785691adf",
            "type": "main",
            "index": 0
          },
          {
            "node": "b6a20e25-d82a-493b-b305-066e043f6ba1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "62cf73d2-a328-463b-9ea5-0d3fa8e3ba56": {
      "main": [
        [
          {
            "node": "47a1e71a-6bbf-4cfe-82f1-b46744d247ee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "864886e9-21d0-402f-8f1f-46216a5e1373": {
      "main": [
        [
          {
            "node": "11fdf8bc-aa37-4f42-8bbe-8e16c47c8b47",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "47a1e71a-6bbf-4cfe-82f1-b46744d247ee": {
      "main": [
        [
          {
            "node": "3e8d7348-ccef-4cb5-aca4-d5ed6f210199",
            "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.

Workflows recommandés

Prospection et workflow d'e-mails
Utiliser Google Maps, SendGrid et l'IA pour automatiser le développement de prospects B2B et le marketing par e-mail
If
Set
Code
+
If
Set
Code
141 NœudsEzema Kingsley Chibuzo
Génération de leads
01 Analyser la performance des publicités Facebook avec un acheteur d'espace médias IA et envoyer les informations dans Google Sheets
Analyser les publicités Facebook et envoyer les insights dans Google Sheets avec Gemini AI
If
Set
Code
+
If
Set
Code
34 NœudsJJ Tham
Étude de marché
Moniteur de questions communautaires avec crawling Reddit, forums et OpenRouter AI
Surveiller les problèmes communautaires sur Reddit et les forums avec OpenRouter AI et le scraping
Set
Code
Html
+
Set
Code
Html
29 NœudsJulian Kaiser
Étude de marché
Automatisation de la recherche d'emploi et de la personnalisation des CV avec Mistral AI, LinkedIn et Google Sheets
Automatisation de la recherche d'offres d'emploi et de la personnalisation de CV avec Mistral AI, LinkedIn et Google Sheets
Set
Code
Html
+
Set
Code
Html
46 NœudsJordan Hoyle
Productivité personnelle
Analyse intelligente quotidienne des groupes WhatsApp : Analyse GPT-4.1 et transcription des messages vocaux
Analyse intelligente des groupes WhatsApp quotidiens : analyse GPT-4.1 et transcription des messages vocaux
If
Set
Code
+
If
Set
Code
52 NœudsDaniel Lianes
Divers
Recherche d'offres d'emploi LinkedIn
Recherche d'offres LinkedIn : correspondance automatique du CV (GPT/Gemini) + générateur de lettre de motivation + rappels Telegram
If
Set
Code
+
If
Set
Code
33 NœudsHojjat Jashnniloofar
Productivité personnelle
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds19
Catégorie2
Types de nœuds13
Description de la difficulté

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

Auteur
Cheng Siong Chin

Cheng Siong Chin

@cschin

Prof. Cheng Siong CHIN serves as Chair Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34