Skip to content
FlowHubFluxonLab
C
Google Sheetsfree

Scrape business emails from Google Maps to Google Sheets

by Ravi Pateladapted from n8n official workflow galleryUpdated Aug 2026
RequiresCCodeGoogle SheetsGoogle SheetsHTTP RequestHTTP Request
Share Post Share
RDRemove Duplicate URLsRemove Duplicat…SILoop over queriesLoop over queri…HRSearch Google Maps with querySearch Google M…CoScrape URLs from resultsScrape URLs fro…FiFilter irrelevant URLsFilter irreleva…HRRequest web page for URLRequest web pag…SILoop over URLsSILoop over pagesCoScrape emails from pageScrape emails f…AgAggregate arrays of emailsAggregate array…SOSplit out into default data structureSplit out into …RDRemove duplicate emailsRemove duplicat…FiFilter irrelevant emailsFilter irreleva…Save emails to Google SheetSave emails to …EWStarts scraper workflowStarts scraper …MaRun workflowWaWait between executionsWait between ex…EWExecute scraper for queryExecute scraper…123456789101112131415
1/5
FLOWS
STEPS · 15
Called by another workflow

Quick overview This workflow takes a list of Google Maps search queries, extracts candidate business website URLs from the search results, visits each site, scrapes email addresses from the page content, and appends cleaned, deduplicated emails to Google Sheets fully automated, no manual research needed. How it works A manual trigger fires with a pinned list of Google Maps search queries, each representing a location and business type combination. A query loop iterates through each query, launching a sub-workflow execution per query and applying a configurable wait between executions to reduce request bursts. The sub-workflow sends an HTTP GET to the Google Maps search results URL for that query and reads the raw HTML response. A code node extracts all URLs from the HTML using a regex pattern, after which a filter node removes known system domains such as Google, gstatic, schema.org, and Wix internals, and a deduplication node removes repeated URLs before visiting. A URL loop processes each candidate business website one at a time, fetching the page HTML and passing it into the email processing flow.

Tags

n8nreference-onlygoogle-sheets
Connects
CCodesheetsGoogle SheetsWHTTP Request
CategoryGoogle Sheets
Triggermanual
Complexityadvanced
Nodes18
AddedJun 16, 2026

Related workflows

See all Google Sheets
CsheetsW
free

Calculate Shopify variant prices from Google Sheets with Slack approvals

Quick overview Video Explanation: https://youtu.be/_geRatkc1kU?si=qALW_nrPrNB4THuO This workflow runs daily to calculate Shopify variant prices from Google Sheets COGS inputs, automatically updates qualifying prices in Shopify, and posts Slack alerts for changes that need manual approval; it also supports Slack-based approvals to apply a proposed price from a Slack thread. How it works Runs every day on a scheduled trigger. Reads product dependency/recipe data from Google Sheets and looks up the latest supplier prices in a second Google Sheets sheet. Calculates raw COGS, landed COGS (with hidden cost percentage), and a target-margin retail price for each Shopify variant. Checks the calculated price against thresholds and either updates the Shopify variant price via the Shopify Admin API or posts an approval-required alert to Slack. Posts a Slack confirmation message when a scheduled Shopify price update succeeds. Triggers on Slack reaction events, verifies an authorized Slack user approved the change, then fetches the Slack thread replies and extracts the variant ID and approved price. Updates the Shopify variant price with the extracted value and posts a final status message to Sl

by iamvaar
CsheetsW
free

Generate and score Google Maps leads with Gemini, Apify, and Google Sheets

Quick overview Youtube Video:https://youtu.be/NGruDecKxAg?si=ot9pj6IN4IoLstow This workflow takes a chat-based search request, scrapes matching businesses from Google Maps using Apify, scores and ranks them with Google Gemini, deduplicates against an existing Google Sheet by placeId, saves new leads to the sheet, and returns a formatted results message to the chat. How it works Receives a message from an n8n chat trigger containing the user’s Google Maps lead search request. Sends the request to Google Gemini to extract structured search parameters (business type, location, max results, and output mode). Calls an Apify Google Maps scraping actor with the extracted parameters and selects a clean set of lead fields from the results. Removes duplicate businesses based on Google Maps placeId and batches the remaining leads into a single list. Sends the lead list to Google Gemini to add a 0–100 score and short reason to each lead and returns them sorted by score. Checks the scored leads against existing rows in Google Sheets and filters out any placeId values that are already saved. Appends or updates the new leads in Google Sheets and returns a formatted ranked lead list back to the ch

by iamvaar
CsheetsW
free

Track buyer query citation sources with GPT-4o and Google Sheets

Quick overview This workflow tracks which sources ChatGPT cites for buyer queries.vIt runs weekly to test buyer queries against OpenAI’s GPT-4o web search, extracts the cited URLs, and logs per-query citation counts and domain classifications to Google Sheets. How it works Runs every week on a schedule trigger. Reads a list of buyer queries (including brand and competitor context) from the queries tab in Google Sheets. Sends each query to OpenAI’s gpt-4o-mini-search-preview three times with web search enabled and extracts the url_citation annotations from each response. Aggregates citations per query and domain, calculating citation totals and a sample hit rate across the three runs. Sends the unique cited domains to OpenAI’s gpt-4o-mini to classify each domain into a source taxonomy (brand site, competitor site, review platform, community, publisher, or docs/other). Appends the aggregated rows with the domain classification and an example URL to the citations tab in Google Sheets. Setup Add an OpenAI API key as an HTTP Header Auth credential (Authorization: Bearer YOUR_KEY) for both OpenAI HTTP requests. Add a Google Sheets credential with access to the target spreadsheet. Create

by Sara Soleymani