Ditt lead-ark börjar felfritt. Sedan slår verkligheten till. Domäner är fel, bolag byter varumärke, kontakter studsar, och någon i teamet fastnar i att leka ”detektiv” mellan Apollo, LinkedIn och svar i inkorgen.
Det här Apollo lead enrichment-flödet träffar growth marketers först, men sales ops och snabbfotade grundare känner av det också. Du får ett Google Sheet som håller sig uppdaterat, plus ett mänskligt godkännandesteg i Slack så att dåliga domäner inte förgiftar din outreach.
Nedan ser du hur arbetsflödet förvandlar en enkel ”företagslista” till verifierade kontakter som säljteamet faktiskt kan använda – utan att lead gen blir ett heltidsjobb i administration.
Så fungerar automationen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Apollo + Google Sheets: verifierade leads som är klara
flowchart LR
subgraph sg0["Google Sheets Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Google Sheets Trigger", pos: "b", h: 48 }
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/>Apollo Organization Enrichment"]
n2["<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/>Create Apollo People Search .."]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items (1000 per Ba..", 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/>Apollo Find Decision Makers"]
n5@{ icon: "mdi:database", form: "rounded", label: "Add Contacts", 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/>Apollo Enrich Decision Makers"]
n7["<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/>Create Apollo People Enrichm.."]
n8@{ icon: "mdi:database", form: "rounded", label: "Enrich Contacts", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items For Bulk Enr..", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Determine Contact's Department", pos: "b", h: 48 }
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/>Apollo Organization Search"]
n12@{ icon: "mdi:database", form: "rounded", label: "Add Company Website", pos: "b", h: 48 }
n13["<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/slack.svg' width='40' height='40' /></div><br/>Approve Company Website"]
n14@{ icon: "mdi:database", form: "rounded", label: "Add Company Details", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Select Unprocessed Companies", pos: "b", h: 48 }
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Domain Already Provided?", pos: "b", h: 48 }
n17@{ icon: "mdi:robot", form: "rounded", label: "Summarize Core Business", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Batched Decision M..", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Batched Enrichment..", pos: "b", h: 48 }
n24["<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 Rows Which Now All Con.."]
n5 --> n9
n14 --> n3
n12 --> n13
n12 --> n24
n0 --> n15
n17 --> n14
n11 --> n12
n4 --> n3
n16 --> n24
n16 --> n11
n15 --> n16
n6 --> n9
n1 --> n17
n10 --> n5
n2 --> n4
n3 --> n18
n3 --> n2
n19 --> n8
n7 --> n6
n24 --> n1
n18 --> n10
n9 --> n19
n9 --> n7
end
subgraph sg1["Weekly Report Flow"]
direction LR
n20["<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/slack.svg' width='40' height='40' /></div><br/>Send Weekly Report"]
n21@{ icon: "mdi:database", form: "rounded", label: "Retrieve Verified Leads", pos: "b", h: 48 }
n22["<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/>Derive Past Week's Lead Gen..."]
n23@{ icon: "mdi:play-circle", form: "rounded", label: "Weekly Report Trigger", pos: "b", h: 48 }
n23 --> n21
n21 --> n22
n22 --> n20
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,n23 trigger
class n10,n17 ai
class n15,n16 decision
class n5,n8,n12,n14,n21 database
class n1,n4,n6,n11 api
class n2,n7,n22 code
classDef customIcon fill:none,stroke:none
class n1,n2,n4,n6,n7,n11,n13,n24,n20,n22 customIcon
Problemet: din leadlista ser bra ut tills du använder den
Företagsbaserad prospektering faller isär på små, irriterande sätt. Någon klistrar in en domän i ett kalkylark, Apollo returnerar en ”tillräckligt nära”-match, och plötsligt enrichar du fel organisation. Sedan plockar du fram beslutsfattare, men jobbtitlar mappas inte snyggt till avdelningar, så routingen blir rörig och budskapet glider. Och även när du hittar bra kontakter hamnar de utspridda över flikar, exporter och Slack-trådar. Det är inte svårt arbete. Det är den typen av arbete som aldrig tar slut.
Friktionen byggs på. Här är var det oftast fallerar.
- Domänmissar slinker igenom, och en dålig rad kan skapa dussintals dåliga kontakter.
- Manuell enrichment blir en veckoritual av att kopiera fält mellan Apollo och Google Sheets.
- Kontakter blir snabbt inaktuella, så sälj tappar förtroendet och slutar använda listan.
- Det finns inget enkelt verifieringssteg, så teamet börjar diskutera datakvalitet först efter att outreach misslyckas.
Lösningen: Apollo + Google Sheets-enrichment med Slack-verifiering
Det här workflowet gör Google Sheets till din lead-inmatning och din ”source of truth”. När en företagsrad ändras (eller läggs till) kontrollerar n8n om domänen finns och är användbar. Om den behöver slås upp anropar den Apollo för att hitta rätt företagswebbplats och skriver tillbaka den i arket. Sedan skickas ett Slack-meddelande med en snabb godkännandefråga så att en människa kan fånga uppenbara ”fel företag”-träffar innan de hinner multipliceras. När det är godkänt enrichar workflowet organisationen, sammanfattar vad verksamheten gör med en OpenAI-chattmodell och söker i Apollo efter beslutsfattare. Dessa kontakter skrivs till din Contacts-flik, enrichas i batchar och bara de verifierade dyker upp i fliken Contacts (Verified). En veckovis Slack-sammanfattning håller alla synkade på vad som lagts till och bekräftats.
Workflowet börjar i Google Sheets, sedan gör Apollo och AI grovjobbet och Slack fungerar som en kvalitetsgrind. Resultatet är enkelt: en strukturerad lista med verifierade kontakter, plus en alltid uppdaterad företagsrad som hela teamet kan lita på.
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 lägger till 40 företag i veckan i ditt Google Sheet. Manuellt tar det kanske 10 minuter per företag att bekräfta rätt domän, enrich:a orgen i Apollo, hitta 2–3 beslutsfattare och sedan kopiera tillbaka detaljer – alltså cirka 6–7 timmar per vecka. Med det här workflowet är det ”arbetet” att lägga till raden, och Slack-godkännandet tar runt 1 minut per företag, så du landar närmare 40 minuters granskning plus bakgrundsprocessning. Listan kräver fortfarande omdöme. Den kräver inte längre monotont handarbete.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra företag, kontakter och verifierade leads.
- Slack för att godkänna domäner och ta emot veckosammanfattningar.
- Apollo API-nyckel (hämta den i Apollo-kontoinställningar/API).
- OpenAI API-nyckel (hämta den i OpenAI-dashboarden).
Svårighetsgrad: Medel. Du kopplar konton, klistrar in API-nycklar och mappar workflowet till dina flikar i arket och din Slack-kanal.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En företagsrad ändras i Google Sheets. Workflowet lyssnar efter ändringar i din Companies-flik (ett Apps Script sätter Status till Pending när en domän ändras), så det reagerar direkt när ny data dyker upp.
Domän och företagsdetaljer kontrolleras. Om domänen saknas använder det Apollo company lookup för att hitta bästa match och skriver tillbaka webbplatsen i arket. Om domänen finns skickar det raden vidare.
Slack fungerar som en snabb kvalitetsgrind. Ett meddelande skickas för godkännande av webbplatsen, så att någon kan bekräfta ”ja, det är rätt företag” innan enrichment och kontaktidentifiering kör.
Beslutsfattare hittas och enrichas. Apollo organization enrichment fyller på företagsdetaljer, AI sammanfattar verksamheten och en people search hämtar beslutsfattare. Kontakter upsertas i Google Sheets, enrichas i mindre batchar och skrivs sedan in i ”Contacts (Verified)” för säljklar användning.
Du kan enkelt justera godkännandereglerna för att auto-godkänna betrodda domäner eller skicka vissa branscher till en specifik Slack-kanal utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera triggern för kalkylbladsrad
Det här arbetsflödet startar när en ny företagsrad dyker upp och kör även ett veckosammandrag enligt schema.
- Öppna Spreadsheet Row Trigger och välj Document som
[YOUR_ID]och Sheet somCompanies(gid=0). - Ställ in polling-schemat i Spreadsheet Row Trigger så att det kör every X minutes (enligt konfigurationen i Poll Times).
- Öppna Weekly Report Scheduler och bekräfta att den kör veckovis med Interval satt till
weeksoch Trigger At Day satt till5.
Autentiseringsuppgifter krävs: anslut era Google Sheets-autentiseringsuppgifter i Spreadsheet Row Trigger och alla Google Sheets-noder (totalt 5).
Steg 2: anslut Google Sheets
Flera noder läser och skriver till era ark Companies och Contacts; anslut autentiseringsuppgifter och bekräfta arkmappningar.
- I Write Company Website ställer ni Operation till
appendOrUpdateoch bekräftar att mappningen inkluderar Domain som{{ $json.organizations[0].primary_domain }}och Website som{{ $json.organizations[0].website_url }}. - I Update Company Details låter ni Status vara mappad till
Processedoch bekräftar att fält som GPT Company Summary använder{{ $json.message.content }}. - I Upsert Contact Records bekräftar ni att LinkedIn Profile URL är mappad till
{{ $('Split Decision Makers').item.json.linkedin_url }}och GPT Department Classification till{{ $json.message.content }}. - I Update Contact Details ställer ni Email Verified till
{{ $json.email_status === 'verified' ? 'Yes' : 'No' }}. - I Fetch Verified Leads ställer ni filtret till Email Verified =
Yespå arketContacts (Verified).
Autentiseringsuppgifter krävs: anslut era Google Sheets-autentiseringsuppgifter i Write Company Website, Update Company Details, Upsert Contact Records, Update Contact Details och Fetch Verified Leads.
Steg 3: sätt upp filtrering och domänroutning
Det här steget filtrerar bort redan behandlade företag och avgör om saknade domäner ska slås upp.
- I Filter Pending Companies behåller ni villkoret Status notEquals
Processedmed{{ $json.Status }}. - I Check Domain Provided säkerställer ni att villkoret kontrollerar att
{{ $json.Domain }}är notEmpty. - Bekräfta routningen: Spreadsheet Row Trigger → Filter Pending Companies → Check Domain Provided.
- Verifiera att Check Domain Provided skickar rader med domän till Merge Domain-Ready Rows och rader som saknar domän till Apollo Company Lookup.
⚠️ Vanlig fallgrop: om kolumnen Status saknas eller är inkonsekvent kommer Filter Pending Companies att hoppa över rader oavsiktligt.
Steg 4: konfigurera företagsberikning och parallellt godkännande
Företagssökning och berikning sker före AI-sammanfattning och uppdateringar i arket. Godkännande- och berikningsgrenar kör parallellt efter att webbplatsen skrivits.
- I Apollo Company Lookup ställer ni URL till
https://api.apollo.io/api/v1/mixed_companies/searchoch inkluderar query-parametern q_organization_name som{{ $json['Company Name'] }}. - I Apollo Org Enrichment Call ställer ni URL till
https://api.apollo.io/api/v1/organizations/enrichoch sätter domänparametern till{{ $json.Website.extractDomain().replace(/^www\./, '') }}. - Bekräfta den parallella routningen: Write Company Website skickar utdata till både Slack Website Approval och Merge Domain-Ready Rows parallellt.
- I Slack Website Approval behåller ni meddelandet som uppmanar användare att granska fliken Companies för domänens korrekthet.
Autentiseringsuppgifter krävs: anslut era Slack-autentiseringsuppgifter i Slack Website Approval (OAuth2).
Autentiseringsuppgifter krävs: lägg till er Apollo API-nyckel i JSON-headers för Apollo Company Lookup och Apollo Org Enrichment Call (ersätt [CONFIGURE_YOUR_API_KEY]).
Steg 5: sätt upp AI-sammanfattning och klassificering av kontakter
Två OpenAI-drivna noder genererar en affärssammanfattning och klassificerar avdelning för beslutsfattare.
- I Summarize Business Line bekräftar ni att modellen är
gpt-4o-minioch att prompten använder{{ $json["Company Description"] }}. - I Classify Contact Department bekräftar ni att modellen är
gpt-4o-minioch att prompten använder{{ $json.title }}. - Säkerställ att flödet fortsätter från Summarize Business Line till Update Company Details och från Split Decision Makers till Classify Contact Department till Upsert Contact Records.
Autentiseringsuppgifter krävs: anslut era OpenAI-autentiseringsuppgifter i Summarize Business Line och Classify Contact Department.
Steg 6: konfigurera upptäckt av beslutsfattare och berikningsbatchar
Den här fasen bygger Apollo-sök-URL:en, loopar igenom batchar och berikar kontakter.
- I Build People Search URL behåller ni JS-koden som skapar URL:en med
person_seniorities[],q_organization_domains_list[]ochper_page=10. - I Apollo Decision Maker Search ställer ni URL till
{{ $json.url }}och behåller headers med er Apollo API-nyckel. - I Batch Loop 1000 Items behåller ni Batch Size på
1000och bekräftar att den routar till Split Decision Makers och tillbaka till Build People Search URL för looping. - I Batch Loop 10 Records behåller ni Batch Size på
10och bekräftar att den routar till både Split Enrichment Matches och Compose Enrichment Payload. - I Compose Enrichment Payload behåller ni koden som mappar
linkedin_urlochdomaintill endetails-array. - I Apollo People Enrichment ställer ni URL till
https://api.apollo.io/api/v1/people/bulk_match?reveal_personal_emails=false&reveal_phone_number=falseoch JSON Body till{{ $json }}.
Autentiseringsuppgifter krävs: lägg till er Apollo API-nyckel i JSON-headers för Apollo Decision Maker Search och Apollo People Enrichment (ersätt [CONFIGURE_YOUR_API_KEY]).
Steg 7: konfigurera veckovis sammanfattningsrapportering
Veckorapporten hämtar verifierade leads, beräknar statistik och publicerar till Slack.
- I Fetch Verified Leads verifierar ni att filtret matchar Email Verified =
Yes. - I Compute Weekly Lead Stats behåller ni JS-koden som ger utdata
message,companiesochcontacts. - I Post Weekly Summary ställer ni Text till
{{ $json.message }}och väljer rätt Slack-kanal.
Autentiseringsuppgifter krävs: anslut era Slack-autentiseringsuppgifter i Post Weekly Summary (OAuth2).
Steg 8: testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta berikning, Slack-granskning och rapporteringssteg.
- Kör Spreadsheet Row Trigger manuellt med en testföretagsrad (med och utan domän) för att bekräfta att båda grenarna fungerar.
- Bekräfta att Write Company Website uppdaterar arket Companies och att Slack Website Approval tar emot begäran om godkännande.
- Verifiera berikningsuppdateringar i Update Company Details och kontakt-skrivningar i Upsert Contact Records och Update Contact Details.
- Kör Weekly Report Scheduler manuellt för att säkerställa att Post Weekly Summary publicerar ett meddelande som
This week we discovered X decision makers from Y companies. - När testningen lyckas, växla arbetsflödet till Active så att båda triggers körs i produktion.
Vanliga fallgropar
- Apollo-credentials kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först status på din Apollo API-nyckel och åtkomst i din plan i Apollo-inställningarna.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att sitta och redigera output för alltid.
Vanliga frågor
Cirka en timme om ditt ark och dina API-nycklar är redo.
Nej, ingen kodning krävs. Du kopplar främst konton och matchar dina kolumner i Google Sheet mot rätt fält.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på $20/månad för högre volym. Du behöver också räkna in Apollo API-åtkomst och OpenAI API-användning (oftast småsummor per körning för korta sammanfattningar).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serveradministration.
Ja, och det är en av de bästa justeringarna du kan göra. Du kan skicka meddelandet ”Slack Website Approval” till olika kanaler beroende på bransch, auto-godkänna domäner från en betrodd lista eller ändra villkoret i logiken ”Check Domain Provided” så att bara vissa rader kräver granskning. Många team justerar också AI-prompterna i noderna ”Summarize Business Line” och ”Classify Contact Department” för att matcha hur deras CRM segmenterar konton.
Oftast beror det på en utgången eller felaktig Apollo API-nyckel. Uppdatera credential i n8n, kör sedan om en företagsrad och bekräfta att Apollo-endpoints du använder är aktiverade i din plan; om de inte är det kommer HTTP Request-noderna att fallera även om nyckeln ”fungerar”. Rate limits kan också dyka upp när du processar stora batchar, så att minska batchstorleken eller sprida ut körningarna kan stabilisera flödet.
Många, men dina begränsningar kommer från din n8n-plan och din Apollo API-kvot, inte från kalkylarket. Med n8n Cloud Starter kan du köra ett visst antal exekveringar per månad, och högre planer klarar mer; om du self-hostar finns ingen exekveringsgräns (då blir servern begränsningen). Workflowet batchar också arbetet (till exempel enrichment i grupper om 10), vilket gör att det kör stabilt även när du lägger till hundratals företag på en gång. Om du regelbundet lägger till tusentals, räkna med att justera batchstorlekar och schemaläggning för att matcha Apollos rate limits.
Ofta, ja. Det här workflowet bygger på flerstegs-branching, batchning och HTTP-anrop till Apollo, och n8n hanterar det utan att varje extra väg blir en ny betald ”task”. Det är också enklare att hålla ett korrekt upsert-mönster in i Google Sheets så att dubbletter inte smyger in. Zapier eller Make kan fungera för ett enkelt ”ny rad → enrich → posta meddelande”, men när du lägger till godkännandesteg, bulk-enrichment och veckorapportering brukar n8n kännas mindre skört. Prata med en automationsexpert om du vill ha hjälp att välja rätt plattform.
Det bästa är förtroendet du får tillbaka. När sälj öppnar ”Contacts (Verified)” slutar de fundera på om listan är skräp och börjar använda den.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.