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 Airtable, rensade leads utan copy paste

Rickard Andersson Partner, Nodenordic.se

Leadlistor faller isär på de tråkiga ställena. Du hittar företag på Google Maps, öppnar tio flikar, försöker hitta en e-postadress, klistrar in den i ett ark och inser sedan att du råkade ta samma företag två gånger.

Den här Google Maps Airtable-automationen träffar B2B-marknadsförare först, men lead gen-frilansare och små säljteam känner av den lika mycket. Du får en strukturerad tabell med företag med riktiga e-postadresser (när de finns), färre dubbletter och betydligt mindre manuellt efterarbete.

Nedan ser du exakt hur workflowet hämtar resultat från Google Maps, besöker varje webbplats som en riktig användare, extraherar en giltig e-postadress och sedan upsertar den till Airtable så att din outreach kan starta direkt.

Så fungerar den här automationslösningen

Hela n8n-workflowet, från trigger till slutlig output:

n8n Workflow Template: Google Maps till Airtable, rensade leads utan copy paste

Problemet: Google Maps-leads är röriga att samla in

Google Maps är bra för att hitta företag, men det är inte byggt för att skapa en användbar outreach-lista. Du klickar in på en profil, kopierar en webbplats, öppnar den, hoppas att det finns en kontaktsida och börjar sedan jaga en e-postadress i sidhuvud, sidfot eller på en nedgrävd “Om oss”-sida. Gör det 20 gånger. Det går långsamt, det splittrar fokus och det är lätt att missa uppenbara e-postadresser när du stressar. Och även när du lyckas blir din “databas” ett kalkylark med inkonsekvent formatering, dubbletter och halvfyllda fält som ingen litar på.

Det bygger snabbt på. Här är var det brukar fallera i verkligheten.

  • Att samla 30 leads kan ta runt 2 timmar när du räknar in flikbytande och efterstädning.
  • Du får dubbletter eftersom “Acme Plumbing” dyker upp med små skillnader i namnet.
  • E-postadresser missas eftersom du bara kollade startsidan och gick vidare.
  • Manuell copy-paste bjuder in misstag, och de misstagen syns senare i form av studsad outreach.

Lösningen: hämta leads, skrapa e-post och upserta till Airtable

Det här workflowet gör en Google Maps-sökning till en outreach-klar leadlista utan flikkaoset. Det börjar med ett enkelt formulär där du anger ett nyckelord, en plats och hur många leads du vill ha (10 som standard). n8n kör sedan en Apify Google Maps-actor för att hämta matchande företag, plockar ut nyckelfälten du bryr dig om och processar dem i batcher för att hålla det stabilt. För varje företag besöker det webbplatsen med lätta HTTP-förfrågningar, roterar User-Agent-headers för att se mer ut som normal surfning och väntar några sekunder mellan anropen för att minska blockering. HTML konverteras till strukturerad text, sedan extraherar workflowet den första giltiga e-postadressen det kan hitta, filtrerar bort tomma resultat och sparar strukturerade poster i Airtable med en upsert-metod för att undvika dubbletter.

Workflowet startar när du skickar formuläret i n8n. Därifrån samlar Apify in företagsdata från Google Maps, sedan loopar n8n igenom varje webbplats för att hämta innehåll och extrahera en e-postadress. Till sist får Airtable bara de leads som godkänns i valideringen, formaterade och redo för din nästa kampanj.

Det här får du: automation vs. resultat

Exempel: så här ser det ut

Säg att du vill ha 25 “takläggare” i Austin. Manuellt kan du lägga runt 5 minuter per företag mellan Google Maps, webbplatsen och ditt kalkylark, vilket blir ungefär 2 timmar totalt. Med det här workflowet skickar du formuläret på cirka 2 minuter och låter sedan skrapern jobba i bakgrunden med inbyggda fördröjningar (några sekunder per sida) medan den extraherar e-post och filtrerar bort skräp. Du granskar fortfarande den färdiga Airtable-tabellen, men det är oftast 10 minuter, inte en hel eftermiddag.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • Apify för att skrapa företagsdata från Google Maps.
  • Airtable för att lagra leads och avduplicera via upsert.
  • Apify API-nyckel (hämta den i inställningarna för ditt Apify-konto)

Kunskapsnivå: Medel. Du kopplar in credentials och kan behöva justera ett par steg för fältmappning i n8n.

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

Så fungerar det

En formulärinsändning startar allt. Du anger ett söknyckelord, en målplats och hur många leads du vill få tillbaka. Den enda inputen gör workflowet återanvändbart för olika nischer och städer.

Google Maps-resultat samlas in och begränsas. Apify söker på Google Maps, sedan hämtar n8n datasetposterna, väljer fälten du bryr dig om (som namn, telefon, webbplats, kategori) och begränsar bearbetningen så att du inte råkar hämta hundratals resultat.

Webbplatser besöks försiktigt, inte aggressivt. Varje leads webbplats-URL städas så att endast spårningsskräp tas bort (query strings och fragments), och hämtas sedan via HTTP med roterande User-Agent-headers. Workflowet konverterar HTML till läsbar text och pausar några sekunder mellan anropen, vilket hjälper för att undvika rate limits och enkel bot-detektering.

