by Rahul Joshi
Description This workflow automatically detects bounced or invalid email addresses from your Gmail inbox and updates their status in Google Sheets. It fetches bounce notifications, extracts failed email addresses, and matches them against your contact list to update each record’s status as “Not Found” (bounced) or “Not Sent” (no bounce). Additionally, it runs a daily scheduled summary that sends bounce statistics to Slack, helping marketing or sales teams maintain clean, up-to-date mailing lists. What This Template Does (Step-by-Step) 📬 Fetch Bounce Notifications from Gmail Retrieves bounce messages automatically filtered by sender mailer-daemon@googlemail.com. 🔢 Get Latest 5 Bounces Sorts all bounce emails by date and limits processing to the five most recent to keep performance fast and focused. 🔍 Parse Bounced Email Addresses Extracts failed email addresses from Gmail message snippets using regex pattern matching. 📋 Fetch All Email Contacts from Google Sheets Loads all contact records from your “Fraud Email” sheet, including columns like Name, Email, Status, and Last Updated. 🔗 Combine Bounce Data with Contact List Merges parsed bounce results with your existing contact data to prepare for status updates. ✅ Match & Update Contact Status Marks “Not Found” for bounced emails. Marks “Not Sent” for valid but inactive ones. Updates “Last Updated” timestamp for all. 💾 Write Updated Status Back to Sheet Pushes updated contact information (Status and Last Updated) back into Google Sheets, ensuring centralized record accuracy. ⏰ Daily 7PM Trigger Automatically starts the summary workflow every evening at 7:00 PM. 🧮 Calculate Summary Statistics Counts total invalid emails (“Not Found”) and inactive ones (“Not Sent”). 💬 Send Slack Daily Summary Sends a formatted report to your #email-cleanup Slack channel showing: 📧 Invalid email count 📭 No activity count ✅ Reminder to maintain list hygiene Prerequisites Gmail account connected with n8n Google Sheet (Fraud Email) with contact data Slack workspace and channel for daily reports n8n instance (cloud or self-hosted) Step-by-Step Setup Connect Gmail → Fetch bounce notifications. Add Google Sheet → Load and update contact data. Parse bounces → Identify failed email addresses. Merge & update → Sync statuses in Google Sheet. Enable daily trigger → Schedule Slack summaries. Customization Ideas 🎯 Expand bounce limit beyond 5 recent messages. 📢 Add a Gmail label like “Bounced” after processing. 📚 Integrate with HubSpot or Airtable for CRM sync. 💡 Include timestamps or sender domains in Slack summary. Key Benefits ✅ Keeps mailing lists accurate and deliverable ✅ Saves hours of manual bounce management ✅ Automates email hygiene with zero supervision ✅ Provides transparent daily Slack reports ✅ 100% automated, efficient, and scalable Perfect For 👥 Marketing and outreach teams managing bulk campaigns 🏢 Businesses maintaining verified contact databases 📊 Sales teams using Gmail and Google Sheets ⚙️ Agencies ensuring top-tier email deliverability
by Yaron Been
Monitor a company watchlist for new Seed and Series A funding rounds and deliver a formatted weekly scouting report via email and Slack. This workflow reads company domains from a Google Sheets watchlist, checks each one for recent financing events via the PredictLeads Financing Events API, filters for Seed and Series A rounds from the past 7 days, then uses OpenAI to generate a professional weekly scouting report with a summary table and trend analysis. The report is delivered via Gmail and Slack. How it works: Weekly schedule trigger runs every Monday. Reads company domains from the Google Sheets watchlist. Loops through each company and fetches financing events from PredictLeads. Filters for Seed and Series A rounds that occurred in the last 7 days. Aggregates all filtered funding events into a single dataset. Sends the aggregated data to OpenAI to generate a formatted scouting report. The report includes a markdown table (Company, Round Type, Amount, Date, Key Investors) and trend analysis. Sends the full report via Gmail. Posts a summary notification to Slack. Setup: Create a Google Sheet with a "Watchlist" tab containing a column: domain. Configure the Gmail recipient address in the Send Report Email node (default: team@yourcompany.com). Set up a Slack incoming webhook URL in the Slack Summary node. Add your OpenAI API key in the Generate Scouting Report HTTP Request node. Add your PredictLeads API credentials (X-Api-Key and X-Api-Token headers). Requirements: Google Sheets OAuth2 credentials. Gmail OAuth2 credentials. Slack incoming webhook URL. OpenAI API account (uses gpt-4o-mini, ~$0.003-0.008 per call). PredictLeads API account (https://docs.predictleads.com). Notes: The 7-day lookback window is configured in the Filter Seed & Series A code node. Funding categories include "seed", "series_a", and "series a" variations. If no funding rounds are found, the report states that clearly rather than failing. PredictLeads Financing Events API docs: https://docs.predictleads.com
by Daniel Shashko
How it Works This workflow automatically monitors your Gmail support inbox every minute for new unread messages, instantly sending each email to OpenAI for intelligent analysis. The AI engine evaluates sentiment (Positive/Neutral/Negative/Critical), urgency level (Low/Medium/High/Critical), and categorizes requests into Technical, Billing, Feature Request, Bug Report, or General Inquiry, while extracting key issues and generating professional response templates. The system calculates a priority score (0-110 points) by combining urgency weight (25 points per level) with sentiment impact (10 points per level), automatically flagging any Critical urgency or Critical sentiment tickets for immediate attention. Critical issues trigger instant Slack alerts with full context, suggested responses, and 30-minute SLA reminders, while routine tickets route to monitoring channels for standard processing. Every ticket is logged to Airtable with complete analysis data and thread tracking, then simultaneously posted to a Google Sheets analytics dashboard for real-time metrics. A secondary AI pass generates strategic insights including trend identification, risk assessment, and actionable recommendations for the support team, storing these insights back in Airtable linked to the original ticket. The entire process takes seconds from email arrival to team notification, eliminating manual triage and ensuring critical customer issues receive immediate attention while building a searchable knowledge base of support patterns. Who is this for? Customer support teams drowning in high email volumes needing automated prioritization SaaS companies tracking support metrics and response times for customer satisfaction Startups with lean support teams requiring intelligent ticket routing and escalation E-commerce businesses managing technical support, returns, and billing inquiries simultaneously Support managers needing data-driven insights into customer pain points and support trends Setup Steps Setup time: Approx. 20-30 minutes (OpenAI API, Gmail connection, database setup) Requirements: Gmail account with support email access OpenAI API account with API key Airtable account with workspace access Google Sheets for analytics dashboard Slack workspace with incoming webhooks Sign up for OpenAI and obtain your API key for the AI analysis nodes. Create an Airtable base with two tables: "tblSupportTickets" (main records) and "tblInsights" (AI insights) with matching column names. Create a Google Sheet with columns for Date, Time, Customer, Email, Subject, Sentiment, Urgency, Category, Priority, Critical, Status. Set up these nodes: Monitor Support Emails: Connect Gmail account, configure to check INBOX label for unread messages. AI Analysis Engine: Add OpenAI credentials and API key, system prompt pre-configured. Parse & Enrich Data: JavaScript code automatically extracts and scores data (no changes needed). Route by Urgency: Configure routing rules to split critical vs. routine tickets. Slack Alert Nodes: Set up webhook URLs for critical alerts channel and routine monitoring channel. Log to Airtable Database: Connect Airtable, select base and table, map all data fields. Update Analytics Dashboard: Connect Google Sheets and select target sheet/range. Generate Insights & Store AI Insights: OpenAI credentials already set, Airtable connection for storage. Replace placeholder IDs: Airtable base ID (appXXXXXXXXXXXXXX), table names, Google Sheet document ID (1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX). Credentials must be entered into their respective nodes for successful execution. Customization Guidance Priority Scoring Formula:** Adjust urgency multiplier (currently 25) and sentiment weight (currently 10) in the Code node to match your SLA requirements. Urgency Thresholds:** Modify critical routing logic—currently any "Critical" urgency or sentiment triggers immediate alerts. AI Analysis Temperature:** Lower OpenAI temperature (0.1-0.2) for more consistent categorization, or raise (0.4-0.5) for nuanced sentiment detection. Polling Frequency:** Change Gmail trigger from every minute to every 5/15/30 minutes based on support volume and urgency needs. Email Filters:** Add sender whitelist/blacklist, specific label filters, or date ranges to focus on particular customer segments. Category Customization:** Modify AI system prompt to add industry-specific categories like "Compliance," "Integration," "Onboarding," etc. Multi-Language Support:** Add language detection and translation steps before AI analysis for international support teams. Auto-Response:** Insert Gmail send node after AI analysis to automatically send suggested responses for low-priority inquiries. Escalation Rules:** Add additional routing for VIP customers, enterprise accounts, or tickets mentioning "cancel/refund." Dashboard Enhancements:** Connect to Data Studio, Tableau, or Power BI for advanced support analytics and team performance tracking. Once configured, this workflow transforms your support inbox into an intelligent triage system that never misses critical issues, provides instant team visibility, and builds actionable customer insights—all while your team focuses on solving problems instead of sorting emails. Built by Daniel Shashko Connect on LinkedIn
by Milan Vasarhelyi - SmoothWork
Video Introduction Want to automate your inbox or need a custom workflow? 📞 Book a Call | 💬 DM me on Linkedin What This Workflow Does This automation eliminates the tedious task of manually entering receipt data by automatically processing receipt images uploaded to Google Drive. When you drop a new receipt into a monitored folder, the workflow extracts vendor name, date, itemized purchases, and total amount using AI, logs everything to a Google Sheet, and sends you an email confirmation with a formatted summary. Key Benefits Save time:** No more manual data entry from receipts Reduce errors:** AI-powered extraction ensures accuracy Stay organized:** All expense data automatically tracked in one spreadsheet Get notified:** Instant email confirmation when receipts are processed Common Use Cases Personal expense tracking and budgeting Small business accounting and bookkeeping Reimbursement documentation Tax preparation record-keeping Setup Requirements Accounts needed: Google Drive account (for receipt storage) OpenAI account (for AI-powered data extraction) Google Sheets account (for data logging) Gmail account (for notifications) Configuration steps: Google Drive: Connect your account and select the folder where you'll upload receipts Google Sheets: Make a copy of the template spreadsheet (link in workflow notes) to your own account and update the Sheet ID in the workflow Email recipient: Change the notification email address to your own AI model: The workflow uses GPT-4-mini by default, but you can select a different OpenAI model based on your accuracy and cost preferences The AI Agent is configured to extract data in a strict JSON format with fields for vendor, date (converted to DD/MM/YYYY), itemized purchases, and total amount.
by Jitesh Dugar
Customer Onboarding Email Verification Automated email verification and welcome email workflow that validates new user signups, prevents fake emails, and creates a seamless onboarding experience with real-time team notifications. Features ✅ Real-time email validation with VerifiEmail API ✅ Automatic data sanitization (lowercase, trim whitespace) ✅ Smart typo detection and correction suggestions ✅ Disposable email domain blocking ✅ Professional HTML welcome emails with responsive design ✅ Automatic duplicate prevention in Google Sheets logging ✅ Real-time Slack notifications for sales/marketing teams ✅ MX record and SMTP deliverability checks What You Need Required Accounts/APIs: VerifiEmail API - For email validation (verifi.email) Gmail account (or SMTP server) - For sending welcome emails Google Sheets - For logging verified users Slack workspace - For team notifications (optional but recommended) Setup Instructions Create Google Sheet Create new spreadsheet named "Verified Users" Add headers: Name | Email | Status | Verified At | Original Email | Validation Score Connect Credentials Add VerifiEmail API key in n8n credentials Connect Gmail via OAuth2 (enable 2FA, generate app password if needed) Connect Google Sheets via OAuth2 Connect Slack workspace via OAuth2 Customize Email Template Open "Personalize Welcome Email" node Replace "Your Company" with your brand name (appears 3 times) Update CTA URLs: yourapp.com/dashboard → Your actual dashboard URL yourapp.com/getting-started → Your docs/guide URL yourapp.com/support → Your support page URL Modify colors: Purple gradient #667eea to #764ba2 (line 37) Configure Slack Channel Create #new-signup channel in Slack (or use existing) Update channel in "Team Notification" node Test Workflow Activate workflow Copy webhook URL from Webhook node Test with: curl -X POST [webhook-url] -H "Content-Type: application/json" -d '{"name":"Test User","email":"test@gmail.com"}' Integrate with Your Signup Form Point form submission to webhook URL Ensure payload includes name and email fields Input Format Send POST request to webhook with this JSON: { "name": "John Doe", "email": "johndoe@gmail.com" } The workflow handles various input formats (nested in body field, query params, etc.) and sanitizes automatically. Output After execution, you'll get: Email validated via VerifiEmail API with deliverability score Welcome email sent to user with personalized greeting and CTAs User logged to Google Sheets with timestamp and validation details Slack notification sent to team with user details and status Invalid emails blocked with typo correction suggestions prepared For Valid Emails (~85-90%): Professional HTML welcome email delivered Entry added to "Verified Users" sheet Real-time Slack alert to #new-signup channel For Invalid Emails (~10-15%): Workflow stops with error message No email sent (prevents bounces) Typo suggestion prepared (e.g., gmial.com → gmail.com) Customization Change Email Design: Edit the "Personalize Welcome Email" node HTML: Colors**: Change gradient in line 37: background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) Logo**: Add `` tag in header section Buttons**: Modify CTA text and links in lines 45-65 Footer**: Update copyright year and company name Modify Validation Rules: In "Prepare Correction Email" node, add more typo patterns: const commonTypos = { 'gmial': 'gmail', 'gmai': 'gmail', // Add your custom patterns: 'yourdomain': 'yourcorrectdomain' } Enable Correction Email Sending: Replace "Stop and Error" node with Gmail "Send Email" node: Connect from "Prepare Correction Email" Use {{ $json.email }} as recipient Use {{ $json.emailBody }} as message User receives helpful correction suggestion instead of silent failure Add More Notification Channels: After "Log Valid Users" node, add: Discord webhook for team notifications Microsoft Teams connector Email to sales@ or support@ Custom webhook to your CRM Log Invalid Attempts: Add Google Sheets node after "Prepare Correction Email": Create "Invalid Attempts" tab in same spreadsheet Log: Name, Email, Reason, Suggestion, Timestamp Analyze patterns weekly for form improvements Troubleshooting "undefined" error in Data Sanitization: Check webhook payload structure Verify name and email fields are present Test with the debug code provided in sticky notes All emails marked as invalid: Verify VerifiEmail API key is active Test API directly at verifi.email dashboard Welcome emails not sending: Confirm Gmail OAuth2 is connected (check for expired tokens) Verify sending limits not exceeded Check spam folder if testing with personal email Review Gmail "Sent" folder for delivery confirmation No Slack notifications: Verify OAuth2 connection is active Check bot has permission to post in #new-signup channel Confirm channel ID is correct Test Slack credentials in n8n Duplicate entries in Google Sheets: Verify "Email" is set as matching column Confirm operation is "Append or Update" not just "Append" Check Sheet1 has the exact column names expected High validation failure rate: Review invalid emails in execution logs Check for form submission issues (bots, testing) Verify VerifiEmail API is not blocking legitimate domains Performance Optimization For high-volume signups (>100/day): Switch Slack notifications to hourly digest Implement rate limiting on webhook Consider caching frequent domain validations Use Google Workspace for higher email sending limits Maintenance Weekly: Check VerifiEmail API usage and quota Review Slack notifications for anomalies Scan Google Sheets for data quality Test with sample signup Monthly: Archive old Google Sheets data (>90 days) Review invalid email patterns Update email template if needed Audit credential security Support For issues or questions, visit the n8n community forum.
by WeblineIndia
Job post expiry & refresh reminders from Google Sheets using HTTP Last‑Modified checks This workflow checks each job URL in your Google Sheet and identifies listings that look stale based on the page’s Last‑Modified date. At 10:00 Asia/Kolkata every day, it requests each URL (HEAD, then GET if needed), calculates the age in days, and sends a polite email reminder to the recruiter when age ≥ a configurable threshold (default 30 days). It includes a DRY_RUN mode to preview who would be emailed, and conservative rate limits for both HTTP requests and email sends. Who’s it for Recruitment teams maintaining job links on external boards/career sites. Coordinators who want a daily, hands‑off nudge to refresh or unlist outdated posts. Teams using Google Sheets to store job URLs and owner contacts. How it works Cron (10:00 IST) triggers daily. Google Sheets reads the Job Posts tab (job_url, recruiter_name, recruiter_email). Validate rows (URL + email format, weekend rule via config). HTTP HEAD to fetch headers; if Last-Modified missing, HTTP GET and parse common meta tags (article:modified_time, og:updated_time, lastmod, dateModified). Compute age (days since last modified in your configured timezone). If age_days ≥ THRESHOLD_DAYS, prepare a personalized email using templates. DRY_RUN? If true, output a preview; if false, rate‑limit and send emails via SMTP. How to set up Create the Sheet Tab name: Job Posts Columns: job_url, recruiter_name, recruiter_email Credentials in n8n Google Sheets (OAuth) SMTP (Gmail) (use an app password if 2FA) Open “Set: Config” and set: SPREADSHEET_ID = your Sheet ID SOURCE_SHEET = Job Posts TIMEZONE = Asia/Kolkata THRESHOLD_DAYS = 30 (change if needed) USER_AGENT = n8n-job-checker/1.0 HTTP_TIMEOUT_SECONDS = 10 HTTP_RETRIES = 2 RATE_LIMIT_HTTP_SECONDS = 5 RATE_LIMIT_EMAIL_SECONDS = 2 SMTP_FROM = sender email (e.g., hiring-ops@company.com) SUBJECT_TEMPLATE, HTML_TEMPLATE, TEXT_TEMPLATE (placeholders: {{recruiter_name}}, {{job_url}}, {{age_days}}, {{last_modified}}) INCLUDE_WEEKENDS = true DRY_RUN = false (set true to preview) Activate the workflow. Requirements Google Sheet with Job Posts tab and required columns. SMTP (Gmail) account to send emails. n8n (cloud or self‑hosted) with Google Sheets + SMTP credentials. How to customize Threshold:** Change THRESHOLD_DAYS (e.g., 15, 45). Schedule:** Adjust the Cron time from 10:00 IST to your preferred hour. Templates:** Edit SUBJECT_TEMPLATE, HTML_TEMPLATE, and TEXT_TEMPLATE. Rate limits:** Tune RATE_LIMIT_HTTP_SECONDS and RATE_LIMIT_EMAIL_SECONDS for your environment. Weekend behavior:** Toggle INCLUDE_WEEKENDS. Preview runs:** Use DRY_RUN=true to check recipients before real sends. Add‑ons Helper columns:** Write back last_modified_http, age_days, reminder_sent_at, last_checked_at, notes to the sheet. Per‑row override:** Add threshold_days column to override the global threshold per job. Slack notifications:** DM the recruiter or a channel in addition to (or instead of) email. One‑time reminders:** Email only once until the page updates (track reminder_sent_at). Robots/backoff:** Respect robots.txt or add exponential backoff for high‑traffic sites. Use Case Examples Career site posts** that haven’t been updated in 30+ days. Remind owners to refresh copy or close the listing. Third‑party boards** (e.g., niche communities) where Last‑Modified is available — automate hygiene checks. Agency partnership links** — ensure outdated roles aren’t left live, protecting brand experience. Common troubleshooting | Issue | Possible Cause | Solution | | --- | --- | --- | | No emails sent | DRY_RUN is true | Set DRY_RUN=false to actually send. | | Rows skipped | Invalid/missing job_url or recruiter_email | Fix the row values; ensure valid URL and email. | | “Stale” not detected | Page has no Last-Modified header and no recognizable meta tags | Add manual review; consider the Helper columns add‑on to log missing dates, or track first_seen_at. | | Wrong time math | Timezone mismatch | Confirm TIMEZONE=Asia/Kolkata (or your TZ) in Set: Config. | | Too many requests | Sites rate‑limit frequent checks | Increase RATE_LIMIT_HTTP_SECONDS; consider running less frequently. | | Emails fail to send | SMTP auth or quota issues | Verify SMTP credentials, sender address, and provider limits; try a different sender or schedule. | Need Help? If you’d like help tailoring the templates, adding Slack notifications or writing back helper columns for audit, just message us at WeblineIndia and we will be happy to help you get this running smoothly.
by Jitesh Dugar
Verified Visitor Pass Generator Overview Transform your visitor management process with this fully automated, enterprise-grade workflow. The Verified Visitor Pass Generator eliminates manual data entry, prevents fake registrations through email verification, and creates professional branded visitor passes in under 30 seconds. What This Workflow Does This comprehensive automation handles the complete visitor onboarding lifecycle: Captures Visitor Data - Receives form submissions via webhook from Jotform, Typeform, or any custom form Verifies Email Authenticity - Uses VerifiEmail API to validate emails and block disposable/fake addresses Generates Unique IDs - Creates visitor IDs with timestamps for tracking and security Creates QR Codes - Generates scannable QR codes containing visitor information for fast check-in Designs Digital Passes - Produces professional, branded visitor badges with HTML/CSS to Image Sends Email Notifications - Delivers passes to visitors with visit details and instructions Alerts Security Team - Posts real-time notifications to Slack with visitor details Maintains Audit Trail - Logs all visitor data to Google Sheets for compliance and reporting Key Features ✅ Email Verification - Blocks fake registrations (95%+ accuracy) ✅ Branded Badges - Customizable design with logo, colors, and QR codes ✅ Instant Delivery - Visitors receive passes within 30 seconds ✅ Real-Time Alerts - Security team gets Slack notifications immediately ✅ Complete Audit Trail - All visitor data logged to Google Sheets ✅ Mobile-Friendly - Passes work on any smartphone ✅ QR Code Integration - Fast scanning for contactless check-in ✅ Professional Templates - HTML email templates included ✅ Error Handling - Invalid emails automatically rejected ✅ Zero Manual Work - 100% automated from submission to delivery Perfect For 🏢 Coworking spaces and shared offices 🏛️ Corporate offices and headquarters 🎪 Event venues and conference centers 🏥 Healthcare facilities 🏫 Educational institutions 🏭 Manufacturing facilities 🏨 Hotels and hospitality venues Business Impact Before Automation: ⏱️ 10-15 minutes per visitor (manual process) 📝 Manual data entry errors 🔒 No email verification 📊 No centralized tracking 💸 High labor costs After Automation: ⚡ 30 seconds per visitor ✅ Zero manual work 🔐 Email verification prevents fraud 📈 Complete analytics and reporting 💰 99% cost reduction Use Cases Scenario 1: Daily Office Visitors A coworking space receives 50 visitors daily. The workflow automatically verifies each visitor, generates professional passes, and maintains a searchable database for security compliance. Scenario 2: Event Registration A conference venue uses the workflow for event check-in. Attendees receive QR-coded passes that security scans for instant verification. Scenario 3: Contractor Management A corporate office tracks all contractor visits with automated logging, ensuring compliance with safety regulations and insurance requirements. Customization Options Easy Customizations: Change company logo and branding colors Modify email templates and messaging Adjust badge design and layout Add custom visitor fields Update location and contact information Advanced Customizations: Add SMS notifications (Twilio integration) Implement visitor pre-approval workflow Create recurring visitor fast-track Add NDA/terms acceptance step Integrate with access control systems Build visitor analytics dashboard What Users Love ⭐⭐⭐⭐⭐ "Reduced our visitor processing time from 10 minutes to 30 seconds. Game changer!" ⭐⭐⭐⭐⭐ "The email verification feature stopped all fake registrations. Security team loves it." ⭐⭐⭐⭐⭐ "Professional badges make our coworking space look enterprise-grade. Clients are impressed." 🔧 Required Integrations & Credentials 1. VerifiEmail API (Required) Setup:** Sign up at https://verifi.email and get API token 2. HTMLCSSToImage API (Required) Setup:** Sign up at https://htmlcsstoimg.com and get API credentials 3. Gmail OAuth2 or SMTP (Required) Setup:** Connect Gmail account via OAuth2 in n8n 4. Slack API (Required) Setup:** Create Slack app and get OAuth token 5. Google Sheets OAuth2 (Required) Setup:** Connect Google account and create spreadsheet 🎯 Quick Start Guide Step 1: Setup Credentials Create VerifiEmail account and get API token Setup HTMLCSSToImage API credentials Connect Gmail account via OAuth2 Create Slack app and get bot token Connect Google Sheets account Step 2: Configure Nodes Update company name in HTML badge template Replace logo in badge design (line 76 in HTML/CSS node) Update email template with your contact info Set Slack channel ID for notifications Create Google Sheets with proper column headers Step 3: Test Workflow Click "Execute Workflow" with test data Verify email is sent to test address Check Slack notification appears Confirm data logs to Google Sheets Scan QR code to verify it works Step 4: Activate Toggle workflow to "Active" Copy webhook URL to your form Submit first real visitor registration Monitor execution logs for issues 📈 Monitoring & Analytics Track these metrics in Google Sheets: Total visitors processed Email verification success rate Peak visitor hours/days Most common visit purposes Visitor company frequency Average processing time 📄 License This workflow is provided as-is for use in your n8n instance. Feel free to modify and adapt to your needs.
by Cheng Siong Chin
Introduction Automate candidate evaluation from CV submission to interview booking. Perfect for HR teams and recruiters. How It Works Webhook receives CVs, extracts Airtable data, AI assesses qualifications, filters candidates, sends emails, schedules Google Calendar interviews, and updates records. Workflow Template Webhook → Airtable (Get Data) → AI Extract CV → AI Assessment → Filter Qualified → Generate Email → Send Email → Filter Interview Candidates → Schedule Calendar → Update Airtable → Slack Notification → Respond Workflow Steps Receive & Store: Webhook receives CVs, saves to Airtable. Fetch & Download: Gets job criteria, downloads CVs. AI Assessment: Parses skills, scores candidates. Filter & Email: Routes qualified, sends messages. Schedule & Update: Books interviews, updates Airtable. Notify: Alerts via Slack, confirms status. Setup Instructions Webhook & Airtable: Set URL, create tables, add credentials. AI Configuration: Add OpenAI key, define schema, customize scoring. Communication: Connect Gmail, Calendar, and Slack. Prerequisites Airtable account OpenAI API key Gmail and Google Calendar Slack workspace (optional) Customization Multi-stage scheduling ATS integration (Greenhouse, Lever) Benefits Reduces screening time by 90% Ensures uniform evaluation Cuts time-to-hire by 60%
by Avkash Kakdiya
How it works This workflow automatically scrapes business leads from Google Maps on a daily schedule and ensures only high-quality, unique leads are processed. New businesses are cleaned, validated, and deduplicated against an existing Google Sheets database before enrichment begins. Verified emails are enriched using domain-based lookup and classified by confidence. Finally, the workflow sends a detailed email report and stores all enriched leads in Google Sheets for ongoing tracking. Step-by-step Scrape & deduplicate leads** Schedule Trigger – Runs the workflow automatically at a fixed time each day. Google Maps Scraper – Scrapes business listings based on search query and location. Format & Validate Data – Cleans fields, normalizes data, and scores lead quality. Check Existing Leads – Reads existing records from Google Sheets. Deduplicate Leads – Removes businesses already stored in the database. Format Error Data – Captures and structures scraper or processing errors. Error Notification – Sends an email alert if the workflow fails. Enrich emails** Has New Leads? – Checks whether any new unique leads remain after deduplication. Batch for AI Processing – Splits leads into small batches to control API usage. HTTP Request (Hunter) – Performs domain search to find professional emails. Merge & Validate Results – Selects the best email and assigns confidence levels. No New Leads Notification – Sends a message when no new leads are found. Report & store results** High Confidence Leads? – Separates outreach-ready leads from lower-confidence ones. Build Email Report – Generates a detailed HTML report with lead analytics. Send Email Report – Emails the daily lead summary to stakeholders. Prepare Sheet Data – Formats enriched leads for storage. Save to Google Sheets – Appends or updates leads in the sheet. Merge – Synchronizes parallel execution paths. Wait – Controls workflow execution flow and batching cycles. Why use this? Fully automates Google Maps lead generation and enrichment Prevents duplicate and low-quality leads from entering your database Enriches leads with verified emails and confidence scoring Delivers clear daily reports for faster outreach decisions Maintains a centralized, continuously updated lead system
by Ajay Yadav
Lead Qualification & Follow‑up (Gemini) Automate lead intake, AI qualification, and next‑step outreach. Qualified leads get a scheduled meeting, Zoom details, an email confirmation, CRM update, and Mailchimp enrollment. Not‑qualified leads receive a follow‑up sequence, CRM update, and a 30‑day reminder. What this workflow does AI qualifies leads as QUALIFIED or NOT QUALIFIED using Google Gemini. Supports two triggers: Webhook (wordpress-form) or n8n Form Trigger. QUALIFIED branch: AI phone call via VAPI Schedules Google Calendar event Creates Zoom meeting Sends confirmation email via Gmail Adds to Mailchimp audience Updates contact in HubSpot NOT QUALIFIED branch: AI phone call via VAPI Adds to Mailchimp audience Sends follow‑up email via Gmail Updates contact in HubSpot Creates 30‑day follow‑up calendar event Apps and credentials required Google Gemini (PaLM/Gemini API) Gmail HubSpot Zoom Google Calendar VAPI (for AI phone calls) Mailchimp Environment variables MAILCHIMP_LIST_ID_QUALIFIED=your_mailchimp_list_id_for_qualified MAILCHIMP_LIST_ID_FOLLOWUP=your_mailchimp_list_id_for_followup Triggers supported Webhook: path wordpress-form (POST) Form Trigger: built‑in n8n form Use only one in production. Keep the other disabled. Expected input (fields) name: string email: string message: string If using Webhook, send a JSON body with the fields above. Setup Connect credentials: Google Gemini (model: models/gemini-2.5-flash) Gmail HubSpot (OAuth) Zoom Google Calendar (select the target calendar) VAPI (HTTP header auth: Bearer token) Set env vars: MAILCHIMP_LIST_ID_QUALIFIED MAILCHIMP_LIST_ID_FOLLOWUP Choose your trigger: Webhook: enable and use the provided URL for wordpress-form Form Trigger: enable and publish the form Review timing: adjust Wait nodes for your timezone and SLA. Personalize messaging: edit Gmail subjects/bodies and Zoom topic. CRM and lists: confirm HubSpot properties and Mailchimp list IDs. How it works (at a glance) Intake → AI classifies (QUALIFIED / NOT QUALIFIED) QUALIFIED: VAPI call → Schedule Calendar → Create Zoom → Add to Mailchimp (qualified) → Gmail confirmation → HubSpot update NOT QUALIFIED: VAPI call → Add to Mailchimp (follow‑up) → Gmail follow‑up → HubSpot update → 30‑day calendar event Test the workflow (before going live) Submit a test via your chosen trigger with name, email, message. Confirm AI decision at the “Lead Decision” node. If QUALIFIED: VAPI call executed Calendar event created Zoom meeting created (join URL available) Mailchimp enrollment (qualified list) Gmail confirmation sent HubSpot contact created/updated If NOT QUALIFIED: VAPI call executed Mailchimp enrollment (follow‑up list) Gmail follow‑up sent HubSpot updated 30‑day calendar reminder created Open any failing HTTP nodes and review response codes/messages. Go‑live checklist All credentials connected (no warnings) MAILCHIMP_LIST_ID_QUALIFIED and MAILCHIMP_LIST_ID_FOLLOWUP set Timezone and delays validated Email copy approved Only one trigger enabled Final end‑to‑end test passed Toggle workflow Active Customization ideas Add a Slack or Microsoft Teams notification on QUALIFIED Enrich leads (Clearbit, ZoomInfo, etc.) before AI decision Swap Mailchimp for your ESP (Klaviyo, SendGrid Marketing) Add a second‑chance branch for ambiguous AI classifications Localize email copy by country or language Troubleshooting Webhook receives no data: ensure external form POSTs JSON to the n8n URL and network rules allow it. AI decision empty/garbled: verify Gemini credentials/model ID and input fields. Mailchimp errors: verify List IDs and that email is valid. Gmail send fails: check OAuth scopes and daily limits. Zoom/Calendar issues: re‑connect OAuth; verify calendar access. HubSpot errors: confirm OAuth scopes and property mappings. Security and scopes Gmail: send email Google Calendar: create events Zoom: create meetings HubSpot: read/write contacts Mailchimp: list membership VAPI: authenticated HTTP requests Gemini: model inference Use least‑privilege for each integration. Limits and notes Gmail and Mailchimp rate limits may apply during spikes. Zoom and Google Calendar API quotas apply for frequent scheduling. VAPI call timeouts are 30s by default; adjust as needed. Changelog 2025‑09‑15: Initial public template with dual triggers, Gemini qualification, VAPI calls, scheduling, Mailchimp, Gmail, and HubSpot updates.
by Muhammad Anas Farooq
n8n Gmail AI Auto-Labeler > An intelligent n8n workflow that automatically classifies and labels Gmail emails using Google Gemini AI, keeping your inbox organized with zero manual effort. This workflow uses AI-powered classification to analyze email content, learn from sender patterns, and automatically apply appropriate labels while archiving processed emails. How It Works Trigger: The workflow runs automatically every minute to check for new unread emails (or manually for bulk processing). Check for Existing Labels: Before processing, it verifies if the email already has an AI-assigned label to avoid duplicate processing. AI Classification: If unlabeled, the AI agent analyzes the email using: Sender History Tool - Fetches up to 10 previous emails from the same sender to identify patterns 80% Majority Rule - If 80%+ of sender's past emails have the same label, strongly prefers that category Label Examples Tool - When uncertain, compares the email with existing examples from suspected categories Smart Decision: The AI returns a structured JSON response: { "label": "Category Name" } Or "None" if no category fits. Apply & Archive: Label Applied → The workflow adds the appropriate Gmail label to the thread. Auto-Archive → Removes the email from INBOX (archives it) to maintain zero-inbox. Loop: Processes the next email in the batch, ensuring all new emails are classified. Requirements Gmail OAuth2 Credentials** - Connected Gmail account with API access. Google Gemini API Key** - Get it here Free tier: 15 requests/minute Gmail Labels** - Must be created in Gmail exactly as listed: Meetings Income Inquiries Notify / Verify Expenses Orders / Deliveries Trash Likely How to Use Import the Workflow: Copy the provided JSON file. In your n8n instance → click Import Workflow → select the JSON file. Create Gmail Labels: Open Gmail → Settings → Labels → Create new labels. Use the exact names listed above (case-sensitive). Get Your Label IDs: In the workflow, click "When clicking 'Execute workflow'" manual trigger. Execute the "Get Labels Info" node only. Copy each label's ID (format: Label_1234567890123456789). Update Code Nodes with Your Label IDs: Node 1: "Check Label Existence" const labelMap = { "Label_YOUR_ID_HERE": "Meetings", "Label_YOUR_ID_HERE": "Inquiries", "Label_YOUR_ID_HERE": "Notify / Verify", "Label_YOUR_ID_HERE": "Expenses", "Label_YOUR_ID_HERE": "Orders / Deliveries", "Label_YOUR_ID_HERE": "Trash Likely" }; Node 2: "Convert Label to Label ID" const labelToId = { "Meetings": "Label_YOUR_ID_HERE", "Inquiries": "Label_YOUR_ID_HERE", "Notify / Verify": "Label_YOUR_ID_HERE", "Expenses": "Label_YOUR_ID_HERE", "Orders / Deliveries": "Label_YOUR_ID_HERE", "Trash Likely": "Label_YOUR_ID_HERE" }; Set Up Credentials: Gmail OAuth2 → Authorize your Gmail account in n8n. Google Gemini API → Add your API key in n8n credentials. Test the Workflow: Send yourself test emails with clear content (e.g., invoice, meeting invite). Use the manual trigger to process them. Verify labels are applied correctly. Activate for Auto Mode: Toggle the workflow to Active. New unread emails will be processed automatically every minute. Notes Dual Execution Modes**: Auto Mode - Gmail Trigger polls inbox every minute for unread emails (real-time processing). Manual Mode - Use the manual trigger to bulk process existing emails (adjust limit in "Get many messages" node). AI Learning from Patterns**: The workflow applies an 80% majority rule - if 80% or more of a sender's historical emails share the same label, the AI strongly prefers that category for new emails from that sender. This creates intelligent sender-based routing over time. Skip Already Labeled Emails**: The "Check Label Existence" node prevents re-processing emails that already have an AI-assigned label. Ensures efficient execution and avoids duplicate work. Structured AI Output**: Uses a Structured Output Parser to ensure the AI always returns valid JSON: { "label": "Category" }. If uncertain, returns { "label": "None" } and the email stays in inbox. Background Archiving**: After labeling, emails are automatically removed from INBOX (archived). Maintains a zero-inbox workflow while preserving emails under their labels. Rate Limits**: Google Gemini free tier: 15 requests/minute. Adjust polling frequency if hitting limits. Example Behavior Minute 1**: New invoice email arrives → AI fetches sender history → 85% were labeled "Expenses" → applies "Expenses" label → archives email. Minute 2**: Meeting invite arrives → No sender history → AI analyzes content (Zoom link, time) → applies "Meetings" label → archives email. Minute 3**: Promotional email arrives → AI compares with "Trash Likely" examples → applies label → archives email. Minute 4**: Already-labeled email detected → skipped silently. Label Categories | Label | Description | |-------|-------------| | Meetings | Calendar invites, Zoom/Meet links, appointments, scheduled events | | Expenses | Bills, invoices, receipts, payment reminders, subscription renewals | | Income | Payments received, payouts, deposits, earnings notifications | | Notify / Verify | Verification codes, login alerts, 2FA codes, account notifications | | Orders / Deliveries | Order confirmations, shipping updates, tracking numbers, deliveries | | Inquiries | Business outreach, sales proposals, partnerships, cold emails | | Trash Likely | Spam, newsletters, promotions, marketing blasts, ads | > If no category fits clearly, the email returns "None" and remains in the inbox. Customization Change Polling Frequency**: Edit the "Gmail Trigger" node → pollTimes → mode (e.g., every5Minutes). Adjust Email Limit**: Modify limit: 10 in "Get many messages" node for manual bulk processing. Add Custom Labels**: Create in Gmail → Get ID → Update both Code nodes + AI system prompt. Modify 80% Rule**: Edit the AI agent's system message to adjust the majority threshold. Increase Tool Limits**: Change limit: 10 in Gmail tool nodes to fetch more historical data. Author: Muhammad Anas Farooq
by 飯盛 正幹
Who is this for? This template is designed for freelancers, small businesses, and finance teams who need automated invoice management with intelligent payment follow-ups. Perfect for service providers, agencies, or any business that needs to track receivables and reduce late payments. What this workflow does This workflow provides complete invoice lifecycle management with two main flows: Invoice Generation Flow: Receives order data via webhook with line items Splits line items using Split Out node for individual processing Calculates subtotals, tax, and totals Aggregates results and saves to Google Sheets Sends professional invoice email with payment link Payment Reminder Flow: Runs daily via Schedule Trigger to check for overdue invoices Loops through unpaid invoices using Split In Batches Routes to appropriate reminder level using Switch node (5 levels) Sends escalating reminders: friendly → second notice → urgent → final → collections Notifies internal team via Slack for collections handoff Setup Create a Google Sheet with columns: Invoice ID, Client, Email, Subtotal, Tax, Total, Due Date, Status, Created, Last Reminder Connect Google Sheets and Gmail credentials Configure Slack for collections escalation notifications Set up the webhook URL in your order management system Requirements Google Sheets (invoice database) Gmail account (invoice and reminder emails) Slack workspace (collections notifications) How to customize Adjust overdue day thresholds in the Code node Add SMS reminders via Twilio for urgent notices Modify email templates for your brand Connect to accounting software for automatic reconciliation