🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Apify to Airtable, clean Google Maps leads ready

Lisa Granqvist Partner Workflow Automation Expert

You finally scrape a fresh Google Maps list… and then lose the next few hours cleaning it, hunting for emails, and trying to remember who you already contacted.

This Apify Airtable leads automation hits marketers first, but sales reps and agency operators feel it too. You get a clean Airtable prospect table (name, address, website, phone, email) and a Gmail outreach email sent automatically.

Below you’ll see exactly what the workflow does, what you need to run it, and what kind of time you can realistically get back each week.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Apify to Airtable, clean Google Maps leads ready

The Problem: Google Maps leads are messy (and slow to use)

Scraping Google Maps is the easy part. The annoying part is what happens after: half the rows are inconsistent, websites are missing or broken, and the one field you actually need (a usable email) is almost never cleanly available. So you open 30 tabs, click “Contact” pages, scroll footers, copy addresses, paste them into a sheet, and hope you didn’t grab a generic no-reply email. It’s repetitive work, but it still demands attention, which makes it feel even longer.

It adds up fast. Here’s where it breaks down in real life.

  • You waste about 5 minutes per lead just turning raw output into something your team can use.
  • Lists end up “almost done” and never get contacted because cleanup becomes a mini project.
  • Email guessing (or skipping emails entirely) leads to low reply rates and more manual follow-up later.
  • Without a structured database like Airtable, it’s hard to avoid duplicates or track who got contacted.

The Solution: Scrape, clean, enrich, store, then email (automatically)

This workflow takes you from “raw Google Maps scrape” to “ready-to-contact leads” without the usual spreadsheet chaos. You trigger it in n8n, it calls Apify’s Google Maps extractor via HTTP to pull business listings for your keyword and location, then normalizes the fields into a consistent format. Next, it processes each business in batches, visits the company website, and uses an OpenAI chat model to extract a relevant contact email from the HTML. Finally, it creates a clean record in Airtable with the key fields (title, address, website, phone, email, Maps URL) and sends a personalized Gmail outreach message using the data you just stored.

The workflow starts with an Apify scrape for a niche and location (for example, “real estate agency” in Paris). From there, n8n cleans the records, loops through websites safely in batches, and asks AI to return only the best email (or “Null” if none exists). Airtable becomes your source of truth, and Gmail handles the first touch automatically.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you scrape 50 “Paris real estate agencies.” Manually, if you spend about 3 minutes cleaning each row and another 5 minutes finding an email on the website, that’s roughly 6 to 7 hours of busywork before you can even send outreach. With this workflow, you trigger the run once, then let it batch through the 50 sites and store results in Airtable; you’ll mostly spend time reviewing the final table, maybe 20 minutes, and only spot-checking “Null” emails. That’s most of a workday back, on a small list.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Apify for scraping Google Maps listings.
  • Airtable to store and manage leads.
  • Gmail to send personalized outreach via OAuth.
  • OpenAI API key (get it from the OpenAI dashboard API keys page).

Skill level: Intermediate. You’ll connect accounts, map a few fields, and test runs with small batches.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

You trigger a scrape run. In n8n, a manual start kicks things off and sends a request to Apify’s Google Maps extractor with your keyword, location, and result count.

The raw lead data gets cleaned. n8n normalizes the output so every lead has the same core fields (title, address, website, phone, URL), which keeps Airtable tidy and predictable.

Websites are processed in batches. The workflow loops through leads (batch size is configurable), loads each website’s HTML, then asks the OpenAI chat model to return only the best contact email or “Null”. Honestly, this is the piece that removes the most mental load.

Leads are stored and outreach is sent. Each enriched lead is saved into Airtable, then Gmail sends an email using fields from Airtable so the subject and body can include business name, website, phone, and the Maps link.

You can easily modify the Apify search (industry, city, filters) to match your niche. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow starts manually so you can test lead scraping on demand.

  1. Add the Manual Start Trigger node as the entry point.
  2. Keep default settings, since it does not require configuration.
  3. Confirm the connection flows from Manual Start Trigger to Retrieve Maps Leads via Apify.

Step 2: Connect Apify and Normalize Lead Data

Pull Google Maps leads and standardize fields for downstream processing.

  1. In Retrieve Maps Leads via Apify, set URL to https://api.apify.com/v2/acts/compass~crawler-google-places/run-sync-get-dataset-items?token=[CONFIGURE_YOUR_TOKEN].
  2. Set Method to POST and Body to JSON with the existing payload (e.g., "locationQuery": "Paris, France" and "searchStringsArray": ["centre de formation"]).
  3. In Normalize Maps Records, map fields using the existing expressions, such as Nom du centre de formation{{ $json.title }} and Site internet{{ $json.website }}.
  4. Confirm the flow from Retrieve Maps Leads via ApifyNormalize Maps RecordsBatch Process Contacts.
