by Anwar Bouilouta
Most small businesses track invoices in Google Sheets, but nobody actually looks at the spreadsheet until cash flow gets tight. By then, invoices that should have been chased weeks ago are sitting there unpaid. This workflow gives you an automatic weekly report and alerts you when anything is overdue. Who is this for Freelancers, agencies, and small businesses that track invoices in Google Sheets and want a hands-off way to stay on top of what's been paid, what hasn't, and what's late. How it works Every Monday at 9 AM, the workflow pulls all rows from your invoice tracker in Google Sheets. A code node crunches the numbers: total paid, total unpaid, and total overdue. It builds an HTML email with a clean summary table that shows the overall picture plus a detailed breakdown of any overdue invoices, including how many days late each one is. That summary gets emailed to whatever address you configure. If there are any overdue invoices, a separate Slack alert goes out with the specifics so your team knows exactly what needs chasing. How to set it up Create a Google Sheet with an "Invoices" tab containing these columns: Invoice ID, Client Name, Amount, Due Date, Status (paid/unpaid/overdue) Open the "Configure Settings" node and fill in your Sheet ID, the email address you want the report sent to, your Slack channel ID, and your business name Connect your Google Sheets, Gmail, and Slack credentials in n8n Activate the workflow and wait for Monday, or trigger it manually to test Requirements Google Sheets (free) Gmail account with OAuth connected in n8n Slack workspace with OAuth connected in n8n Customizing the workflow You can change the schedule to daily or biweekly by editing the trigger node. The overdue threshold is based on the Due Date column, so if you want to flag invoices that are approaching their due date (not just past it), you can tweak the comparison in the code node. If you want to add more notification channels (email to the client directly, SMS alerts, etc.), just wire new nodes after the overdue check.
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
by AI Sales Agent HQ
What this workflow does Automatically re-engages dormant leads by detecting trigger events (funding rounds, company news, leadership changes) and generating personalized outreach emails. The workflow identifies leads inactive for 90+ days, checks multiple data sources for re-engagement opportunities, and sends AI-generated email drafts to sales reps for approval. How it works Schedule - Runs weekly (every Monday by default) CRM Data - Pulls leads that have been inactive for 90+ days Trigger Detection - Checks three sources in parallel: Crunchbase for funding events NewsAPI for company news Hunter.io for leadership changes AI Email - Claude generates a personalized re-engagement email based on the detected trigger Rep Notification - Sends the complete lead profile and email draft to the assigned sales rep for review Setup steps Replace Load inactive leads (mock) with your CRM integration (Salesforce, HubSpot, Pipedrive) Add API credentials for trigger detection: NewsAPI (free at newsapi.org) Crunchbase (optional, paid) Hunter.io (free tier available) Add your Anthropic API credentials for Claude Add your Gmail OAuth credentials Test with Test workflow manually node before enabling schedule API keys required | Service | Purpose | Cost | |---------|---------|------| | NewsAPI | Company news detection | Free (100 req/day) | | Crunchbase | Funding event detection | $99/mo (optional) | | Hunter.io | Leadership change detection | Free tier available | | Anthropic | AI email generation | Pay per use | | Gmail | Send notifications | Free |
by Fayzul Noor
Description This workflow is built for e-commerce store owners, customer support teams, and retail businesses who want to provide instant, intelligent email support without hiring additional staff. If you're tired of manually responding to customer inquiries, searching through product catalogs, and copying information into emails, this automation will transform your support process. It turns your inbox into a smart AI-powered support system that reads, understands, and responds to customer questions about your store products while you focus on growing your business. How it works / What it does: This n8n automation completely transforms how you handle customer email inquiries using AI and Retrieval-Augmented Generation (RAG) technology. Here's a simple breakdown of how it works: Monitor your Gmail inbox using the Gmail Trigger node, which checks every minute for new customer emails (excluding emails sent by you). Assess if a reply is needed with an AI-powered classification system. The workflow uses GPT-4.1 with a structured JSON parser to determine whether incoming emails are genuine customer inquiries about your men's clothing store that require a response. Filter relevant emails through the If Needs Reply node, which only passes emails that need attention to the AI Agent, preventing unnecessary processing. Generate intelligent responses using an AI Agent powered by GPT-4.1-nano. The agent uses a friendly, professional tone and starts each email with "Dear" and ends with "Best regards" to maintain proper email etiquette. Search your knowledge base with a Vector Store RAG tool connected to Pinecone. The AI Agent queries your men's clothing product database using OpenAI embeddings to find accurate, up-to-date information about prices, features, and product details. Send personalized replies automatically through the Gmail node, which responds directly to the original email thread with clear, concise, and empathetic answers to customer questions. Once everything is set up, the system runs on autopilot and provides 24/7 customer support without any manual intervention. How to set up: Follow these steps to get your AI-powered email support system running: Import the JSON file into your n8n instance. Add your API credentials: Gmail OAuth2 credentials for reading and sending emails OpenAI API key for the AI Agent and embeddings Pinecone API credentials for vector storage Set up your Pinecone vector database: Create a Pinecone index. Create a namespace. Upload your store data to the vector store Configure the Gmail Trigger node to monitor the correct email account. Customize the AI Agent's system message to match your brand voice and support policies. Activate the workflow to enable automatic monitoring and responses. Requirements: Before running the workflow, make sure you have the following: An n8n account or instance (self-hosted or n8n Cloud) A Gmail account for receiving and sending customer emails OpenAI API access for the AI Agent and embeddings (GPT-4.1 and GPT-4.1-nano models) A Pinecone account with a configured vector database containing your product information Your store data, product catalog prepared and uploaded to Pinecone How to customize the workflow: This workflow is flexible and can be customized to fit your business needs. Here's how you can tailor it: Adjust the response style by modifying the system message in the AI Agent node. You can make it more casual, formal, or brand-specific. Add response length controls by updating the system message instructions. Currently set to keep responses short and concise, you can adjust this for more detailed explanations. Change the polling frequency in the Gmail Trigger node. The default is every minute, but you can adjust it to check more or less frequently based on your email volume. Filter specific types of emails by modifying the filters in the Gmail Trigger and "Assess if message needs a reply" nodes to handle specific subjects, senders, or keywords. Connect to different email platforms by replacing the Gmail nodes with other email services like Outlook, IMAP, or customer support platforms. Add human-in-the-loop approval by inserting a webhook or notification node before the Gmail reply node, allowing manual review before sending responses. Implement response tracking by adding database nodes to log all AI-generated responses for quality control and training purposes. Add multi-language support by incorporating translation nodes or configuring the AI Agent to detect and respond in the customer's language.
by Onur
Template Description: > Stop manually reading every CV and copy-pasting data into a spreadsheet. This workflow acts as an AI recruiting assistant, automating your entire initial screening process. It captures applications from a public form, uses AI to read and understand PDF CVs, structures the candidate data, saves it to Google Sheets, and notifies all parties. This template is designed to save HR professionals and small business owners countless hours, ensuring no applicant is missed and all data is consistently structured and stored. 🚀 What does this workflow do? Provides a public web form for candidates to submit their name, email, experience, and PDF CV. Automatically reads the text content from the uploaded PDF CV. Uses an AI Agent (OpenAI) to intelligently parse the CV text, extracting key data like contact info, work experience, education, skills, and more. Writes a concise summary** of the CV, perfect for quick screening by HR. Checks for duplicate applications** based on the candidate's email address. Saves all structured applicant data** into a new row in a Google Sheet, creating a powerful candidate database. Sends an automated confirmation email to the applicant. Sends a new application alert with the CV summary to the recruiter. 🎯 Who is this for? HR Departments & Recruiters:** Streamline your hiring pipeline and build a structured candidate database. Small Business Owners:** Manage job applications professionally without dedicated HR software. Hiring Managers:** Quickly get a summarized overview of each candidate without reading the full CV initially. ✨ Benefits Massive Time Savings:** Drastically reduces the time spent on manual CV screening and data entry. Structured Candidate Data:** Turns every CV into a consistently formatted row in a spreadsheet, making it easy to compare candidates. Never Miss an Applicant:** Every submission is logged, and you're instantly notified. Improved Candidate Experience:** Applicants receive an immediate confirmation that their submission was successful. AI-Powered Summaries:** Get a quick, AI-generated summary of each CV delivered to your inbox. ⚙️ How it Works Form Submission: A candidate fills out the n8n form and uploads their CV. PDF Extraction: The workflow extracts the raw text from the PDF file. AI Analysis: The text is sent to OpenAI with a prompt to structure all key information (experience, skills, etc.) into a JSON format. Duplicate Check: The workflow checks your Google Sheet to see if the applicant's email already exists. If so, it stops. Save to Database: If the applicant is new, their structured data is saved as a new row in Google Sheets. Send Notifications: Two emails are sent simultaneously: a confirmation to the applicant and a notification with the CV summary to the recruiter. 📋 n8n Nodes Used Form Trigger Extract From File OpenAI Code (or JSON Parser) Google Sheets If Gmail 🔑 Prerequisites An active n8n instance. OpenAI Account & API Key**. Google Account** with access to Google Sheets and Gmail (OAuth2 Credentials). A Google Sheet** prepared with columns to store the applicant data (e.g., name, email, experience, skills, cv_summary, etc.). 🛠️ Setup Import the workflow into your n8n instance. Configure Credentials: Connect your credentials for OpenAI and Google (for Sheets & Gmail) in their respective nodes. Customize the Form: In the 1. Applicant Submits Form node, you can add or remove fields as needed. Activate the workflow. Once active, copy the Production URL from the Form Trigger node and share it to receive applications. Set Your Email: In the 8b. Send Notification... (Gmail) node, change the "To" address to your own email address to receive alerts. Link Your Google Sheet: In the 5. Check for Duplicate... and 7. Save Applicant Data... nodes, select your spreadsheet and sheet.
by go-surfe
🚀 Build Hyper-Targeted Prospecting Lists with Surfe & HubSpot This template automatically discovers companies that match your Ideal Customer Profile (ICP), finds the right people inside those companies and enriches them — ready to drop straight into HubSpot. Launch the workflow, sit back, and get a clean list of validated prospects in minutes. 1. ❓ What Problem Does This Solve? Sourcing prospects that truly fit your ICP is slow and repetitive. You jump between databases, copy domains, hunt down decision-makers, and then still have to enrich emails and phone numbers one by one. This workflow replaces all that manual effort: It queries Surfe’s database for companies that match your exact industry, size, revenue and geography filters. It pulls the best-fit people inside each company and enriches them in bulk. It keeps only records with both a direct email and mobile phone, then syncs them to HubSpot automatically. No spreadsheets, no copy-paste — just a fresh, qualified prospect list ready for outreach. 2. 🧰 Prerequisites You’ll need: A self-hosted or cloud instance of n8n A Surfe API Key A HubSpot Private App Token with contact read/write scopes A Gmail account (OAuth2) for the completion notification The workflow JSON file linked above N8N_FLOW_2__Building_Prospecting_Lists.json 3. 📌 Search ICP Companies Configuration — Fine-Tune Your Targeting 3.1 Editing the JSON Every targeting rule lives inside the “🔍 Search ICP Companies” HTTP node. Open the node Search ICP Companies → Parameters tab → JSON Body to edit the filters. | Filter | JSON path | What it does | Example | | --- | --- | --- | --- | | industries | filters.industries | Narrow to specific verticals (case-sensitive strings) | ["Software","Apps","SaaS"] | | employeeCount.from / to | filters.employeeCount | from / to | 1 / 35 | | countries | filters.countries | 2-letter ISO codes | ["FR","DE"] | | revenues | filters.revenues | Annual revenue brackets | ["1-10M"] | | limit | limit | Companies per run | 20 | 3.2 Where to find allowed values Surfe exposes an “🗂 Get Filters” endpoint that returns every accepted value for: industries employeeCounts revenues countries (always ISO-2 codes) You can hit it with a simple GET /v1/people/search/filters request or browse the interactive docs here: https://developers.surfe.com/public-008-people-filters developers.surfe.com For company-level searches, the same enumerations apply. 4. ⚙️ Setup Instructions 4.1 🔐 Create Your Credentials in n8n 4.1.1 🚀 Surfe API In your Surfe dashboard → Use Surfe Api → copy your API key Go to n8n → Credentials → Create Credential Choose Credential Type: Bearer Auth Name it something like SURFE API Key Paste your API key into the Bearer Token Save 4.1.2 📧 Gmail OAuth2 API Go to n8n → Credentials Create new credentials: Type: Gmail OAuth2 API A pop-up window will appear where you can log in with your Google account that is linked to Gmail Make sure you grant email send permissions when prompted 4.1.3 🎯 HubSpot 🔓 Private App Token Go to HubSpot → Settings → Integrations → Private Apps Create an app with scopes: crm.objects.contacts.read crm.objects.contacts.write crm.schemas.contacts.read Save the App token Go to n8n → Credentials → Create Credential → HubSpot App Token Paste your App Token ✅ You are now all set for the credentials 4.2 📥 Import and Configure the N8N Workflow Import the provided JSON workflow into N8N Create a New Blank Workflow click the … on the top left Import from File 4.2.1 🔗 Link Nodes to Your Credentials In the workflow, link your newly created credentials to each node of this list : Surfe HTTP nodes: Authentication → Generic Credential Type Generic Auth Type → Bearer Auth Bearer Auth → Select the credentials you created before Gmail Node Credentials to connect with → Gmail account Hubspot Node →Credentials to connect with → Gmail account Surfe HTTP nodes Surfe HTTP nodes HubSpot node → Credentials to connect with → select your HubSpot credentials in the list 5. 🔄 How This N8N Workflow Works Manual Trigger – Click Execute Workflow (or schedule it) to start. Search ICP Companies – Surfe returns company domains that match your filter set. Prepare JSON Payload with Company Domains – Formats the domain list for the next call. Search People in Companies – Finds people inside each company. Prepare JSON Payload Enrichment Request – Builds the bulk-enrichment request. Surfe Bulk Enrichments API – Launches one enrichment job for the whole batch. Wait + Polling loop – Checks job status every 3 seconds until it’s COMPLETED. Extract List of People – Pulls the enriched contacts from Surfe’s response. Filter: phone AND email – Keeps only fully reachable prospects (email and mobile). HubSpot: Create or Update – Inserts/updates each contact in HubSpot. Gmail – Sends you a “Your ICP prospecting enrichment is done” email. 6. 🧩 Use Cases Weekly prospect list refresh** – Generate 50 perfectly-matched prospects every Monday morning. Territory expansion** – Spin up a list of SMB software CEOs in a new country in minutes. ABM prep** – Build multi-stakeholder buying-group lists for target accounts. Campaign-specific lists** – Quickly assemble contacts for a limited-time product launch. 7. 🛠 Customization Ideas prepare 🎯 Refine filters for people – Add seniorities or other filters in the node JSON PAYLOAD WITH Company Domains use the surfe search people api doc https://developers.surfe.com/public-009-search-people-v2 ♻️ Deduplicate – Check HubSpot first to skip existing contacts. 🟢 Slack alert – Replace Gmail with a Slack notification. 📊 Reporting – Append enriched contacts to a Google Sheet for analytics. 8. ✅ Summary Fire off the workflow, and n8n will find ICP-fit companies, pull key people, enrich direct contact data and drop everything into HubSpot — all on autopilot. Prospecting lists, done for you.
by Pratyush Kumar Jha
🏡 Automated Real-Estate Content Generation Workflow This n8n workflow automates turning short user ideas into production-ready real-estate marketing assets (photorealistic images and optional 360° videos). A form submission seeds a prompt board → an LLM refines prompts → the refined prompt is sent to an image/video generator → assets are uploaded to Google Drive and an approval email is sent so stakeholders can accept/reject outputs. ⚙️ How It Works (High Level) Trigger: User submits the ideation form (On form submission). Record: The raw idea is appended to Google Sheets (Append row in sheet). Refine: An AI agent (LangChain/OpenAI) refines the prompt into a photorealistic prompt and produces captions & variants (AI Agent). Store Refined Prompt: Update the sheet with the improved prompt (Append or update row in sheet). Generate Asset: Send improved prompt to OpenAI image/video generation nodes (Generate an image2 / Generate a video). Upload & Share: Upload resulting files to Google Drive (Upload file / Upload file1) and set sharing permissions (Share file / Share file1). Approval Flow: Email the requester with the asset + improved prompt and wait for approval (Send message and wait for response). Decision: A Switch node routes approved outputs to final storage/notifications and rejected ones back for rework (or sends a failure email). Video Branch: Separate flow → refine → HTTP → video generator → upload → share → update sheet (parallel video pipeline). Quick Setup Guide 👉 Demo & Setup Video 👉 Sheet Template 👉 Course 🔑 Nodes of Interest (Quick Reference) On form submission — Form trigger for ideation input Append row in sheet — Initial recording to Google Sheets AI Agent — LangChain/OpenAI agent for prompt refinement Generate an image2 — OpenAI image generation node Upload file / Upload file1 — Google Drive upload nodes Share file / Share file1 — Set file sharing permissions Send message and wait for response — Gmail approval workflow Switch — Approval vs rejection routing Form + AI Agent1 + Generate a video — Video generation pipeline Wait / Wait1 — Handle long-running generation OpenAI Chat Model / OpenAI Chat Model1 — LLM configuration nodes 🔐 What You'll Need (Credentials & Access) Google Sheets OAuth2 (sheet access) Google Drive OAuth2 (file storage) OpenAI API Key (image/video + LLM) Gmail OAuth2 (email approvals) n8n webhook/public form access Optional: External HTTP endpoints for video processing 💡 Tip: Store credentials securely in n8n credential manager and avoid hardcoding secrets. ⚡ Recommended Settings & Best Practices Model & Prompt Control:** Use strong system prompts enforcing photorealism and real-estate context. Rate Limits & Retries:** Add retry logic with exponential backoff for API calls. Wait Times:** Use Wait nodes for long video generation tasks. File Size & Format:** Standardize image sizes (e.g., 1792×1024) and compress videos. Sharing Permissions:** Use view-only links for approvals. Logging & Observability:** Track prompt, model, timestamp in Google Sheets. Security:** Use credential manager, rotate API keys regularly. Cost Control:** Monitor OpenAI usage and apply limits. Input Validation:** Validate prompt length and required fields. 🚀 Customization Ideas Property type presets (apartment, villa, office, etc.) Auto-generate captions, hashtags, and listing descriptions Add AI moderation before sharing assets Replace Google Drive with S3 / Cloudflare R2 + CDN Auto-post approved assets to social media or CMS A/B test prompts for performance optimization Multi-language prompt support Slack/Telegram approval dashboard instead of email 🏷️ Tags n8n, automation, real-estate, prompt-engineering, OpenAI, DALL·E, video, google-sheets, google-drive, gmail, approval-flow, image-generation