E-post extraheras, valideras och lagras. Workflowet skannar den strukturerade texten efter en e-postadress, filtrerar bort saknade eller ogiltiga resultat och skickar sedan bara bra leads till Airtable. Airtable-steget använder ett upsert-mönster, så att upprepade körningar inte fortsätter skapa dubbletter.

Du kan enkelt ändra vilka fält du sparar så att det matchar din base, till exempel genom att lägga till betyg eller kategorier från Apify. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera triggern för formulärinsändning

Skapa formuläret som startar arbetsflödet och fångar användarinmatning för nyckelord, plats och antal leads.

  1. Lägg till och öppna Form Submission Trigger.
  2. Ställ in Form Title till Web Scraper.
  3. Ställ in Form Description till This scrapes website urls from Google Maps to get company information..
  4. Lägg till formulärfält: Keyword (obligatoriskt), Location (obligatoriskt) och No. Of Leads med platshållaren 10.

Om ert formulär inte visas efter testning, se till att arbetsflödet är sparat och att ni har använt den publika formulär-URL:en från Form Submission Trigger.

Steg 2: Anslut Apify för Google Maps-data

Kör Apify-aktorn och hämta datasetposter baserat på formulärinmatningen.

  1. Öppna Launch Apify Task och ställ in Operation till Run actor.
  2. Ställ in Timeout till 120 och Wait for Finish till 20.
  3. Klistra in Custom Body exakt som: ={ "language": "en", "locationQuery": "{{ $json.Location }}", "maxCrawledPlacesPerSearch": {{ $json['No. Of Leads'] ? Number($json['No. Of Leads']) : 10 }}, "searchStringsArray": [ "{{ $json.Keyword }}" ], "skipClosedPlaces": false, "website": "withWebsite" }.
  4. Autentiseringsuppgifter krävs: Anslut era apifyApi-inloggningsuppgifter i Launch Apify Task.
  5. Öppna Retrieve Dataset Records och ställ in Resource till Datasets.
  6. Ställ in Operation till Get items och Dataset ID till ={{ $json.defaultDatasetId }}.
  7. Autentiseringsuppgifter krävs: Anslut era apifyApi-inloggningsuppgifter i Retrieve Dataset Records.

⚠️ Vanlig fallgrop: Om Launch Apify Task misslyckas, bekräfta att actor-ID:t är giltigt och att aktorn stöder indatafälten som används i Custom Body.

Steg 3: Forma och batcha datasetresultaten

Normalisera datasetutdata, begränsa volymen och dela upp posterna i batchar för vidare bearbetning.

  1. I Select Target Fields mappar ni fält exakt: Company Name till ={{ $json.title }}, Company Category till ={{ $json.categoryName }}, Address till ={{ $json.address }}, Website till ={{ $json.website }}, Phone Number till ={{ $json.phoneUnformatted }}, Rating till ={{ $json.totalScore }} och Other Categories till ={{ $json.categories }}.
  2. I Cap Items ställer ni in Max Items till 30.
  3. Använd Batch Iterator som split-nod för att bearbeta varje post.

Om ni behöver fler leads, öka Max Items i Cap Items och säkerställ att er Apify-plan stödjer högre gränser.

Steg 4: Hämta webbplatsens HTML och extrahera e-postadresser

