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

Google Places till Google Sheets, berikade leads

Rickard Andersson Partner, Nodenordic.se

Leadsökning ser enkel ut tills du har 30 flikar öppna, kopierar telefonnummer, jagar mejladresser och ändå landar i ett kalkylark fullt av ”ingen webbplats” och ”bara kontakta oss.” Det är död tid. Och det dödar din outreach-momentum i det tysta.

Den här Places lead enrichment-lösningen träffar säljteam först (för pipen väntar på ingen). Men byråägare som bygger prospektlistor och marknadsförare som kör lokala kampanjer känner samma slit. Du får ett Google Sheet fyllt med poängsatta, berikade prospekt som faktiskt är redo att kontaktas.

Nedan ser du exakt vad det här n8n-flödet automatiserar, vilka resultat du kan förvänta dig och hur du anpassar det utan att göra det till ett vetenskapsprojekt.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Google Places till Google Sheets, berikade leads

Problemet: prospektering blir flikhoppande

Att hämta leads från Google Maps är enkelt. Att göra dem redo för outreach är den smärtsamma delen. Du tar fram en lista, klickar dig manuellt in i varje företag, öppnar deras webbplats, scrollar efter en footer, letar efter en mejladress, kopierar sociala länkar och försöker avgöra om företaget ens är värt din tid. Efter cirka 20 leads tar du redan genvägar. Det är då fel smyger sig in, dubbletter slinker igenom och din ”leadlista” blir en hög av kanske i stället för en pipeline du kan jobba i.

Det eskalerar snabbt. Här är var det faller isär i verkligheten.

  • Resultat från Google Places är inte samma sak som användbara leads, eftersom många listningar inte innehåller direkta kontaktuppgifter.
  • Att manuellt kontrollera 50 webbplatser efter mejl och sociala länkar kan sluka en eftermiddag, och du missar ändå sådant som gömmer sig i footern.
  • Utan poängsättning slösar teamet sin bästa outreach-tid på stängda verksamheter, lågt betygsatta företag eller listningar utan webbplats.
  • Copy-paste-flöden bjuder in till stökig Sheets-data, vilket gör att uppföljningar glider och rapportering blir gissningslek.

Lösningen: Google Places-leads, poängsatta och berikade i Sheets

Det här flödet förvandlar Google Places-sökningar till ett felfritt, berikat Google Sheet som teamet kan agera på. Det startar med en trigger (manuell start, webhook eller schema), använder sedan din valda kategori och plats för att hämta företagslistningar via Google Places API. Varje företag poängsätts för kvalitet med faktorer som betyg, driftstatus och om en webbplats finns. Bara de ”bra” leadsen går vidare. Därefter hämtar Scrape.do leadets webbplats-HTML pålitligt (hela poängen är att undvika blockeringar), och en OpenAI-driven AI-agent tolkar sidans footer för att plocka ut kontaktuppgifter som mejladresser, telefonnummer och sociala länkar. Till sist läggs allt till i Google Sheets som strukturerade rader, så att outreach kan starta direkt.

Flödet börjar med dina sökparametrar (som ”dentists” i ”Istanbul”). Sedan poängsätter och filtrerar det leads innan de berikas en och en genom webbskrapning och AI-extrahering. Slutresultatet är ett levande kalkylark som fortsätter att fylla på sig själv enligt ditt schema.

Vad du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du vill ha 60 nya prospekt i veckan från Google Places. Manuellt, om du lägger cirka 6 minuter per lead på att öppna listningen, besöka webbplatsen, leta i footern och klistra in detaljer i Sheets, blir det ungefär 6 timmar. Med det här flödet ställer du in sökningen en gång och låter den köra enligt schema. Även om berikningen tar ett par minuter per företag i bakgrunden, sjunker din hands-on-tid till runt 10 minuter för att granska arket och starta outreach.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Places API för att hämta lokala företagslistningar
  • Google Sheets för att lagra och dela berikade leads
  • Scrape.do API-token (hämta den i din Scrape.do-dashboard)
  • OpenAI API-nyckel (hämta den i OpenAI-plattformens dashboard)

Kunskapsnivå: Medel. Du kopplar några inloggningar, mappar Sheet-kolumner och justerar sökparametrar med trygg hand.

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

Så fungerar det

Trigger och sökparametrar. Du startar manuellt, via webhook eller enligt schema. Ett enkelt steg, ”Define Search Inputs”, sätter kategorin och platsen du vill rikta in dig på.

Google Places hämtar råa leads. Flödet skickar en HTTP-förfrågan till Google Places API och returnerar en lista med närliggande företag som matchar dina kriterier. Det är samma källa som teamet redan använder, bara automatiserat.

Poängsättning och filtrering skyddar din tid. Ett Function-steg räknar ut ett leadScore med signaler som betyg, om webbplats finns och driftstatus, och sedan behåller ett IF-filter bara de leads som är värda att berika. Ärligt talat är det här de flesta ”skrapnings”-upplägg faller, eftersom de försöker processa allt.

