Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Google Maps till Google Sheets: rensade e-postleads

Rickard Andersson Partner, Nodenordic.se

Du hittar en bra nisch. Du öppnar Google Maps. Sedan börjar du kopiera namn, webbplatser och “kanske” e-postadresser till ett ark. Tjugo minuter senare är raderna en röra och hälften av sajterna har inte ens kontaktuppgifter.

Marknadschefer som försöker mata outreach-kampanjer känner av det här snabbt. Detsamma gäller byråägare som bygger listor åt kunder och solokonsulter som bara vill ha leads från Google Maps utan att betala för ännu en databas. Målet är enkelt: en felfri, användbar lista som du faktiskt kan mejla.

Det här n8n-flödet gör Google Maps-sökningar till avduplicerade, konsekventa rader i Google Sheets med riktiga webbplatser och företagsmejladresser. Du får se hur det fungerar, vad du behöver och var folk brukar köra fast.

Så fungerar den här automationen

Se hur detta löser problemet:

n8n Workflow Template: Google Maps till Google Sheets: rensade e-postleads

Utmaningen: bygga outreach-listor som inte faller isär

Google Maps ser ut som en guldgruva tills du försöker göra om det till en outreach-lista. Du tar ett företagsnamn, klistrar in en URL, öppnar webbplatsen, letar efter en kontaktsida och upprepar. Multiplicera det med 50 eller 200 listningar. Det är inte bara långsamt. Det är mentalt utmattande, och det är lätt att “råka” hoppa över de tråkiga stegen (vilket betyder att du mejlar färre verkliga beslutsfattare). Dessutom är datan inkonsekvent. Vissa rader har webbplatser, andra inte. Vissa “mejl” är bara sociala länkar. En vecka senare litar du inte ens på ditt eget ark.

Här är var det brukar haverera i verkligheten.

  • Att öppna webbplatser manuellt för varje listning kan ta cirka 5 minuter per styck, och du missar ändå mejladresser som gömmer sig i footers eller på integritetssidor.
  • Google Maps visar ofta spårningslänkar eller interna Google-URL:er, så din kolumn “webbplats” blir oanvändbar för scraping.
  • Dubbletter smyger sig in från liknande sökningar (“Miami lawyers” och “Miami injury lawyer”), så outreach blir rörigt och pinsamt.
  • Även när du hittar en mejladress varierar formateringen, raderna blir inkonsekventa och listan behöver rensas innan den är säker att skicka.

Lösningen: Google Maps → webbplatser → e-post → felfritt Google Sheet

Det här flödet bygger en praktisk lead-motor med n8n och vanliga HTTP-anrop, så du inte låses in i betalda leaddatabaser eller dyra scraping-API:er. Det startar med en lista av sökfrågor som du styr själv (som “Calgary dentist” eller “Miami lawyers”). För varje fråga hämtar det listningsdata från Google Maps, plockar ut riktiga webbplats-URL:er och filtrerar bort skräplänkar. Sedan besöker det varje webbplats, skannar sidinnehållet och plockar ut e-postadresser med mönstermatchning (i praktiken smart textparsning). Till sist städar det upp allt: tar bort tomma värden, avduplicerar och skickar konsekventa rader till en Google Sheets-flik som är redo för outreach.

Flödet startar via en chatt-liknande trigger i n8n och kör sedan Google Maps-sökningen via HTTP. Därefter extraherar och validerar kodsteg webblänkar, sedan hämtar ett nytt HTTP-anrop webbplatsinnehåll och tolkar fram e-postadresser. I slutet läggs de avduplicerade resultaten prydligt till i Google Sheets.

Vad som förändras: före kontra efter

Praktisk effekt i verkligheten

Säg att du kör 5 Google Maps-sökningar och hämtar 20 listningar per sökning (cirka 100 företag). Om du lägger ungefär 5 minuter per företag på att öppna sajten, leta efter en mejladress och klistra in allt i ett kalkylark, blir det cirka 8 timmar monotont arbete. Med det här flödet är den “manuella” delen att lägga in de 5 sökningarna i ditt Sheet och starta körningen, vilket tar kanske 10 minuter. Själva scraping och parsning tar tid att processa, men du behöver inte sitta och passa det, och resultaten hamnar i din e-postflik redo att användas.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra sökningar och resultat.
  • Google-kontouppgifter för att låta n8n skriva rader.
  • Åtkomst till målwebbplatser (vissa sajter blockerar scraping).

