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 leadlistor

Rickard Andersson Partner, Nodenordic.se

Att bygga outreach-listor från Google Maps låter enkelt tills du faktiskt gör det. Du kopierar namn, klistrar in adresser, missar telefonnummer och hamnar ändå med dubbletter som får ditt ark att se “klart” ut medan resultaten visar något helt annat.

Det här drabbar marknadsförare som kör lokala kampanjer först, men byråägare och sales ops-folk känner av det också. Med automation för Google Maps leads gör du en stökig manuell uppgift till ett repeterbart system som håller din lista strukturerad och redo att kontakta.

Det här arbetsflödet hämtar Google Maps-listningar via SerpAPI, formaterar datan, tar bort dubbletter och lägger till allt i Google Sheets. Du får se hur det fungerar, vad du behöver och vad du ska se upp med för att det ska rulla stabilt.

Så fungerar den här automationen

Hela n8n-arbetsflödet, från trigger till slutlig output:

n8n Workflow Template: Google Maps till Google Sheets: rensade leadlistor

Problemet: Google Maps leads blir röriga när de samlas in manuellt

Manuell scraping från Google Maps är en långsam ström av frustration. Du börjar med en sökning, öppnar listning efter listning och försöker sedan standardisera det du hittar: telefonnummer i olika format, webbplatser som saknas i vissa profiler och adresser som inte klistras in snyggt i separata kolumner. Sedan kommer den verkliga smärtan senare. Du kontaktar samma företag två gånger eftersom dubbletter smög sig in, eller så inser du att din “leadlista” saknar det enda fältet som din outreach bygger på. Det är inte svårt arbete. Det är konstant arbete där misstag lätt uppstår.

Friktionen bygger på. Här är var det faller isär i verkligheten.

  • Du lägger cirka 2 timmar på att sätta ihop en lista, och sedan ytterligare en timme på att städa den.
  • Dubbletter smyger sig in när du kör samma sökning nästa vecka och inte minns vad du redan har fångat.
  • Datan blir inkonsekvent, så sortering och filtrering blir ett jobb istället för ett snabbt beslut.
  • En saknad detalj (som webbplats eller telefonnummer) gör outreach till extra research för varenda post.

Lösningen: hämta Google Maps via SerpAPI till ett strukturerat Google Sheet

Det här n8n-arbetsflödet gör en Google Maps-sökning till en strukturerad leadlista i Google Sheets, utan copy-paste-loopen. Det börjar med att läsa dina inputs från ett ark (inklusive din Google Maps-sök-URL), och omvandlar sedan det till de query-detaljer som SerpAPI behöver. Därefter hämtar det Google Maps-resultat via SerpAPI, fortsätter att paginera via nästa “start”-index och slår ihop allt till en enhetlig mängd. Sedan filtrerar det bort tomma poster, formaterar varje plats till konsekventa fält, tar bort dubbletter och lägger till endast strukturerade rader i ditt målark. Om anropet misslyckas markerar arbetsflödet den inputen som misslyckad så att du slipper gissa vad som hände.

Arbetsflödet startar enligt ett schema varje timme (eller manuellt när du vill). Det hämtar listningar från Google Maps via SerpAPI, städar och deduplicerar datasetet. Till sist skriver det nya rader till Google Sheets och markerar körningen som lyckad så att du kan följa upp.

Vad du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du behöver 200 lokala leads varje måndag inför en ny outreach-satsning. Manuellt, även om du bara lägger 1 minut per listning för att öppna, kopiera och klistra in kärnuppgifter, blir det runt 3 timmar — och det brukar bli längre när städningen börjar. Med det här arbetsflödet lägger du din Google Maps-sök-URL i input-arket, låter den schemalagda körningen plocka upp den och väntar på att SerpAPI-hämtningen och formateringen blir klar (ofta runt 15 minuter). Ditt output-ark uppdateras med deduplicerade rader, redo för outreach samma morgon.

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)
  • Google Sheets för att lagra inputs och output-leads.
  • SerpAPI för att hämta Google Maps-listningar till en rimlig kostnad.
  • SerpAPI API-nyckel (hämta den i din SerpAPI-dashboard).

Svårighetsgrad: Medel. Du kopplar konton, klistrar in en API-nyckel och är bekväm med att mappa kalkylarkskolumner mot arbetsflödets förväntade inputs.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Schemalagd eller manuell trigger. Arbetsflödet körs varje timme som standard, och du kan även starta det manuellt när du lägger till en ny sökning och vill ha resultat direkt.

Hämtning och parsning av input. n8n läser din Google Maps-sök-URL från Google Sheets och extraherar sedan query- och geo-parametrar som behövs för att köra en konsekvent hämtning.

