Scrape Google Maps by area & generate outreach messages for lead generation
This n8n workflow automates lead extraction from Google Maps, enriches data with AI, and stores results for cold outreach.
It uses the Bright Data community node and Bright Data MCP for scraping and AI message generation.
How it works
-
Form Submission
User provides Google Maps starting location, keyword and country.
-
Bright Data Scraping
Bright Data community node triggers a Maps scraping job, monitors progress, and downloads results.
-
AI Message Generation
Uses Bright Data MCP with LLMs to create a personalized cold call script and talking points for each lead.
-
Database Storage
Enriched leads and scripts are upserted to Supabase.
How to use
Set up all the credentials, create your Postgres table and submit the form. The rest happens automatically.
Requirements
- LLM account (OpenAI, Gemini…) for API usage.
- Bright Data account for API and MCP usage.
- Supabase account (or other Postgres database) to store information.
n8n Google Maps Scraper and Outreach Message Generator
This n8n workflow automates the process of scraping Google Maps data for businesses within a specified area and then generates personalized outreach messages for lead generation using AI.
What it does
This workflow streamlines your lead generation efforts by:
- Triggering Manually: The workflow is initiated manually, allowing you to control when the scraping and generation process begins.
- Preparing Data for Scraping: It sets up the necessary parameters for the Google Maps scraping process.
- Executing Google Maps Scraping: It makes an HTTP request to an external service (likely a Google Maps scraper API) to retrieve business data based on the defined area.
- Handling Successful Scraping: If the scraping is successful, it proceeds to process the retrieved data.
- Handling Failed Scraping: If the scraping fails, it uses a "No Operation" node, implying that the workflow might stop or log the error without further action in this branch.
- Looping Through Scraped Items: It iterates over each business found by the scraper.
- Introducing a Delay: A "Wait" node is used to introduce a delay between processing each item, likely to avoid rate limiting on external APIs or to simulate human-like interaction.
- Generating Outreach Messages with AI: For each business, it uses an AI Agent (likely powered by an OpenAI or Google Gemini Chat Model) to generate a personalized outreach message. This AI agent likely has access to an "MCP Client Tool" (Model Context Protocol Client Tool), suggesting it might interact with a specialized model or service for context and generation.
- Storing Generated Leads: The generated outreach messages and associated business data are then stored in a PostgreSQL database.
- Limiting Output (Optional): A "Limit" node is present, which could be used during development or for specific use cases to process only a subset of the scraped data.
- Form-based Trigger (Alternative/Future): A "n8n Form Trigger" node is present but not connected in the provided JSON, suggesting a potential future enhancement to trigger the workflow via a web form.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n Instance: A running n8n instance.
- External Google Maps Scraper API: An API key and access to a Google Maps scraping service. The "HTTP Request" node will need to be configured with the appropriate URL and authentication.
- OpenAI or Google Gemini API Key: Credentials for either OpenAI or Google Gemini (or both, depending on which Chat Model node you choose to enable/configure) for the AI Agent to generate outreach messages.
- PostgreSQL Database: Access to a PostgreSQL database to store the scraped data and generated outreach messages. You will need the host, port, database name, user, and password.
- MCP Client Tool (Optional but likely required for AI Agent): Depending on the configuration of the AI Agent, you might need specific setup or credentials for the "MCP Client Tool."
Setup/Usage
- Import the Workflow: Import the provided JSON into your n8n instance.
- Configure Credentials:
- HTTP Request (Node 19): Update the "HTTP Request" node with the URL of your Google Maps scraper API and any required authentication (e.g., API keys in headers or query parameters).
- OpenAI Chat Model (Node 1153) / Google Gemini Chat Model (Node 1262): Select and configure the appropriate AI Chat Model node. Provide your OpenAI API Key or Google Gemini API Key in the credentials section.
- Postgres (Node 30): Configure the PostgreSQL credentials (host, port, database, user, password) to connect to your database.
- Define Scraping Parameters: In the "Edit Fields (Set)" node (Node 38), ensure the input data for the Google Maps scraper (e.g., search query, location, radius) is correctly set.
- Adjust AI Agent Prompt: Review and modify the prompt within the "AI Agent" node (Node 1119) to fine-tune the outreach message generation according to your specific needs and target audience.
- Activate the Workflow: Once configured, activate the workflow.
- Execute Manually: Click "Execute Workflow" on the "Manual Trigger" (Node 838) to start the process.
- Monitor Results: Monitor the execution in n8n and check your PostgreSQL database for the scraped business data and generated outreach messages.
Related Templates
AI-powered code review with linting, red-marked corrections in Google Sheets & Slack
Advanced Code Review Automation (AI + Lint + Slack) Who’s it for For software engineers, QA teams, and tech leads who want to automate intelligent code reviews with both AI-driven suggestions and rule-based linting — all managed in Google Sheets with instant Slack summaries. How it works This workflow performs a two-layer review system: Lint Check: Runs a lightweight static analysis to find common issues (e.g., use of var, console.log, unbalanced braces). AI Review: Sends valid code to Gemini AI, which provides human-like review feedback with severity classification (Critical, Major, Minor) and visual highlights (red/orange tags). Formatter: Combines lint and AI results, calculating an overall score (0–10). Aggregator: Summarizes results for quick comparison. Google Sheets Writer: Appends results to your review log. Slack Notification: Posts a concise summary (e.g., number of issues and average score) to your team’s channel. How to set up Connect Google Sheets and Slack credentials in n8n. Replace placeholders (<YOURSPREADSHEETID>, <YOURSHEETGIDORNAME>, <YOURSLACKCHANNEL_ID>). Adjust the AI review prompt or lint rules as needed. Activate the workflow — reviews will start automatically whenever new code is added to the sheet. Requirements Google Sheets and Slack integrations enabled A configured AI node (Gemini, OpenAI, or compatible) Proper permissions to write to your target Google Sheet How to customize Add more linting rules (naming conventions, spacing, forbidden APIs) Extend the AI prompt for project-specific guidelines Customize the Slack message formatting Export analytics to a dashboard (e.g., Notion or Data Studio) Why it’s valuable This workflow brings realistic, team-oriented AI-assisted code review to n8n — combining the speed of automated linting with the nuance of human-style feedback. It saves time, improves code quality, and keeps your team’s review history transparent and centralized.
Create Dynamic Seating & Venue Layout Plans with Google Sheets
Enhance event logistics with this automated n8n workflow. Triggered by seating requests, it fetches attendee data and venue templates from Google Sheets, calculates totals, and optimizes seating layouts. The workflow generates detailed recommendations, splits individual assignments, and sends alerts, ensuring efficient venue planning and real-time updates. 🎪📋 Key Features Optimizes seating arrangements based on attendee data and event type. Generates venue layouts with visual and statistical insights. Provides real-time alerts with comprehensive seating plans. Logs detailed assignments and layouts in Google Sheets. Workflow Process The Webhook Trigger node initiates the workflow upon receiving venue requirements and attendee data via webhook. Validate Request Data ensures the incoming data is complete and accurate. Fetch Attendee Data retrieves attendee information, including groups, accessibility needs, and VIP preferences from Google Sheets. Fetch Venue Templates reads venue layout templates from Google Sheets. Calculate Totals aggregates attendee data and venue constraints for optimal planning. Combine All Data merges attendee and venue data for analysis. AI Optimization uses algorithms to calculate optimal seating based on venue dimensions, attendee groups, accessibility needs, VIP placement, and aisle placement. Optimize Seating Layout refines the seating plan for efficiency. Format Recommendations structures the seating plan with visual layout map, seat assignments, statistics & metrics, and optimization tips. Split Seat Assignments divides the plan into individual seat assignments. Send Response returns the complete seating plan with visual layout map, seat assignment list, statistics & recommendations, and export-ready format. Send Alert notifies organizers with the finalized plan details. Update Sheets saves the master plan summary, individual seat assignments, and layout specifications to Google Sheets. Save Individual Assignments appends or updates individual seat assignments to Google Sheets. Setup Instructions Import the workflow into n8n and configure Google Sheets OAuth2 for data access. Set up the Webhook Trigger with your event management system's API credentials. Configure the AI Optimization node with a suitable algorithm or model. Test the workflow by sending sample seating requests and verifying layouts. Adjust optimization parameters as needed for specific venue or event requirements. Prerequisites Google Sheets OAuth2 credentials Webhook integration with the event management system Structured attendee and venue data in a Google Sheet Google Sheet Structure: Attendee Data Sheet with columns: Name Group Accessibility Needs VIP Status Preferences Updated At Venue Templates Sheet with columns: Venue Name Capacity Dimensions Layout Template Updated At Modification Options Customize the Validate Request Data node to include additional validation rules. Adjust the AI Optimization node to prioritize specific criteria (e.g., proximity, accessibility). Modify the Format Recommendations node to include custom visual formats. Integrate with venue management tools for live layout updates. Set custom alert triggers in the Send Alert node. Discover more workflows – Get in touch with us
Generate Weather-Based Date Itineraries with Google Places, OpenRouter AI, and Slack
🧩 What this template does This workflow builds a 120-minute local date course around your starting point by querying Google Places for nearby spots, selecting the top candidates, fetching real-time weather data, letting an AI generate a matching emoji, and drafting a friendly itinerary summary with an LLM in both English and Japanese. It then posts the full bilingual plan with a walking route link and weather emoji to Slack. 👥 Who it’s for Makers and teams who want a plug-and-play bilingual local itinerary generator with weather awareness — no custom code required. ⚙️ How it works Trigger – Manual (or schedule/webhook). Discovery – Google Places nearby search within a configurable radius. Selection – Rank by rating and pick the top 3. Weather – Fetch current weather (via OpenWeatherMap). Emoji – Use an AI model to match the weather with an emoji 🌤️. Planning – An LLM writes the itinerary in Markdown (JP + EN). Route – Compose a Google Maps walking route URL. Share – Post the bilingual itinerary, route link, and weather emoji to Slack. 🧰 Requirements n8n (Cloud or self-hosted) Google Maps Platform (Places API) OpenWeatherMap API key Slack Bot (chat:write) LLM provider (e.g., OpenRouter or DeepL for translation) 🚀 Setup (quick) Open Set → Fields: Config and fill in coords/radius/time limit. Connect Credentials for Google, OpenWeatherMap, Slack, and your LLM. Test the workflow and confirm the bilingual plan + weather emoji appear in Slack. 🛠 Customize Adjust ranking filters (type, min rating). Modify translation settings (target language or tone). Change output layout (side-by-side vs separated). Tune emoji logic or travel mode. Add error handling, retries, or logging for production use.