Att kopiera LinkedIn-profildetaljer till ett kalkylark låter enkelt. Sedan gör du det för 30 leads, tappar en halv eftermiddag och landar ändå i stökiga titlar, saknade företagsfält och anteckningar som inte stämmer överens i teamet.
Den här automatiseringen för LinkedIn-leads träffar marketing ops först, helt ärligt. Men säljteam som jagar outbound-listor och rekryterare som bygger pipelines känner samma friktion. Du går från ”slumpmässiga profiltussar” till strukturerade, användbara lead-rader som du faktiskt kan poängsätta och rapportera på.
Nedan ser du hur arbetsflödet skrapar LinkedIn via Bright Data, låter Google Gemini rensa och standardisera, och sedan sparar och notifierar dig så att datan är redo för outreach eller analys.
Så fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: Bright data + Google gemini för rensade LinkedIn-leads
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set the URLs", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Bright Data MCP Client For L..", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "List all tools for Bright Data", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Bright Data MCP Client For L..", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set the LinkedIn Company URL", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Webhook for LinkedIn Company.."]
n7@{ icon: "mdi:robot", form: "rounded", label: "LinkedIn Data Extractor", pos: "b", h: 48 }
n8@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "List all available tools for..", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n12@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n13@{ icon: "mdi:code-braces", form: "rounded", label: "Create a binary data for Lin..", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Write the LinkedIn person in..", pos: "b", h: 48 }
n15@{ icon: "mdi:code-braces", form: "rounded", label: "Create a binary data for Lin..", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "Write the LinkedIn company i..", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Webhook for LinkedIn Person .."]
n10 --> n11
n11 --> n12
n12 --> n6
n12 --> n15
n1 --> n2
n7 --> n11
n8 -.-> n7
n5 --> n4
n3 --> n5
n0 --> n9
n0 --> n3
n9 --> n1
n2 --> n17
n2 --> n13
n4 --> n10
n4 --> n7
n13 --> n14
n15 --> n16
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n7 ai
class n8 aiModel
class n6,n17 api
class n10,n13,n15 code
classDef customIcon fill:none,stroke:none
class n6,n10,n11,n17 customIcon
Problemet: LinkedIn-leaddata är rörig och långsam att samla in
LinkedIn är fullt av användbara signaler, men att få in dem i ett system du kan använda är den smärtsamma delen. Du öppnar en profil, kopierar en jobbtitel, klistrar in den någonstans och inser sedan att företagssidan har den faktiska personalstyrkan eller branschdetaljen du behövde. Plötsligt har du fem webbläsarflikar, ett halvfyllt ark och en lista som är inkonsekvent rad för rad eftersom du stressade. Det värsta är omarbetet. Antingen städar du upp senare (vilket aldrig händer) eller så städar du under tiden och din ”snabba listbyggning” blir ett projekt.
Det adderas snabbt. Här är var det faller isär i verkligheten.
- Manuell copy-paste tvingar dig att fatta formateringsbeslut hundratals gånger per vecka.
- Små inkonsekvenser (som ”VP Sales” vs ”Vice President of Sales”) saboterar i tysthet poängsättning och segmentering.
- Folk plockar olika fält, så er ”teamlista” blir fem versioner av sanningen.
- Även noggranna team missar kontext från företagssidan, vilket ger sämre targeting och sämre outreach.
Lösningen: Bright Data skrapar, Gemini rensar, n8n levererar
Det här arbetsflödet gör om råa LinkedIn-sidor till felfria leadposter du faktiskt kan använda. Du börjar med att ange LinkedIn-URL:en för personen (och tillhörande företags-URL). n8n använder Bright Datas MCP Server-verktyg för LinkedIn för att skrapa den underliggande sid-datan pålitligt, även när LinkedIn är petigt. Sedan omvandlar ett AI-lager (Google Gemini) skrapningen till strukturerade fält och en läsbar sammanfattning, så att jobbtitlar, platser, företagsdetaljer och summeringar blir konsekventa. Till sist postar arbetsflödet resultatet till en webhook-endpoint du väljer och sparar kopior på disk, så att du får både en omedelbar ”push” och en lagrad post för senare.
Flödet startar från en manuell kör-trigger (enkelt för engångsresearch). Bright Data hämtar person- och företagsdata parallellt, sedan standardiserar och formar Gemini det till ett felfritt utdata. Därefter aggregerar n8n slutposten och skickar den via en webhook samtidigt som filer sparas för spårbarhet.
Vad du får: automatisering vs. resultat
| Vad arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du bygger en lista med 25 LinkedIn-leads till en kampanj. Manuellt kanske du lägger cirka 8 minuter per personprofil plus ytterligare 5 minuter för att hämta matchande företagsdetaljer, alltså ungefär 5 timmar. Med det här arbetsflödet klistrar du in URL:erna en gång, kör det och väntar på att skrapningen och Gemini-rensningen ska bli klara (ofta under 10 minuter per batch, beroende på LinkedIn och din setup). Du granskar fortfarande de slutliga raderna, men det är en snabb genomgång, inte en ombyggnad.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Bright Data-konto för att få tillgång till Web Unlocker-skrapning.
- Bright Data MCP Server för att skrapa via MCP-verktyg.
- Google Gemini API-nyckel (hämta den från Google AI Studio).
Kunskapsnivå: Medel. Du klistrar in URL:er, lägger in autentiseringsuppgifter och är bekväm med att justera en webhook-endpoint och lokala filsökvägar.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du anger LinkedIn-URL:er. Arbetsflödet startar från en manuell körning och tilldelar sedan LinkedIn-URL:en för personen och företagets URL i flödet så att varje efterföljande steg använder rätt mål.
Bright Data sköter skrapningen. n8n ansluter till Bright Data MCP Server och anropar LinkedIn-skrapverktygen för både personsidan och företagssidan och hämtar tillbaka rått svarsinnehåll som vore jobbigt att samla in för hand.
Gemini rensar och strukturerar. Arbetsflödet tolkar MCP-svaret, extraherar en företagsbeskrivning och kör omvandlingen genom ett Gemini-chatsteg så att utdata blir konsekventa fält i stället för oförutsägbara textklumpar.
Du får en sparad post och en push-notis. n8n aggregerar slutresultatet, postar person- och företagspayloads till din webhook-endpoint och skriver även filer till disk så att du har en beständig kopia för granskning eller återanvändning.
Du kan enkelt ändra webhook-destinationen för att skicka resultat till Slack, Airtable, Notion eller ditt CRM utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera den manuella triggern
Starta arbetsflödet med en manuell trigger så att ni kan testa och iterera snabbt.
- Lägg till noden Manual Run Trigger som arbetsflödets trigger.
- Lämna alla parametrar tomma i Manual Run Trigger (standard för manuell körning).
- Koppla Manual Run Trigger till både Fetch MCP Tool Catalog och Retrieve Bright Data Tools för att matcha den parallella starten.
Manual Run Trigger skickar utdata parallellt till både Fetch MCP Tool Catalog och Retrieve Bright Data Tools.
Steg 2: Anslut MCP-verktygstjänster
Dessa noder initierar MCP-verktygskatalogen och Bright Data-verktygen som används för scraping.
- Öppna Fetch MCP Tool Catalog och säkerställ att den har autentiseringsuppgifter.
- Autentiseringsuppgift krävs: Anslut era mcpClientApi-autentiseringsuppgifter.
- Öppna Retrieve Bright Data Tools och säkerställ att den har autentiseringsuppgifter.
- Autentiseringsuppgift krävs: Anslut era mcpClientApi-autentiseringsuppgifter.
Fetch MCP Tool Catalog kopplas till Assign Profile URLs, medan Retrieve Bright Data Tools kopplas till Set Company Profile URL.
Steg 3: Sätt upp indata för profil-URL:er
Ange LinkedIn-URL:er för person och företag samt webhook-mål som efterföljande noder kommer att använda.
- I Assign Profile URLs ställer ni in url till
https://www.linkedin.com/in/[YOUR_ID]/. - I Assign Profile URLs ställer ni in webhook_url till
https://webhook.site/[YOUR_ID]. - I Set Company Profile URL ställer ni in url till
https://www.linkedin.com/company/[YOUR_ID]/. - I Set Company Profile URL ställer ni in webhook_url till
https://webhook.site/[YOUR_ID].
[YOUR_ID] leder det till tomma eller ogiltiga scraping-svar.Steg 4: Konfigurera pipeline för scraping och parsning
Scrapa person- och företagsprofiler och parsa sedan företagsdata för vidare bearbetning.
- Öppna MCP Person Scrape och ställ in toolName till
web_data_linkedin_person_profile. - I MCP Person Scrape ställer ni in operation till
executeTooloch toolParameters till={ "url": "{{ $json.url }}" }. - Autentiseringsuppgift krävs: Anslut era mcpClientApi-autentiseringsuppgifter i MCP Person Scrape.
- Öppna MCP Company Scrape och ställ in toolName till
web_data_linkedin_company_profile. - I MCP Company Scrape ställer ni in operation till
executeTooloch toolParameters till={ "url": "{{ $json.url }}" }. - Autentiseringsuppgift krävs: Anslut era mcpClientApi-autentiseringsuppgifter i MCP Company Scrape.
- I Parse MCP Response behåller ni jsCode inställt på
jsonContent = JSON.parse($input.first().json.result.content[0].text) return jsonContent.
MCP Person Scrape skickar utdata parallellt till både Post Person Webhook och Build Person Binary, medan MCP Company Scrape skickar utdata parallellt till både Parse MCP Response och Extract Company Narrative.
Steg 5: Sätt upp AI-berättelse och aggregering
Använd Gemini för att generera företagets berättelse och slå sedan ihop och aggregera resultaten.
- I Extract Company Narrative ställer ni in text till
=Write a complete story of the provided company information in JSON. Use the following Company info to produce a story or a blog post. Make sure to incorporate all the provided company context. Here's the Company Info in JSON - {{ $json.input }}. - Behåll attributkonfigurationen i Extract Company Narrative med company_story som obligatorisk.
- Öppna Gemini Chat Engine och ställ in modelName till
models/gemini-2.0-flash-exp. - Autentiseringsuppgift krävs: Anslut era googlePalmApi-autentiseringsuppgifter i Gemini Chat Engine.
- Säkerställ att Gemini Chat Engine är ansluten som språkmodell för Extract Company Narrative.
- I Combine Streams behåller ni standardinställningarna för att slå ihop utdata från Parse MCP Response och Extract Company Narrative.
- I Aggregate Results aggregerar ni about och output.company_story enligt konfigurationen.
Steg 6: Konfigurera utdatadestinationer
Skicka webhook-svar och spara person-/företagsdata på disk.
- I Post Person Webhook ställer ni in url till
={{ $('Assign Profile URLs').item.json.webhook_url }}och aktiverar sendBody. - I Post Person Webhook ställer ni in body-parametern response till
={{ $json.result.content[0].text }}. - I Build Person Binary behåller ni functionCode inställt på skriptet för base64-konvertering av JSON.
- I Save Person File ställer ni in operation till
writeoch fileName tilld:\LinkedIn-Person.json. - I Post Company Webhook ställer ni in url till
={{ $('Set Company Profile URL').item.json.webhook_url }}och specifyBody tilljson. - I Post Company Webhook ställer ni in jsonBody till
={ "about": {{ JSON.stringify($json.about[0]) }}, "story": {{ JSON.stringify($json.company_story[0]) }} }. - I Build Company Binary behåller ni functionCode inställt på skriptet för base64-konvertering av JSON.
- I Save Company File ställer ni in operation till
writeoch fileName tilld:\LinkedIn-Company.json.
Aggregate Results skickar utdata parallellt till både Post Company Webhook och Build Company Binary.
d:\LinkedIn-Person.json och d:\LinkedIn-Company.json måste finnas och vara skrivbara på n8n-värden.Steg 7: Testa och aktivera ert arbetsflöde
Kör en manuell körning för att validera scraping, AI-generering och leverans av utdata.
- Klicka på Execute Workflow för att köra Manual Run Trigger.
- Bekräfta lyckade körningar i Post Person Webhook och Post Company Webhook genom att kontrollera loggarna för webhook-endpointen.
- Verifiera filer som sparats av Save Person File och Save Company File på
d:\LinkedIn-Person.jsonochd:\LinkedIn-Company.json. - När allt är verifierat växlar ni arbetsflödets reglage till Active för användning i produktion.
Vanliga fallgropar
- Bright Data-autentiseringsuppgifter kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först din Bright Data API-token och Web Unlocker-zonens konfiguration i Bright Data-kontrollpanelen.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Räkna med cirka en timme om dina Bright Data- och Gemini-nycklar är klara.
Nej. Du kommer mest att klistra in URL:er, koppla autentiseringsuppgifter och välja vart webhooken ska skicka utdata.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in Bright Data-användning och Gemini API-användning, vilket beror på hur många profiler du bearbetar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är en vanlig justering. Du kan lägga till eller bygga ut Google Sheets-noden för att lägga till en rad efter steget ”Aggregate Results” och mappa Geminis strukturerade fält till konsekventa kolumner. Många team justerar även ”Extract Company Narrative” och Gemini-prompten så att samma kolumnnamn alltid produceras, även när profiler ser olika ut.
Oftast är det ett API-tokenproblem eller så pekar MCP Client (STDIO)-autentiseringsuppgifterna inte mot rätt lokala MCP Server. Dubbelkolla Bright Data API_TOKEN-miljövärdet och bekräfta sedan att din Web Unlocker-zon finns och matchar det du konfigurerat. Om det fungerade igår men faller idag, generera en ny token och uppdatera den i n8n. Begränsningar i hastighet (rate limits) kan också dyka upp som slumpmässiga fel när du försöker skrapa för många profiler direkt efter varandra.
Det beror på din n8n-plan och dina Bright Data-gränser. På n8n Cloud sätter dina månatliga körningar taket för hur många run du kan göra, medan self-hosting inte har någon körningsgräns (då blir servern begränsningen). I praktiken bearbetar de flesta team leads i batchar om 10 till 50 för att hålla skrapningen stabil och göra det enkelt att granska utdata.
För just det här jobbet, ja, eftersom du kombinerar web scraping, parsing, AI-omvandling och flera utgångar i ett och samma flöde. Zapier och Make kan fungera för enklare ”skicka data från A till B”-uppgifter, men de blir klumpiga när du behöver förgreningslogik, filskrivningar eller anpassad hantering av skrapsvar. n8n ger dig också möjligheten att self-hosta, vilket är användbart när körningarna blir frekventa. En sak till: den här mallen bygger på en MCP-communitynod, så du vill ha flexibiliteten i n8n:s ekosystem. Om du är osäker, prata med en automationsexpert så pekar vi dig i rätt riktning.
Felfri leaddata är skillnaden mellan ”spray and pray”-outreach och ett system du kan skala. Sätt upp det en gång och låt sedan arbetsflödet ta hand om de tråkiga delarna medan du fokuserar på budskap och uppföljning.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.