Lead generation and qualification with GPT-4o, Google Workspace, and automated follow-up
π AI Lead Generation and Follow-Up Template
π Overview
This n8n workflow template automates your lead generation and follow-up process using AI. It captures leads through a form, enriches them with company data, classifies them into different categories, and sends appropriate follow-up sequences automatically.
Key Features:
- π€ AI-powered lead classification (Demo-ready, Nurture, Drop)
- π Automatic lead enrichment with company data
- π§ Intelligent email responses and follow-up sequences
- π Automated demo scheduling for qualified leads
- π Complete lead logging in Google Sheets
- π¬ AI assistant for immediate query responses
π οΈ Prerequisites
Before setting up this workflow, ensure you have:
- n8n Instance: Self-hosted or cloud version
- OpenAI API Key: For AI-powered features
- Google Workspace Account with:
- Gmail access
- Google Sheets
- Google Calendar
- Basic understanding of your Ideal Customer Profile (ICP)
β‘ Quick Start Guide
Step 1: Import the Workflow
- Copy the workflow JSON
- Import into your n8n instance
- The workflow will appear with all nodes connected
Step 2: Configure Credentials
You'll need to set up the following credentials:
- OpenAI API: For AI agents and classification
- Gmail OAuth2: For sending emails
- Google Sheets OAuth2: For lead logging
- Google Calendar OAuth2: For demo scheduling
Step 3: Create Your Lead Log Sheet
Create a Google Sheet with these columns:
- Date
- Name
- Company
- Job Title
- Message
- Number of Employees
- Industry
- Geography
- Annual Revenue
- Technology
- Pain Points
- Lead Classification
Step 4: Update Configuration Nodes
- Replace Sheet ID: Update all Google Sheets nodes with your sheet ID
- Update Email Templates: Customize all email content
- Set Escalation Email: Replace "your-email@company.com" with your team's email
- Configure ICP Criteria: Edit the "Define ICP and Lead Criteria" node
π― Lead Classification Setup
Define Your ICP (Ideal Customer Profile)
Edit the "Define ICP and Lead Criteria" node to set your criteria:
π ICP Criteria Example:
- Company Size: 50+ employees
- Industry: SaaS, Finance, Healthcare, Manufacturing
- Geography: North America, Europe
- Pain Points: Manual processes, compliance needs, scaling challenges
- Annual Revenue: $5M+
β Demo-Ready Criteria:
High-intent prospects who meet multiple qualifying factors:
- Large company size (your threshold)
- Clear pain points mentioned
- Urgent timeline
- Budget authority indicated
- Specific solution requests
π± Nurture Criteria:
Prospects with future potential:
- Meet basic size requirements
- In target industry
- General interest expressed
- Planning future implementation
- Exploring options
β Drop Criteria:
Only drop leads that clearly don't fit:
- Outside target geography
- Wrong industry (B2C if you're B2B)
- Too small with no growth
- Already with competitor
- Spam or test messages
π§ Email Customization
Customize Follow-Up Sequences:
Demo-Ready Sequence:
- Immediate calendar invitation
- Personalized demo confirmation
- Meeting reminder (optional)
Nurture Sequence:
- Welcome email with resources
- Educational content (Day 2)
- Webinar/event invitation (Day 3)
- Demo offer (Day 4)
Drop Message:
- Polite acknowledgment
- Clear explanation
- Keep door open for future
π§ Advanced Configuration
AI Answer Agent Setup:
- Update the system prompt with your company information
- Add common Q&A patterns
- Set escalation rules
- Configure language preferences
Lead Enrichment Options:
- Add API keys for additional data sources
- Configure enrichment fields
- Set data quality thresholds
- Enable duplicate detection
Calendar Integration:
- Set available meeting times
- Configure meeting duration
- Add buffer times
- Set timezone handling
π Monitoring and Optimization
Track Key Metrics:
- Lead volume by classification
- Response rates
- Demo conversion rates
- Time to first response
- Enrichment success rate
Optimization Tips:
- Regular Review: Check classification accuracy weekly
- A/B Testing: Test different email sequences
- Feedback Loop: Use outcomes to refine ICP criteria
- AI Training: Update prompts based on results
π Best Practices
- Start Simple: Begin with basic criteria and refine over time
- Test Thoroughly: Use test leads before going live
- Monitor Daily: Check logs for the first week
- Iterate Quickly: Adjust based on results
- Document Changes: Keep track of criteria updates
π Scaling Your Workflow
As your lead volume grows:
- Add Sub-workflows: Separate complex processes
- Implement Queuing: Handle high volumes
- Add CRM Integration: Sync with your sales tools
- Enable Analytics: Track detailed metrics
- Set Up Alerts: Monitor for issues
Lead Generation and Qualification with GPT-4o, Google Workspace, and Automated Follow-Up
This n8n workflow automates the process of generating, qualifying, and following up on leads using a combination of AI, Google Workspace services (Sheets, Calendar, Gmail), and n8n's core functionalities. It streamlines lead management from initial submission to scheduling meetings and sending personalized emails.
What it does
This workflow automates the following steps:
- Captures Lead Information: It starts by listening for new lead submissions via an n8n Form Trigger.
- Prepares Data: The submitted lead data is then processed and formatted using an "Edit Fields (Set)" node.
- Qualifies Leads with AI:
- An "AI Agent" (likely using a conversational model) interacts with the lead information.
- An "OpenAI Chat Model" (GPT-4o) provides the conversational intelligence.
- A "Text Classifier" categorizes the lead based on predefined criteria (e.g., qualified, unqualified, requiring more info).
- A "Structured Output Parser" extracts key information from the AI's response in a structured format.
- Records Lead Data: The qualified lead's information is appended to a Google Sheet for centralized tracking.
- Conditional Follow-up:
- An "If" node evaluates the lead's qualification status.
- If Qualified:
- An event is created in Google Calendar to schedule a meeting.
- A personalized follow-up email is sent via Gmail.
- If Not Qualified / Needs More Info:
- A "Wait" node introduces a delay before a follow-up action.
- A "Sticky Note" is used, likely for internal notes or a placeholder for manual review or another automated action (e.g., sending a different email, adding to a nurture sequence).
- Code Execution: A "Code" node is present, suggesting custom logic or data manipulation at some point in the workflow, likely related to processing AI outputs or formatting data for other services.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n Instance: A running instance of n8n.
- Google Account: With access to:
- Google Sheets: To store lead data.
- Google Calendar: To schedule meetings.
- Gmail: To send follow-up emails.
- OpenAI API Key: For the "OpenAI Chat Model" to power the AI agent and text classifier.
- n8n Form Trigger: The form itself needs to be set up and configured to send data to this workflow.
Setup/Usage
- Import the Workflow: Import the provided JSON into your n8n instance.
- Configure Credentials:
- Set up your Google OAuth2 credentials for Google Sheets, Google Calendar, and Gmail nodes.
- Configure your OpenAI API Key for the "OpenAI Chat Model" node.
- Configure Nodes:
- On form submission (Form Trigger): Ensure the form is correctly configured to capture the necessary lead information (e.g., name, email, company, message).
- Edit Fields (Set): Adjust the fields to match your incoming form data and desired output structure.
- AI Agent, OpenAI Chat Model, Text Classifier, Structured Output Parser: Review and adjust the prompts, models, and output schemas to fit your lead qualification criteria.
- Google Sheets: Specify the Spreadsheet ID and Sheet Name where lead data should be appended.
- If: Define the conditions for lead qualification based on the output of the AI nodes.
- Google Calendar: Configure the event details (summary, description, attendees, start/end times) for qualified leads.
- Gmail: Customize the subject and body of the follow-up emails for both qualified and unqualified paths.
- Wait: Adjust the delay duration if needed.
- Code: If custom logic is required, ensure the JavaScript code is correctly implemented.
- Activate the Workflow: Once all configurations are complete, activate the workflow to start processing leads automatically.
Related Templates
Auto-create TikTok videos with VEED.io AI avatars, ElevenLabs & GPT-4
π₯ Viral TikTok Video Machine: Auto-Create Videos with Your AI Avatar --- π― Who is this for? This workflow is for content creators, marketers, and agencies who want to use Veed.ioβs AI avatar technology to produce short, engaging TikTok videos automatically. Itβs ideal for creators who want to appear on camera without recording themselves, and for teams managing multiple brands who need to generate videos at scale. --- βοΈ What problem this workflow solves Manually creating videos for TikTok can take hours β finding trends, writing scripts, recording, and editing. By combining Veed.io, ElevenLabs, and GPT-4, this workflow transforms a simple Telegram input into a ready-to-post TikTok video featuring your AI avatar powered by Veed.io β speaking naturally with your cloned voice. --- π What this workflow does This automation links Veed.ioβs video-generation API with multiple AI tools: Analyzes TikTok trends via Perplexity AI Writes a 10-second viral script using GPT-4 Generates your voiceover via ElevenLabs Uses Veed.io (Fabric 1.0 via FAL.ai) to animate your avatar and sync the lips to the voice Creates an engaging caption + hashtags for TikTok virality Publishes the video automatically via Blotato TikTok API Logs all results to Google Sheets for tracking --- π§© Setup Telegram Bot Create your bot via @BotFather Configure it as the trigger for sending your photo and theme Connect Veed.io Create an account on Veed.io Get your FAL.ai API key (Veed Fabric 1.0 model) Use HTTPS image/audio URLs compatible with Veed Fabric Other APIs Add Perplexity, ElevenLabs, and Blotato TikTok keys Connect your Google Sheet for logging results --- π οΈ How to customize this workflow Change your Avatar: Upload a new image through Telegram, and Veed.io will generate a new talking version automatically. Modify the Script Style: Adjust the GPT prompt for tone (educational, funny, storytelling). Adjust Voice Tone: Tweak ElevenLabs stability and similarity settings. Expand Platforms: Add Instagram, YouTube Shorts, or X (Twitter) posting nodes. Track Performance: Customize your Google Sheet to measure your most successful Veed.io-based videos. --- π§ Expected Outcome In just a few seconds after sending your photo and theme, this workflow β powered by Veed.io β creates a fully automated TikTok video featuring your AI avatar with natural lip-sync and voice. The result is a continuous stream of viral short videos, made without cameras, editing, or effort. --- β Import the JSON file in n8n, add your API keys (including Veed.io via FAL.ai), and start generating viral TikTok videos starring your AI avatar today! π₯ Watch This Tutorial --- π Documentation: Notion Guide Need help customizing? Contact me for consulting and support : Linkedin / Youtube
Two-way property repair management system with Google Sheets & Drive
This workflow automates the repair request process between tenants and building managers, keeping all updates organized in a single spreadsheet. It is composed of two coordinated workflows, as two separate triggers are required β one for new repair submissions and another for repair updates. A Unique Unit ID that corresponds to individual units is attributed to each request, and timestamps are used to coordinate repair updates with specific requests. General use cases include: Property managers who manage multiple buildings or units. Building owners looking to centralize tenant repair communication. Automation builders who want to learn multi-trigger workflow design in n8n. --- βοΈ How It Works Workflow 1 β New Repair Requests Behind the Scenes: A tenant fills out a Google Form (βRepair Request Formβ), which automatically adds a new row to a linked Google Sheet. Steps: Trigger: Google Sheets rowAdded β runs when a new form entry appears. Extract & Format: Collects all relevant form data (address, unit, urgency, contacts). Generate Unit ID: Creates a standardized identifier (e.g., BUILDING-UNIT) for tracking. Email Notification: Sends the building manager a formatted email summarizing the repair details and including a link to a Repair Update Form (which activates Workflow 2). --- Workflow 2 β Repair Updates Behind the Scenes:\ Triggered when the building manager submits a follow-up form (βRepair Update Formβ). Steps: Lookup by UUID: Uses the Unit ID from Workflow 1 to find the existing row in the Google Sheet. Conditional Logic: If photos are uploaded: Saves each image to a Google Drive folder, renames files consistently, and adds URLs to the sheet. If no photos: Skips the upload step and processes textual updates only. Merge & Update: Combines new data with existing repair info in the same spreadsheet row β enabling a full repair history in one place. --- π§© Requirements Google Account (for Forms, Sheets, and Drive) Gmail/email node connected for sending notifications n8n credentials configured for Google API access --- β‘ Setup Instructions (see more detail in workflow) Import both workflows into n8n, then copy one into a second workflow. Change manual trigger in workflow 2 to a n8n Form node. Connect Google credentials to all nodes. Update spreadsheet and folder IDs in the corresponding nodes. Customize email text, sender name, and form links for your organization. Test each workflow with a sample repair request and a repair update submission. --- π οΈ Customization Ideas Add Slack or Telegram notifications for urgent repairs. Auto-create folders per building or unit for photo uploads. Generate monthly repair summaries using Google Sheets triggers. Add an AI node to create summaries/extract relevant repair data from repair request that include long submissions.
Automate invoice processing with OCR, GPT-4 & Salesforce opportunity creation
PDF Invoice Extractor (AI) End-to-end pipeline: Watch Drive β Download PDF β OCR text β AI normalize to JSON β Upsert Buyer (Account) β Create Opportunity β Map Products β Create OLI via Composite API β Archive to OneDrive. --- Node by node (what it does & key setup) 1) Google Drive Trigger Purpose: Fire when a new file appears in a specific Google Drive folder. Key settings: Event: fileCreated Folder ID: google drive folder id Polling: everyMinute Creds: googleDriveOAuth2Api Output: Metadata { id, name, ... } for the new file. --- 2) Download File From Google Purpose: Get the file binary for processing and archiving. Key settings: Operation: download File ID: ={{ $json.id }} Creds: googleDriveOAuth2Api Output: Binary (default key: data) and original metadata. --- 3) Extract from File Purpose: Extract text from PDF (OCR as needed) for AI parsing. Key settings: Operation: pdf OCR: enable for scanned PDFs (in options) Output: JSON with OCR text at {{ $json.text }}. --- 4) Message a model (AI JSON Extractor) Purpose: Convert OCR text into strict normalized JSON array (invoice schema). Key settings: Node: @n8n/n8n-nodes-langchain.openAi Model: gpt-4.1 (or gpt-4.1-mini) Message role: system (the strict prompt; references {{ $json.text }}) jsonOutput: true Creds: openAiApi Output (per item): $.message.content β the parsed JSON (ensure itβs an array). --- 5) Create or update an account (Salesforce) Purpose: Upsert Buyer as Account using an external ID. Key settings: Resource: account Operation: upsert External Id Field: taxid_c External Id Value: ={{ $json.message.content.buyer.tax_id }} Name: ={{ $json.message.content.buyer.name }} Creds: salesforceOAuth2Api Output: Account record (captures Id) for downstream Opportunity. --- 6) Create an opportunity (Salesforce) Purpose: Create Opportunity linked to the Buyer (Account). Key settings: Resource: opportunity Name: ={{ $('Message a model').item.json.message.content.invoice.code }} Close Date: ={{ $('Message a model').item.json.message.content.invoice.issue_date }} Stage: Closed Won Amount: ={{ $('Message a model').item.json.message.content.summary.grand_total }} AccountId: ={{ $json.id }} (from Upsert Account output) Creds: salesforceOAuth2Api Output: Opportunity Id for OLI creation. --- 7) Build SOQL (Code / JS) Purpose: Collect unique product codes from AI JSON and build a SOQL query for PricebookEntry by Pricebook2Id. Key settings: pricebook2Id (hardcoded in script): e.g., 01sxxxxxxxxxxxxxxx Source lines: $('Message a model').first().json.message.content.products Output: { soql, codes } --- 8) Query PricebookEntries (Salesforce) Purpose: Fetch PricebookEntry.Id for each Product2.ProductCode. Key settings: Resource: search Query: ={{ $json.soql }} Creds: salesforceOAuth2Api Output: Items with Id, Product2.ProductCode (used for mapping). --- 9) Code in JavaScript (Build OLI payloads) Purpose: Join lines with PBE results and Opportunity Id β build OpportunityLineItem payloads. Inputs: OpportunityId: ={{ $('Create an opportunity').first().json.id }} Lines: ={{ $('Message a model').first().json.message.content.products }} PBE rows: from previous node items Output: { body: { allOrNone:false, records:[{ OpportunityLineItem... }] } } Notes: Converts discount_total β per-unit if needed (currently commented for standard pricing). Throws on missing PBE mapping or empty lines. --- 10) Create Opportunity Line Items (HTTP Request) Purpose: Bulk create OLIs via Salesforce Composite API. Key settings: Method: POST URL: https://<your-instance>.my.salesforce.com/services/data/v65.0/composite/sobjects Auth: salesforceOAuth2Api (predefined credential) Body (JSON): ={{ $json.body }} Output: Composite API results (per-record statuses). --- 11) Update File to One Drive Purpose: Archive the original PDF in OneDrive. Key settings: Operation: upload File Name: ={{ $json.name }} Parent Folder ID: onedrive folder id Binary Data: true (from the Download node) Creds: microsoftOneDriveOAuth2Api Output: Uploaded file metadata. --- Data flow (wiring) Google Drive Trigger β Download File From Google Download File From Google β Extract from File β Update File to One Drive Extract from File β Message a model Message a model β Create or update an account Create or update an account β Create an opportunity Create an opportunity β Build SOQL Build SOQL β Query PricebookEntries Query PricebookEntries β Code in JavaScript Code in JavaScript β Create Opportunity Line Items --- Quick setup checklist π Credentials: Connect Google Drive, OneDrive, Salesforce, OpenAI. π IDs: Drive Folder ID (watch) OneDrive Parent Folder ID (archive) Salesforce Pricebook2Id (in the JS SOQL builder) π§ AI Prompt: Use the strict system prompt; jsonOutput = true. π§Ύ Field mappings: Buyer tax id/name β Account upsert fields Invoice code/date/amount β Opportunity fields Product name must equal your Product2.ProductCode in SF. β Test: Drop a sample PDF β verify: AI returns array JSON only Account/Opportunity created OLI records created PDF archived to OneDrive --- Notes & best practices If PDFs are scans, enable OCR in Extract from File. If AI returns non-JSON, keep βReturn only a JSON arrayβ as the last line of the prompt and keep jsonOutput enabled. Consider adding validation on parsing.warnings to gate Salesforce writes. For discounts/taxes in OLI: Standard OLI fields donβt support per-line discount amounts directly; model them in UnitPrice or custom fields. Replace the Composite API URL with your orgβs domain or use the Salesforce nodeβs Bulk Upsert for simplicity.