Webbskrapning och AI-berikning. Leads bearbetas i batchar, Scrape.do hämtar webbplats-HTML och ett HTML-extraheringssteg isolerar footer-området. Därefter extraherar en AI-agent (OpenAI Chat Model + strukturerad parsning) mejladresser, telefonnummer och sociala länkar och skickar korrekt formaterade fält till Google Sheets.

Du kan enkelt ändra poängreglerna för att prioritera olika leadtyper utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Det här arbetsflödet startar manuellt så att ni kan testa och finjustera leadsökningen innan ni automatiserar.

  1. Lägg till och öppna Manual Launch Trigger.
  2. Lämna standardinställningarna som de är för att kunna köra vid behov.
  3. Koppla Manual Launch Trigger till Define Search Inputs.

Använd den manuella triggern medan ni bygger så att ni kan granska varje nods output efter körning.

Steg 2: koppla Google Places-sökparametrar och API-anrop

Definiera sökplats och sökfråga och anropa sedan Google Places Nearby Search-endpointen.

  1. Öppna Define Search Inputs och ange värden:
  2. Ställ in searchCategory till dentist, locationName till Istanbul, Turkey, latitude till 41.0082, longitude till 28.9784, radius till 5000 och maxResults till 20.
  3. Öppna Retrieve Nearby Businesses och ställ in URL till https://places.googleapis.com/v1/places:searchNearby.
  4. Ställ in Method till POST och JSON Body till ={"includedTypes":["{{$json["searchCategory"]}}"],"maxResultCount":{{$json["maxResults"]}},"locationRestriction":{"circle":{"center":{"latitude":{{$json["latitude"]}},"longitude":{{$json["longitude"]}}},"radius":{{$json["radius"]}}}}}.
  5. Aktivera Send Headers och inkludera headerparametrar: X-Goog-FieldMask places.id,places.displayName,places.formattedAddress,places.nationalPhoneNumber,places.websiteUri,places.rating,places.businessStatus,places.primaryType,places.location och Content-Type application/json.
  6. Autentisering krävs: Anslut era httpHeaderAuth-uppgifter i Retrieve Nearby Businesses.

⚠️ Vanlig fallgrop: Om Retrieve Nearby Businesses returnerar tom data, verifiera behörigheterna för er Google Places API-nyckel och säkerställ att radius och maxResults är numeriska värden.

Steg 3: konfigurera lead scoring och routing

Poängsätt leads, filtrera premiumposter och routa lågkvalitativa leads för loggning.

  1. Öppna Parse and Rate Leads och behåll poänglogiken som beräknar leadScore baserat på betyg, webbplats, telefon och verksamhetsstatus.
  2. I Filter Premium Leads, bekräfta villkoren: leadScore larger än 50 och businessName notEqual till N/A med {{$json["leadScore"]}} och {{$json["businessName"]}}.
  3. Säkerställ att true-utgången från Filter Premium Leads är kopplad till Iterate Lead List.
  4. Säkerställ att false-utgången från Filter Premium Leads är kopplad till både Compile Lead Summary och Record Issue Log.
  5. Öppna Iterate Lead List för att bekräfta att batchbearbetning är aktiverad (standardinställningarna fungerar bra).

Använd output från Compile Lead Summary och Record Issue Log för att granska hur många leads som faller bort i premiumfiltret.

Steg 4: konfigurera webbskrapning och HTML-extraktion

Skrapa varje leads webbplats och hämta footer-HTML för kontaktutvinning.

  1. Öppna Scrape Site HTML och ställ in URL till http://api.scrape.do/ med Send Query aktiverat.
  2. Ange query-parametrar: url till {{ $json.website }} och token till {{$env["SCRAPE_DO_API_KEY"]}}.
  3. I Validate Scrape Result, säkerställ att villkoret kontrollerar att {{ $json.error.status }} är notEquals 400.
  4. I Extract Footer Section, ställ in Operation till extractHtmlContent och CSS Selector till footer för nyckeln footer.

⚠️ Vanlig fallgrop: Om Scrape Site HTML returnerar fel, säkerställ att miljövariabeln SCRAPE_DO_API_KEY är definierad i er n8n-instans.

Steg 5: konfigurera AI-baserad kontaktextraktion

Använd AI-agenten med en strukturerad output-parser för att extrahera kontakt- och sociala data från footer-HTML.

  1. Öppna AI Chat Engine och ställ in modellen till gpt-4.1-mini.
  2. Autentisering krävs: Anslut era openAiApi-uppgifter i AI Chat Engine.
  3. Öppna Structured Data Parser och ställ in Schema Type till manual med det angivna JSON-schemat för contact, social, location och other_contact_methods.
  4. Öppna AI Contact Extraction och bekräfta att prompten innehåller {{ $json.footer }} och att Has Output Parser är aktiverat.

Structured Data Parser är kopplad till AI Contact Extraction; lägg till autentiseringsuppgifter i den överordnade AI Chat Engine, inte i parserns subnod.