Kunskapsnivå: Medel. Du klistrar in ett Sheet-ID, kopplar Google-uppgifter och är bekväm med att testa små batcher först.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Flödet steg för steg

En chatt-trigger drar igång. Du startar körningen från n8n (flödet använder en chat input-trigger), vilket är smidigt när du vill testa snabbt utan att sätta upp schemaläggning direkt.

Google Maps frågas via HTTP. Flödet skickar din sökfråga till Google Maps, samlar in listningsdata och använder sedan ett kodsteg för att plocka ut webbplatslänkar i ett användbart format.

Länkar rensas och körs i batcher. Filter tar bort Google-ägda URL:er, dubbletter tas bort och en split-in-batches-loop styr hur snabbt flödet besöker webbplatser. Wait-steg lägger in fördröjningar så att du inte belastar sajter och blir blockerad.

Webbplatser hämtas, mejl extraheras och arket uppdateras. Ett annat HTTP-anrop laddar ner varje webbplats innehåll, koden för mejlparsning hittar sannolika adresser, tomma resultat kastas och den slutliga avduplicerade e-postlistan läggs till i din Google Sheets-flik “emails”.

Du kan enkelt ändra fliken för sökningar för att rikta in dig på andra städer eller nischer beroende på behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera Chat Input Trigger

Starta arbetsflödet med en chattbaserad trigger som fångar Maps-sökfrågan.

  1. Lägg till och öppna Chat Input Trigger.
  2. Behåll standardinställningarna eller anpassa chattupplevelsen i Options vid behov.
  3. Koppla Chat Input Trigger till Query Maps Search för att skicka vidare användarens {{$json.chatInput}}.

Tips: Ni kan lämna Flowpast Branding som en sticky note för dokumentation – det påverkar inte körningen.

Steg 2: Bygg kedjan för Maps-sökning och länkextrahering

Hämta Google Maps-resultat, extrahera webbplatslänkar och ta bort oönskade Google-URL:er.

  1. Öppna Query Maps Search och ställ in URL till =https://www.google.com/maps/search/{{ $json.chatInput }}.
  2. I Query Maps Search, behåll Response inställt på full response och låt Allow Unauthorized Certs vara aktiverat om det finns.
  3. Öppna Pull Web Links och klistra in den tillhandahållna JavaScript Code som extraherar URL:er via regex.
  4. Konfigurera Exclude Google Links med de fyra Not Contains-villkoren med {{ $json.website }} mot schema, google, gg och gstatic.
  5. Skicka resultaten till Deduplicate Links för att eliminera duplicerade webbplatser.

⚠️ Vanlig fallgrop: Om Pull Web Links inte returnerar några träffar, dubbelkolla att Query Maps Search returnerar HTML-innehåll och inte blockerade eller tomma svar.

Steg 3: Konfigurera batchning och hämtningsfördröjningar

Iterera igenom varje webbplats och sprid ut anropen för att undvika rate limiting.

  1. Öppna Iterate Records för att dela upp inkommande URL:er i batcher med standardalternativen.
  2. Koppla Iterate Records till Pause Before Fetch för att strypa anrop innan ni filtrerar e-postadresser.
  3. Koppla Iterate Records till Fetch Website Content för att hämta varje webbplats HTML-innehåll.
  4. I Fetch Website Content, ställ in URL till ={{ $json.website }}.
  5. Öppna Delay Between Sites och ställ in Amount till 1 för att lägga in en paus mellan webbskrapningar.
  6. Säkerställ att Fetch Website Content går vidare till Delay Between Sites, och därefter till Parse Email Addresses.

Tips: Justera Delay Between Sites om Google Maps stryper era anrop eller om webbplatser blockerar upprepad skrapning.

Steg 4: Extrahera, rensa och avduplicera e-postadresser

Tolka e-postadresser från sidinnehåll, filtrera bort tomma resultat och platta ut till enskilda poster.

  1. Öppna Parse Email Addresses och behåll den tillhandahållna JavaScript Code med regex för e-postmatchning.
  2. Koppla Parse Email Addresses till Iterate Records för att fortsätta bearbeta varje batch.
  3. Konfigurera Remove Empty Emails med villkoret Array exists med {{ $json.emails }}.
  4. I Expand Email List, ställ in Field to Split Out till emails.
  5. Skicka resultaten till Deduplicate Emails för att ta bort dubbletter innan ni sparar.

⚠️ Vanlig fallgrop: Om Remove Empty Emails filtrerar bort för mycket, verifiera att Parse Email Addresses returnerar { emails: [...] } och inte null.