SerpAPI-hämtning med paginering. Arbetsflödet anropar SerpAPI för Google Maps-resultat, tar fram nästa “start”-index och loopar tills det inte finns något mer att hämta (eller tills din konfigurerade gräns är nådd).

Städning, deduplicering och åter-skrivning. Resultaten slås ihop, delas upp till enskilda plats-poster, filtreras för tomma poster och formateras till konsekventa fält. Dubbletter tas bort, därefter läggs nya rader till i ditt Google Sheet och input-raden markeras som lyckad (eller misslyckad om hämtningen inte fungerade).

Du kan enkelt ändra vilka kolumner du fångar så att det matchar ditt outreach-flöde, så att arket innehåller exakt det som teamet använder. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera schematriggern

Ställ in de timvisa och manuella triggrarna så att arbetsflödet kan köras automatiskt eller vid behov.

  1. Öppna Hourly Schedule Trigger och ställ in intervallregeln så att den körs varje timme (fältet hours).
  2. Låt Manual Run Trigger vara kvar för testning och engångskörningar.
  3. Verifiera att båda triggrarna är kopplade till Retrieve Search Inputs som visas i canvasen.

Steg 2: anslut Google Sheets

Konfigurera Google Sheets-noderna som läser sökingångar och skriver status/resultat.

  1. Öppna Retrieve Search Inputs och ställ in Document ID till https://docs.google.com/spreadsheets/d/[YOUR_ID]/edit#gid=0 och Sheet Name till fliken med namnet Add your search here.
  2. I Retrieve Search Inputs behåller ni filtret på Status (uppslagskolumn) för att bara hämta rader som väntar.
  3. Öppna Append Rows to Sheet och ställ in Document ID till https://docs.google.com/spreadsheets/d/[YOUR_ID]/edit#gid=2023033319 och Sheet Name till Results.
  4. Bekräfta att Append Rows to Sheet använder Operation appendOrUpdate och att Matching Columns inkluderar place_id.
  5. I Mark Status Successful och Mark Status Failed behåller ni Operation som update och kolumnvärdet för URL som {{ $('Retrieve Search Inputs').first().json.URL }}.
  6. Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Retrieve Search Inputs, Append Rows to Sheet, Mark Status Successful och Mark Status Failed.

Tips: Säkerställ att bladet Results innehåller alla kolumner som listas i Append Rows to Sheet (t.ex. place_id, title, address) för att undvika mappningsproblem.

Steg 3: ställ in tolkning av sökfråga och SERPAPI-anrop

