Att kopiera företag från Google Maps till ett kalkylark låter enkelt – tills du gör det i en timme och inser att du bara har fångat 20 leads, hälften saknar telefonnummer och du måste fortfarande ta bort dubbletter.
Byråägare känner igen det här när en kund ber om ”bara 200 lokala leads till i morgon”. En säljare som försöker nå dagliga kontaktmål går in i samma vägg. Och om du ansvarar för marknadsföring för ett lokalt tjänsteföretag är automatisering av Google Maps-leads skillnaden mellan ”vi gör outreach i veckan” och ”vi gjorde outreach i dag”.
Det här arbetsflödet skrapar Google Maps med BrowserAct, lägger in strukturerade rader i Google Sheets och pingar dig i Telegram så fort nya leads landar. Du får se hur det fungerar, vad du behöver och vad du ska se upp med innan du kör det i större skala.
Så här fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Google Maps till Google Sheets: leads att pitcha
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Run a workflow task", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Get details of a workflow task", 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/code.svg' width='40' height='40' /></div><br/>Code in JavaScript"]
n4@{ icon: "mdi:database", form: "rounded", label: "Append or update row in sheet", 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/telegram.svg' width='40' height='40' /></div><br/>Send a text message"]
n3 --> n4
n1 --> n2
n4 --> n5
n2 --> n3
n0 --> n1
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 database
class n3 code
classDef customIcon fill:none,stroke:none
class n3,n5 customIcon
Problemet: att skrapa leads från Google Maps är långsamt och rörigt
Manuell prospektering i Google Maps är förvånansvärt dyr. Du börjar med goda intentioner, men snart hoppar du mellan flikar, kopierar företagsnamn, försöker fånga webbplatser, gissar kategorier och klistrar in allt i ett ark som snabbt blir kaos. Sedan kommer dubbletterna, eftersom samma företag dyker upp i flera sökningar – eller så tog du det förra veckan och glömde. Värst av allt: när din lista väl är ”klar” kan konkurrenterna redan ha mejlat de bästa prospekten.
Friktionen byggs på, särskilt när du upprepar det varje vecka.
- Varje sökpass blir en timmes copy-paste, och du måste fortfarande städa arket efteråt.
- Dubbletter smyger sig in snabbt, så outreach blir obekvämt (“Mejlade du inte oss i går?”).
- Det är svårt att jobba konsekvent mellan teammedlemmar, vilket gör att lead-kvaliteten varierar från dag till dag.
- Du får ingen notis när listan är klar, så skrapningen blir färdig och ingen agerar på den.
Lösningen: skrapa Maps, skriv till Sheets, få en avisering
Det här n8n-arbetsflödet gör Google Maps-sökning till ett repeterbart system för att fånga leads. Du kör det manuellt när du vill ha en ny batch prospekt, anger plats och företagskategori och låter BrowserAct sköta skrapningen. När skrapningen är klar parsar arbetsflödet resultatet till enskilda företag och skriver in dem i Google Sheets. Det matchar också leads mot kolumnen ”Name”, så att du uppdaterar befintliga rader i stället för att skapa dubbletter. Till sist skickar det ett Telegram-meddelande med det nya leadets detaljer, så nästa steg är självklart: öppna arket och starta outreach.
Arbetsflödet börjar med dina sökkriterier (plats, kategori och hur många leads som ska hämtas). Sedan kör BrowserAct och arbetsflödet väntar tills uppgiften är klar. När resultatet har parsats blir Google Sheets din strukturerade källa till sanning och Telegram blir din realtidsavisering om att ”nya leads är klara”.
Det 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 behöver 100 takläggare i en specifik förort. Manuellt kan du lägga cirka 2 minuter per företag på att öppna profiler, kopiera namn, webbplats och telefonnummer och klistra in i Sheets – vilket blir ungefär 3 timmar för listan. Med det här arbetsflödet lägger du cirka 5 minuter på att ange plats och kategori, och väntar sedan medan BrowserAct skrapar och n8n skriver allt till Google Sheets. Du får en Telegram-avisering när det är klart, och ditt ”arbete” blir outreach, inte datainmatning.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- BrowserAct för att skrapa sökresultat från Google Maps.
- Google Sheets för att lagra leads och ta bort dubbletter.
- Telegram-bottoken (hämta den via BotFather i Telegram).
Kunskapsnivå: Medel. Du kopplar konton, lägger in en API-nyckel och redigerar några fält som plats och kategori.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Du triggar det när du behöver leads. Det här arbetsflödet startas manuellt, vilket är praktiskt när du bygger listor på beställning för en kampanj, en ny kund eller ett nytt område.
BrowserAct kör skrapningen i Google Maps. Du ställer in Location, Bussines_Category och antal leads att hämta i den första BrowserAct-noden. Sedan övervakar en andra BrowserAct-nod jobbet och väntar tills uppgiften är helt klar.
Råutdata städas upp till användbara rader. Ett kodsteg parsar JSON-strängen som kommer tillbaka från skraparen och delar upp den i enskilda objekt, ett per företag, så att Sheets kan hantera det snyggt.
Google Sheets blir din levande lead-databas. Varje företag läggs till eller uppdateras genom matchning på ”Name” för att minska dubbletter. När arket är uppdaterat skickar Telegram ett meddelande med de nya lead-detaljerna.
Du kan enkelt justera sökkriterierna (plats, kategori och volym) för att passa olika nischer eller städer utifrån dina behov. Se hela implementationsguiden nedan för alternativ för anpassning.
Steg-för-steg-implementeringsguide
Steg 1: Konfigurera den manuella triggern
Det här arbetsflödet startar med en manuell körning, startar sedan en scraping-uppgift och följer den tills den är klar.
- Lägg till och öppna Manual Execution Start för att bekräfta att den är startpunkten.
- Koppla Manual Execution Start till Launch Scrape Task så att det matchar körflödet.
Steg 2: Anslut BrowserAct och starta scrapingen
Dessa noder startar scraping-jobbet och väntar tills det är klart innan resultaten parsas.
- Öppna Launch Scrape Task och ställ in Workflow ID till
[YOUR_ID]. - I Launch Scrape Task → Input Parameters, behåll eller uppdatera: Location =
Brooklyn, Bussines_Category =Baby Care, Extracted_Data =15. - Autentisering krävs: Anslut era browserActApi-uppgifter i Launch Scrape Task.
- Öppna Monitor Task Status och ställ in Task ID till
={{ $json.id }}. - Ställ in Operation till
getTask, Max Wait Time till600, Wait For Finish tilltrueoch Polling Interval till30. - Autentisering krävs: Anslut era browserActApi-uppgifter i Monitor Task Status.
id kommer Monitor Task Status att misslyckas eftersom ={{ $json.id }} blir tomt.Steg 3: Sätt upp datatolkning
Parsningen konverterar scraperns JSON-strängutdata till enskilda objekt för uppdateringar i sheet och aviseringar.
- Öppna Parse Scrape Output och klistra in den medföljande JavaScript-koden exakt som den visas i arbetsflödet.
- Säkerställ att skriptet läser
$input.first().json.output.stringoch returnerar en array med objekt medreturn outputItems;. - Bekräfta kopplingen från Monitor Task Status till Parse Scrape Output.
$input.first().json.output.string saknas kastar koden ett fel och stoppar arbetsflödet.Steg 4: Konfigurera utdataåtgärder
Dessa steg uppdaterar Google Sheets och skickar en Telegram-sammanfattning för varje parsad lead.
- Öppna Update Spreadsheet Rows och ställ in Operation till
appendOrUpdate. - Ställ in Document till
Test For BrowserActoch Sheet tillGoogle Maps Local Lead Finder. - Mappa kolumner i Update Spreadsheet Rows till uttrycken: Url =
{{ $json.Url }}, Name ={{ $json.Name }}, Phone ={{ $json.Phone }}, Rating ={{ $json.Rating }}, Address ={{ $json.Address }}, Category ={{ $json.Category}}, LastSummary ={{ $json.LastSummary }}. - Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Update Spreadsheet Rows.
- Öppna Dispatch Telegram Alert och ställ in Chat ID till
[YOUR_ID]. - Ställ in Text till flerradsuttrycket:
={{ $('Parse Scrape Output').item.json.Name }} {{ $('Parse Scrape Output').item.json.Address }} {{ $('Parse Scrape Output').item.json.LastSummary }} {{ $('Parse Scrape Output').item.json.Rating }} {{ $('Parse Scrape Output').item.json.Url }} {{ $('Parse Scrape Output').item.json.Category }}. - Autentisering krävs: Anslut era telegramApi-uppgifter i Dispatch Telegram Alert.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta att stegen för scraping, parsning, sheet-uppdatering och avisering fungerar hela vägen.
- Klicka på Execute Workflow i Manual Execution Start för att starta en manuell testkörning.
- Verifiera att Monitor Task Status slutförs och att Parse Scrape Output returnerar flera objekt.
- Kontrollera Update Spreadsheet Rows för att bekräfta att rader läggs till eller uppdateras i mål-sheetet.
- Bekräfta att ett Telegram-meddelande skickas av Dispatch Telegram Alert med lead-detaljer.
- När ni är nöjda, växla arbetsflödets status till Active för att använda det i produktion.
Vanliga fallgropar
- BrowserAct-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först din BrowserAct API-nyckel och åtkomst till arbetsflöde/mall i BrowserAct-dashboarden.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- Standardantaganden i parsningen kan vara känsliga när Google Maps-layouten ändras. Om steget ”Parse Scrape Output” börjar ge saknade fält, granska rå JSON-utdata och justera koden så den matchar den nya strukturen.
Vanliga frågor
Cirka 30 minuter om dina konton är redo.
Nej. Du kopplar främst BrowserAct, Google Sheets och Telegram och redigerar sedan fälten för plats/kategori.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in BrowserActs användningskostnader baserat på hur många leads du skrapar.
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 hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men du vill planera det. De flesta duplicerar arbetsflödet och ändrar Location och Bussines_Category i inställningen ”Launch Scrape Task”, och skriver sedan till separata flikar (eller separata Sheets) per stad. Du kan också loopa igenom en kort lista av städer genom att mata items till BrowserActs launch-steg, men börja enkelt först. Om du ändrar logiken för avdubblettering, håll matchkolumnen i ”Update Spreadsheet Rows” konsekvent så att din databas förblir felfri.
Oftast är det en utgången eller felaktig API-nyckel, så skapa en ny i BrowserAct och uppdatera autentiseringsuppgiften i n8n. Det kan också vara att du saknar behörighet till mallen ”Google Maps Local Lead Finder”, eller att körningen blockeras för att du har nått BrowserAct-gränser. Om skrapningen startar men aldrig blir klar, kontrollera task-statusutdata i noden ”Monitor Task Status” och bekräfta att den når 100 %.
I praktiken kan du bekvämt hämta några hundra leads per körning och sedan upprepa körningar vid behov. På n8n Cloud beror din månatliga gräns för körningar på plan (Starter är för lättare volymer, Pro hanterar mer). Om du self-hostar finns ingen körningsgräns, men din server och BrowserActs användningsgränser spelar fortfarande roll. För stabilitet börjar de flesta team med batchar på cirka 100 till 300 leads per skrapning och skalar upp när arkmallen sitter.
För just det här use caset är n8n oftast bättre, eftersom den svåra delen inte är att flytta data från A till B, utan att hantera en skrapningskörning, vänta på att den blir klar, parsa JSON och avdubblettera i Sheets. Zapier och Make kan lösa delar av det, men arbetsflödet blir dyrt och klumpigt när du lägger till förgreningar, batchning och kodbaserad parsning. n8n ger dig också self-hosting-alternativet, vilket är en stor grej när du kör leadgen regelbundet. Om du bara behöver en enkel automatisering som ”ny rad i Sheets till Slack” fungerar Zapier eller Make fint. Prata med en automationsexpert om du vill ha hjälp att välja.
När detta väl rullar blir leadinsamling en knapp du klickar på, inte en syssla du bävar inför. Arbetsflödet tar hand om det repetitiva. Du tar hand om säljet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.