Steg 6: konfigurera output till Google Sheets

Lägg till berikad leaddata i ert kalkylark med fält mappade från AI-output och den ursprungliga leaddatan.

  1. Öppna Append Leads to Sheets och ställ in Operation till append.
  2. Ställ in Document ID till [YOUR_ID] och Sheet Name till gid=0.
  3. Mappa nyckelfält med expressions, till exempel: BusinessName{{ $('Iterate Lead List').item.json.businessName }}, emails{{ $json.output.contact.emails[0] }}, Facebook{{ $json.output.social.facebook }} och Other{{ $json.output.other_contact_methods[0].url }}.
  4. Autentisering krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Append Leads to Sheets.
  5. Säkerställ att Append Leads to Sheets routar tillbaka till Iterate Lead List för att bearbeta nästa lead i batchen.

Steg 7: testa och aktivera ert arbetsflöde

Kör arbetsflödet från början till slut och verifiera att data läggs till i ert ark.

  1. Klicka på Execute WorkflowManual Launch Trigger för att starta en testkörning.
  2. Bekräfta att Retrieve Nearby Businesses returnerar platsdata och att Parse and Rate Leads skickar ut items med leadScore.
  3. Kontrollera att Scrape Site HTML och Extract Footer Section producerar footer-innehåll och att AI Contact Extraction skickar ut strukturerad JSON.
  4. Verifiera att en ny rad läggs till i ert kalkylark av Append Leads to Sheets.
  5. När ni är nöjda, växla arbetsflödet till Active för produktionsanvändning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Places API-inloggningar kan löpa ut eller begränsas av projektinställningar. Om det skapar fel, börja med att kontrollera API-nyckelns begränsningar och faktureringsstatus i Google Cloud Console.
  • Om du använder Wait-beteende indirekt (batch-loopning plus extern skrapning) varierar processtiderna. Minska batchstorleken eller öka eventuella väntetider om efterföljande noder fallerar på tomma svar.
  • Standardprompter för AI är generiska. Lägg in dina exakta output-regler tidigt (vad som räknas som ”mejl”, vilka sociala kanaler som är viktiga, hur saknad data ska hanteras) annars kommer du att städa rader för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för Places lead enrichment?

Cirka en timme om dina API-nycklar och ditt Google Sheet är redo.

Behöver jag kunna koda för att automatisera lead enrichment från Google Places?

Nej. Du kopplar mest konton, klistrar in API-nycklar och mappar kolumner i Google Sheets. Den enda ”tekniska” delen är att justera reglerna för lead-poängsättning, och även det är valfritt.

Är n8n gratis att använda för det här flödet för Places lead enrichment?

Ja. n8n har ett gratisalternativ för egen hosting 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 med användning av Scrape.do och OpenAI API, samt kostnader för Google Places API beroende på volym.

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

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

Kan jag anpassa det här flödet för Places lead enrichment för flera städer i stället för en?

Ja, men då vill du ändra noden ”Define Search Inputs” så att den tar emot en lista med platser och sedan loopa igenom dem innan du anropar ”Retrieve Nearby Businesses.” Vanliga anpassningar är att köra en kategori över fem städer, köra fem kategorier i en stad eller höja minsta leadScore så att du bara berikar listningar i toppskiktet.

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

Oftast är det en begränsning på API-nyckeln eller ett faktureringsproblem i Google Cloud. Bekräfta att Places API är aktiverat, att din nyckel är aktiv och att nyckelbe-gränsningarna tillåter den typ av begäran du gör. I n8n: dubbelkolla också att Header Auth-uppgiften är vald i HTTP Request-noden ”Retrieve Nearby Businesses.” Om du testar hårt kan även rate limits dyka upp.

Hur många leads kan den här automatiseringen för Places lead enrichment hantera?

Många. I n8n Cloud beror kapaciteten på din plans månatliga körningar, eftersom varje lead kan trigga flera steg (Places-uppslag, skrapning, AI-extrahering, skrivning till Sheets). Om du kör egen hosting finns ingen körningsgräns, men serverresurser och API-rate limits blir flaskhalsen. I praktiken börjar de flesta team med några hundra leads per vecka, verifierar kvaliteten och skalar sedan upp.

Är den här automatiseringen för Places lead enrichment bättre än att använda Zapier eller Make?

För den här typen av flöde är n8n oftast bättre, eftersom du kan poängsätta och filtrera leads, loopa igenom batchar och köra en AI-agent med strukturerad output utan att fastna i plattformsbegränsningar. Egen hosting är också en stor grej om du planerar att skala. Zapier eller Make kan fortfarande fungera om du gör en enklare variant (grundläggande Places-hämtning till Sheets, ingen skrapning). Om du är osäker, prata med en automationsexpert och få en rekommendation baserad på din volym och dina mål.

När detta väl rullar slutar ditt kalkylark vara en soptipp och börjar fungera som en pipeline. Sätt upp det en gång och lägg sedan tiden på outreach som faktiskt driver affärer framåt.

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