Förbered URL:er, rotera user agents, skrapa HTML, konvertera till markdown och extrahera e-postadresser.

  1. I Parse Site URL ställer ni in website till ={{ $json.Website }}.
  2. I Clean URL Parts behåller ni den angivna JavaScript-koden för att normalisera URL:er och ta bort query strings.
  3. I Assign User Agents ställer ni in website till ={{ $json.website }} och ställer in User-Agent till det slumpade array-uttrycket ={{ [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:118.0) Gecko/20100101 Firefox/118.0" ][Math.floor(Math.random() * 5)] }}.
  4. I Assign User Agents ställer ni in Accept till text/html,*/*;q=0.8, Accept-Language till en-US,en;q=0.9 och Referer till https://google.com/.
  5. I Fetch Website HTML ställer ni in URL till ={{ $json.website }} och aktiverar Send Headers med User-Agent, Accept-Language, Referer och Accept mappade från inkommande JSON.
  6. I Markdown Converter ställer ni in HTML till ={{ $json.data }}.
  7. I Randomized Pause ställer ni in Amount till ={{ Math.floor(Math.random() * 6 + 2) }} för att strypa förfrågningarna.
  8. Behåll Combine Streams i Mode combine med Combine By inställt till combineByPosition.
  9. I Extract Email Data behåller ni den angivna JavaScript-koden för att extrahera och avduplicera e-postadresser.
  10. I Delay Step ställer ni in Amount till 1 för att sekvensera sammanslagningen säkert.
  11. Behåll Merge Email Results i Mode combine med Combine By inställt till combineByPosition.

⚠️ Vanlig fallgrop: Om Fetch Website HTML returnerar tom data, verifiera att fältet website är giltigt efter Clean URL Parts och säkerställ att webbplatsen tillåter skrapning.

Steg 5: Filtrera giltiga e-postadresser och färdigställ fält

Ta bort ogiltiga e-postresultat och bygg de slutliga postfälten innan ni skickar till Airtable.

  1. I Secondary Batch Loop behåller ni split-in-batches-konfigurationen för att iterera över varje skrapad webbplats.
  2. I Filter Valid Emails behåller ni villkoret: email notEquals N/A med ={{ $json.email }}.
  3. I Finalize Field Set mappar ni fält: Company Name till ={{ $json['Company Name'] }}, Company Category till ={{ $json['Company Category'] }}, Address till ={{ $json.Address }}, Website till ={{ $json.Website }}, Phone Number till ={{ $json['Phone Number'] }}, Rating till ={{ $json.Rating }}, Email till ={{ $json.email }} och Other Categories till ={{ $json['Other Categories'] }}.

Steg 6: Konfigurera utdata till Airtable

Upserta de färdigställda posterna till Airtable med e-post som matchningsfält.

  1. Öppna Airtable Upsert och ställ in Operation till upsert.
  2. Välj er Base och Table för att ersätta [YOUR_ID]-platshållarna.
  3. Mappa Columns till de angivna uttrycken: Email ={{ $json.Email }}, Rating ={{ $json.Rating }}, Website ={{ $json.Website }}, Category ={{ $json['Company Category'] }}, Location ={{ $json.Address }}, Phone Number ={{ $json['Phone Number'] }}, Business Name ={{ $json['Company Name'] }} och Other Categories ={{ $json['Other Categories'].join() }}.
  4. Ställ in Matching Columns till Email.
  5. Autentiseringsuppgifter krävs: Anslut era airtableTokenApi-inloggningsuppgifter i Airtable Upsert.

Steg 7: Testa och aktivera ert arbetsflöde

Validera att arbetsflödet körs från början till slut och skickar poster till Airtable korrekt.

  1. Klicka på Execute Workflow och skicka in formuläret från Form Submission Trigger med ett exempel på Keyword och Location.
  2. Bekräfta att Retrieve Dataset Records matar ut poster och att Select Target Fields visar mappade fält.
  3. Verifiera att Extract Email Data matar ut en giltig email och att Filter Valid Emails bara släpper igenom värden som inte är N/A.
  4. Kontrollera Airtable Upsert för lyckade upserts i er måltabell.
  5. Slå på 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

  • Airtable-credentials kan gå ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först scopes på din Airtable personal access token samt åtkomst till base/tabell.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
  • Apify-taskinställningar spelar större roll än de flesta tror. Om du får tunna resultat, verifiera actor-input (nyckelord, platsformat) och bekräfta att datasetet faktiskt fylls på innan n8n försöker läsa det.

Vanliga frågor

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

Cirka 30 minuter om dina Apify- och Airtable-konton är klara.

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

Nej. Du kopplar främst in credentials och mappar några fält. De enda “kod”-delarna är redan inbyggda i workflowet.

Är n8n gratis att använda för det här Google Maps Airtable-workflowet?

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 Apify-kostnader baserat på hur många Google Maps-resultat du skrapar.

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

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här Google Maps Airtable-workflowet för att spara till Google Sheets istället?

Ja, men du byter lagringssteget. Ersätt Airtable Upsert-noden med en Google Sheets append/upsert-åtgärd och uppdatera sedan “Finalize Field Set”-mappningen så att kolumnnamn matchar ditt ark. Vanliga justeringar är att spara fler Apify-fält (betyg, kategorier), ändra e-postregeln så att den fångar mer än en e-postadress och justera batchstorlek när du hämtar större listor.

Varför misslyckas min Airtable-anslutning i det här workflowet?

Oftast handlar det om token eller scopes. Skapa en ny Airtable personal access token, säkerställ att den kan läsa/skriva till den base du valt, och välj sedan om base/tabell i Airtable-noden så att n8n uppdaterar sitt schema. Kontrollera också ditt val av unikt fält för upsert, eftersom en tom eller felmatchad nyckel kan se ut som ett “anslutningsproblem” när det egentligen är ett mappningsproblem.

Hur många leads kan den här Google Maps Airtable-automationen hantera?

I praktiken kan den hantera hundratals per körning, men hastigheten begränsas av de inbyggda väntetiderna (det är avsiktligt) och av webbplatsers svarstider.

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

För leadinsamling i skrapningsstil är svaret oftast ja. Zapier och Make är bra för enkel “app till app”-synk, men de är inte lika bekväma med loopar i flera steg, HTML-hämtning, slumpade väntetider och filtreringslogik i ett och samma scenario. n8n är också enklare att self-hosta, vilket spelar roll när du kör många exekveringar och inte vill att varje steg ska debiteras. Nackdelen är uppsättningen: du lägger lite mer tid på att finjustera Apify-inputs och fältmappningar. Om du vill ha en snabb rekommendation för din volym och dina verktyg, prata med en automationsexpert.

När detta väl är igång slutar leadinsamling vara en research-uppgift och blir ett repeterbart system. Workflowet tar hand om det monotona, och du kan fokusera på outreach som faktiskt bokar möten.

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