Du har hittat rätt LinkedIn-profiler. Sedan börjar det stökiga: jaga en e-postadress, kopiera detaljer till ett kalkylark, skriva ett bra första mejl och sedan försöka komma ihåg fyra uppföljningar.
SDR:er känner det när kön växer. En grundare känner det när outreach blir ett kvällsjobb. Och ett byråteam fastnar i ”admin” i stället för att boka möten. Den här automationen för LinkedIn-outreach gör en profil-URL till en verifierad e-postadress och en 5-mejlssekvens som är redo att skickas, loggat strukturerat i Google Sheets.
Nedan ser du exakt vad arbetsflödet gör, vad du får i slutändan och var team oftast går bet första gången de sätter upp det.
Så fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: LinkedIn till Google Sheets: sekvenser klara att skicka
flowchart LR
subgraph sg0["Manual Launch Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Launch Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Retrieve Sheet Rows", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map Input Fields", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Access Details", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Configure Email Template", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Limit Record Count", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Iterate Through Batches", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Delay Processing", pos: "b", h: 48 }
n8["<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/>External API Request"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Branch Logic Check", 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/perplexity.dark.svg' width='40' height='40' /></div><br/>Query Language Model"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>LinkedIn Profile Request"]
n12["<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/>Transform Script"]
n13@{ icon: "mdi:robot", form: "rounded", label: "Compose Email Chain", pos: "b", h: 48 }
n14@{ icon: "mdi:database", form: "rounded", label: "Update Final Sheet", pos: "b", h: 48 }
n15@{ icon: "mdi:database", form: "rounded", label: "Update Missing Email", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "Primary Chat Model", pos: "b", h: 48 }
n17@{ icon: "mdi:robot", form: "rounded", label: "Parse Structured Output", pos: "b", h: 48 }
n18@{ icon: "mdi:brain", form: "rounded", label: "Secondary Chat Model", pos: "b", h: 48 }
n9 --> n10
n9 --> n15
n12 --> n13
n7 --> n8
n13 --> n14
n5 --> n6
n2 --> n3
n8 --> n9
n14 --> n6
n10 --> n11
n3 --> n4
n6 --> n7
n16 -.-> n17
n18 -.-> n13
n4 --> n5
n1 --> n2
n15 --> n6
n17 -.-> n13
n11 --> n12
n0 --> n1
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 n13,n17 ai
class n16,n18 aiModel
class n9 decision
class n1,n14,n15 database
class n8,n11 api
class n12 code
classDef customIcon fill:none,stroke:none
class n8,n10,n11,n12 customIcon
Problemet: LinkedIn-leads dör i glappen
LinkedIn-prospektering är sällan den svåra delen. Tidsläckan är allt efter att du har tagit URL:en: hitta en e-post som faktiskt fungerar, plocka fram några detaljer för personalisering och skriva uppföljningar som inte låter som mallar från 2017. Gör du det manuellt kommer du att ”spara tid” genom att hoppa över steg, vilket betyder att du skickar svagare mejl, missar uppföljningar eller tappar koll på vad som skickats. Och när ditt kalkylark blir rörigt slutar du lita på det. Då blir outreach ett halvfärdigt system som bränner timmar och i det tysta dödar svarsfrekvensen.
Det går snabbt att summera. Här är var det brukar fallera i verkligheten.
- Att copy-pasta profilinfo till Google Sheets skapar dubbletter, stavfel och saknade fält som du upptäcker för sent.
- E-postletande blir en tabbhoppande övning, och ”catch-all”-adresser smyger sig in i utskick och försämrar leveransbarheten.
- Att skriva fem mejl per lead låter hanterbart tills du har 30 leads – då sjunker kvaliteten och allt ser likadant ut.
- Uppföljningar glöms bort eftersom sekvensen finns i någons huvud, inte i ett system du kan granska och förbättra.
Lösningen: LinkedIn-URL → verifierad e-post + 5-mejlssekvens i Sheets
Det här arbetsflödet startar med en lista av LinkedIn-profil-URL:er i Google Sheets och gör varje rad till en komplett, outreach-klar post. Det läser leads där e-poststatus saknas, slår upp en professionell e-post via AnyMailFinder och sparar status (verifierad, catch-all eller saknas) så att du slipper gissa. Därefter berikas leaden med snabb research: företagskontext från Perplexity och profildata som skrapas via Apify. Kontexten kondenseras till en strukturerad sammanfattning, och OpenAI använder den för att skriva ett personligt intro-mejl plus fyra uppföljningar, alla med ämnesrader, i ett strikt strukturerat format så att ditt kalkylark förblir prydligt. Till sist skrivs allt tillbaka till Google Sheets med ett lägg-till-eller-uppdatera-upplägg, vilket hjälper dig att undvika dubbletter när du kör om batchar.
Arbetsflödet startas i n8n (manuell trigger) och hämtar direkt rader från ditt ark. Det bearbetar leads i batchar med valfria fördröjningar för att respektera API-gränser. När det är klart blir arket ett användbart mini-CRM: verifierad e-post, berikning, fem mejltexter och statusfält redo för sekvensering.
Det du får: automatisering vs. resultat
| Det här automatiserar arbetsflödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du varje vecka lägger in 30 LinkedIn-profil-URL:er i ett Google Sheet. Manuellt tar det oftast runt 10 minuter per lead att hitta en e-post och validera den, och sedan ytterligare 15 minuter att skriva ett intro plus uppföljningar – totalt cirka 12 timmar. Med det här arbetsflödet markerar du raderna, kör det och låter det bearbeta i batchar med en kort fördröjning; din ”människotid” blir närmare 15 minuter för att ställa in din mall och granska resultatet. Även om bearbetningen tar ytterligare 30–60 minuter i bakgrunden får du ändå tillbaka din eftermiddag.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra leads och resultat
- AnyMailFinder för e-postsökning och status
- OpenAI API-nyckel (hämtas i din OpenAI-dashboard)
- Apify för att skrapa LinkedIn-profiluppgifter
- Perplexity API-nyckel (hämtas i Perplexity API-inställningarna)
Kunskapsnivå: Medel. Du kopplar några API:er, mappar fält till dina kolumner i arket och testar först med en liten batch.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Lead-intag från Google Sheets. Du kör arbetsflödet och det hämtar rader där fältet ”Email status” är tomt, så det jobbar bara med leads som fortfarande behöver berikas.
E-postsökning och validering. För varje LinkedIn-URL anropas AnyMailFinder via en HTTP-request, och arbetsflödet förgrenar sig beroende på vad som kommer tillbaka (verifierad, catch-all eller ingen e-post hittades).
Kontextinsamling för personalisering. Perplexity tar fram snabba företagsinsikter, Apify hämtar viktiga profildetaljer och ett transformationssteg strukturerar allt till en kort, användbar sammanfattning för AI-prompten.
Skapande av sekvens och strukturerad åter-skrivning. OpenAI producerar ett intro-mejl plus fyra uppföljningar med ämnesrader i ett strikt JSON-format, och därefter uppdaterar arbetsflödet raden i ditt Google Sheet med e-post, status och hela sekvensen.
Du kan enkelt justera grundmallen för mejlen så att den matchar ditt erbjudande och din tonalitet utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: Konfigurera den manuella triggern
Starta arbetsflödet med en manuell trigger så att ni kan testa hela pipelinen end-to-end.
- Lägg till och verifiera att noden Manual Launch Trigger ligger först i arbetsflödet.
- Koppla Manual Launch Trigger till Retrieve Sheet Rows för att börja hämta leaddata.
Steg 2: Anslut Google Sheets
Konfigurera Google Sheets-noderna som läser och skriver leadposter.
- Öppna Retrieve Sheet Rows och välj kalkylarket och fliken som innehåller er leadlista.
- Öppna Update Final Sheet och ställ in målkalkylark/flik för att lagra skapade e-postmeddelanden och leaduppdateringar.
- Öppna Update Missing Email och ställ in målkalkylark/flik för utfall där e-postadress saknas.
- Inloggningsuppgifter krävs: Anslut era Google Sheets-inloggningsuppgifter i Retrieve Sheet Rows, Update Final Sheet och Update Missing Email.
Steg 3: Ställ in datamappning och batchkontroll
Förbered indatafält och styr hur många poster som behandlas per körning.
- I Map Input Fields mappar ni inkommande kolumner från Retrieve Sheet Rows till konsekventa fältnamn som används längre fram i flödet.
- I Assign Access Details anger ni eventuella statiska värden som behövs för autentisering, kontoåtkomst eller organisationsmetadata.
- I Configure Email Template definierar ni de fält i e-postmallen som ni vill skicka vidare till AI-kedjan.
- I Limit Record Count anger ni maximalt antal poster att behandla per körning.
- I Iterate Through Batches definierar ni batchstorlek och säkerställer att den loopar tillbaka efter Update Final Sheet och Update Missing Email.
Steg 4: Konfigurera extern berikning och förgrening
Berika leaddata och routa poster baserat på resultat.
- Konfigurera Delay Processing för att sprida ut API-anrop före External API Request.
- Konfigurera External API Request med er berikningsendpoint och nödvändiga headers/body.
- I Branch Logic Check definierar ni villkor som avgör om leads går vidare till berikning och e-postskapande eller skickas till Update Missing Email.
- Inloggningsuppgifter krävs: Lägg till nödvändiga API-inloggningsuppgifter eller headers i External API Request och LinkedIn Profile Request.
Steg 5: Ställ in AI-berikning och e-postskapande
Använd AI för att berika profiler och generera e-posttext.
- Konfigurera Query Language Model för att generera research-prompter för leadberikning.
- Konfigurera LinkedIn Profile Request för att hämta profildata med detaljer från Query Language Model.
- Använd Transform Script för att normalisera API-svar till en konsekvent struktur för e-postkedjan.
- Konfigurera Compose Email Chain för att kombinera den transformerade leaddatan med era mallfält.
- Anslut Secondary Chat Model som språkmodell för Compose Email Chain.
- Anslut Primary Chat Model som språkmodell för Parse Structured Output, och säkerställ att Parse Structured Output är kopplad in i Compose Email Chain som output-parser.
- Inloggningsuppgifter krävs: Anslut era OpenAI Chat-inloggningsuppgifter i Primary Chat Model och Secondary Chat Model.
- Inloggningsuppgifter krävs: Anslut era Perplexity-inloggningsuppgifter i Query Language Model.
Steg 6: Konfigurera output-uppdateringar
Skriv tillbaka de färdiga e-postmeddelandena och utfallen till ert kalkylark.
- I Update Final Sheet mappar ni e-postens outputfält från Compose Email Chain till era kolumner i arket.
- I Update Missing Email mappar ni orsaker till misslyckande/hoppad över från Branch Logic Check till era spårningskolumner.
- Bekräfta att loopen från Update Final Sheet och Update Missing Email går tillbaka till Iterate Through Batches.
Steg 7: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera dataflödet och AI-output, och aktivera sedan arbetsflödet för produktionsanvändning.
- Klicka på Execute Workflow från Manual Launch Trigger för att testa med en liten batch.
- Verifiera att Retrieve Sheet Rows hämtar poster och att Update Final Sheet eller Update Missing Email uppdaterar rätt rader.
- Bekräfta att AI-output skrivs korrekt och att loopen via Iterate Through Batches behandlar förväntat antal poster.
- När ni är nöjda växlar ni arbetsflödet till Active för att använda det i produktionskörningar.
Vanliga fallgropar
- Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om det skapar fel: kontrollera först det anslutna Google-kontot och delningsinställningarna för arket.
- 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 varumärkesröst tidigt, annars kommer du att redigera utdata i all evighet.
Vanliga frågor
Cirka 45 minuter om dina API-nycklar är klara.
Nej. Du kopplar mest konton och mappar några fält i Google Sheets. Arbetsflödet hanterar redan logiken, inklusive förgrening för saknad e-post eller catch-all.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volym. Du behöver också räkna in API-kostnader för OpenAI, Apify, Perplexity och AnyMailFinder (oftast några cent per lead, beroende på användning).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och klarar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, men då behöver du uppdatera både AI-prompten och mappningen mot arket. I arbetsflödet justerar du värdena i ”Configure Email Template” och prompten i ”Compose Email Chain” så att den spottar ut exakt det antal mejl du vill ha. Bekräfta sedan att ”Parse Structured Output” fortfarande matchar JSON-strukturen och att ”Update Final Sheet” skriver till rätt kolumner. Vanliga ändringar är att gå över till 3 uppföljningar, lägga till ett breakup-mejl eller byta till ett annat baserbjudande.
Oftast beror det på fel Google-konto, att du saknar åtkomst till arket eller att namn på kalkylark/flik har ändrats efter att du kopplade det. Kontrollera inloggningen i n8n och bekräfta sedan att arket är delat med den Google-användaren. Om arbetsflödet kan läsa rader men inte uppdatera dem kan området (range) eller kolumnnamnen inte längre matcha det som noden ”Update Final Sheet” förväntar sig.
I praktiken kör de flesta team batchar på 25–200 leads åt gången för att hålla sig inom API-gränser, och schemalägger sedan en ny körning senare.
För berikning i flera steg och AI-skrivande är n8n oftast ett bättre val. Du kan göra förgreningslogik (verifierad vs. catch-all vs. saknas), batchning och strukturerad parsning utan att betala extra för varje ”väg”. Egen hosting är också en stor grej om du vill köra många leads utan att hålla koll på task-kvoter. Zapier och Make kan ärligt talat också fungera, men så fort du lägger till ”skrapa profil”, ”researcha företag” och ”generera en 5-mejlssekvens” blir byggena sköra och dyra. Om du är osäker, prata med en automationsexpert och få en rekommendation baserad på din leadvolym.
När det här väl är på plats slutar din LinkedIn-lista att vara ”research” och börjar bli pipeline. Arbetsflödet tar hand om de repetitiva delarna så att du kan fokusera på erbjudanden, targeting och svaren som faktiskt driver intäkter.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.