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

Apify till Google Sheets: rensade Google Maps-leads

Rickard Andersson Partner, Nodenordic.se

Att skrapa leads från Google Maps låter enkelt tills du sitter knädjupt i CSV-exporter, trasiga kolumner och ”vart tog det här telefonnumret vägen?”-ögonblick. Det är då Apify Google Sheets-automation slutar kännas som en bonus och börjar kännas som ren överlevnad.

Marknadschefer som bygger lokala listor, säljare som jobbar outbound och byråteam som paketerar leadlistor till kunder stöter alla på samma vägg. Du behöver en lista som är felfri, delbar och redo att kontakta. Inte ”nästan användbar”.

Det här flödet kör en Apify Google Maps-scraper, väntar in resultatet och lägger sedan till normaliserade företagsfält i Google Sheets. Du får se hur det fungerar, vad du behöver och vad du ska se upp med.

Så fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: Apify till Google Sheets: rensade Google Maps-leads

Problemet: leaddata från Google Maps blir snabbt rörig

Google Maps är fullt av potentiella kunder, men att göra det till en användbar leadlista är irriterande manuellt. Du söker, kopierar namn, klistrar in webbplatser, försöker få tag på telefonnummer och inser sedan att hälften av posterna saknar något viktigt. Exporter hjälper, men de blir ofta inkonsekventa, med kolumner som inte matchar ditt CRM eller din kalkylbladsstruktur. Och när du gör det här varje vecka syns den verkliga kostnaden: förlorade timmar, plus de tysta felen som dödar outreach (fel stad, saknad webbplats, dubbla rader).

Det är inte ett stort haveri. Det är många små friktioner som staplas på varandra.

  • Att bygga leads med copy-paste blir en återkommande 2-timmarsuppgift varje gång du behöver en ny nisch eller plats.
  • Exporter matchar sällan rubrikerna i ditt ark, så någon får formatera om och ”rensa” för hand.
  • Små misstag slinker igenom, vilket innebär att du ringer fel nummer eller mejlar en död domän.
  • Om två personer bygger listor får du dubbletter och motstridiga versioner av ”det riktiga arket”.

Lösningen: Apify skrapar, Google Sheets håller sig strukturerat

Det här n8n-flödet automatiserar hela vägen från ”jag behöver leads för den här söktermen” till ”arket är redo att använda”. Det börjar med att starta en Apify-actor (Google Maps Scraper) som samlar in företagsdetaljer baserat på din sökfråga. Efter en kort väntan så att aktorn hinner bli klar hämtar flödet senaste körningen, plockar dataset-posterna och mappar varje fält till en konsekvent struktur. Till sist lägger det till varje företag som en ny rad i Google Sheets med korrekta kolumner som teamet kan jobba med direkt. Inga filer att exportera. Ingen omformatering av kolumner. Bara ett levande ark som fylls på på samma sätt varje gång.

Flödet startar med en manuell trigger, så du kan köra det vid begäran medan du bygger en lista. Apify sköter skrapningen och lämnar tillbaka ett dataset. Google Sheets blir system of record, där varje lead läggs till som en strukturerad rad.

Det du får: automation vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du bygger en lista med ”restauranger i Noord-Holland” och vill ha 200 leads. Manuellt tar även ett snabbt upplägg (namn, webbplats, telefon, stad) kanske 2 minuter per företag, så du tittar på ungefär 6 timmars repetitivt arbete. Med det här flödet lägger du cirka 10 minuter på att ställa in sökuppgiften i Apify och starta körningen i n8n, och sedan väntar du medan den skrapar. När den är klar är Google Sheets redan ifyllt med samma sex kolumner för varje rad.

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)
  • Apify för att köra actor:n Google Maps Scraper
  • Google Sheets för att lagra och dela leadrader
  • Apify API-token (hämta den från Apify Console → Integrations)

Svårighetsnivå: Medel. Du kopplar konton, väljer rätt Apify-actor/uppgift och matchar rubrikerna i ditt Google Sheet med de mappade fälten.

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

Så fungerar det

Du triggar en körning. Flödet startar just nu med en manuell start, vilket är smidigt när du testar söktermer eller bygger listor för olika städer.

