by Rahul Joshi
Streamline the final stage of your content production workflow by automating publishing, formatting, metadata generation, and approval routing. This AI-powered subworkflow pulls optimized drafts from Google Sheets, enriches them with SEO metadata, converts them into publish-ready HTML, and delivers them via email and Slack for approval or distribution. Ideal for teams managing high-volume content pipelines with structured review processes. ✨📝🚀 What This Template Does Triggers via chat to start the content publishing process. 💬 Fetches the latest optimized content draft from Google Sheets using a content ID. 📄 Prepares metadata such as topic, intent, platform, and parameters. 🧩 Uses an AI agent (GPT-4) to generate SEO metadata, HTML-formatted article, tags, and structured publish data. 🤖 Enforces JSON structure to ensure consistent output formatting. 🧱 Saves the publish-ready content (title, meta description, HTML, tags) back into Google Sheets for version tracking. 📊 Sends the content to an approver via Gmail with a previewed HTML body. 📧 Awaits approval and branches based on decision. 🔀 If approved, sends the final published content to the intended recipient via Gmail. 📨 Sends a success confirmation message to Slack for team visibility. 📢 Key Benefits ✅ AI-generated SEO optimization, metadata, and HTML formatting ✅ Centralizes content versioning within Google Sheets ✅ Automates approval workflows and content delivery ✅ Ensures consistent output structure with JSON parsing ✅ Reduces manual formatting, editing, and routing tasks ✅ Delivers instant Slack notifications for team transparency Features Chat-triggered publishing workflow Google Sheets content retrieval and storage AI-driven formatting, metadata generation, HTML conversion Structured JSON enforcement for clean automation Gmail integration for approval + publishing Slack notifications for successful publication Short-term memory support for context persistence Requirements Google Sheets OAuth2 credentials OpenAI API key (GPT-4 or GPT-4 mini) Gmail OAuth2 credentials for sending and receiving approval messages Slack API credentials with chat:write access Preconfigured Google Sheet containing optimized content drafts Target Audience Content operations teams handling recurring content workflows SEO and marketing teams producing high-volume articles Agencies managing structured approval pipelines Automation specialists building content publishing systems Teams needing standardized, AI-enhanced HTML content Step-by-Step Setup Instructions Connect your Google Sheets OAuth2 credential and replace the sheet/document IDs. 🗂️ Add your OpenAI API key for the AI Publishing Agent. 🔑 Connect Gmail credentials for both approval and final publishing emails. 📧 Update all email addresses and Slack channel IDs with your own. ✏️ Modify metadata fields (topic, intent, platform) if needed. 🎯 Run the workflow with a sample content ID to verify the flow. 🔍 Enable and integrate as a subworkflow inside your main content pipeline. 🚀
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 Oneclick AI Squad
This n8n workflow automates the monitoring of warehouse inventory and sales velocity to predict demand, generate purchase orders automatically, send them to suppliers, and record all transactions in ERP and database systems. It uses AI-driven forecasting to ensure timely restocking while maintaining operational efficiency and minimizing stockouts or overstocking. Key Features Automated Scheduling:** Periodically checks inventory and sales data at defined intervals. Real-Time Data Fetching:** Retrieves live warehouse stock levels and sales trends. AI Demand Forecasting:** Uses OpenAI GPT to predict future demand based on sales velocity and stock trends. Auto-Purchase Orders:** Automatically generates and sends purchase orders to suppliers. ERP Integration:** Logs completed purchase orders into ERP systems like SAP, Oracle, or Netsuite. Database Logging:** Saves purchase order details and forecast confidence data into SQL databases (PostgreSQL/MySQL). Email Notifications:** Notifies relevant teams upon successful order creation and logging. Modular Configuration:** Each node includes configuration notes and credentials setup instructions. Workflow Process Schedule Trigger Runs every 6 hours to monitor stock and sales data. Interval can be adjusted for higher or lower frequency checks. Fetch Current Inventory Data Retrieves live inventory levels from the warehouse API endpoint. Requires API credentials and optional GET/POST method setup. Fetch Sales Velocity Pulls recent sales data for forecasting analysis. Used later for AI-based trend prediction. Merge Inventory & Sales Data Combines inventory and sales datasets into a unified JSON structure. Prepares data for AI model input. AI Demand Forecasting Sends merged data to OpenAI GPT for demand prediction. Returns demand score, reorder need, and confidence levels. Parse AI Response Extracts and structures forecast results. Combines AI data with original inventory dataset. Filter: Reorder Needed Identifies items flagged for reorder based on AI output. Passes only reorder-required products to next steps. Create Purchase Order Automatically creates a PO document with item details, quantity, and supplier information. Calculates total cost and applies forecast-based reorder logic. Send PO to Supplier Sends the generated purchase order to supplier API endpoints. Includes response validation for order success/failure. Log to ERP System Records confirmed purchase orders into ERP platforms (SAP, Oracle, Netsuite). Includes timestamps and forecast metrics. Save to Database Stores all PO data, supplier responses, and AI forecast metrics into PostgreSQL/MySQL tables. Useful for long-term audit and analytics. Send Notification Email Sends summary emails upon PO creation and logging. Includes PO ID, supplier, cost, and demand reasoning. Setup Instructions Schedule Trigger:** Adjust to your preferred interval (e.g., every 6 hours or once daily). API Configuration:** Provide credentials in Inventory, Sales, and Supplier nodes. Use Authorization headers or API keys as per your system. AI Node (OpenAI):** Add your OpenAI API key in the credentials section. Modify the prompt if you wish to include additional forecasting parameters. ERP Integration:** Replace placeholder URLs with your ERP system endpoints. Match fields like purchase order number, date, and cost. Database Connection:** Configure credentials for PostgreSQL/MySQL in the Save to Database node. Ensure tables (purchase_orders) are created as per schema provided in sticky notes. Email Notifications:** Set up SMTP credentials (e.g., Gmail, Outlook, or custom mail server). Add recipients under workflow notification settings. Industries That Benefit This automation is highly beneficial for: Retail & E-commerce:** Predicts product demand and auto-orders from suppliers. Manufacturing:** Ensures raw materials are restocked based on production cycles. Pharmaceuticals:** Maintains optimum inventory for high-demand medicines. FMCG & Supply Chain:** Balances fast-moving goods availability with minimal overstocking. Automotive & Electronics:** Prevents delays due to missing components. Prerequisites API access to inventory, sales, supplier, and ERP systems. Valid OpenAI API key for demand forecasting. SQL database (PostgreSQL/MySQL) for record storage. SMTP or mail server credentials for email notifications. n8n environment with required nodes installed (HTTP, AI, Filter, Email, Database). Modification Options Change forecast logic or thresholds for different industries. Integrate Slack/Teams for live notifications. Add approval workflow before sending POs. Extend AI prompt for seasonality or promotional trends. Add dashboard visualization using Grafana or Google Sheets. Explore More AI Workflows: Get in touch with us to build industry-grade n8n automations with predictive intelligence.
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 Matt
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.
by Oneclick AI Squad
Streamline your hiring process with intelligent AI-powered candidate screening and automated interview scheduling. This workflow receives applications via webhook, evaluates candidates using OpenAI's GPT model, scores them against job requirements, stores data in Google Sheets, and automatically schedules interviews for high-scoring candidates — all while sending personalized email notifications and updating statuses in real time. Reduce manual screening time and ensure only top candidates move forward. 🤖📧 What This Template Does Step 1: Triggers on new application submission via Webhook (e.g., from job portal or form). Step 2: Stores applicant data (resume, contact, role) into Google Sheets for centralized tracking. Step 3: Uses OpenAI GPT to evaluate candidate fit based on resume, skills, and job requirements. Step 4: Applies Scoring Logic: • Score ≥ 70 → Qualified for interview • Score < 70 → Not a fit Step 5: Branches based on score: → High Score Path: • Sends Interview Invitation Email • Creates Google Calendar Event • Updates Sheet: Status → “Interview Scheduled” → Low Score Path: • Sends Polite Rejection Email • Updates Sheet: Status → “Rejected” Step 6: Final metrics logged and webhook response confirms completion. Key Benefits ✅ Eliminates manual resume screening ✅ AI evaluates candidates consistently and objectively ✅ Automates interview scheduling with calendar integration ✅ Real-time status updates in Google Sheets ✅ Personalized email communication at every stage ✅ Full audit trail of decisions and actions Features Webhook-triggered application intake Google Sheets as applicant tracking system (ATS) OpenAI GPT-powered candidate evaluation Dynamic scoring threshold (customizable) Conditional branching (High/Low Score) Gmail integration for email notifications Google Calendar auto-event creation Real-time status updates via sheet write-back Final webhook response for system confirmation Requirements GOOGLE_SHEET_ID**: Your Google Sheet ID Credentials Needed:** Google Sheets OAuth2 Gmail API Key OpenAI API Key Google Calendar OAuth2 Customize:** • Job requirements & AI prompt • Score threshold (currently 70) • Email templates • Interview scheduling time slots Target Audience HR teams managing high-volume applications 👥 Recruiters seeking faster shortlisting ⏱️ Startups automating early-stage hiring 🚀 Tech companies with technical screening needs 💻 Remote-first organizations using digital workflows 🌍 Step-by-Step Setup Instructions Set up Google Sheet → Create a sheet with columns: Name, Email, Resume Link, Role, Status, Score, Timestamp → Replace YOUR_SHEET_ID in the workflow with your actual Sheet ID. Configure Webhook → Connect your job application form (e.g., Typeform, LinkedIn, custom portal) to trigger this workflow. Add OpenAI API Key → Insert your OpenAI key and customize the evaluation prompt under “AI Evaluation” node. Set Scoring Threshold → Adjust the “IF – Check Score Threshold” node (default: ≥70 = pass). Connect Gmail & Calendar → Enable Gmail OAuth2 and Google Calendar OAuth2. → Define interviewer email and default interview duration. Customize Emails → Edit “Interview Invitation” and “Rejection Notice” templates with your branding. Test the Flow → Submit a test application via webhook. → Verify: Sheet update → AI score → Email → Calendar event → Status change. Go Live → Enable automation. Monitor first few runs in Google Sheets. Workflow Complete! Now sit back as AI screens, scores, schedules, and communicates — all without lifting a finger. Metrics to Track: Applications received Average AI score Interview rate Time to process
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 Yaron Been
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Keep your SEO performance on track with this automated SEO Watchlist Monitor! This workflow combines AI-powered strategy analysis with real-time search ranking checks to track keyword positions, identify content gaps, and alert you to critical ranking drops. Perfect for marketing teams ensuring search visibility and competitive intelligence across platforms. 🚀🔍 What This Template Does 1️⃣ Triggers daily SEO intelligence checks to monitor keyword performance. 2️⃣ Configures target keywords, competitor domains, and geographic focus. 3️⃣ Validates SEO configuration to ensure proper setup. 4️⃣ Uses AI to analyze keyword competitiveness and strategic opportunities. 5️⃣ Checks real-time search rankings using Google Search scraper. 6️⃣ Detects critical ranking drops below position 10. 7️⃣ Saves SEO intelligence to Google Sheets for tracking. 8️⃣ Sends email alerts for urgent ranking issues. 9️⃣ Provides daily Slack summaries of SEO performance. Key Benefits ✅ Monitors keyword rankings and competitor movements daily ✅ Identifies content gaps and strategic opportunities with AI analysis ✅ Alerts instantly to critical ranking drops for quick action ✅ Centralizes SEO intelligence in Google Sheets for team visibility ✅ Combines AI insights with real-time search data for comprehensive monitoring Features Daily automated schedule for continuous monitoring AI-powered SEO strategy analysis and competitive intelligence Real-time search ranking checks using Decodo scraper Critical alert system for ranking drops Google Sheets integration for data centralization Slack and Gmail notifications for team awareness Configuration validation and error logging Structured data parsing for consistent reporting Requirements OpenAI API credentials for AI analysis Decodo API credentials for search scraping Google Sheets OAuth2 credentials with edit access Gmail OAuth2 credentials for email alerts Slack Bot Token with chat:write permission Environment variables for configuration settings Target Audience SEO and digital marketing teams 🎯 Content strategy and growth teams 📈 Competitive intelligence professionals 🔍 Marketing operations teams 🚀 Agency account managers managing multiple clients 💼 Step-by-Step Setup Instructions 1️⃣ Connect OpenAI credentials for AI analysis capabilities 2️⃣ Set up Decodo API credentials for search scraping functionality 3️⃣ Configure Google Sheets with required headers (Keyword, Rank, description, etc.) 4️⃣ Add Gmail and Slack credentials for alerting and notifications 5️⃣ Set your target keywords, competitors, and geographic focus in the configuration node 6️⃣ Configure the cron schedule (hourly) for daily monitoring frequency 7️⃣ Run once manually to verify all integrations and data flow 8️⃣ Activate for ongoing SEO performance tracking and alerting ✅ Pro Tip: Use coupon code "YARON" to get 23K requests for testing (in Decodo)
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 Daiki Takayama
Transform your Google Form into an intelligent customer support system that automatically analyzes, prioritizes, and responds to every inquiry with AI-powered personalization. Who's it for This workflow is perfect for: Customer support teams** handling high volumes of form submissions Small businesses** looking to provide instant, professional responses 24/7 E-commerce stores** managing product inquiries, complaints, and refunds Service providers** triaging appointment requests and support tickets Event organizers** responding to registration questions How it works When someone submits your Google Form, this workflow: Triggers instantly** from new Google Sheets row Analyzes with AI** to determine urgency (low/medium/high), category (technical/sales/support/billing), and sentiment (positive/neutral/negative) Routes intelligently** based on priority level to appropriate response template Generates personalized reply** using OpenAI, tailored to urgency and sentiment Sends auto-reply** via Gmail with professional formatting Alerts your team** on Slack for high-priority cases requiring human follow-up Logs everything** to tracking sheet for analytics and audit trail Set up steps Time to set up: approximately 15-20 minutes Prerequisites Google Form connected to Google Sheets OpenAI API key (get one at platform.openai.com) Gmail account for sending emails Slack workspace (optional, for team alerts) Configuration steps Connect Google Sheets Trigger to your form response sheet Update column names in "Map Form Column Names" node (default: Name, Email Address, Inquiry) Add OpenAI credentials - uses GPT-4o-mini for cost efficiency (approximately $0.001 per inquiry) Connect Gmail via OAuth2 for sending auto-replies Create tracking sheet with columns: timestamp, name, email, urgency, category, sentiment, summary, keywords, subject, inquiry (Optional) Connect Slack for high-priority notifications Test with sample data before activating Requirements Google Form (free) Google Sheets (free) OpenAI API account (approximately $0.001-0.002 per inquiry with GPT-4o-mini) Gmail account (free) Slack workspace (optional, free tier available) n8n Cloud or self-hosted instance How to customize Adjust triage criteria: Edit the "Analyze with AI Triage" prompt to define what qualifies as high/medium/low urgency for your business. Add custom categories beyond the default five (technical/sales/support/billing/general). Modify response templates: Customize the three response generation nodes to match your brand voice. Add company-specific information, policies, or FAQ links. Adjust tone from formal to casual based on your audience. Add advanced features: Insert CRM integration to check customer history before responding Add condition nodes to route specific categories to different team members Include file attachments (brochures, manuals) based on inquiry type Implement follow-up sequences with Wait nodes Connect multiple notification channels (Discord, email, SMS) Multi-language support: The AI automatically detects and responds in the inquiry's language. Customize prompts with language-specific instructions if needed. Use cases Product support:** Auto-respond to "how to use" questions with relevant documentation Complaint management:** Immediately acknowledge issues and alert team for urgent follow-up Lead qualification:** Instantly engage sales inquiries while routing to appropriate sales rep Appointment requests:** Confirm booking inquiries and provide next steps Feedback collection:** Thank customers and categorize feedback for analysis
by Avkash Kakdiya
How it works This workflow identifies HubSpot deals that have gone untouched for 21+ days and automatically updates their status to Closed Lost. It fetches associated contacts, retrieves their details, and sends personalized follow-up emails requesting feedback. Finally, it notifies your team via Slack about the deals moved to Closed Lost. The workflow runs on a scheduled interval, ensuring consistent lead management without manual intervention. Step-by-step 1. Trigger the workflow Schedule Trigger** – Runs the workflow at a defined interval (daily, weekly, etc.). Get HubSpot Deals** – Retrieves all deals with key properties from HubSpot. Extract Deal Fields** – Normalizes deal data for consistent processing. 2. Identify and update cold deals Filter Cold Leads (21+ days)** – Keeps only deals not updated in the past 21 days. Update Deal to Closed Lost** – Marks stale deals as Closed Lost in HubSpot. 3. Map deals to contacts Fetch Deal Associations** – Retrieves contacts linked to filtered deals. Extract Contact IDs** – Parses associations to get contactId, dealId, and dealName. Get Contact Details** – Fetches enriched contact information. Extract Contact Email** – Simplifies data, keeping only the email field. 4. Follow-up & team notification Send Gmail Feedback Request** – Sends a personalized thank-you email requesting feedback. Send Slack Notification** – Alerts the team about deals updated to Closed Lost. Why use this? Ensures timely closure of stale HubSpot deals, keeping your pipeline clean. Automates follow-up emails to gather valuable feedback from disengaged leads. Reduces manual effort in deal management and contact outreach. Keeps your team informed in real-time with Slack notifications. Improves sales process efficiency and lead data hygiene.
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.