LinkedIn-outreach blir snabbt rörigt. Leads finns i Apollo, anteckningar hamnar i DM:s och din “single source of truth” är… ett halvt uppdaterat kalkylark som ingen litar på.
Tillväxtmarknadsförare känner det när kampanjer stannar av. Säljare känner det när uppföljningar glider igenom. Byråoperatörer som försöker hålla flera kunder i rörelse känner det också. Den här Apollo Sheets-outreach-automationen samlar allt på ett ställe och gör att dina kontaktförfrågningar känns personliga, inte spammiga.
Du får se hur det här n8n-flödet förvandlar en målgruppsbeskrivning på vanlig svenska till Apollo-leads, skapar AI-icebreakers, loggar varje prospekt i Google Sheets (med en struktur som gör det lätt att undvika dubbletter) och startar sedan PhantomBuster för att skicka inbjudningar.
Så fungerar den här automationen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Apollo + Google Sheets: ordning i LinkedIn-outreach
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n1["<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/>Run Apify Actor & Get Results"]
n2@{ icon: "mdi:robot", form: "rounded", label: "Generate Search URL", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Limit", pos: "b", h: 48 }
n4["<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/>Trigger PhantomBuster Agent"]
n5@{ icon: "mdi:database", form: "rounded", label: "Add to Google Sheet", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "Personalize Outreach", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n3 --> n6
n7 --> n4
n0 --> n2
n5 --> n7
n2 --> n1
n6 --> n5
n1 --> n3
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 n2,n6 ai
class n5 database
class n1,n4 api
classDef customIcon fill:none,stroke:none
class n0,n1,n4 customIcon
Problemet: LinkedIn-outreach blir till kalkylarkskaos
Outreach faller oftast isär på de tråkiga ställena. Du bygger en leadlista, exporterar den, rensar den, klistrar in den i ett ark och skriver sedan om meddelanden ett och ett eftersom generiska inbjudningar ignoreras. Sedan gör du om allt nästa vecka, men nu har du dubbletter, saknade fält och inget pålitligt sätt att se vem som kontaktats, vem som accepterat och vem som behöver en uppföljning. Det värsta är den mentala belastningen. Du lägger dina bästa timmar på att vakta data i stället för att prata med rätt personer.
Friktionen växer. Här är var det brukar brista i praktiken.
- Lead-exporter från Apollo görs om gång på gång, vilket gör att listkvaliteten glider över tid.
- Personalisering blir “jag tar det senare”, eftersom det är utmattande att skriva 50 vettiga icebreakers.
- Dubbletter smyger sig in, så två kollegor kan skriva till samma prospekt och framstå som slarviga.
- Utan korrekt formaterad statusspårning blir uppföljningstiming en gissningslek och svar missas.
Lösningen: Apollo-leads + AI-icebreakers, spårat i Sheets
Det här flödet ger dig en samlad, repeterbar pipeline för LinkedIn-prospektering. Det börjar med ett enkelt formulär där du beskriver din ideala målgrupp med vanlig svenska (bransch, roll, plats, företagsstorlek, nyckelord). n8n använder OpenAI för att omvandla beskrivningen till en korrekt formaterad Apollo-sök-URL, och därefter triggar ett HTTP-anrop en Apify-scrape som hämtar leaddata i skala. Sedan bearbetas leads i kontrollerade batchar så att du inte överbelastar efterföljande steg eller ditt outreach-verktyg. För varje lead genererar OpenAI en kort, specifik icebreaker baserad på profil- och anställningsdetaljer. Till sist läggs allt till i Google Sheets med konsekventa kolumner, och PhantomBuster triggas för att skicka kontaktförfrågningar med de personliga meddelandena.
Workflowet startar med en formulärinsändning. Sedan gör det om din targeting till en Apollo-fråga, hämtar matchande prospekt via Apify och skapar en icebreaker per person. Google Sheets blir kampanjens loggbok, och PhantomBuster läser från loggboken för att köra dina LinkedIn-inbjudningar utan manuell kopiering.
Vad du får: automation vs. resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du vill nå 100 nya prospekt i veckan. Manuellt tar det ofta 2 minuter att hitta varje profil, ytterligare en minut att logga den och cirka 2 minuter att skriva en inbjudan som inte känns pinsam, vilket är ungefär 8 timmar av monotont arbete. Med det här flödet lägger du cirka 5 minuter på att beskriva målgruppen i formuläret och låter sedan körningen samla in och berika leads i bakgrunden. Du granskar arket, stickprovar några icebreakers och startar PhantomBuster. De flesta team har veckans lista klar på under en timme.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Apollo för att ta fram riktade leadlistor
- Google Sheets för att spåra leads och statusar
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden)
- Apify API-token (hämta den i Apify Console-inställningar)
- PhantomBuster API-nyckel (hämta den i PhantomBuster-kontoinställningar)
Kunskapsnivå: Medel. Du kopplar några konton, mappar fält till ett Sheet och rimlighetskontrollerar API-svar.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Insändning av målgruppsformulär. Du skriver en beskrivning på vanlig svenska av vilka du vill nå. Tänk “VP Marketing på B2B SaaS i Storbritannien, 50–200 anställda”, plus eventuella nyckelord som är viktiga.
Targeting blir en Apollo-sökning. OpenAI omvandlar din beskrivning till en användbar Apollo-sök-URL, så att du slipper pilla med filter tills något “ser rätt ut”.
Leads samlas in och berikas i batchar. n8n anropar Apify via HTTP Request för att hämta Apollo-leaddata och begränsar sedan hur många objekt som bearbetas samtidigt. Det håller workflowet stabilt när du hämtar hundratals leads.
Icebreakers och spårning sker automatiskt. OpenAI skriver en icebreaker per lead, workflowet lägger till allt i Google Sheets (med konsekventa kolumnrubriker) och PhantomBuster triggas sedan för att skicka kontaktförfrågningar med arket som källa.
Du kan enkelt justera meddelandemallen så att den matchar ert varumärkes ton och erbjudande. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera formulärtriggern
Konfigurera intagsformuläret som startar arbetsflödet och fångar målgruppsbeskrivningen.
- Lägg till och öppna Form Intake Trigger.
- Ställ in Form Title till
LinkedIn Lead Outreach Trigger. - Ställ in Form Description till
Insert an audience for your LinkedIn Outreach Campaign here.. - I Form Fields behåller ni textfältet märkt
Describe your audience in plain English.. - Autentiseringsuppgifter krävs: Anslut era
httpBasicAuth-uppgifter.
Steg 2: anslut Apify- och PhantomBuster-HTTP-åtgärder
Konfigurera utgående API-anrop som hämtar leads och triggar PhantomBuster.
- Öppna Execute Apify Fetch och ställ in URL till
https://api.apify.com/v2/acts/jljBwyyQakqrL1wae/run-sync-get-dataset-items. - Ställ in Method till
POSToch Specify Body tillJSON. - Ställ in JSON Body till
={ "getPersonalEmails": true, "getWorkEmails": true, "totalRecords": 500, "url": "{{ $json.message.content.searchUrl }}" }. - I Header Parameters ställer ni in
AuthorizationtillBearer [CONFIGURE_YOUR_TOKEN]och ersätter med er Apify-token. - Öppna Launch PhantomBuster Run och ställ in URL till
https://api.phantombuster.com/api/v2/agents/launch. - Ställ in Method till
POSToch i Header Parameters ställer ni inX-Phantombuster-Keytill[CONFIGURE_YOUR_API_KEY]. - I Body Parameters ställer ni in id till
[YOUR_ID]för PhantomBuster-agenten.
Steg 3: konfigurera AI-bearbetningsnoderna
Använd OpenAI för att generera sök-URL:en och personlig icebreaker-text.
- Öppna Create Search Link och behåll JSON Output aktiverat.
- Säkerställ att användarmeddelandet använder uttrycket
{{ $json['Describe your audience in plain English.'] }}för att skicka vidare formulärinmatningen. - Autentiseringsuppgifter krävs: Anslut era
openAiApi-uppgifter. - Öppna Craft Icebreaker Text och behåll JSON Output aktiverat.
- Verifiera att det sista användarmeddelandet innehåller uttrycket
={"linkedInFields":"{{ $json.first_name }} {{ $json.last_name }}, {{ $json.city }}, {{ $json.title }} at {{ $json.employment_history[0].organization_name }}, previous experience: {{ $json.employment_history[1].title }} at {{ $json.employment_history[1].organization_name }}, {{ $json.employment_history[2].title }} at {{ $json.employment_history[2].organization_name }}"}. - Autentiseringsuppgifter krävs: Anslut era
openAiApi-uppgifter.
Steg 4: konfigurera utdata och aggregering
Begränsa batchstorleken, skriv leaddata till Google Sheets och aggregera objekt innan PhantomBuster triggas.
- Öppna Restrict Batch Size och ställ in Max Items till
3. - Öppna Append Leads to Sheet och ställ in Operation till
appendOrUpdate. - Ställ in Document ID till
[YOUR_ID]och Sheet Name tillgid=[YOUR_ID]baserat på ert Google Sheet. - I Columns mappar ni fält med uttryck som
={{ $('Restrict Batch Size').item.json.id }}och={{ $json.message.content.icebreaker }}. - Autentiseringsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-uppgifter. - Öppna Combine Lead Batch och ställ in Aggregate till
aggregateAllItemData.
Steg 5: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera formulärintaget, AI-utdata och efterföljande API-anrop.
- Klicka på Execute Workflow och skicka in ett exempel via Form Intake Trigger.
- Bekräfta att Create Search Link returnerar ett JSON-objekt som innehåller
searchUrl. - Verifiera att Execute Apify Fetch returnerar lead-objekt och att Restrict Batch Size begränsar till
3poster. - Kontrollera att Craft Icebreaker Text skriver ut
icebreakeri JSON och att Append Leads to Sheet skriver nya rader. - Bekräfta att Launch PhantomBuster Run returnerar ett lyckat svar från API:et.
- När allt fungerar växlar ni arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Behörigheter i Google Sheets är den tysta mördaren. Om rader slutar läggas till, kontrollera det anslutna Google-kontot i n8n-credentials och bekräfta att arket är korrekt delat.
- Om du använder Wait-noder eller extern rendering varierar processtider. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- OpenAI-prompter som är för generiska skapar intetsägande inbjudningar. Lägg in er positionering och några “vad vi gör”-exempel tidigt, annars kommer du redigera utdata i all oändlighet.
Vanliga frågor
Cirka 1–2 timmar om dina konton och API-nycklar är klara.
Nej. Du kopplar främst credentials och mappar fält till ditt Sheet.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Molnplaner startar på 20 USD/månad för högre volymer. Du behöver också räkna in användning av OpenAI, Apify och PhantomBuster (många team hamnar runt 50 USD/månad totalt för den här stacken).
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 obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Byt prompten i OpenAI-noden “Craft Icebreaker Text” så att den matchar din ton, ditt erbjudande och dina compliance-regler. Vanliga justeringar är att lägga in en strikt teckenbegränsning, tvinga fram ett första meddelande utan pitch eller lägga till en dynamisk rad baserat på jobbtitel (till exempel olika öppningar för sälj vs. marknad). Du kan också ändra kolumnerna i arket så att teamet kan godkänna meddelanden innan PhantomBuster kör.
Oftast är det en utgången OAuth-session eller att fel Google-konto är anslutet. Autentisera om Google Sheets-credential i n8n och bekräfta sedan att Sheet ID i noden “Append Leads to Sheet” matchar den faktiska filen. Kontrollera också delningsbehörigheter, särskilt om arket ligger på en delad enhet med striktare åtkomstregler.
Hundratals per körning.
Ofta ja, eftersom det här flödet drar nytta av batchning, villkorslogik och att kedja flera HTTP-anrop utan att bli en skör labyrint. n8n ger dig också möjligheten till egen hosting, vilket är viktigt när du kör många exekveringar och vill undvika prischocker per uppgift. En annan fördel är transparens: du kan se exakt vilken data som gick in i en icebreaker och vad som skrevs till Google Sheets. Zapier eller Make kan fortfarande fungera bra för ett lättviktigt “lägg till rad i ett ark”-case, men end-to-end-prospektering växer ofta ur enkla zaps. Om du är osäker kan du prata med en automationsexpert och få en rak rekommendation.
När det här väl rullar slutar din LinkedIn-outreach att leva på fem ställen samtidigt. Workflowet tar hand om det repetitiva, så att du kan fokusera på samtal som faktiskt blir pipeline.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.