Enrich Google Maps business leads using Apify, OpenAI, Jina AI, Telegram and Sheets

Go to Workflow
115 views
Built by Khairul Muhtadin Khairul Muhtadin
Created on February 22, 2026

Description

B2B leads without the database subscription. This workflow scrapes Google Maps, writes AI business summaries, and digs contact emails out of websites, all triggered from Telegram on your phone. Four hours of manual hunting becomes 5 minutes per 50 leads.

Last updated: September 2026.

Why Use This Workflow?

Time Savings: Lead research drops from 4 hours of manual searching to 5 minutes of automated execution per 50 leads.

Cost Reduction: A pay-as-you-go model with Apify and OpenAI replaces expensive monthly lead database subscriptions.

Error Prevention: AI deduplicates results and keeps company summaries professional and CRM-ready.

Scalability: Trigger massive scraping tasks from your phone while the backend does the heavy lifting.

Ideal For

Sales Development Reps (SDRs):** Targeted lists of local businesses for cold outreach or door-knocking campaigns.
Marketing Agencies:** New businesses in specific sectors (e.g., "Dentists in Paris") for SEO or advertising pitches.
Real Estate Investors:** Commercial properties or business types by area for investment scouting.

How It Works

Trigger: The workflow starts when you send a message to your Telegram bot in the format: Sector; Limit; MapsURL.
Data Collection: n8n parses these parameters and triggers an Apify Actor to scrape Google Maps for business details.
Processing: The workflow retrieves the results, removes duplicate entries, and begins a loop to process each business.
Intelligence Layer (Summary): OpenAI analyzes the business data to create a natural, human-like summary of the company.
Enrichment (Email Hunting): If the business has a website, Jina AI fetches the page content, and OpenAI extracts the most authoritative contact email.
Output & Delivery: Core data is upserted into Google Sheets, and the email is updated once found. A "DONE" notification is sent to Telegram upon completion.

Setup Guide

Prerequisites

| Requirement | Type | Purpose |
|-------------|------|---------|
| n8n instance | Essential | Workflow execution and logic |
| Apify Account | Essential | Scrapes Google Maps data |
| OpenAI API Key | Essential | Generates summaries and extracts emails |
| Google Sheets | Essential | Data storage and lead management |
| Telegram Bot | Essential | User interface for triggering searches |
| Jina AI Key | Essential | Converts websites to LLM-friendly Markdown |

Installation Steps

Import the JSON file into your n8n instance.
Configure credentials:
Telegram: Create a bot via @BotFather and add your token to the Telegram nodes.
Apify: Provide your API token to the "Run Maps Scraper" and "Fetch Dataset" nodes.
OpenAI: Add your API key to the enrichment nodes.
Google Sheets: Connect your Google account and select your target Spreadsheet ID.
Set up the Sheet: Ensure your Google Sheet has headers matching the "Upsert" node (Title, Email, Category, Website, etc.).
Test execution: Send a message like Coffee Shops; 5; https://www.google.com/maps/search/coffee+shops+london to your bot.

Technical Details

Core Nodes

| Node | Purpose | Key Configuration |
|------|---------|-------------------|
| Telegram Trigger | Captures user input | Listens for /message updates |
| Apify Node | Executes Maps Scraper | Uses nwua9Gu5YrADL7ZDj actor ID |
| OpenAI Node | AI Analysis | Configured for JSON output (Summary) and extraction (Email) |
| Jina AI | Web Scraping | Converts HTML to Markdown for AI readability |
| Google Sheets | Database | Uses Append or Update based on the business Title |

Workflow Logic

The workflow utilizes a Split In Batches loop to ensure stability. It first performs a "shallow" save of business details (name, phone, address) and then attempts a "deep" enrichment only if a website URL is detected. This two-stage approach ensures you don't lose data if a website crawl fails.

Customization Options

Basic Adjustments:
Rate Limit:** Adjust the "Wait" node duration (default 2s) to comply with Google Sheets or API limits.
Language:** Modify the OpenAI prompt to generate summaries in your preferred language (e.g., English, French, Spanish).

Advanced Enhancements:
CRM Integration:** Replace Google Sheets with HubSpot or Pipedrive for direct lead injection.
Slack Notifications:** Send the final lead list or business summary directly to a sales channel.
Auto-Emailer:** Add a Gmail/Outlook node to automatically send an introductory email once a lead is found.

Troubleshooting

Common Issues:

| Problem | Cause | Solution |
|---------|-------|----------|
| Empty Email column | Website protected by bot-blockers | Try a different scraper or use a proxy in Jina AI |
| Apify Timeout | Scraping limit set too high | Lower the "limit" parameter in your Telegram message |
| 429 Errors | Google Sheets rate limits | Increase the duration in the "Wait Rate Limit" node |

Use Case Examples

Scenario 1: Local SEO Agency
Challenge: Finding local contractors with poor reviews but high revenue potential.
Solution: Use the workflow to scrape "Plumbers" in a city, use AI to summarize their online presence, and collect emails.
Result: A curated list of 100 leads with contact info and a "Pitch" summary generated in minutes.

Scenario 2: SaaS Cold Outreach
Challenge: Getting the direct email of a business owner for a new booking software.
Solution: Trigger the scraper via Telegram while in the field. The workflow extracts the "authoritative" email (manager/owner) from their site.
Result: Accurate, high-intent lead data delivered directly to a master spreadsheet for the sales team.

Quick Answers
What do I send the bot?
Sector; Limit; MapsURL. Example: Coffee Shops; 5; https://www.google.com/maps/search/coffee+shops+london.
Which Apify actor runs?
nwua9Gu5YrADL7ZDj for Maps scraping, configured in the workflow nodes.
Can summaries be non-English?
Yes. Adjust the OpenAI prompt language (English, French, Spanish, etc.).

Made by: khmuhtadin
Category: Marketing | Tags: Lead Gen, AI, Google Maps, Telegram
Need custom workflows? Contact me

Connect with the creator:
Portfolio • Workflows • LinkedIn • Medium • Threads

Additional info
Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/

This workflow was created by Khairul Muhtadin and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.

Nodes Used (5)

Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
Jina AI
n8n-nodes-base.jinaAi
OpenAI
@n8n/n8n-nodes-langchain.openAi
Telegram
n8n-nodes-base.telegram