Steg 5: Konfigurera utdata till Google Sheets

Lägg till rensade e-postadresser i ert kalkylark.

  1. Öppna Append to Spreadsheet och ställ in Operation till append.
  2. Välj ert kalkylark i Document ID och ersätt platshållaren [YOUR_ID] med rätt fil.
  3. Ställ in Sheet Name till målfliken (för närvarande gid=0, med namnet emails).
  4. Under Columns, mappa emails till ={{ $json.emails }}.
  5. Credential Required: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.

Steg 6: Testa och aktivera ert arbetsflöde

Validera hela flödet från chattinput till utdata i kalkylarket och aktivera det sedan för produktion.

  1. Klicka på Execute Workflow och ange en exempelquery i Chat Input Trigger (t.ex. dentists in Austin).
  2. Bekräfta att Query Maps Search returnerar HTML, att Pull Web Links extraherar URL:er och att Parse Email Addresses ger en lista med e-postadresser.
  3. Verifiera att rader dyker upp i ert Google Sheet efter att Append to Spreadsheet har körts.
  4. Växla arbetsflödet till Active för att använda det i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Se upp med

  • Google Sheets-uppgifter kan löpa ut eller kräva specifika behörigheter. Om något går sönder, börja med att kontrollera n8n:s behörighetsskärm och din Google-kontoåtkomst.
  • Om du använder Wait-noder eller extern hämtning varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Scraping via HTTP Request kan blockeras av vissa webbplatser. Om du plötsligt får tomt innehåll, kontrollera svarskoder i HTTP-noderna och överväg att sakta ner batcher eller justera headers.

Vanliga frågor

Hur snabbt kan jag implementera den här automationen för leads från Google Maps?

Cirka 1–2 timmar första gången, främst för uppsättning och test.

Kan icke-tekniska team implementera det här resultatet för lead-scraping?

Ja, men du behöver någon som är bekväm med att koppla Google Sheets och testköra. Ingen tung kodning, även om flödet innehåller JavaScript-noder som du oftast lämnar som de är.

Är n8n gratis att använda för det här flödet för leads från Google Maps?

Ja. n8n har ett gratis alternativ för egen drift 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 generella hostingkostnader om du kör själv (och ibland extra tid för att hantera blockeringar från webbplatser).

Var kan jag hosta n8n för att köra den här automationen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.

Hur anpassar jag den här lösningen för leads från Google Maps till mina specifika utmaningar?

Du kan byta inmatningsmetod genom att ersätta Chat Input Trigger med ett schema eller en manuell webhook, beroende på hur du vill köra jobb. De flesta anpassningar sker i Google Sheets-upplägget (fliken med sökningar) och i kodstegen som “Pull Web Links” och “Parse Email Addresses”. Vanliga justeringar är att lägga till extra filter för vissa branscher, ändra batchstorlek i split-in-batches-loopen och justera vilka kolumner som läggs till i Google Sheets.

Varför misslyckas min Google Sheets-anslutning i det här flödet?

Oftast beror det på utgångna Google-uppgifter eller saknade behörigheter för det aktuella kalkylarket. Återanslut Google Sheets-behörigheten i n8n och bekräfta sedan att dokument-ID:t för Google Sheet är korrekt i flödet. Om det fortfarande fallerar, kontrollera om arket ägs av ett annat Google-konto eller är låst av en Workspace-administratör.

Vilken kapacitet har den här lösningen för leads från Google Maps?

Om du kör egen drift beror kapaciteten främst på din server och hur aggressivt du scrape:ar.

Är den här automationen för leads från Google Maps bättre än att använda Zapier eller Make?

För det här användningsfallet oftast ja, eftersom flödet bygger på HTTP-anrop, loopar, filter och några kodsteg som är klumpiga (eller dyra) i Zapier och Make. n8n låter dig också köra egen drift, vilket spelar roll när du kör många körningar och inte vill att prissättning per task ska skena. Zapier och Make fungerar fortfarande bra för lätta tvåstegsautomationer, men lead-flöden med scraping tenderar att växa ur dem snabbt. Ärligt talat är den större faktorn tillförlitlighet: med n8n kan du lägga in väntetider, retries och logikgrenar utan att göra det till en skör kedja av zaps. Prata med en automationsexpert om du vill ha hjälp att välja rätt stack.

När detta väl rullar slutar listbyggande att vara ett ångestprojekt och blir ett repeterbart system. Flödet tar hand om det repetitiva grävandet så att du kan fokusera på budskap och svar.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal