Att bygga en lokal leadlista låter enkelt tills du har 40 flikar öppna i Google Maps, sitter och kopierar telefonnummer manuellt och ändå saknar ägarens namn.
Marknadschefer känner av det här när outreach stannar av. En lokal SEO-konsult hamnar i research i stället för strategi. Och byråägare betalar för timmar av ”datainmatning” som aldrig syns i ett förslag. Den här automatiseringen för Google Maps-leads gör en sökning som ”Tandläkare i Miami” till ett berikat Google Sheet som du faktiskt kan använda.
Du får se hur arbetsflödet hämtar listningar, tar bort dubbletter, berikar varje företag via deras webbplats och sedan loggar korrekt formaterade rader i Google Sheets för outreach eller CRM-import.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutlig output:
n8n Workflow Template: Google Maps till Sheets: berikade leads, klara
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/>scrape information"]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "parsedInfo", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Remove Duplicates", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", 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/>scrape the name"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "name", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n9 --> n5
n7 --> n8
n3 --> n4
n2 --> n3
n5 --> n6
n6 --> n7
n4 --> n5
n0 --> n1
n1 --> n2
n8 --> n9
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 n8 database
class n1,n6 api
classDef customIcon fill:none,stroke:none
class n0,n1,n6 customIcon
Problemet: Google Maps-leads tar en evighet att sammanställa
Manuell prospektering i Google Maps är den typen av uppgift som ser harmlös ut i en att-göra-lista, men som i tysthet äter upp din vecka. Du söker. Du öppnar en listning. Du kopierar namn, webbplats, telefon, plats. Sedan inser du att webbplatsen kanske har ägarens namn (eller åtminstone en kontaktmejl), så du börjar gräva i Om-sidor och sidfötter. Vid lead 20 är du trött, inkonsekvent och ärligt talat mer benägen att missa de bästa prospekten eftersom du stressade igenom researchen.
Det går snabbt att summera. Här är var det faller isär i verkligheten.
- Du lägger cirka 5 minuter per listning bara på att samla in grunderna, och berikning tar ytterligare 5 minuter när du kollar webbplatsen.
- Dubbletter smyger sig in eftersom samma företag dyker upp i flera map packs eller i lite olika sökvarianter.
- Ägarnamn och mejladresser blir tomma, så outreach blir generisk och svarsfrekvensen sjunker.
- Din ”leadlista” är egentligen inget system, vilket innebär att du upprepar samma manuella jobb varje gång du går in i en ny stad eller nisch.
Lösningen: skrapa, avduplicera, berika och logga leads automatiskt
Det här n8n-arbetsflödet gör en enkel förfrågan (stad + företagstyp) till en strukturerad, berikad leadlista i Google Sheets. Det startar när någon skickar in ett formulär som ”Rörmokare i Austin”. n8n skickar den frågan till Olostep API för att hämta Google Maps-listningar och konverterar sedan svaret till strukturerade, radklara poster. Därefter tas dubbletter bort så att arket förblir användbart. Sedan loopar arbetsflödet igenom varje företag och kör en andra Olostep-skrapning mot företagets webbplats för att hitta namn på beslutsfattare (vd, grundare etc.) och, när det finns, en kontaktmejl. Till sist lägger det till en prydlig rad per lead i Google Sheets och väntar mellan batcher för att hålla sig inom rate limits.
Arbetsflödet startar med en formulärinsändning. Sedan hämtar det Google Maps-listningar, städar och avduplicerar dem och berikar varje lead från företagets webbplats. Slutresultatet är ett Google Sheet som du kan filtrera, tilldela och använda för outreach utan den vanliga röran.
Vad du får: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du vill ha 50 leads för ”Takläggare i Phoenix”. Manuellt kanske du lägger runt 10 minuter per företag (Maps-grunder plus en snabb webbplatskoll), vilket är cirka 8 timmar av monotont arbete. Med det här arbetsflödet tar det kanske 2 minuter att skicka in formuläret, och sedan kör n8n igenom batchen automatiskt med inbyggda fördröjningar medan det berikar varje webbplats. Du granskar det färdiga Google Sheetet när det är klart, och ditt ”jobb” är i princip att filtrera och starta outreach.
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)
- Olostep API för att skrapa Google Maps och webbplatser
- Google Sheets för att lagra de slutliga ledraderna
- Olostep API-nyckel (hämta den i din Olostep-dashboard)
Kunskapsnivå: Nybörjare. Du kopplar konton, klistrar in en API-nyckel och mappar några fält till dina kolumner i Google Sheet.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En formulärinsändning startar körningen. Du anger en stad och företagstyp (som ”Tandläkare i Miami”) och skickar in. Den enda inputen blir sökfrågan för skrapningen.
Google Maps-listningar hämtas och städas. n8n anropar Olostep, tar emot en JSON-payload med kartlistningar och formar om den till konsekventa poster (namn, plats, webbplats, telefon). Snabb städning här förhindrar röriga ark senare.
Dubbletter tas bort, sedan berikas varje företag. Arbetsflödet filtrerar bort upprepade listningar och loopar över kvarvarande företag i batcher. För varje företag skrapar det företagets webbplats för att hitta namn på beslutsfattare och eventuella offentliga kontaktmejl det kan upptäcka.
Leads läggs till i Google Sheets med inbyggd fördröjning. Varje berikat lead blir en ny rad i ditt ark, och sedan pausar arbetsflödet kort mellan körningar så att du inte triggar rate limits eller får tomma svar från datakällan.
Du kan enkelt modifiera berikningsfälten för att fånga extra data som betyg, kategorier eller sociala länkar baserat på dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera triggern för formulärinskick
Konfigurera formuläret som startar arbetsflödet och fångar upp sökparametrarna som används för att skrapa Google Maps.
- Lägg till noden Form Submission Trigger och öppna dess inställningar.
- Ställ in Form Title till
Olostep lead generation. - Ställ in Form Description till
enter the required fields to start!. - Under Form Fields, skapa två obligatoriska fält: City (platshållare
London) och business (platshållareDentist). - Koppla Form Submission Trigger till Fetch Map Listings.
Steg 2: Anslut Olostep-skrapningsanrop
Konfigurera de två HTTP-skrapningsanropen som hämtar listningar från Google Maps och kontaktuppgifter från varje företags webbplats.
- I Fetch Map Listings, ställ in URL till
https://api.olostep.com/v1/scrapesoch Method tillPOST. - Ställ in JSON Body till det angivna uttrycket så att sök-URL:en använder formulärinmatningen:
https://www.google.com/maps/search/{{ $json.City }}+{{ $json.business }}. - I Fetch Map Listings, ställ in headern Authorization till
Bearer [CONFIGURE_YOUR_TOKEN]och ersätt den med er Olostep-token. - I Fetch Contact Details, ställ in URL till
https://api.olostep.com/v1/scrapesoch Method tillPOST. - Ställ in JSON Body i Fetch Contact Details så att den använder listningens webbplats:
{{ $json.website}}. - Ställ in headern Authorization i Fetch Contact Details till
Bearer [CONFIGURE_YOUR_TOKEN]och ersätt den med er Olostep-token. - Koppla Fetch Map Listings → Prepare Listing JSON och Fetch Contact Details → Parse Contact JSON.
⚠️ Vanlig fallgrop: Om Authorization-token saknas eller är ogiltig kommer båda HTTP-anropen att misslyckas även om arbetsflödet fortsätter. Säkerställ att headervärdet uppdateras i både Fetch Map Listings och Fetch Contact Details.
Steg 3: Konfigurera parsning av listningar och borttagning av dubletter
Omvandla det råa listningssvaret till en ren array, dela upp den i enskilda poster och ta bort dubletter.
- I Prepare Listing JSON, lägg till en assignment med namnet parsedJson med typen array och värdet
{{ $json.result.json_content.replace(/\\/g, '') }}. - I Split Listing Records, ställ in Field To Split Out till
parsedJson. - Låt Deduplicate Records vara kvar på standardinställningarna för att ta bort upprepade listningar.
- Koppla Prepare Listing JSON → Split Listing Records → Deduplicate Records → Iterate Listings.
Steg 4: Konfigurera kontaktparsning och tillägg av leads
Parsa svaret från kontaktextraktionen och mappa data till Google Sheets.
- I Parse Contact JSON, lägg till en assignment med namnet parsedJson med typen object och värdet
{{ $json.result.json_content.replace(/\\/g, '') }}. - I Append Lead Row, ställ in Operation till
append. - Välj målarket i Document ID och målfliken i Sheet Name.
- Mappa kolumner med de angivna uttrycken, inklusive
{{ $('Iterate Listings').item.json.name || "not found" }},{{ $('Iterate Listings').item.json.website || "not found" }}och{{ $json.parsedJson.email || "not found"}}. - Koppla Parse Contact JSON → Append Lead Row.
Inloggning krävs: Anslut era Google Sheets-inloggningsuppgifter i Append Lead Row.
Steg 5: Konfigurera batchning och fördröjningsloop
Styr iterationen över listningar och lägg till en fördröjning mellan varje tillägg för att undvika rate limits.
- I Iterate Listings, behåll standardinställningarna för batchar om ni inte vill begränsa volymen per körning.
- Bekräfta att den sekundära utgången från Iterate Listings är kopplad till Fetch Contact Details.
- Koppla Append Lead Row → Delay Interval → Iterate Listings för att skapa loopen.
Tips: Om ni stöter på API-rate limits, öka väntetiden i Delay Interval eller begränsa batchstorlekarna i Iterate Listings.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att era formulärinmatningar genererar leads och lägger till rader i ert kalkylark, och aktivera sedan arbetsflödet.
- Klicka på Execute Workflow och skicka in formuläret från Form Submission Trigger med en teststad och en typ av verksamhet.
- Verifiera att Fetch Map Listings returnerar en JSON-payload och att Prepare Listing JSON skapar
parsedJson. - Bekräfta att Append Lead Row skriver en ny rad med namn, webbplats, plats, telefon och kontaktfält.
- När resultaten ser korrekta ut, slå på arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Olostep-inloggningar kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först din Olostep-dashboard och credential-inställningarna i n8n.
- 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 att redigera outputen i all evighet.
Vanliga frågor
Cirka 30 minuter om din Olostep-nyckel och ditt Google Sheet är redo.
Nej. Du klistrar mest in en API-nyckel och matchar fält mot dina kolumner i Google Sheets.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in Olostep API-kostnader baserat på hur många listningar och webbplatser du skrapar.
Två alternativ: n8n Cloud (managed, enklast att sätta upp) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det är det bästa. Du kan utöka mappningen i ”Parse Contact JSON” för att spara extra fält som sociala länkar, kategorier eller en kort företagsbeskrivning och sedan lägga till nya kolumner i Google Sheets som matchar. Många team justerar också webbplatsskrapningen för att titta specifikt på Kontakt- eller Om-sidor när startsidan är tunn. Om du vill ha notiser kan du lägga till ett Telegram- eller mejlsteg när batchen är klar.
Oftast är det ett behörighetsproblem i målarket, eller att namn på sheet/flik har ändrats efter att du mappade fält i n8n. Anslut dina Google Sheets-credentials igen och välj sedan kalkylarket och worksheet på nytt i steget ”Append Lead Row” så att kolumnmappningen uppdateras. Kontrollera också att ditt Google-konto faktiskt kan redigera arket (inte bara visa). Om du försöker lägga till i ett skyddat område blockerar Google det utan att säga så mycket.
Några hundra per körning är realistiskt för de flesta team. Sedan finjusterar du batchstorlek och väntetid utifrån Olostep-begränsningar och din n8n-plan.
Ofta ja, eftersom den här typen av skrapnings- och berikningsflöde behöver loopar, avduplicering och kontroll över ”wait”, vilket blir klumpigt (och dyrt) i enklare automationsverktyg. n8n hanterar batcher naturligt, vilket spelar roll när du bearbetar dussintals listningar åt gången. Du får också möjligheten att self-hosta, vilket är hjälpsamt om du kör detta ofta. Zapier eller Make kan fortfarande fungera om du håller arbetsflödet väldigt litet, men du kommer oftast att slå i gränser när du lägger till berikning. Prata med en automationsexpert om du vill ha en snabb rekommendation för din exakta volym.
Ett felfritt, berikat leadark ändrar tempot i outreach. Sätt upp det här en gång och lägg sedan tiden på målgrupp och budskap i stället för manuellt copy-paste-jobb.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.