Extrahera frågeparametrar från inmatnings-URL:erna och anropa SERPAPI Maps-endpointen.

  1. I Parse Query and Geo ställer ni in keyword till {{ $json.URL.match(/\/search\/(.*?)\//)[1] }} och geo till {{ $json.URL.match(/(@[^\/?]+)/)[1]}}.
  2. Öppna SERPAPI Maps Request och ställ in URL till https://serpapi.com/search.json.
  3. I SERPAPI Maps Request låter ni Send Query vara aktiverat och lägger till följande frågeparametrar: engine google_maps, q {{ $json?.search_parameters?.q || $json.keyword }}, ll {{ $json?.search_parameters?.ll|| $json.geo }}, type search och start {{ $json.start|| 0 }}.
  4. Inloggning krävs: Anslut era serpApi-uppgifter i SERPAPI Maps Request.

⚠️ Vanlig fallgrop: Om formatet på er inmatnings-URL ändras kan regex:en i Parse Query and Geo returnera tomma värden, vilket gör att SERPAPI misslyckas.

Steg 4: konfigurera loopning och aggregering av resultat

Hantera paginering och konsolidera SERPAPI-resultat till en enhetlig datamängd.

  1. I Parse Next Start Index behåller ni Mode inställt på runOnceForEachItem och behåller den tillhandahållna JavaScript-koden för att extrahera nästa start-värde.
  2. Konfigurera Loop Continuation Check med villkor för att kontrollera att search_parameters.start och serpapi_pagination.next inte är tomma med {{ $json.search_parameters.start }} och {{ $json.serpapi_pagination.next }}.
  3. Säkerställ att den sanna grenen i Loop Continuation Check fortsätter till SERPAPI Maps Request och att den falska grenen går till Combine SERPAPI Results.
  4. I Combine SERPAPI Results behåller ni den tillhandahållna koden som aggregerar local_results över alla SERPAPI-anrop.

Steg 5: bearbeta och avduplicera utdata

Dela upp, rensa och avduplicera SERP-resultaten innan de infogas i bladet Results.

  1. I Split Result Items ställer ni in Field to Split Out till allData.
  2. I Filter Empty Entries ställer ni in villkoret för att kontrollera att {{ $json[0] }} inte är tomt.
  3. Behåll JavaScript-koden i Format Data Payload för att slå ihop alla objekt per item och returnera poster som inte är null.
  4. I Eliminate Duplicate Records ställer ni in Operation till removeDuplicates, Compare till selectedFields och Fields to Compare till place_id.

Steg 6: konfigurera utdata och statusuppdateringar

Skriv den rensade datan till Google Sheets och uppdatera bearbetningsstatus baserat på om körningen lyckas eller misslyckas.

  1. Bekräfta att Eliminate Duplicate Records är kopplad till Append Rows to Sheet för att lagra slutresultaten.
  2. Säkerställ att Append Rows to Sheet är kopplad till Mark Status Successful för att sätta Status till .
  3. Verifiera att SERPAPI Maps Request har sin felutgång kopplad till Mark Status Failed, som sätter Status till .

Tips: Behåll Append Rows to Sheet Cell Format som RAW för att undvika oönskade formateringsändringar i er Results-flik.

Steg 7: testa och aktivera ert arbetsflöde

Validera arbetsflödet från början till slut och aktivera sedan timvis bearbetning.

  1. Klicka på Execute WorkflowManual Run Trigger för att genomföra en testkörning.
  2. Bekräfta att Append Rows to Sheet lägger till rader i Results-fliken och att Mark Status Successful uppdaterar status för inmatningsraden till .
  3. Om fel uppstår, kontrollera att Mark Status Failed uppdaterar status för inmatningsraden till och granska SERPAPI-svaret.
  4. Aktivera arbetsflödet så att Hourly Schedule Trigger körs automatiskt varje timme.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, börja med att kontrollera n8n:s test av credential-anslutningen och delningsinställningarna för Sheet.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på tomma svar.
  • SerpAPI:s rate limits och kvoter är på riktigt. Om du börjar se misslyckade körningar, kontrollera användningen i din SerpAPI-dashboard och bekräfta att din API-nyckel fortfarande är aktiv.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automationen för Google Maps leads?

Cirka 30 minuter om dina Sheets och din SerpAPI-nyckel är redo.

Behöver jag kunna koda för att automatisera Google Maps leads?

Ingen kodning krävs. Du kopplar främst konton, lägger till din SerpAPI-nyckel och mappar några kalkylarksfält.

Är n8n gratis att använda för det här arbetsflödet för Google Maps leads?

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 SerpAPI-kostnader (det varierar med plan och volym, men är vanligtvis billigare än den officiella Google Maps API:n för det här användningsfallet).

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 self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för Google Maps leads för flera sökplatser?

Ja, och det är en vanlig justering. Lägg till flera Google Maps-sök-URL:er som separata input-rader i arket “Retrieve Search Inputs” och justera sedan formateringskoden så att varje output-rad innehåller en kolumn för “källfråga” eller “plats”. Om du vill ha olika output-ark per stad kan du routa items efter “Parse Query and Geo” med en If-nod och skriva till olika Google Sheets-noder.

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

Oftast är det ett behörighetsproblem: Google-kontot som är kopplat i n8n kommer inte åt kalkylarket, eller så har Sheet-ID:t ändrats. Kontrollera n8n:s Google Sheets-credential igen, öppna sedan kalkylarket och bekräfta att det är delat med samma konto. Säkerställ också att fliknamnet på målarket matchar vad noden förväntar sig. Liten missmatch, stor huvudvärk.

Hur många leads kan den här automationen för Google Maps leads hantera?

Med n8n Cloud Starter kan du köra ett bra antal körningar varje månad för mindre kampanjer, och högre nivåer hanterar mer. Om du kör self-hosted finns ingen körningsgräns, men din server och din SerpAPI-kvot blir de faktiska begränsningarna. I praktiken kör de flesta team detta per sök-URL och hämtar några hundra platser per körning utan problem, och schemalägger sedan uppdatering dagligen eller veckovis.

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

Ofta, ja. Det här arbetsflödet behöver loopa genom resultatsidor, slå ihop batchar och deduplicera innan du skriver till Sheets — den typen av logik blir snabbt klumpig (och dyr) i Zapier. n8n hanterar branching och kodsteg snyggt, och self-hosting betyder att du kan köra det så ofta du vill utan att oroa dig för per-task-debitering. Zapier eller Make kan fortfarande funka om du bara vill ha ett litet tvåstegsflöde, som “ny rad i Sheets → skicka Slack-meddelande”. Om du är osäker, prata med en automationsexpert så får du ett rakt svar utifrån din situation.

Strukturerade leadlistor är en tillväxtspak som de flesta team behandlar som tråkigt merarbete. Sätt upp detta en gång, så håller sig ditt Google Sheets fyllt med nya, deduplicerade Google Maps leads medan du fokuserar på outreach som faktiskt konverterar.

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

Launch login modal Launch register modal