Ditt lead-ark börjar enkelt. Sedan blir det en röra: saknat antal anställda, “N/A” i omsättning, slumpmässiga LinkedIn-URL:er och samma bolag som dyker upp två gånger under nästan samma namn.
Serper lead enrichment träffar sales ops– och demand gen-team först, eftersom det är de som städar listor precis innan outreach. Men grundare som kör skrappy outbound och konsulter som bygger prospektdatabaser känner av det också. Du vill ha ett ark du kan lita på, inte ett kalkylark du måste passa hela tiden.
Det här n8n-flödet tar råa domäner från Google Sheets, hittar rätt ZoomInfo-företagssida via Serper, hämtar strukturerad firmografi via en Oxylabs-proxy och skriver tillbaka felfritt strukturerade fält till ditt ark. Du får se hur det fungerar, vad du behöver och vad du ska se upp med.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Serper + Google Sheets: berikade leads utan omtag
flowchart LR
subgraph sg0["Manual Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Load Unprocessed Domains", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Process Each Domain", pos: "b", h: 48 }
n3["<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/>Search ZoomInfo via Serper"]
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Search Results Found", pos: "b", h: 48 }
n5["<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/>Extract Domain and ZoomInfo .."]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate if Domain Matches", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Scrape ZoomInfo Page"]
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/html.dark.svg' width='40' height='40' /></div><br/>Extract Company Data"]
n9["<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/>Parse JSON Company Info"]
n10@{ icon: "mdi:database", form: "rounded", label: "Save Company Details", pos: "b", h: 48 }
n11@{ icon: "mdi:database", form: "rounded", label: "Mark Domain as Processed", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Rate Limit Delay", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Processing Delay", pos: "b", h: 48 }
n0 --> n1
n13 --> n11
n12 --> n10
n2 --> n3
n8 --> n9
n10 --> n2
n7 --> n8
n9 --> n12
n1 --> n2
n11 --> n2
n4 --> n5
n4 --> n13
n3 --> n4
n6 --> n7
n6 --> n2
n5 --> n6
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 n4,n6 decision
class n1,n10,n11 database
class n3,n7 api
class n5,n9 code
classDef customIcon fill:none,stroke:none
class n3,n5,n7,n8,n9 customIcon
Problemet: lead enrichment skapar omarbete (och dålig targeting)
Att enrich:a en lista med företagsdomäner låter som en snabb uppgift tills du gör det i skala. Du söker på varje domän, öppnar tre flikar, gissar vilket resultat som är den “officiella” profilen och kopierar sedan in bitar i ett Google Sheet som långsamt blir inkonsekvent. Någon i teamet “fixar” ett företagsnamn, en annan person klistrar in en LinkedIn-länk från en annan entitet och nu skapar din CRM-import dubbletter. Det värsta är tajmingen: du upptäcker oftast luckorna precis innan outreach, när du behövde ren segmentering redan igår.
Friktionen bygger på. Här är var det brukar falla isär.
- Manuell research blir lätt runt 10 minuter per bolag när du räknar in källkoll och formatering av arket.
- Du får felmatchade bolag eftersom sökresultat ser rätt ut vid en snabb blick, men fallerar senare vid personalisering.
- Dubbletter smyger sig in när två personer enrich:ar samma domän olika dagar och namnger den lite olika.
- Din lista över “target accounts” blir gissningslek, så targeting baserad på antal anställda och omsättning får aldrig riktigt fäste.
Lösningen: enrich:a domäner i Sheets med Serper + ZoomInfo-scraping
Det här flödet behandlar ditt Google Sheet som en kö. Det letar efter rader där domänen finns men “processed”-flaggan är tom eller false, och enrich:ar sedan de raderna i batcher. För varje domän använder det Serper för att söka i ZoomInfo med en riktad fråga, validerar resultatet så att du inte skriver skräp-URL:er, och hämtar därefter ZoomInfos företagssida via Oxylabs för att undvika de vanliga blockeringarna vid scraping. Sedan extraherar det strukturerade affärsfält (företagsnamn, adress, bransch, omsättning, antal anställda, LinkedIn-URL med mera). Till sist skriver det tillbaka allt till rätt kolumner och markerar raden som processed, vilket gör att flödet inte loopar över samma bolag igen.
Flödet startas manuellt (eller via schema om du byter trigger). Därefter loopar det igenom obehandlade domäner, enrich:ar dem en och en med rate limiting och slår ihop de extraherade fälten till en samlad uppdatering. Ditt Google Sheet blir ett strukturerat, redo-att-använda dataset för outreach, segmentering eller CRM-importer.
Vad du får: automation vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du har 120 domäner i ett Google Sheet från en lista över webbinariesponsorer. Manuellt blir även en “snabb” genomgång på cirka 10 minuter per domän ungefär 20 timmar, och det lämnar ändå luckor när du blir avbruten. Med det här flödet kör du det en gång, låter det processa i batcher med inbyggd väntan och kollar arket senare. Realistiskt blir din aktiva tid ungefär 10 minuter för att förbereda arket och stickprova några rader, medan enrichment kör i bakgrunden.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger funkar bra)
- Google Sheets för att lagra domäner och enrich:ade resultat
- Serper API för tillförlitlig matchning vid ZoomInfo-sökning
- Oxylabs-uppgifter (hämtar du i din Oxylabs-dashboard)
Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och mappar några kolumner i Google Sheets-noder.
Vill du inte sätta upp det här själv? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Så fungerar det
Det börjar med en lista i Google Sheets. Flödet hittar rader där du har en domän men där processed-kolumnen är tom eller false, så det rör bara det som är nytt.
Sökresultat valideras innan scraping. Serper kör en ZoomInfo-fokuserad sökfråga för varje domän, och en If-kontroll filtrerar bort svaga träffar så att du inte smutsar ner arket med fel företagsprofil.
Flödet scrapar företagssidan på ett säkert sätt. Det hämtar ZoomInfo-sidan via Oxylabs (ett proxylager) och extraherar sedan strukturerade fält som företagsnamn, adress, bransch, omsättning, antal anställda och LinkedIn-URL.
Ditt ark uppdateras och låses in. En sista Google Sheets-uppdatering skriver in de nya värdena och markerar raden som processed, vilket innebär att du kan köra om det när som helst utan att skapa dubbletter.
Du kan enkelt justera sökfrågan för att fokusera på ett annat land, eller ändra vilka kolumner du skriver tillbaka till Google Sheets utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Vanliga fallgropar
- OAuth-inloggning för Google Sheets kan gå ut eller tappa åtkomst när ägaren av arket ändras. Om saker slutar fungera, kontrollera först n8n-uppgiften för Google Sheets och delningsbehörigheterna för filen i Google Drive.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Serper- och Oxylabs-nycklar kan vara giltiga men ändå fallera på grund av rate limits eller blockerade endpoints. Om du börjar se inkonsekventa resultat, sänk batchstorleken och lägg in mer fördröjning mellan anrop.
Vanliga frågor
Cirka 45 minuter om du redan har dina API-nycklar och Google Sheet:et klart.
Nej. Du kopplar främst konton och klistrar in uppgifter i ett par HTTP Request-noder.
Ja. n8n har ett gratisalternativ för egen hosting 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 Serper-krediter och en Oxylabs-prenumeration för scraping.
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änsade körningar men kräver grundläggande serverhantering.
Ja, och det är en av de första justeringarna folk gör. Uppdatera Serper-sökfrågan så att den riktar in sig på din önskade geografi (standard är satt med fokus på Tjeckien). Du kan också ändra vilka fält du extraherar och skriver tillbaka genom att justera kolumnmappningen i Google Sheets. Vill du ha det helt hands-off, byt Manual Trigger mot en Schedule Trigger så att det kör dagligen eller veckovis.
Oftast beror det på att OAuth-åtkomst gått ut eller att behörigheter för arket har ändrats. Återanslut Google Sheets-uppgiften i n8n och bekräfta sedan att Google Sheet:et fortfarande delas med rätt Google-konto. Kontrollera också att du har uppdaterat spreadsheet ID i varje Sheets-nod, inte bara i den första.
Några hundra åt gången är normalt, men den verkliga gränsen är dina Serper-krediter, din Oxylabs-plan och hur aggressivt du rate-limitar anrop.
Ofta, ja, eftersom det här flödet inte bara är “flytta data från A till B”. Du kör batchbearbetning, villkorsstyrd validering och scraping i flera steg, vilket tenderar att bli dyrt eller klumpigt i Zapier. n8n ger dig också en väg för egen hosting när du behöver många körningar utan att bevaka task-limiter. Samtidigt: om du bara behöver en enkel enrichment i två steg med ett enda API-anrop kan Zapier eller Make gå snabbare att sätta upp. Valet handlar oftast om volym och hur mycket kontroll du vill ha över felhantering. Prata med en automationsspecialist om du vill ha en snabb rekommendation för din exakta stack.
När din enrichment rullar som ett bakgrundsjobb slutar arket vara en belastning. Du får bättre targeting, färre dubbletter och en prospektlista du faktiskt kan bygga vidare på.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.