Apify kör Google Maps-scrapern. n8n startar din Apify-uppgift (baserat på den actor du har konfigurerat) och använder sedan en kort väntan så att den inte försöker hämta resultat innan de finns.

Senaste datasetet hämtas och formas. Flödet hämtar senaste körningen, tar in dataset-posterna och mappar fälten du faktiskt bryr dig om: företagsnamn, gata, postnummer, stad, webbplats och telefonnummer.

Google Sheets blir destinationen. Varje dataset-post läggs till som en ny rad i den valda fliken i kalkylarket, med rubriker som matchar flödets output.

Du kan enkelt ändra triggern till att köras enligt schema istället för manuellt, så att listan hålls uppdaterad. Se hela implementationsguiden nedan för alternativ för anpassning.

Steg-för-steg-guide för implementation

Steg 1: konfigurera den manuella triggern

Konfigurera den manuella triggern så att ni kan köra arbetsflödet vid behov medan ni testar er Apify-task.

  1. Lägg till noden Manual Launch Trigger som arbetsflödets startpunkt.
  2. Behåll standardinställningarna, eftersom Manual Launch Trigger inte kräver några parametrar.
  3. Koppla Manual Launch Trigger till Execute Apify Task.

Steg 2: anslut Apify

Konfigurera Apify-noderna som kör er task och hämtar resultat.

  1. Öppna Execute Apify Task och ställ in Resource till Actor tasks och Operation till Run task.
  2. Ställ in Actor Task ID till {{YOUR_APIFY_TASK_ID}}.
  3. Ställ in Wait for Finish till 10.
  4. Credential Required: Anslut era apifyApi-inloggningsuppgifter i Execute Apify Task.
  5. Öppna Fetch Latest Run, ställ in Operation till Get last run och ställ in Actor ID till {{YOUR_ACTOR_ID}}.
  6. Credential Required: Anslut era apifyApi-inloggningsuppgifter i Fetch Latest Run.
  7. Öppna Retrieve Dataset Entries, ställ in Resource till Datasets och Operation till Get items.
  8. Ställ in Dataset ID till ={{ $json.defaultDatasetId }}.
  9. Credential Required: Anslut era apifyApi-inloggningsuppgifter i Retrieve Dataset Entries.

⚠️ Vanlig fallgrop: Ersätt {{YOUR_APIFY_TASK_ID}} och {{YOUR_ACTOR_ID}} med giltiga ID:n från Apify, annars kommer arbetsflödet att returnera tomma resultat.

Steg 3: sätt upp bearbetningskedjan

Lägg in en fördröjning och länka Apify-körningen till dataset-hämtningen för att säkerställa att resultaten finns tillgängliga.

  1. Öppna Delay Execution och ställ in Amount till 60.
  2. Koppla Execute Apify TaskDelay Execution.
  3. Koppla Delay ExecutionFetch Latest Run.
  4. Koppla Fetch Latest RunRetrieve Dataset Entries.

Om er Apify-task tar längre tid än 60 sekunder, öka Amount i Delay Execution för att undvika att hämta ett ofullständigt dataset.

Steg 4: konfigurera utdata till Google Sheets

