Att kopiera företagsuppgifter från Google Maps är den typen av uppgift som ser ”snabb” ut tills du sitter 40 flikar in, saknar hälften av telefonnumren och ditt kalkylark fortfarande inte går att använda.
Den här Maps Sheets leads-automationen träffar marknadschefer och growth-team först, men även byråägare som bygger kundlistor och små lokala företag som gör sin egen outreach känner av det. Du får mer felfria leadlistor, snabbare, utan att behöva kontrollera varje rad igen.
Nedan ser du vad workflowet gör, vad det ersätter och hur du sätter upp det så att du kan öppna ditt ark och börja med outreach.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Google Maps till Google Sheets, leadlistor snabbt
flowchart LR
subgraph sg0["Form Query Intake 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/>Form Query Intake"]
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/>Initial Text Search"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Next Page Check 2", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Pause 5s A", 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/>Second Text Lookup"]
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Next Page Check 3", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Pause 5s B", 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/>Third Text Lookup"]
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/merge.svg' width='40' height='40' /></div><br/>Combine Page Results"]
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Expand Result Items", pos: "b", h: 48 }
n10["<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/>Retrieve Place Details"]
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/code.svg' width='40' height='40' /></div><br/>Prepare Sheet Rows"]
n12@{ icon: "mdi:database", form: "rounded", label: "Append to Sheet", pos: "b", h: 48 }
n3 --> n4
n6 --> n7
n8 --> n9
n10 --> n11
n1 --> n2
n1 --> n8
n4 --> n5
n4 --> n8
n7 --> n8
n0 --> n1
n9 --> n10
n2 --> n3
n5 --> n6
n11 --> n12
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 n2,n5 decision
class n12 database
class n1,n4,n7,n10 api
class n11 code
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n7,n8,n10,n11 customIcon
Utmaningen: att göra Google Maps till en strukturerad leadlista
Du hittar rätt sökning i Google Maps (som ”Accountants London”), och de första resultaten ser lovande ut. Sedan kommer verkligheten ikapp. Telefonnummer är formaterade på olika sätt, webbplatser saknas och adresser klistras in i fel kolumner. Efter en timme har du inte bara ett rörigt kalkylark. Du har en lista du inte litar på, vilket betyder att du kommer dubbelkolla allt senare (och senare kommer aldrig). Ärligt talat är det inte researchen som tar knäcken på dig. Det är det repetitiva plockandet, formaterandet och rättandet.
Det drar iväg snabbt. Här är var det faller isär.
- Att manuellt plocka namn, telefon, webbplats och adress tar cirka 2–3 minuter per företag, och tiden multipliceras när listan växer.
- Google Maps-resultat är inte ”leadlista-klara”, så dina kolumner blir inkonsekventa och outreach försenas.
- Du missar fält eftersom vissa listningar döljer detaljer bakom extra klick, och det är lätt att hoppa över något när du jobbar snabbt.
- Skalning blir smärtsamt eftersom nästa plats eller bransch innebär att du upprepar samma process från noll.
Lösningen: Google Places-resultat som läggs till direkt i Google Sheets
Det här workflowet gör en enkel ”Bransch + Plats”-fråga till ett strukturerat Google Sheet som är redo för outreach. Det startar med en formulärinlämning (till exempel ”Accountants London”), anropar sedan Google Places Text Search-endpointen för att hämta första sidan med matchande företag. Om Google returnerar en ”next page”-token väntar workflowet några sekunder (eftersom token behöver tid för att aktiveras), hämtar sedan sida två och valfritt sida tre. Efter det slår det ihop resultaten till en lista, loopar igenom varje place och anropar Place Details för att hämta de specifika fält du faktiskt behöver: företagsnamn, formaterat telefonnummer, webbplats och formaterad adress. Till sist formaterar det resultaten till felfria rader och lägger till dem i ditt Google Sheet.
Workflowet startar när du skickar in en bransch-/platssökning. Därifrån hämtar det upp till tre sidor med Google Places-resultat och berikar sedan varje företag med Place Details. Slutresultatet hamnar i Google Sheets som en rad per företag, mappad till dina kolumner.
Vad som förändras: före vs. efter
| Detta elimineras | Effekten du märker |
|---|---|
|
|
Praktisk effekt i verkligheten
Säg att du bygger en veckolista för två nischer i två städer (totalt 4 sökningar). Om du samlar 50 företag per sökning och lägger ungefär 2 minuter per företag på att kopiera detaljer blir det cirka 7 timmar repetitivt arbete. Med det här workflowet skickar du in varje fråga i ett formulär (kanske 1 minut), låter det köra medan det hämtar upp till tre sidor och detaljer (ofta under 10 minuter per fråga), och ditt Google Sheet fyller i sig självt. De flesta team får tillbaka en eftermiddag varje vecka, och arket blir mer felfritt också.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Självhosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra leadlistan.
- Google Cloud Places API för att hämta Text Search och Details.
- Google Places API-nyckel (hämta den i Google Cloud Console).
Kunskapsnivå: Medel. Du klistrar in en API-nyckel, kopplar Google Sheets OAuth och mappar kolumner en gång.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Workflow-flödet
En enkel fråga sätter igång allt. Du skickar in en fras ”Bransch + Plats” via den inbyggda formulärtriggern, som blir söktermen för Google Places.
Google Places returnerar resultat i sidor. Workflowet hämtar sida ett, kontrollerar om det finns en next_page_token, väntar några sekunder och hämtar sedan sida två och sida tre när det finns. Väntetiderna finns där av en anledning.
Varje företag berikas. Efter att ha slagit ihop alla sidor loopar workflowet igenom varje place_id och anropar Place Details för att hämta fälten du bryr dig om (namn, telefon, webbplats, adress). Om ett fält inte finns lämnas det tomt i stället för att körningen skapar fel.
Ditt ark uppdateras automatiskt. Resultaten formateras till rader och läggs till i ett Google Sheet med ditt valda dokument-ID och fliknamn, med de kolumner du skapat.
Du kan enkelt ändra vilka Place Details-fält som hämtas (som öppettider) eller öka/minska antalet sidor som hämtas utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Konfigurera intake-formuläret som samlar in sökfrågan som används för Google Places-sökningar.
- Lägg till och öppna Form Query Intake.
- Ställ in Form Title till
Enter your Query. - Ställ in Form Description till
Enter Industry + Location. - Säkerställ att formulärfältets etikett är Query med platshållaren
Ex. Accountants Londonoch markera det som obligatoriskt.
Steg 2: Konfigurera Google Places Text Search-förfrågningarna
Konfigurera de tre paginerade Places Text Search-anropen för att samla in resultat över flera sidor.
- Öppna Initial Text Search och ställ in URL till
https://maps.googleapis.com/maps/api/place/textsearch/json. - I Initial Text Search ställer ni in frågeparametern query till
{{ $json.Query }}och key till[CONFIGURE_YOUR_API_KEY]. - Öppna Second Text Lookup och ställ in URL till
https://maps.googleapis.com/maps/api/place/textsearch/json. - I Second Text Lookup ställer ni in pagetoken till
{{ $json.next_page_token }}och key till[CONFIGURE_YOUR_API_KEY]. - Öppna Third Text Lookup och ställ in URL till
https://maps.googleapis.com/maps/api/place/textsearch/json. - I Third Text Lookup ställer ni in pagetoken till
{{ $json.next_page_token }}och key till[CONFIGURE_YOUR_API_KEY].
Initial Text Search skickar utdata parallellt till både Next Page Check 2 och Combine Page Results, och Second Text Lookup skickar utdata parallellt till både Next Page Check 3 och Combine Page Results.
⚠️ Vanlig fallgrop: Google Places API returnerar fel om [CONFIGURE_YOUR_API_KEY] inte ersätts med en giltig nyckel eller om Places API inte är aktiverat i ert Google Cloud-projekt.
Steg 3: Konfigurera paginering och sammanslagning av resultat
Hantera pagineringstokens, lägg till fördröjningar för att token ska hinna bli redo och kombinera resultat från alla sidor.
- Öppna Next Page Check 2 och bekräfta att villkoret kontrollerar att
{{ $json.next_page_token }}finns. - Öppna Pause 5s A och behåll standardinställningarna för väntetid för att fördröja innan nästa sidförfrågan.
- Öppna Next Page Check 3 och bekräfta att villkoret kontrollerar att
{{ $json.next_page_token }}finns. - Öppna Pause 5s B och behåll standardinställningarna för väntetid för att fördröja innan den tredje sidförfrågan.
- Öppna Combine Page Results och ställ in Number of Inputs till
3för att slå samman resultat från alla sidor.
Steg 4: Expandera items och hämta Place Details
Dela upp resultat-arrayen i enskilda items och begär sedan detaljerad platsdata för varje resultat.
- Öppna Expand Result Items och ställ in Field to Split Out till
results. - Öppna Retrieve Place Details och ställ in URL till
https://maps.googleapis.com/maps/api/place/details/json. - I Retrieve Place Details ställer ni in place_id till
{{ $json.place_id }}. - Ställ in fields till
name,formatted_phone_number,website,formatted_addressoch key till[CONFIGURE_YOUR_API_KEY].
Tips: Om ni lägger till fler fält i Retrieve Place Details, uppdatera utdata-mappningen i Prepare Sheet Rows så att den matchar.
Steg 5: Konfigurera radförberedelse och utdata till Google Sheets
Omvandla platsdetaljerna till strukturerad raddata och lägg till den i ert Google Sheet.
- Öppna Prepare Sheet Rows och behåll JavaScript-koden som den är för att mappa
companyName,number,addressochwebsite. - Öppna Append to Sheet och ställ in Operation till
append. - Ställ in Document och Sheet Name till era målvärden för kalkylarket (ersätt
[YOUR_ID]). - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-credentials i Append to Sheet.
⚠️ Vanlig fallgrop: Säkerställ att ert ark har rubriker som stämmer överens med fälten som skapas av Prepare Sheet Rows, annars kan append skapa kolumner som inte matchar.
Steg 6: Testa och aktivera ert workflow
Kör ett fullständigt test för att bekräfta paginering, hämtning av detaljer och utdata till arket innan ni aktiverar.
- Klicka på Execute Workflow och skicka formuläret i Form Query Intake med en sökfråga som
Accountants London. - Verifiera att Initial Text Search, Second Text Lookup och Third Text Lookup körs, och att Combine Page Results slår samman tre inputs.
- Bekräfta att Retrieve Place Details returnerar fält för telefon, adress och webbplats, och att Append to Sheet lägger till rader i ert Google Sheet.
- När testet lyckas, slå på workflowet till Active för produktionsbruk.
Saker att se upp med
- Google Places API-uppgifter kan löpa ut eller begränsas för hårt. Om något slutar fungera: kontrollera först API-nyckelns restriktioner i Google Cloud Console och att ”Places API” är aktiverat.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på tomma svar.
- Google Sheets OAuth kan misslyckas utan tydliga fel när det kopplade Google-kontot tappar åtkomst till kalkylarket. Bekräfta att OAuth-användaren kan redigera den specifika filen och fliken du mappade i Google Sheets-noden.
Vanliga frågor
Cirka 30 minuter om dina Google-konton är redo.
Ja. Du kommer inte skriva kod, men du behöver klistra in en API-nyckel och peka Google Sheets-noden mot rätt kalkylark.
Ja. n8n har ett gratis alternativ för självhosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna med användning av Google Places API, som beror på hur många sökningar och Place Details-anrop du kör.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger obegränsade körningar men kräver grundläggande serveradministration.
Du kan ändra vad som hämtas genom att redigera Place Details HTTP Request-fälten (till exempel lägga till opening_hours eller address_components) och sedan uppdatera mappningen i kodnoden ”Prepare Sheet Rows”. Om du behöver fler eller färre resultat, justera pagineringslogiken genom att ta bort sida 3 eller lägga till fler sidor (med en extra väntan och ett extra anrop). Vanliga anpassningar är att lägga till en kolumn ”Search Query” för spårbarhet, lägga in en dedupe-kontroll innan du lägger till rader, eller förgrena utdata till ett CRM efter att arket skrivits.
Oftast handlar det om OAuth-åtkomst: det kopplade Google-kontot saknar redigeringsbehörighet till målfilen eller så har kalkylarket flyttats. Återanslut Google Sheets-uppgifter i n8n och verifiera sedan att documentId och sheetName matchar en riktig flik. Om kalkylarket ligger i en delad enhet kan behörigheter vara striktare, så dubbelkolla delningen. Och om du testar med ett helt nytt ark: lägg till exakt de kolumnrubriker du ska använda först, så att nya rader inte hamnar fel.
Den är byggd för att hämta upp till tre sidor per fråga, vilket ofta är runt 60 företag. På n8n Cloud Starter kan du köra ett bra antal körningar per månad för listbyggande; om du självhostar finns ingen körningsgräns, men du begränsas fortfarande av Google Places-kvot och hur aggressivt du anropar Place Details. Om du planerar hög volym: stryp loopen eller lägg in väntetider så att du inte slår i rate limits.
För hämtning över flera sidor plus berikning per objekt är n8n oftast en bättre lösning eftersom det hanterar förgrening (sidtokens), loopar och sammanslagning i ett och samma workflow utan att det blir en skör kedja av zaps. Det är också enklare att självhosta om du vill slippa överraskningar med användningsbaserad prissättning. Zapier eller Make kan fortfarande fungera om du håller det enkelt, som en sökning och en enda skrivning till Sheets. Om du ska välja, prata med en automationsexpert så kvalitetssäkrar vi ditt use case.
När detta väl rullar slutar listbyggande att vara ”ett projekt” och blir i stället en snabb inmatning du kan upprepa när du behöver nya leads. Workflowet tar hand om det repetitiva. Du sköter outreach.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.