Extraction et enrichissement de commentaires LinkedIn en prospects via Apify vers Google Sheets/CSV

Avancé

Ceci est unSales, AIworkflow d'automatisation du domainecontenant 39 nœuds.Utilise principalement des nœuds comme If, Set, Code, SplitOut, Aggregate, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Extraire et enrichir les commentaires LinkedIn en leads via Apify→Google Sheets/CSV

Prérequis
  • 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
{
  "meta": {
    "instanceId": "30e5848b346369e688a90590edfdf72f9e085f2b2ed50b31cf94f3bfb8c384ed",
    "templateId": "4635"
  },
  "nodes": [
    {
      "id": "66c32da3-373c-42a9-bf51-5bec1fd6c4cd",
      "name": "Déclenchement manuel",
      "type": "n8n-nodes-base.manualTrigger",
      "disabled": true,
      "position": [
        1240,
        1360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6a0decfe-9539-4c10-9474-0031fa91dfc5",
      "name": "Note adhésive 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        240
      ],
      "parameters": {
        "color": 5,
        "width": 1620,
        "height": 1000,
        "content": "# 🚀 LinkedIn Comments to Leads Extractor & Enricher (Apify) → Google Sheets / CSV\n\n## Overview\n\n**Automate LinkedIn lead generation by scraping comments from targeted posts and enriching profiles with detailed data**\n\nThis n8n workflow automatically extracts leads from LinkedIn post comments using Apify's powerful scrapers (no LinkedIn login required), enriches the data with additional profile information, and exports everything to Google Sheets or CSV format.\n\n---\n\n## ✨ Key Features\n\n- 🔍 **No Login Required**: Scrape LinkedIn data without sharing credentials\n- 💰 **Cost-Effective**: First 1,000 comments are free with Apify\n- 📊 **Data Enrichment**: Enhance basic comment data with full profile details\n- 📈 **Export Options**: Choose between Google Sheets or CSV output\n- 🎯 **Targeted Scraping**: Focus on specific posts for quality leads\n\n---\n\n## 🛠️ Apify Scrapers Used\n\n### 1. LinkedIn Post Comments Scraper\n- **Tool**: [LinkedIn Post Comments, Replies, Engagements Scraper | No Cookies](https://apify.com/apimaestro/linkedin-post-comments-replies-engagements-scraper-no-cookies/api/python)\n- **Pricing**: $5.00 per 1,000 results\n- **Function**: Extracts all comments and engagement data from specified LinkedIn posts\n\n### 2. LinkedIn Profile Batch Scraper\n- **Tool**: [LinkedIn Profile Details Batch Scraper (No Cookies Required)](https://apify.com/apimaestro/linkedin-profile-batch-scraper-no-cookies-required)\n- **Pricing**: $5.00 per 1,000 results\n- **Function**: Enriches scraped profiles with detailed information\n\n> 💡 **Free Tier**: Apify provides 1,000 free scraped comments to get you started!\n\n---\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e206b173-eb8a-4721-8251-8b0ebb2aa38f",
      "name": "À la soumission du formulaire",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        1300,
        1760
      ],
      "webhookId": "a81d04b5-169a-4368-b925-91fb0660b6b2",
      "parameters": {
        "options": {
          "ignoreBots": true,
          "buttonLabel": "Submit",
          "appendAttribution": false,
          "respondWithOptions": {
            "values": {
              "redirectUrl": "=https://docs.google.com/spreadsheets/u/0/",
              "respondWith": "redirect"
            }
          }
        },
        "formTitle": "Linkedin Posts Comments Leads Scraper",
        "formFields": {
          "values": [
            {
              "fieldType": "textarea",
              "fieldLabel": "Post IDs/URLs",
              "placeholder": "e.g. 7334385757769416704, https://www.linkedin.com/feed/update/urn:li:activity:7334385757769416704/",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "How many comments you want to scrape?",
              "placeholder": "Default: 100"
            }
          ]
        },
        "responseMode": "lastNode",
        "formDescription": "=<div style=\"font-family: Arial, sans-serif; line-height: 1.8; color: #333; word-wrap: break-word; overflow-wrap: break-word;\">\n\n<p style=\"margin-bottom: 20px;\"><strong style=\"color: #0077b5;\">🔸 Step 1: Add Posts URLs</strong></p>\n<p style=\"margin-bottom: 20px;\">The workflow accepts various LinkedIn post identifier formats:</p>\n\n<p style=\"margin-bottom: 18px;\"><strong>📊 Numeric post IDs:</strong><br>\n<span style=\"font-family: monospace; background: #f5f5f5; padding: 4px 6px; word-break: break-all; margin-top: 8px; display: inline-block;\">7334385757769416704</span></p>\n\n<p style=\"margin-bottom: 18px;\"><strong>🔗 Activity URLs:</strong><br>\n<span style=\"font-family: monospace; background: #f5f5f5; padding: 4px 6px; word-break: break-all; display: block; margin-top: 8px;\">https://www.linkedin.com/feed/update/urn:li:activity:273437/</span></p>\n\n<p style=\"margin-bottom: 25px;\"><strong>🌐 Full post URLs:</strong><br>\n<span style=\"font-family: monospace; background: #f5f5f5; padding: 4px 6px; word-break: break-all; display: block; margin-top: 8px;\">https://www.linkedin.com/posts/username_title-activity-7334385757769416704-dMnz</span></p>\n\n<hr style=\"margin: 30px 0; border: 1px solid #ddd;\">-------------------\n\n<p style=\"margin-bottom: 20px;\"><strong style=\"color: #28a745;\">✅ Step 2: Results</strong></p>\n<p style=\"margin-bottom: 20px;\">Once finished, you'll be redirected to Google Sheets where you can find your result with the name:</p>\n<p style=\"background: #f0f8ff; padding: 15px; border-left: 4px solid #0077b5; margin: 20px 0;\">\n<strong>\"LinkedIn-Posts-Comments-Leads-{{ $now.format('yyyy-MM-dd') }}\"</strong>\n</p>\n\n<hr style=\"margin: 30px 0; border: 1px solid #ddd;\">-------------------\n\n\n<p style=\"color: #666; font-size: 14px; margin-top: 25px;\"><em>💡 Tip: Make sure your LinkedIn URLs are publicly accessible for the best results.</em></p>\n\n</div>"
      },
      "typeVersion": 2.2
    },
    {
      "id": "d90f3510-b326-4352-90f4-772eca3d5b9b",
      "name": "Définir le jeton APIFY",
      "type": "n8n-nodes-base.set",
      "position": [
        1820,
        1460
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "20febbcc-0a59-4a89-8932-9bbb34b0e9f9",
              "name": "APIFY_TOKEN",
              "type": "string",
              "value": ""
            },
            {
              "id": "291758a3-c73f-4db5-a2b3-5f88664a8b53",
              "name": "limit",
              "type": "number",
              "value": "={{ $json.limit }}"
            },
            {
              "id": "921b72d5-3688-4324-9d36-50668548344e",
              "name": "postIds",
              "type": "array",
              "value": "={{ $json.postIds }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "36eb3f1f-e0db-4175-964e-9200bf503918",
      "name": "Note adhésive 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1740,
        1360
      ],
      "parameters": {
        "color": 3,
        "width": 260,
        "height": 300,
        "content": "## 1. Set APIFY TOKEN\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### _(CLICK ME)_"
      },
      "typeVersion": 1
    },
    {
      "id": "5237c7a8-e2b4-49ae-a070-9cd885e1bc18",
      "name": "Note adhésive 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1420,
        1280
      ],
      "parameters": {
        "color": 2,
        "height": 300,
        "content": "_(or if run manually ENABLE this)_  \n### 4. Set Post ID/URL\n\n\n\n\n\n\n\n\n\n\n\n\n\n### _(CLICK ME)_ and Connect\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9637dc03-c409-477d-a596-c84f4df12d63",
      "name": "Note adhésive 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1160,
        1620
      ],
      "parameters": {
        "color": 3,
        "width": 400,
        "height": 380,
        "content": "## 3. You can run through the form (check Form URL)\n\n\n\n\n\n\n\n\n\n\n\n\n\n### _(CLICK ME)_ \nIf run manually DISABLE this node"
      },
      "typeVersion": 1
    },
    {
      "id": "efe492e1-78f7-4f55-89d7-caea70767044",
      "name": "Définir les champs du formulaire",
      "type": "n8n-nodes-base.set",
      "position": [
        1620,
        1760
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "916bb8f7-34c5-4f2f-b13d-f60d228abc1f",
              "name": "postIds",
              "type": "array",
              "value": "={{ $json['Post IDs/URLs'].replaceAll('\\n','').replaceAll('\\r', '').split(',').filter(item => $ifEmpty(item, false))  }}"
            },
            {
              "id": "7ff3d2f4-ab8a-444f-9747-f95166a950bd",
              "name": "limit",
              "type": "number",
              "value": "={{ $json['How many comments you want to scrape?'] || 100 }}"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "aea3954b-94cf-4785-a692-a46d45b9add5",
      "name": "Définir les champs manuels",
      "type": "n8n-nodes-base.set",
      "disabled": true,
      "position": [
        1480,
        1360
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "af09ad86-b3dd-45b7-b17d-cb810e4b48d6",
              "name": "postIds",
              "type": "array",
              "value": "['https://www.linkedin.com/feed/update/urn:li:activity:7334385757769416704/', 'https://www.linkedin.com/feed/update/urn:li:activity:7318557377971023872/']"
            },
            {
              "id": "b2f9412e-4c81-454f-ad84-a1d5f6547a26",
              "name": "limit",
              "type": "number",
              "value": 100
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "c9d2e385-9c38-43ea-88bd-e7363f215cc7",
      "name": "Plus d'exécutions nécessaires ?",
      "type": "n8n-nodes-base.if",
      "notes": "Per run it's only 100 comments",
      "position": [
        2620,
        1460
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "19224073-c84d-456f-b694-318df4223d2a",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $json.summary.totalComments }}",
              "rightValue": 100
            },
            {
              "id": "8156447e-75dd-4cad-8fc8-17366667d165",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $('Set APIFY Token').first().json.limit }}",
              "rightValue": 100
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 2.2
    },
    {
      "id": "021e8ae2-6773-4154-ab59-61dab49b16e9",
      "name": "Définir la pagination",
      "type": "n8n-nodes-base.code",
      "position": [
        2840,
        1320
      ],
      "parameters": {
        "jsCode": "const limitPages = Math.ceil($('Set APIFY Token').first().json.limit / 100)\nconst totalComments = $('Run Apify Comments Scraper').last().json.summary.totalComments \nconst availablePages = Math.ceil(totalComments / 100)\n\nconst totalRuns = availablePages <= limitPages ? availablePages : limitPages\n\nlet currentPage = 2\n\n\nreturn {\n  json: {\n    items:\n      Array.from({ length: totalRuns }, (_, i) => {\n        return { currentPage: currentPage + i }\n      })\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "5371649d-d032-452d-8af6-13a679b254fd",
      "name": "Diviser",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        3060,
        1320
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "4003ce75-3e13-4d2a-9199-bac9f5bda6de",
      "name": "Agréger",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2400,
        1460
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "c25710e8-c47c-4fb9-91e1-d9fe37ad53fa",
      "name": "Collecter tous les commentaires",
      "type": "n8n-nodes-base.set",
      "position": [
        3720,
        1120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b4280f11-a50b-4065-8742-9f994c6ee84d",
              "name": "items",
              "type": "array",
              "value": "={{ $json.items.concat($('Aggregate').item.json.items) }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2876c38b-ed23-4d6b-9a65-97c1b70d245a",
      "name": "Créer une liste unique de prospects",
      "type": "n8n-nodes-base.code",
      "position": [
        4180,
        1480
      ],
      "parameters": {
        "jsCode": "// Get all input items\nconst items = $input.first().json.items;\n\n// Use reduce to filter unique profile_url values\nconst uniqueProfiles = items.reduce((acc, item) => {\n  // Check if this profile_url is already in the accumulator\n  console.log(item)\n  if (item.author && !acc.some(i => i.profile_url === item.author.profile_url)) {\n    acc.push(item.author);\n  }\n  return acc;\n}, []);\n\nreturn uniqueProfiles"
      },
      "typeVersion": 2
    },
    {
      "id": "80336fb8-a783-4907-89eb-82b9877a7b36",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2000,
        1040
      ],
      "parameters": {
        "color": 7,
        "width": 2040,
        "height": 840,
        "content": "## 🛠 Running Apify LinkedIn Comments Scrapers and processing data\nWe want to run an Apify scraper once to validate the number of available comments and then run it multiple times if necessary."
      },
      "typeVersion": 1
    },
    {
      "id": "3877d666-27e5-4bf7-8a1c-3c1e4dce32d8",
      "name": "Note adhésive 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4040,
        1040
      ],
      "parameters": {
        "width": 1700,
        "height": 840,
        "content": "## Create a unique list of Leads, ✨ enrich ✨ it with more data\nOnce we have all of the comment authors, we need to enrich them with more information from LinkedIn\n"
      },
      "typeVersion": 1
    },
    {
      "id": "fdbf8690-b517-4773-819a-e8bd92ddcd25",
      "name": "Exécuter le scraper de commentaires Apify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2180,
        1460
      ],
      "parameters": {
        "url": "={{ 'https://api.apify.com/v2/acts/apimaestro~linkedin-post-comments-replies-engagements-scraper-no-cookies/run-sync-get-dataset-items?token=' +$json.APIFY_TOKEN}}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "postIds",
              "value": "={{ $json.postIds }}"
            },
            {
              "name": "page_number",
              "value": "={{ 1 }}"
            },
            {
              "name": "sortOrder",
              "value": "most recent"
            },
            {
              "name": "limit",
              "value": "={{ $json.limit }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5b426074-2649-48cf-9a55-cedfe1cb0bf7",
      "name": "Exécuter la boucle du scraper de commentaires Apify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3500,
        1340
      ],
      "parameters": {
        "url": "={{ 'https://api.apify.com/v2/acts/apimaestro~linkedin-post-comments-replies-engagements-scraper-no-cookies/run-sync-get-dataset-items?token=' + $('Set APIFY Token').first().json.APIFY_TOKEN}}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "postIds",
              "value": "={{ $('Set APIFY Token').first().json.postIds }}"
            },
            {
              "name": "page_number",
              "value": "={{ $json.currentPage }}"
            },
            {
              "name": "sortOrder",
              "value": "most recent"
            },
            {
              "name": "limit",
              "value": "={{ $('Set APIFY Token').first().json.limit }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b3038b0f-d025-4843-8204-1bb498b193ce",
      "name": "Exécuter l'enrichissement de profil Apify",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5220,
        1500
      ],
      "parameters": {
        "url": "={{ 'https://api.apify.com/v2/acts/apimaestro~linkedin-profile-batch-scraper-no-cookies-required/run-sync-get-dataset-items?token=' + $('Set APIFY Token').first().json.APIFY_TOKEN}}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "usernames",
              "value": "={{ $json.batches }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "87194dbf-8d63-438a-8081-8ed7a4e93169",
      "name": "Diviser en lots",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        4640,
        1480
      ],
      "parameters": {
        "include": "allOtherFields",
        "options": {},
        "fieldToSplitOut": "batches"
      },
      "typeVersion": 1
    },
    {
      "id": "4fe12998-abdd-4659-aaa7-1aeef2ad241a",
      "name": "Boucler sur les commentaires",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        3280,
        1320
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "e1a29bde-cfe6-4c89-a601-3ae0b582e052",
      "name": "Boucler sur les profils",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        4940,
        1480
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "1eb148c9-17a9-4d02-99a0-e647b3398ea4",
      "name": "Diviser en lots",
      "type": "n8n-nodes-base.code",
      "position": [
        4400,
        1480
      ],
      "parameters": {
        "jsCode": "const uniqueProfiles = $input.all().map(item => item.json.profile_url)\n\n// Split the uniqueProfiles in batches of 500 for the Apify\nconst chunkSize = 500;\nconst batches = [];\n\nfor (let i = 0; i < uniqueProfiles.length; i += chunkSize) {\n  batches.push(uniqueProfiles.slice(i, i + chunkSize));\n}\n\n\nreturn { batches };"
      },
      "typeVersion": 2
    },
    {
      "id": "596572a6-7ffe-4cfa-b662-8cd083dbaccc",
      "name": "Agréger les commentaires",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        3780,
        1340
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "1dc0b52f-3c86-40ea-8c4b-399872e22259",
      "name": "Agréger les profils",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        5440,
        1500
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "21cc6cc8-d4dc-40d9-9cfb-0069786af878",
      "name": "Agréger tous les profils",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        5220,
        1320
      ],
      "parameters": {
        "options": {
          "mergeLists": true
        },
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "items"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "84708fbf-bed4-4ce3-85c9-3ea16a9358c5",
      "name": "Agréger tous les commentaires",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        3500,
        1120
      ],
      "parameters": {
        "options": {
          "mergeLists": true
        },
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "items"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ecab78f3-dcf3-4ddc-afdd-e0d49df4eaca",
      "name": "Convertir en fichier",
      "type": "n8n-nodes-base.convertToFile",
      "disabled": true,
      "position": [
        6100,
        1140
      ],
      "parameters": {
        "options": {
          "headerRow": true
        }
      },
      "executeOnce": true,
      "typeVersion": 1.1
    },
    {
      "id": "36b226d0-a07b-48f1-9a28-85aebf794fd9",
      "name": "Note adhésive 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5840,
        1040
      ],
      "parameters": {
        "color": 2,
        "width": 660,
        "height": 380,
        "content": "## You can either run it manually (not through form) and download the CSV\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nYou need to activate \"Trigger manual\" nodes first\n\n### _(CLICK ME) and Connect_"
      },
      "typeVersion": 1
    },
    {
      "id": "f278ede4-329d-4248-9f6c-b9bb14fa13aa",
      "name": "Note adhésive 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5840,
        1500
      ],
      "parameters": {
        "color": 3,
        "width": 660,
        "height": 380,
        "content": "## 2. Add credentials to Google Sheets\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### _(CLICK ME)_"
      },
      "typeVersion": 1
    },
    {
      "id": "49cf9532-0e2f-487e-b6d4-eeb15fec3885",
      "name": "Préparer la liste pour l'export",
      "type": "n8n-nodes-base.code",
      "position": [
        5440,
        1320
      ],
      "parameters": {
        "jsCode": "function flatten(obj, prefix = '', res = {}) {\n  for (const key in obj) {\n    const value = obj[key];\n    const prefixedKey = prefix ? `${prefix}_${key}` : key;\n    if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n      flatten(value, prefixedKey, res);\n    } else {\n      res[prefixedKey] = value;\n    }\n  }\n  return res;\n}\n\nreturn $input.first().json.items.map(item => ({\n  json: flatten(item)\n}));"
      },
      "typeVersion": 2
    },
    {
      "id": "33928b41-e209-4240-a636-41874b87b2f8",
      "name": "Créer une feuille Google",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        5920,
        1640
      ],
      "parameters": {
        "title": "=LinkedIn-Posts-Comments-Leads-{{ $now.format('yyyy-MM-dd+T') }}",
        "options": {},
        "resource": "spreadsheet",
        "sheetsUi": {
          "sheetValues": [
            {
              "title": "Leads"
            }
          ]
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "w7X41eUzPcqOkYCg",
          "name": "Google Sheets account"
        }
      },
      "executeOnce": true,
      "typeVersion": 4.5
    },
    {
      "id": "d6e02f6e-0031-4dd8-922b-7981def48097",
      "name": "Ajouter des prospects",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        6340,
        1640
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "profileUrl",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "profileUrl",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_fullname",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_fullname",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_first_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_first_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_last_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_last_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_headline",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_public_identifier",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_public_identifier",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_profile_picture_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_profile_picture_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_about",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_location_country",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_location_country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_location_city",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_location_city",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_location_full",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_location_full",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_location_country_code",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_location_country_code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_creator_hashtags",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_creator_hashtags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_is_creator",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_is_creator",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_is_influencer",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_is_influencer",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_is_premium",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_is_premium",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_created_timestamp",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_created_timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_show_follower_count",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_show_follower_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_background_picture_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_background_picture_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_urn",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_urn",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_follower_count",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_follower_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_connection_count",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_connection_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_current_company",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_current_company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_current_company_urn",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_current_company_urn",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "basic_info_current_company_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "basic_info_current_company_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "experience",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "experience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "education",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "education",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "certifications",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "certifications",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "useAppend": true,
          "cellFormat": "USER_ENTERED"
        },
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create Google Sheet').first().json.sheets[0].properties.sheetId }}"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create Google Sheet').first().json.spreadsheetId }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "w7X41eUzPcqOkYCg",
          "name": "Google Sheets account"
        }
      },
      "executeOnce": false,
      "typeVersion": 4.5
    },
    {
      "id": "fdb1fb37-bc5a-435d-97b4-aef5fbb8175f",
      "name": "Définir la liste pour les feuilles",
      "type": "n8n-nodes-base.code",
      "position": [
        6140,
        1640
      ],
      "parameters": {
        "jsCode": "\nreturn $('Prepare the list for export').all();"
      },
      "typeVersion": 2
    },
    {
      "id": "fe6d63a8-dadd-4187-814a-7a421bbb6d3f",
      "name": "Note adhésive 8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        2200
      ],
      "parameters": {
        "color": 5,
        "width": 1180,
        "height": 280,
        "content": "\n---\n\n## 📊 Output Data Structure\n\nYour exported data will include:\n\n- **Basic Info**: Name, headline, location\n- **Profile Details**: Company, position, industry\n- **Engagement Data**: Comment content, engagement metrics\n- **Contact Info**: Available profile links and connections\n- **Enriched Data**: Additional profile insights from Apify\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "cc6512e8-8b8b-42b6-ba41-02a647bf6f5d",
      "name": "Note adhésive 9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1560,
        2200
      ],
      "parameters": {
        "width": 760,
        "height": 540,
        "content": "---\n\n## 💡 Pro Tips\n\n- **Quality over Quantity**: Target posts with high-quality, relevant engagement\n- **Monitor Costs**: Track your Apify usage to stay within budget\n- **Data Hygiene**: Regularly clean and deduplicate your lead lists\n- **Compliance**: Ensure your scraping activities comply with LinkedIn's terms of service\n\n---\n\n## 🆘 Troubleshooting\n\n**Common Issues:**\n- **Authentication Errors**: Verify your Apify token is correctly configured\n- **Empty Results**: Check that your LinkedIn post URLs are valid and public\n- **Export Failures**: Ensure Google Sheets credentials are properly set up\n\n**Need Help?** Contact [Saverflow.ai](https://saverflow.ai) for support and custom workflow development.\n\n---\n\n*Powered by Saverflow.ai | Streamline your lead generation with intelligent automation*"
      },
      "typeVersion": 1
    },
    {
      "id": "ad786f97-cc63-4259-a469-5c5d271b17f8",
      "name": "Note adhésive 10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        1240
      ],
      "parameters": {
        "color": 6,
        "width": 1620,
        "height": 960,
        "content": "\n## 📋 Prerequisites\n\n### Required API Credentials\n\n1. **Apify Token**\n   - Add your `APIFY_TOKEN` to the workflow credentials\n   - [Get your token from Apify Console](https://apify.com/account#/integrations)\n\n2. **Google Sheets Credentials** *(if using Sheets export)*\n   - Configure OAuth credentials for Google Sheets integration\n   - [Follow n8n's Google Sheets setup guide](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modal)\n\n---\n\n## 🔄 Workflow Process\n\n### Default Mode: Form-Based Execution\n\n1. **Manual Trigger** → Launches the workflow\n2. **Form Submission** → User-friendly form for inputting LinkedIn post URLs\n3. **Comment Scraping** → Apify extracts all comments from specified posts\n4. **Profile Enrichment** → Additional profile data gathered for each commenter\n5. **Data Processing** → Creates unique, enriched lead list\n6. **Google Sheets Export** → Automatically populates your spreadsheet\n\n**Result**: You'll be redirected to a Google Sheets document containing all enriched leads\n\n### Alternative Mode: CSV Export\n\nFor users preferring CSV output:\n\n1. **Disable**: Form trigger nodes\n2. **Enable**: Manual trigger node\n3. **Disable**: Google Sheets export nodes\n4. **Enable**: CSV download nodes\n5. **Configure**: Add post IDs/URLs in \"Set manual fields\" node\n6. **Execute**: Run workflow and download CSV from the CSV node\n"
      },
      "typeVersion": 1
    },
    {
      "id": "66685e68-953e-41b7-bc24-3de11ec8798a",
      "name": "Terminé",
      "type": "n8n-nodes-base.noOp",
      "position": [
        7060,
        1360
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "d6e02f6e-0031-4dd8-922b-7981def48097": {
      "main": [
        [
          {
            "node": "66685e68-953e-41b7-bc24-3de11ec8798a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4003ce75-3e13-4d2a-9199-bac9f5bda6de": {
      "main": [
        [
          {
            "node": "c9d2e385-9c38-43ea-88bd-e7363f215cc7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5371649d-d032-452d-8af6-13a679b254fd": {
      "main": [
        [
          {
            "node": "4fe12998-abdd-4659-aaa7-1aeef2ad241a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "021e8ae2-6773-4154-ab59-61dab49b16e9": {
      "main": [
        [
          {
            "node": "5371649d-d032-452d-8af6-13a679b254fd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ecab78f3-dcf3-4ddc-afdd-e0d49df4eaca": {
      "main": [
        []
      ]
    },
    "d90f3510-b326-4352-90f4-772eca3d5b9b": {
      "main": [
        [
          {
            "node": "fdbf8690-b517-4773-819a-e8bd92ddcd25",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1eb148c9-17a9-4d02-99a0-e647b3398ea4": {
      "main": [
        [
          {
            "node": "e1a29bde-cfe6-4c89-a601-3ae0b582e052",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "66c32da3-373c-42a9-bf51-5bec1fd6c4cd": {
      "main": [
        [
          {
            "node": "aea3954b-94cf-4785-a692-a46d45b9add5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c9d2e385-9c38-43ea-88bd-e7363f215cc7": {
      "main": [
        [
          {
            "node": "021e8ae2-6773-4154-ab59-61dab49b16e9",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "2876c38b-ed23-4d6b-9a65-97c1b70d245a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aea3954b-94cf-4785-a692-a46d45b9add5": {
      "main": [
        []
      ]
    },
    "596572a6-7ffe-4cfa-b662-8cd083dbaccc": {
      "main": [
        [
          {
            "node": "4fe12998-abdd-4659-aaa7-1aeef2ad241a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1dc0b52f-3c86-40ea-8c4b-399872e22259": {
      "main": [
        [
          {
            "node": "e1a29bde-cfe6-4c89-a601-3ae0b582e052",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4fe12998-abdd-4659-aaa7-1aeef2ad241a": {
      "main": [
        [
          {
            "node": "84708fbf-bed4-4ce3-85c9-3ea16a9358c5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5b426074-2649-48cf-9a55-cedfe1cb0bf7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e1a29bde-cfe6-4c89-a601-3ae0b582e052": {
      "main": [
        [
          {
            "node": "21cc6cc8-d4dc-40d9-9cfb-0069786af878",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b3038b0f-d025-4843-8204-1bb498b193ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e206b173-eb8a-4721-8251-8b0ebb2aa38f": {
      "main": [
        [
          {
            "node": "efe492e1-78f7-4f55-89d7-caea70767044",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "33928b41-e209-4240-a636-41874b87b2f8": {
      "main": [
        [
          {
            "node": "fdb1fb37-bc5a-435d-97b4-aef5fbb8175f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c25710e8-c47c-4fb9-91e1-d9fe37ad53fa": {
      "main": [
        [
          {
            "node": "2876c38b-ed23-4d6b-9a65-97c1b70d245a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "84708fbf-bed4-4ce3-85c9-3ea16a9358c5": {
      "main": [
        [
          {
            "node": "c25710e8-c47c-4fb9-91e1-d9fe37ad53fa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "21cc6cc8-d4dc-40d9-9cfb-0069786af878": {
      "main": [
        [
          {
            "node": "49cf9532-0e2f-487e-b6d4-eeb15fec3885",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fdb1fb37-bc5a-435d-97b4-aef5fbb8175f": {
      "main": [
        [
          {
            "node": "d6e02f6e-0031-4dd8-922b-7981def48097",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "efe492e1-78f7-4f55-89d7-caea70767044": {
      "main": [
        [
          {
            "node": "d90f3510-b326-4352-90f4-772eca3d5b9b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fdbf8690-b517-4773-819a-e8bd92ddcd25": {
      "main": [
        [
          {
            "node": "4003ce75-3e13-4d2a-9199-bac9f5bda6de",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2876c38b-ed23-4d6b-9a65-97c1b70d245a": {
      "main": [
        [
          {
            "node": "1eb148c9-17a9-4d02-99a0-e647b3398ea4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "49cf9532-0e2f-487e-b6d4-eeb15fec3885": {
      "main": [
        [
          {
            "node": "33928b41-e209-4240-a636-41874b87b2f8",
            "type": "main",
            "index": 0
          },
          {
            "node": "ecab78f3-dcf3-4ddc-afdd-e0d49df4eaca",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b3038b0f-d025-4843-8204-1bb498b193ce": {
      "main": [
        [
          {
            "node": "1dc0b52f-3c86-40ea-8c4b-399872e22259",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5b426074-2649-48cf-9a55-cedfe1cb0bf7": {
      "main": [
        [
          {
            "node": "596572a6-7ffe-4cfa-b662-8cd083dbaccc",
            "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é - Ventes, Intelligence Artificielle

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œuds39
Catégorie2
Types de nœuds13
Description de la difficulté

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

Auteur
Saverflow AI

Saverflow AI

@saverflowai

At Saverflow AI, we build AI-powered systems that drive growth and cut costs. Pillar 1: Lead Generation – We automate outreach, enrich leads, and book meetings using Clay, GPT, and Instantly. Pillar 2: AI Automation – We create tailored workflows for ticketing, docs, and ops. Results: More sales, up to 40% cost savings. Trusted by companies across Europe, the USA, and the Middle East.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34