Mappa dataset-fält till ert Google-ark så att varje lead läggs till som en ny rad.

  1. Öppna Append Sheet Record och ställ in Operation till append.
  2. Ställ in Sheet Name till ={{YOUR_TAB_NAME}} och Document ID till ={{YOUR_SPREADSHEET_ID}}.
  3. Mappa kolumnerna med dessa uttryck: City={{ $json.city }}, Title={{ $json.title }}, Street={{ $json.street }}, Website={{ $json.website }}, Postcode={{ $json.postalCode }}.
  4. Behåll uttrycket för telefonnormalisering i Phone: ={{(() => {\n const raw = $json.phone; // vervang "phone" door het juiste veldnaam\n const digits = raw.replace(/\s+/g, ''); // verwijdert spaties\n if (digits.startsWith('+31')) {\n return '0' + digits.slice(3); // vervang +31 door 0\n }\n return digits;\n})()}}.
  5. Credential Required: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Append Sheet Record.

⚠️ Vanlig fallgrop: Säkerställ att ert Google-ark har matchande kolumnrubriker för Title, Street, Postcode, City, Website och Phone, annars kommer append-mappningen att misslyckas.

Steg 5: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att bekräfta att Apify-resultat hämtas och skrivs till Google Sheets innan ni slår på arbetsflödet.

  1. Klicka på Execute Workflow och trigga Manual Launch Trigger.
  2. Verifiera att Execute Apify Task slutförs och vänta sedan tills Delay Execution är klar.
  3. Bekräfta att Retrieve Dataset Entries returnerar items och att Append Sheet Record lägger till nya rader i ert kalkylark.
  4. När allt är verifierat, växla arbetsflödet till Active för användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Apify-inloggningar kan löpa ut eller så kan token sakna åtkomst till rätt actor/uppgift. Om det skapar fel, kontrollera din Apify-token i n8n-credentials och bekräfta först att uppgiften går att köra i Apify Console.
  • Om du använder Wait-noder eller extern skrapning varierar processingtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
  • Google Sheets-tillägg kan se ”trasigt” ut när rubrikerna inte matchar. Bekräfta att arket använder förväntade kolumner (Title, Street, Postcode, City, Website, Phone) innan du testar igen.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Apify Google Sheets-automationen?

Cirka 30 minuter om din Apify-uppgift och ditt Sheet är redo.

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

Nej. Du kommer mest att välja rätt Apify-actor/uppgift och matcha kolumner i Google Sheet.

Är n8n gratis att använda för det här Apify Google Sheets-flödet?

Ja. n8n har ett gratis self-hostat alternativ och en gratis testperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in Apify-användning, som beror på hur stora dina skrapningar är och hur ofta du kör dem.

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

Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och klarar n8n bra. Self-hosting ger obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här Apify Google Sheets-flödet för schemalagd skrapning?

Ja, och det är en vanlig uppgradering. Byt ut den manuella triggern mot en Schedule-trigger och behåll sedan stegen för Apify-körning, väntan, dataset-hämtning och Google Sheets-tillägg likadana. Många team anpassar också Apify-uppgiftens input så att varje körning riktar in sig på en ny stad eller ett nytt nyckelord, och de lägger till en dubblettkontroll innan raderna läggs till i arket.

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

Oftast är det en API-tokenfråga. Skapa en ny Apify-token i Apify Console, uppdatera n8n-credentials och bekräfta att uppgiften går att köra manuellt i Apify. Om det fungerar, kontrollera att flödet pekar på rätt actor/uppgift i noderna ”run scraper” och ”fetch latest run”, eftersom fel val kan se ut som ett anslutningsfel. Rate limits kan också dyka upp när du kör stora skrapningar back-to-back.

Hur många leads klarar den här Apify Google Sheets-automationen?

Några tusen rader per körning är typiskt, så länge ditt Apify-dataset returnerar poster och ditt Google Sheet inte slår i storleksgränser. På n8n Cloud beror kapaciteten på dina månatliga körningar, medan self-hosting saknar körningstak och främst beror på din server. Om du förväntar dig väldigt stora listor, dela upp per stad eller nyckelord och kör mindre batchar så att Sheets förblir snabbt.

Är den här Apify Google Sheets-automationen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet bygger på ”kör jobb, vänta, hämta senaste körning, och hämta sedan ett dataset”, vilket är enklare att styra i n8n. Zapier och Make kan göra det, men du kan landa i fler betalda steg och mindre flexibilitet kring väntan och batchning. n8n låter dig också self-hosta, vilket spelar roll om du kör många skrapningar. Om du bara behöver en liten tvåstegsautomation som ”skicka en rad någonstans” är Zapier helt ärligt fullt tillräckligt. Prata med en automationsexpert om du vill ha hjälp att välja det enklaste alternativet.

När detta väl rullar slutar leadlistbyggande vara ett tröttsamt adminjobb och blir istället en repeterbar input till din säljprocess. Sätt upp det, kör det när du behöver det och gå tillbaka till 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.

×

Använd mall

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

Launch login modal Launch register modal