⚠️ Common Pitfall: The Apify token is embedded in the URL. Replace [CONFIGURE_YOUR_TOKEN] with your real token before testing.

Step 3: Batch, Extract Websites, and Fetch HTML

Process leads in batches and fetch each website’s HTML for email discovery.

  1. In Batch Process Contacts, set Batch Size to 10.
  2. In Isolate Website Links, set Site internet to {{ $json['Site internet'] }} to isolate the URL.
  3. In Grab Website HTML, set URL to {{ $json['Site internet'] }} to request the website content.
  4. Ensure the execution path Isolate Website LinksGrab Website HTMLDerive Contact Email AI is connected.

Step 4: Set Up AI Email Extraction

Use the AI model to extract the best contact email from the site HTML.

  1. Open Derive Contact Email AI and confirm the model is set to gpt-4.1-mini.
  2. Verify the prompt includes the HTML via {{ $json.data }} and instructs the model to return only the email or Null.
  3. Credential Required: Connect your openAiApi credentials.

Step 5: Configure Airtable Storage and Gmail Outreach

Store enriched leads in Airtable and send outreach emails via Gmail.

  1. In Store Leads in Airtable, select your Airtable Base and Table (currently placeholders [YOUR_ID]).
  2. Map fields using the existing expressions, for example Email{{ $json.message.content }} and URL{{ $('Normalize Maps Records').item.json.URL }}.
  3. Credential Required: Connect your airtableTokenApi credentials.
  4. In Dispatch Gmail Outreach, set To to {{ $json.fields.Email }} and Subject to {{ $json.fields.Title }}.
  5. Confirm the Message uses the template: Company name: {{ $json.fields.Title }} Website URL: {{ $json.fields.Website }} Phone number: {{ $json.fields["Phone Number"] }} Google Maps: {{ $json.fields.URL }} vbnet email is now **fully personalized** and based on clear, structured information.
  6. Credential Required: Connect your gmailOAuth2 credentials.
Tip: Make sure the Airtable column names match the mappings exactly (e.g., Phone Number, Website) to avoid empty values in Dispatch Gmail Outreach.

Step 6: Test and Activate Your Workflow

Run a manual test to verify each stage, then activate for production use.

  1. Click Execute Workflow on Manual Start Trigger to run a test.
  2. Confirm that Retrieve Maps Leads via Apify returns items and Normalize Maps Records outputs structured fields.
  3. Check that Derive Contact Email AI returns a single email or Null and that Store Leads in Airtable creates records.
  4. Verify Dispatch Gmail Outreach sends emails to the extracted addresses.
  5. When satisfied, switch the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Apify credentials can expire or you may be using the wrong API endpoint. If it fails, check your Apify actor run settings and the dataset endpoint URL you pasted into the HTTP Request node first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this Apify Airtable leads automation?

About 45 minutes if your Apify, Airtable, and Gmail accounts are ready.

Do I need coding skills to automate Apify Airtable leads?

No coding required. You’ll mainly paste an Apify endpoint, connect accounts, and map Airtable fields once.

Is n8n free to use for this Apify Airtable leads workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage, which is usually a few dollars for typical lead batches.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Apify Airtable leads workflow for a different niche and city?

Yes, and it’s the main reason this workflow scales. Change the keyword, location, and result count in the “Retrieve Maps Leads via Apify” HTTP Request payload, then keep the rest the same. Common tweaks include filtering to only businesses with websites, lowering the batch size when sites are slow, and editing the Gmail message template to match your offer.

Why is my Apify connection failing in this workflow?

Most of the time it’s an invalid token or the wrong Apify endpoint. Re-copy the “run actor synchronously and get dataset items” URL from Apify, then confirm your HTTP Request node is sending JSON in the body. Also watch for rate limits or actor settings that return empty datasets when filters are too strict.

How many leads can this Apify Airtable leads automation handle?

Practically speaking, hundreds per run is fine as long as you batch them. If you self-host n8n, execution volume depends on your server; on n8n Cloud, the cap depends on your plan. The limiting factor is usually website fetching and AI calls, so start with 50, then scale up once your prompt and batching behave.

Is this Apify Airtable leads automation better than using Zapier or Make?

Often, yes, because this flow needs batching, looping, and a bit of conditional thinking. Zapier and Make can do parts of it, but the “visit website HTML, extract an email, store it, then send outreach” chain gets expensive and fiddly as volume grows. n8n also gives you the self-host option, which matters when you want to run big scrapes without counting every task. If you only need “Apify results into a table,” simpler tools are fine. If you want the whole pipeline, n8n is the cleaner fit. Talk to an automation expert if you want a quick recommendation for your exact setup.

Once this is running, your “lead list” stops being a messy export and becomes a system you can rely on. Set it up, run it when you need fresh prospects, and get back to the work that actually closes deals.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal