by Jitesh Dugar
Email List Hygiene - Automated Weekly Validator Overview Validates email lists through automated checks, categorizes results as Valid/Invalid/Risky, updates Google Sheets in real-time, and delivers HTML reports. Runs every Friday at 5 PM via cron scheduling. Workflow Architecture Schedule Trigger → Read Google Sheets → Loop (Process Each Email) → Validate API → IF Branch (Valid/Invalid) → Update Google Sheets → Merge → Loop Back → Calculate Statistics → Send Email Report Loop Mechanism Split in Batches processes one email at a time Each email: validate → branch → update sheet → merge → continue Loop accumulates all results internally "Done" output triggers statistics calculation after all emails processed Health Score Formula Score = (Valid% × 100) - (Invalid% × 20) - (Risky% × 10) Bounded: 0-100 Ranges: 80-100: Excellent (green) 60-79: Good (orange) 0-59: Needs Attention (red) Prerequisites Required: Google account with Sheets access Email validation API (VerifiEmail) n8n v1.0+ Google Sheet Structure | Column | Type | Filled By | |--------|------|-----------| | row_number | Number | Auto-generated | | name | Text | You | | email | Text | You | | status | Text | Workflow | | checked_at | Text | Workflow | | notes | Text | Workflow | Only populate first three columns. Setup 1. Import Template Import JSON file to n8n via Workflows → Add workflow → Import from File 2. Configure Credentials Google Sheets OAuth2 (used by 3 nodes): Create credential via any Google Sheets node Grant spreadsheet permissions Apply same credential to all Google Sheets nodes Validation API: Get API key from https://verifi.email Add credential to "Validate Email Address" node Gmail OAuth2: Add credential to "Send Weekly Report" node Grant email sending permissions 3. Connect Google Sheet In all three Google Sheets nodes: Select your spreadsheet from Document dropdown Select sheet tab Verify "Column to Match On" = row_number (for Update nodes) 4. Set Email Recipient In "Send Weekly Report" node: Change "Send To" from placeholder to your email Optional: Add CC/BCC for multiple recipients 5. Test Add 3-5 test emails (mix of valid/invalid) Click "Execute Workflow" Verify sheet updates and email arrives 6. Activate Toggle "Active" switch. Workflow runs automatically every Friday at 5 PM. Customization Change Schedule: Edit "Weekly Schedule" node cron expression: Daily 9 AM: 0 9 * * * Monday 5 PM: 0 17 * * 1 First of month: 0 9 1 * * Email Design: Edit HTML in "Send Weekly Report" message field. Modify colors (search hex codes), text, or add branding. Archive Invalid Emails: Add Google Sheets Append node after "Update Invalid Status" → create "Invalid_Archive" tab → append email, name, reason, date Slack Notifications: Add Slack node after email report → configure channel → use summary text from statistics Rate Limiting: Add Wait node (1-2 seconds) after validation for large lists to prevent API throttling Troubleshooting "Column not found": Verify exact column names in sheet: row_number, name, email, status, checked_at, notes (case-sensitive) Only processes 1 email: Check Google Sheets node Range field is empty or set to include all rows. Verify "Use Header Row" enabled. Wrong statistics: Enable "Execute Once" in Calculate Statistics node settings (gear icon) Email not arriving: Check spam/promotions folder, verify Gmail credential authorized, confirm recipient address correct API errors: Verify API key valid, check quota not exceeded, test with simple email like test@gmail.com Merge node error: Confirm both Update nodes connect to Merge inputs (top and bottom). Check both branches execute successfully. Validation Checks Each email undergoes: RFC 5322 format compliance MX record existence (domain has mail servers) SMTP verification (mailbox exists) Disposable email service detection Catch-all domain detection Categories: Valid: All checks passed Invalid: Critical checks failed Risky: Disposable or catch-all domain Support Check execution logs in n8n Executions tab for errors. Use "Execute Node" on individual nodes to isolate issues. Visit n8n community forum for additional help. Tags email-validation marketing-automation data-cleaning google-sheets scheduled-workflow deliverability list-hygiene
by Rahul Joshi
📊 Description Streamline IT and operations change management by automating approval routing, Jira issue creation, audit logging, and real-time Slack alerts. This workflow ensures faster reviews, traceable approvals, and transparent communication across systems. 🚀💼 What This Template Does Step 1: Triggers automatically every weekday at 3:00 AM to fetch new or updated change requests from Monday.com. ⏰ Step 2: Extracts key fields (request name, component, risk level, approvers, and description) for structured processing. 🧩 Step 3: Routes each request based on its current status — Pending, Approved, or Rejected. 🔀 Step 4: Sends Slack alerts for pending approvals with detailed context for quick action. 💬 Step 5: Creates Jira tickets for approved requests, ensuring smooth implementation tracking. 🎫 Step 6: Logs all approved requests to Google Sheets for compliance and audit purposes. 📊 Step 7: Sends confirmation emails to requesters with Jira ticket details via Gmail. 📧 Step 8: Automatically creates resubmission items in Monday.com for rejected requests. 🔁 Key Benefits ✅ Eliminates manual approval routing between tools ✅ Centralizes audit trails and implementation data ✅ Accelerates change management turnaround ✅ Provides real-time alerts to approvers and teams ✅ Ensures compliance with automated record-keeping Features Automated daily trigger (Mon–Fri, 3 AM) Monday.com integration for request intake Conditional branching by status (Pending, Approved, Rejected) Jira issue creation for approved requests Slack notifications for pending and approved updates Google Sheets logging for audit tracking Gmail email confirmations for requesters Automatic resubmission handling for rejected requests Requirements Monday.com API credentials with board access Jira API credentials with project permissions Google Sheets OAuth2 credentials Slack Bot token with chat:write permissions Gmail OAuth2 credentials for email automation Target Audience IT & DevOps teams managing structured change approvals Project management teams tracking implementation requests Organizations seeking automated risk-based change routing Managers needing centralized logs and instant Slack alerts Step-by-Step Setup Instructions Connect your Monday.com account and replace YOUR_BOARD_ID and groupId. Configure Jira credentials and set the target project for new tickets. Link your Google Sheets document and replace YOUR_SHEET_ID and YOUR_SHEET_GID. Add Slack credentials and update YOUR_CHANNEL_ID for notifications. Set up Gmail OAuth2 for sending confirmation emails. Adjust the cron expression (0 3 * * 1-5) if needed to match your timezone. Run the workflow manually once to test end-to-end connectivity. Enable for scheduled automation and enjoy a fully managed approval process. ✅
by Roshan Ramani
Duplicate Submission Detection & Auto Response for Jotform Who's it for Form managers, SaaS platforms, event organizers, recruitment teams, and any organization using Jotform who need automatic duplicate prevention with intelligent, personalized email responses without manual intervention. What it does This workflow automatically detects duplicate form submissions by email address, prevents duplicate entries in your database, and triggers intelligent email responses. When a new submission arrives, the system checks against all previous submissions. If a match is found, it deletes the duplicate and sends a friendly notification. If it's a new submission, it sends a professional welcome confirmation. The entire process happens in seconds with no manual work required. AI-generated emails adapt to your form type and industry, making responses feel personalized and relevant. 👉 Get the JotForm from here How it works Step-by-step: Form submission triggers the workflow System extracts email and contact information Fetches all previous submissions from Jotform Filters for active submissions matching the email Counts matching submissions to determine if duplicate If duplicate: Deletes the submission, generates rejection email, sends to submitter If new: Generates welcome confirmation email, sends to submitter Requirements Jotform form and account Jotform API Key n8n instance (self-hosted or cloud) Google Gemini API (for email generation) Gmail account with OAuth2 setup Basic form field mapping knowledge How to set up Complete setup instructions are included in the workflow sticky notes: Get your Jotform API Key from Account Settings Enable Google Gemini API in Google Cloud Console Configure Gmail OAuth2 authentication Add all credentials to n8n Import workflow and map your form fields Test with a sample submission Activate and deploy Detailed step-by-step guide is in the workflow documentation. How to customize the workflow Personalize emails for your industry: Edit the AI prompts in both "Generate Welcome Email" and "Compose Rejection Email" nodes to match your business type, tone, and specific requirements. The AI will adapt responses based on your instructions. Map your form fields: Update field IDs in filtering nodes to match your actual Jotform structure. Different forms may have email in different field positions. Add admin notifications: Duplicate the email nodes to send alerts to your team whenever duplicates are detected. Modify approval workflow: Change next steps timeline, add additional verification requirements, or customize follow-up sequences based on your business process. Template features Instant duplicate detection by email Automatic duplicate removal AI-powered, personalized email responses Token-efficient prompts for cost savings Professional HTML email formatting Mobile-responsive designs Works with any form type or industry Fully customizable for your use case Complete setup documentation included
by Oneclick AI Squad
This n8n workflow automates the creation and countdown notifications for events like product launches or birthdays via a Telegram bot, ensuring timely group alerts through multi-channel routing (e.g., Slack or email). It processes incoming event data from webhooks, stores it persistently, and triggers scheduled reminders to keep teams or groups informed. Key Features Handles event creation or updates via webhook from Telegram chats or external sources. Fetches and processes upcoming events on a customizable schedule for countdown notifications. Routes alerts dynamically to channels like Slack or email based on event settings. Validates incoming data, formats messages for optimal delivery, and confirms responses to initiators. Workflow Process The Webhook Trigger node starts the workflow when an external system (e.g., Telegram bot) sends a POST request with event details like date, description, and notification preferences. The Process Webhook Event node parses and validates incoming webhook data, ensuring required fields (e.g., event date, channel) are present before proceeding. The Events Database node fetches upcoming events (e.g., launches or birthdays) from a data source, either triggered by the webhook for updates or scheduled for notifications. The Webhook Response node sends a confirmation or status response back to the webhook sender (e.g., Telegram bot) in JSON format. The Schedule Trigger node runs the workflow automatically on a defined schedule (e.g., daily at 9AM) to check for countdown-eligible events. The Is Slack? node checks if the event's notification channel is set to Slack; if true, it routes to Slack-specific formatting. The Format Slack Message node formats the event countdown message in a Slack-friendly layout (e.g., with mentions or embeds). The Send to Slack node sends the formatted message to the target Slack channel for group notifications. The Is Email? node checks if the event's notification channel is set to email (fallback from Slack check); if true, it routes to email-specific formatting. The Format Email node formats the event countdown message in an email-friendly detail (e.g., with HTML for readability). The Send Email node sends the formatted email to the recipient list (e.g., group organizers or participants). Setup Instructions Import the workflow into n8n and configure the Webhook Trigger with your Telegram bot's webhook URL for event creation requests. Set up database credentials in the Events Database node (e.g., connect to PostgreSQL or Airtable for event storage). Configure channel integrations: Slack app token for Send to Slack, SMTP credentials for Send Email, and ensure Schedule Trigger aligns with your countdown frequency (e.g., hourly for real-time alerts). Test by sending a sample POST request to the webhook with event data and manually triggering the schedule to verify notifications. Monitor executions in the n8n dashboard and refine validation logic in Process Webhook Event for custom event fields. Prerequisites Telegram bot with webhook setup for incoming event creation messages. Database service (e.g., PostgreSQL or Google Sheets) for storing and querying events. Slack workspace and email provider (e.g., Gmail SMTP) for notifications. n8n instance with webhook and cron scheduling enabled. Basic API setup for Telegram bot token and channel routing. Modification Options Add a Telegram-specific check node (e.g., "Is Telegram?") branching from Events Database to integrate direct bot messaging. Customize the Schedule Trigger for dynamic timing, like event-specific intervals for countdowns (e.g., daily leading up to the date). Extend Format Slack Message or Format Email with dynamic templates, such as embedding countdown timers or images. Integrate additional channels (e.g., Discord) by duplicating the Is Slack? / Is Email? logic. Enhance Process Webhook Event to support recurring events or auto-populate recipient lists from Telegram group data. Explore More AI Workflows: Get in touch with us for custom n8n automation!
by Chris Rudy
Who's it for Marketing agencies, digital agencies, and freelancers who need to streamline their client onboarding process and create consistent, professional documentation for new clients. Perfect for teams handling multiple client intakes who want to save hours of manual setup work while maintaining quality standards. What it does This workflow automates the entire client onboarding journey from the moment a prospect fills out your Typeform intake questionnaire. It instantly creates a complete Google Drive folder structure with 6 main folders and 15+ subfolders tailored for marketing projects, sends the intake information to your team via Slack, generates an AI-powered marketing research brief using OpenAI, implements an approval workflow with revision capabilities, and delivers a professional welcome email to the client. The system ensures nothing falls through the cracks while maintaining consistent quality across all client projects. How it works Intake Trigger: When a client submits your Typeform intake form, the workflow automatically initiates Folder Creation: Creates a branded client folder in Google Drive with organized subfolders for ads, raw footage, product images, research, drafts, and archives Team Notification: Posts detailed intake responses to your designated Slack channel for immediate team visibility AI Brief Generation: Uses OpenAI to analyze intake responses and generate a comprehensive marketing research document including customer personas, pain points, positioning strategies, and marketing angles Approval Process: Sends the brief for team review with built-in approve/revise functionality Document Creation: Upon approval, creates a Google Doc with the finalized research brief Client Communication: Sends a personalized welcome email to the client confirming their onboarding How to set up Configure the workflow: Start by filling in all values in the "⚙️ Configuration" node: Your Typeform ID from your intake form Google Drive parent folder ID where client folders will be created Slack channel IDs for new client notifications and internal reviews OpenAI model preference (GPT-4 recommended) Welcome email template with your agency branding Connect your accounts: Typeform: Create credentials and connect your account Google: Authenticate with Drive, Docs, and Gmail permissions Slack: Add the n8n bot to your workspace and relevant channels OpenAI: Add your API key for AI content generation Test the workflow: Submit a test entry through your Typeform Verify folder creation in Google Drive Check Slack notifications are posting correctly Confirm the approval process works as expected Requirements Typeform** account with a client intake form created Google Workspace** account with Drive, Docs, and Gmail access Slack** workspace with appropriate channels created OpenAI API** key with credits for content generation n8n** instance (self-hosted or cloud) version 1.0+ How to customize the workflow Folder Structure**: Modify the subfolder nodes to match your agency's project organization needs Intake Fields**: Update the Slack message blocks and AI prompt to match your specific Typeform fields Research Brief Template**: Customize the OpenAI prompt to generate briefs aligned with your agency's format Approval Logic**: Add additional approval stages or skip approval for certain client types Welcome Email**: Personalize the email template with your branding, links, and next steps Notification Channels**: Route different types of notifications to specific Slack channels based on client tier or project type
by Krade1027
Monitor device disconnections from Omada emails to Google Sheets with Pushover alerts Who’s it for This workflow is designed for IT admins, network engineers, or small business owners who need to automatically monitor device connectivity from Omada Controller email alerts. If you want a lightweight, low-cost solution for tracking device uptime without complex monitoring software, this template is for you. How it works The workflow listens for Omada Controller email alerts using Gmail, parses each email, and logs device connection status (connected/disconnected) into Google Sheets. Every 5 minutes, it checks for devices that have been disconnected for more than 30 minutes. If a device has not reconnected, the workflow sends a push notification via Pushover. Old logs are cleared automatically every 2 days to keep the sheet clean. Workflow Overview The workflow is broken into three main parts: 1. Email Processing (Receives Alert -> Append Row in Sheet) Triggered whenever a new email is received. It uses a Code node to parse the raw text of the email, extracting details like device name, MAC address, and connection status. This data is formatted and appended as a new row to Google Sheets, creating a comprehensive log of all connection events. Important: In the Gmail trigger node, make sure to set the search field or filter so that it only matches the subject line used by Omada Controller alert emails. This ensures the workflow only processes the intended alerts and not unrelated emails. 2. Disconnected Device Alerting (Check Every 5 minutes -> Alert User) Runs every 5 minutes. It reads the device log from Google Sheets, identifies the most recent status for each device, and filters for devices currently disconnected. If a device has been disconnected for more than 30 minutes, a high-priority push notification is sent to Pushover account. Once sent, the workflow updates the corresponding row in the Google Sheet to prevent duplicate alerts. 3. Data Maintenance (Clear Rows Every 2 days -> Clear sheet) Runs every two days to clean up the Google Sheet by deleting the oldest rows, keeping the log from growing too large. Services and Dependencies To run this workflow, you’ll need the following services connected to n8n: Google Sheets**: Logs all connection events and tracks device status Gmail**: Acts as the trigger, listening for Omada Controller alerts Pushover**: Sends real-time, high-priority push notifications to mobile devices Setup Instructions 1. Create a Google Sheet Log Create a new Google Sheet in your Google Drive Name it something like Omada Device Log Add these headers in the first row: exact spelling and order is crucial rowId, timestamp, timestampISO, category, severity, mac, name, type, status, checkAfter, alertSent, timeStampFormated 2. Configure Credentials Google Sheets**: Create a new OAuth2 credential in n8n Gmail**: Create a new OAuth2 credential (must receive Omada alerts) Pushover**: Create a new API credential and get user keys for each recipient 3. Import the Workflow Copy the JSON workflow file In n8n: click New → Import from JSON Paste the JSON code 4. Update the Nodes Receives Alert**: Link it to your Gmail credential Append Row in Sheet, Get Row(s) in Sheet, Update Alert, Clear sheet**: Replace YOUR_GOOGLE_SHEET_ID with your Google Sheet’s ID (found in the sheet URL between /d/ and /edit) Alert User**: Replace YOUR_PUSHOVER_USER_KEY with your Pushover user keys Node Breakdown Receives Alert** (Gmail Trigger): Listens for new emails Process Email and Extract** (Code): Parses email and extracts structured data (timestamps, device info, status) Append Row in Sheet** (Google Sheets): Adds a new row to your log Check Every 5 minutes** (Schedule Trigger): Runs regularly to check device status Get Row(s) in Sheet** (Google Sheets): Reads log to get latest status per device Check Device and Notify** (Code): Groups rows by MAC, filters disconnected devices past 30 minutes Alert User** (Pushover): Sends formatted push notification with device details Update Alert** (Google Sheets): Marks the row as alerted to prevent duplicates Clear Rows Every 2 days** (Schedule Trigger): Runs maintenance Clear sheet** (Google Sheets): Deletes old rows, preserves header
by Oneclick AI Squad
This automated n8n workflow enables the creation and management of AWS RDS databases through email interactions. Users can send emails with commands such as "Create RDS" or "Delete RDS," including details like database engine, instance class, and credentials. The workflow parses the email, uses Terraform to execute the requested action on AWS RDS, updates a Google Sheet with the status, and sends a confirmation email. Fundamental Aspects Gmail Trigger**: Initiates the workflow upon receiving a new email in Gmail. Parse Email Content**: Analyzes the email body to extract the command (create or delete) and database details like region, identifier, engine, and credentials. Manage RDS Instance**: Executes Terraform commands to create or delete the AWS RDS database instance based on the parsed details. Wait For Data**: Pauses the workflow to allow time for the RDS operation to complete and data to become available. Update Google Sheet**: Appends or updates the Google Sheet with the database instance details, status, and any relevant IDs. Send Confirmation Email**: Formats and sends a response email confirming the action taken, including success/failure details. Setup Instructions Import the Workflow into n8n**: Download the workflow JSON and import it via the n8n interface. Configure API Credentials**: Set up Gmail API credentials for email triggering and sending. Configure AWS credentials with RDS management permissions. Set up Google Sheets API credentials with read/write access. Ensure Terraform is integrated or nodes are configured for Terraform execution. Prepare Google Sheet**: Create a sheet with columns for database identifier, engine, instance class, status, and other relevant fields. Run the Workflow**: Activate the Gmail trigger and test by sending an email with a create or delete command. Verify Responses**: Check the Google Sheet for updates and your email for confirmation messages. Adjust Parameters**: Fine-tune Terraform variables, email parsing logic, or wait times as needed. Columns For The Google Sheet: Database Identifier: Unique identifier for the RDS instance (e.g., var.db_identifier). Engine: Database engine type (e.g., MySQL, PostgreSQL) (e.g., var.db_engine). Instance Class: RDS instance class (e.g., var.instance_class) (e.g., db.t3.micro). Allocated Storage: Storage size in GB (e.g., var.allocated_storage) (e.g., 20). Region: AWS region for the instance (e.g., var.aws_region) (e.g., us-east-1). Username: Database admin username (e.g., var.db_username) (e.g., admin). Password: Database admin password (e.g., var.db_password) (e.g., SecurePassword123). Status: Current status of the RDS instance (e.g., creating, deleted). Database Name: Name or tag for the database (e.g., var.db_name) (e.g., MyRDSDatabase). Technical Dependencies Gmail API**: For receiving trigger emails and sending confirmations. AWS RDS API**: For database management (via Terraform). Google Sheets API**: For logging and updating database status. Terraform**: For infrastructure-as-code management of RDS instances. n8n**: For workflow automation and node integrations. Customization Possibilities Support Additional Commands**: Extend to include update or snapshot operations for RDS instances. Enhance Parsing**: Improve email content analysis with AI for better intent detection. Add Database Engines**: Include support for more RDS engines like Oracle or SQL Server. Integrate Monitoring**: Add nodes to monitor RDS performance and alert via email. Customize Sheets**: Modify sheet columns or add visualizations for database metrics. Security Enhancements**: Incorporate additional validation for sensitive credentials in emails. Want a tailored workflow for your business? Our experts can craft it quickly Contact our team
by PollupAI
This n8n workflow enables teams to automate and standardize multi-step onboarding or messaging workflows using Google Sheets, Forms, Gmail, and dynamic logic powered by Code and Switch nodes. It ensures the right email is sent at the right step, tracks progress in Google Sheets, and handles errors or escalations. 🧑💼 Who is this for? HR and PeopleOps teams managing candidate or employee onboarding processes Customer success or onboarding teams handling structured, step-based journeys Any team using Google Sheets as a lightweight CRM or workflow tracker 🧩 What problem is this workflow solving? Coordinating multi-step onboarding or communication flows using spreadsheets and email can quickly become error-prone. This workflow: Dynamically detects the current step and status from a Google Sheet Sends the right message at the right time Updates statuses and creates next steps Handles errors with escalation logic ⚙️ What this workflow does Trigger via Form or Manual Execution Users can fill a web form or run the workflow manually. Read Google Sheets Retrieves step definitions and user progress from two sheets: One for message templates One for user step/status tracking Generate Message Table Uses custom JavaScript to parse and structure message templates based on step and message type (sent, completed, error). Determine User Step A Switch node checks the user’s current step and status. Logic branches into the correct flow for message sending and verification. Send Message Message variables are replaced using a Code node. Final message is sent via Gmail or another workflow (using Execute Workflow). Update Sheets Marks the step as completed or passed. Creates the next step in the sheet with updated status. Handle Errors If the step fails, an error message is sent to the responsible admin. 🛠️ Setup Connect Google Sheets and Gmail: Ensure credentials are configured in n8n. Prepare Sheets: One sheet for messages with steps/types/subjects/content. You can copy the one from here One sheet for tracking users and their current step/status. You can copy the one from here Customize Webform: Use the provided form to capture First Name, Last Name, and Email. Connect to Your Email Templates: Ensure your message structure follows the expected JSON format by step and type. ✏️ How to customize this workflow to your needs Add More Steps**: Expand the Switch logic and template sheet for more steps. Use Different Channels**: Replace Gmail with Slack, Telegram, or another messaging node. Change Form Fields**: Adjust the FormTrigger node to match your onboarding fields. Custom Error Logic**: Customize escalation emails, including admin routing or Slack alerts. Integrate with Databases**: Swap Google Sheets with Airtable, PostgreSQL, or Notion. This workflow is ideal for automating repetitive, step-based processes involving human communication. It’s modular, extensible, and powered by spreadsheet-driven logic.
by Rakin Jakaria
Use cases are many: Let users book, check, reschedule, or cancel meetings directly from Telegram. Perfect for solopreneurs, agencies, or teams who want an AI-powered assistant that prevents double-bookings, manages Google Calendar, and even sends email invites automatically. Good to know At time of writing, this workflow uses OpenAI GPT-4.1-mini for natural conversation handling. See OpenAI Pricing for updated info. This workflow relies on Google Calendar for scheduling — if the model says “conflict found,” it means an event already exists in that time slot. How it works Telegram Chat**: A user types natural requests like “Book a meeting with Sarah tomorrow at 2 PM” or “Do I have meetings on Friday?”. AI Agent (OpenAI)**: Interprets the request, calculates dates (using Date & Time), and decides whether to create, update, or delete a meeting. Conflict Checking**: Before booking, the agent checks Google Calendar for existing events to avoid overlaps. Meeting Management**: Create: Adds new events with title, description, attendees. Update: Edits existing events. Delete: Cancels meetings if requested. Get: Lists all meetings for a date or time range. Notifications**: Replies instantly on Telegram and, if needed, sends a Gmail email with meeting details. Memory**: Keeps context of the conversation so users can speak naturally (“reschedule that meeting to 4 PM instead”). How to use Start a Telegram chat with the bot. Type a request in plain English (no need for structured inputs). The agent will confirm or suggest alternatives if a conflict exists. Meetings appear in Google Calendar and details can be emailed via Gmail. Requirements Telegram bot connected to n8n OpenAI API key (for AI-driven scheduling assistant) Google Calendar account (for event creation & conflict checking) Gmail account (for sending invites & confirmations) Customising this workflow Add support for multiple calendars (work, personal, shared). Change the conflict-resolution logic (e.g., auto-suggest nearest free slot). Include recurring meetings (weekly standups, monthly reviews). Add Slack or WhatsApp integration for multi-platform scheduling. Extend Gmail invites with calendar attachments (.ics files). 👉 Rakin Jakaria
by Nitesh
🧠 How It Works This AI Agent automatically qualifies property buyer leads from form submissions and sends them directly to your CRM. 🔄 Workflow Steps Form Submission Trigger When a user submits their details via a property inquiry form, the workflow is activated. AI Lead Classification The buyer’s input (budget, location, timeline, etc.) is analyzed by OpenAI. Structured data is extracted, and a lead score (0–100) is generated. Lead Qualification Logic Leads with a score ≥ 70 are marked as qualified. Leads with a lower score can be ignored or stored separately for later review. Follow-Up Actions (for Qualified Leads) An email notification is sent to the real estate agent. A record is created in Airtable to act as a lightweight CRM. ⚙️ How to Set Up 1. Form Setup Replace the default trigger with your preferred source: Typeform, Google Forms, Webflow form, etc. Ensure your form collects the following fields: Name, Email, Budget, Location, Timeline, Property Type 2. Connect Your Credentials Add your OpenAI API key for the LLM node Connect your Gmail account for notifications Link your Airtable base & table to store qualified leads 3. Customize Scoring Logic (Optional) Edit the Information Extractor prompt to tweak how scoring is calculated Example: prioritize budget fit, location, or timeline 4. Test the Workflow Submit a test entry via the form Confirm: You receive the notification email A new lead record appears in Airtable 5. Activate & Go Live Turn on the workflow Start qualifying real buyer leads in real-time 🎯 🚀 Use Cases Realtors → Filter out unqualified leads automatically Agencies → Save time by only engaging with high-quality inquiries Teams → Centralize qualified leads in Airtable for instant collaboration
by Ziad Adel
Google Sheets CRM Automations: Lead Stages → Emails, Client Tracking & Delivery Duration Turn a simple Google Sheet into a lightweight CRM powered by n8n. Overview This template monitors edits in your Leads and Clients tabs and reacts automatically: Qualified?** → sends a Cal.com booking email Stage → Awaiting Proposal** → sends a “proposal coming soon” email Stage → Won* → appends the client to *Clients* with a *Start Date & Time** Clients: Project Status → Delivered* → stamps *End Date & Time* and computes *Time to Deliver** (e.g., 2d 5h 30m) What This Template Does Lead Qualification → Email: When you mark **Qualified? in Leads, a booking email is sent automatically. Awaiting Proposal → Email**: Sends a heads-up email that a proposal is coming soon. Won → Client Append: Adds the client to **Clients and records the start timestamp. Delivered → Completion Metrics**: Looks up the client, stamps the end timestamp, and calculates the delivery duration. How It Works Google Apps Script → Webhooks (onEdit) A small Apps Script (provided in the workflow’s Sticky Note) watches the sheet and posts JSON to these n8n webhooks: /webhook/lead-stage-changed /webhook/lead-qualified /webhook/client-status-changed n8n Flow & Branching lead-stage-changed If Awaiting Proposal → send proposal heads-up email If Won → format timestamp → append to Clients lead-qualified If qualified = true → send Cal.com booking email client-status-changed If Delivered → lookup client row → stamp End Date & Time → compute Time to Deliver → update row Prerequisites Google Sheet with two tabs: Leads and Clients Gmail account (or use your preferred email/notification node) n8n instance with: Google Sheets OAuth2 credentials Gmail OAuth2 credentials (if using the Gmail node) Suggested columns Leads**: Name (A), Client Email (C), Lead Source (D), Stage (E), Qualified? (H) Clients**: Name (A), Client Email (C), Project Status (D), Start Date & Time (F), End Date & Time (G), Time to Deliver (H) Setup Steps Copy/prepare the Google Sheet Ensure both Leads and Clients tabs exist with the columns above. Install the Apps Script In Google Sheets: Extensions → Apps Script → paste the script from the workflow’s Sticky Note. Replace webhook URLs with your n8n endpoints: https://{{YOUR_N8N_DOMAIN}}/webhook/lead-stage-changed https://{{YOUR_N8N_DOMAIN}}/webhook/lead-qualified https://{{YOUR_N8N_DOMAIN}}/webhook/client-status-changed Run createInstallableTrigger() once to enable onEdit. Open the workflow in n8n & replace placeholders {{GOOGLE_SHEETS_DOC_ID}} {{LEADS_GID}} {{CLIENTS_GID}} {{CAL_COM_BOOKING_URL}} {{SENDER_NAME}} {{GMAIL_CREDENTIAL_ID}}, {{GMAIL_CREDENTIAL_NAME}} {{GSHEETS_CREDENTIAL_ID}}, {{GSHEETS_CREDENTIAL_NAME}} Connect credentials Authorize Google Sheets OAuth2 and Gmail OAuth2 (or switch to SMTP/another email node). Activate & test Toggle Qualified? on a test row or change Stage to Awaiting Proposal/Won. Verify the email, client append, and duration updates flow end-to-end. Customization Ideas Swap Gmail with SMTP, Outlook, or Slack messages. Add a Stage = Lost branch to trigger a re-engagement sequence. Add guards to prevent duplicate appends to Clients. Localize email copy and date formats. Troubleshooting Nothing triggers**: Confirm Apps Script URLs and that createInstallableTrigger() was run. Wrong tab/GID**: Open each tab and copy its gid from the URL; update placeholders. Credential errors**: Re-authorize Google Sheets/Gmail OAuth2 in n8n. Wrong first name: Ensure Name in **Leads follows First Last; the workflow splits the first token. Video Walkthrough Demo Screen Studio Template Demo Video
by Nikan Noorafkan
🛍️ Google Shopping Feed Optimization with Channable + Relevance AI + Google Merchant API 🚀 Automate, Optimize & Sync Your Product Feeds at Scale 🧩 Overview This workflow automates Google Shopping Feed Optimization using Channable, Relevance AI, and the Google Merchant API. It runs daily, enhancing product titles and descriptions, validating feed quality, assigning custom campaign labels, and syncing the optimized feed with Google Merchant Center. The system ensures every product listing meets Google’s content standards, is SEO-friendly, and ready for high-performance Shopping campaigns. 🧠 Key Benefits ✅ Automated daily product feed optimization ✅ AI-enhanced titles and descriptions (via Relevance AI) ✅ Google Merchant API integration (latest version) ✅ Quality scoring and error detection before sync ✅ Custom campaign labels for segmented bidding ✅ Slack alerts for issues and daily summaries ✅ 100% no-code deployment with scalable batch processing ⚙️ System Architecture | Component | Purpose | | ----------------------------- | -------------------------------------------------------- | | n8n | Workflow automation and orchestration | | Channable | Product feed source (can replace with any eCommerce API) | | Relevance AI | AI title and description optimization | | Google Merchant API (NEW) | Product publishing and validation | | Slack | Alerts and reporting | | Cron Trigger | Daily schedule (6 AM sync) | 🧭 Workflow Logic (Visual Summary) Daily Trigger (06:00 AM) ⬇️ 1️⃣ Get Product Feed (Channable) Fetches product data for optimization. ⬇️ 2️⃣ Data Quality Checks Validates titles, GTINs, pricing, categories, and descriptions. Assigns quality scores. ⬇️ 3️⃣ Split Products Breaks the all_products array into single items for AI processing. ⬇️ 4️⃣ Optimize Title (Relevance AI Tool) Enhances product titles for SEO, clarity, and Google compliance. ⬇️ 5️⃣ Generate Description (Relevance AI Tool) Creates 300–400 character, benefit-focused product descriptions. ⬇️ 6️⃣ Assign Custom Labels Adds five segmentation labels: margin, performance, seasonality, stock level, and category. ⬇️ 7️⃣ Aggregate Products Combines optimized items into one unified dataset. ⬇️ 8️⃣ Upload to Merchant Center (NEW Merchant API) Publishes products via Google’s latest /products endpoint. ⬇️ 9️⃣ Check Product Status Verifies successful uploads and identifies disapprovals. ⬇️ 🔍 Analyze Product Issues Summarizes errors and warnings from Merchant API results. ⬇️ ⚖️ IF Disapprovals Found → 🚨 Send Slack alert for issues → ✅ Otherwise, post success summary 🧩 Environment Variables Set these under n8n → Settings → Variables → Add Variable | Variable | Example | Purpose | | ----------------------------------- | -------------------------------------------------- | -------------------------------- | | CHANNABLE_API_URL | https://api.channable.com/v1 | Channable API base | | CHANNABLE_COMPANY_ID | 12345 | Company ID in Channable | | CHANNABLE_PROJECT_ID | abcd | Project ID | | FEED_ID | shopping-feed | Feed endpoint | | RELEVANCE_AI_API_URL | https://api-f1db6c.stack.tryrelevance.com/latest | Relevance AI API base | | RELEVANCE_TOOL_TITLE_OPTIMIZER_ID | tQy48Ld8n0zp | Relevance AI Title Tool ID | | RELEVANCE_TOOL_DESCRIPTION_ID | hJ9bT01r8Lqf | Relevance AI Description Tool ID | | MERCHANT_API_URL | https://merchantapi.googleapis.com/content/v2.1 | Google Merchant API base | | MERCHANT_ACCOUNT_ID | 123456789 | Merchant Center account ID | | SLACK_CHANNEL | #shopping-feed-automation | Slack channel for reports | 🔑 Credential Setup | Service | Type | Setup | | ------------------- | ---------------- | -------------------------------------------------------------- | | Relevance AI | HTTP Header Auth | Header → Authorization: Bearer {{$env.RELEVANCE_AI_API_KEY}} | | Channable | HTTP Header Auth | Header → Authorization: Bearer {{$env.CHANNABLE_API_TOKEN}} | | Google Merchant | Google OAuth2 | Scopes: • https://www.googleapis.com/auth/content | | Slack | Slack API | Add chat:write Bot Token Scope | 🧱 Node-by-Node Breakdown | Node | Description | Key Action | | ----------------------------- | ---------------------------------------- | ----------------------------------------------------------- | | Daily Trigger (6 AM) | Starts workflow every morning | cron: 0 6 * * * | | Get Product Feed | Fetches products from Channable | GET {{$env.CHANNABLE_API_URL}}/.../feeds/{{$env.FEED_ID}} | | Data Quality Checks | Validates GTINs, titles, pricing, images | Returns quality_score + all_products | | Split Products | Splits array into individual products | Operation: splitOut, Field: all_products | | Optimize Title | Calls Relevance AI title tool | /tools/{{$env.RELEVANCE_TOOL_TITLE_OPTIMIZER_ID}}/trigger | | Generate Description | Calls Relevance AI description tool | /tools/{{$env.RELEVANCE_TOOL_DESCRIPTION_ID}}/trigger | | Assign Custom Labels | Adds 5 Smart Bidding Labels | Margin, performance, seasonality, stock, category | | Aggregate Products | Combines optimized product data | For batch upload | | Upload to Merchant Center | Posts via NEW Merchant API | /accounts/{id}/products | | Check Product Status | Retrieves upload results | Lists disapproved or pending items | | Analyze Product Issues | Summarizes product disapprovals | Returns disapproval_count and warnings | | IF Disapprovals Found | Conditional routing | Sends alert or success message | | Slack - Alert | Sends error summary to Slack | Includes product name and issue detail | | Slack - Success Summary | Posts daily completion message | Includes counts and optimizations applied | 🧰 Testing Procedure 1️⃣ Temporarily disable the cron schedule 2️⃣ Run manually using “Execute Workflow” 3️⃣ Start with 3–5 products 4️⃣ Check: Slack → Success message Google Merchant → Updated products n8n Execution logs → No failed nodes Once validated → Re-enable the 6 AM trigger 🧾 Example Output Slack Success Message ✅ Shopping Feed Optimization Complete 📊 Summary: • Total Products Processed: 135 • Products with Quality Issues: 12 • Disapprovals: 0 • Warnings: 3 🎯 Optimizations Applied: • Titles optimized for SEO • Descriptions enhanced • Custom labels added API: NEW Merchant API (merchantapi.googleapis.com) Next Run: Tomorrow 6 AM Timestamp: 2025-10-22T06:00:00Z Slack Alert Message 🚨 Merchant Center Disapprovals Alert Total Disapprovals: 5 Total Warnings: 2 Critical Issues: • Product: Wireless Headphones (ID: 4829) Issue: Missing GTIN • Product: Yoga Mat Eco (ID: 7350) Issue: Invalid price Action Required: Review disapproved products in Merchant Center. Timestamp: 2025-10-22T06:00:00Z 📊 Success Metrics | Metric | Goal | | ---------------------------- | ------------------- | | Feed approval rate | ≥ 90% | | AI optimization success rate | ≥ 95% | | Manual review reduction | 80% | | Daily automation uptime | 99.9% | | Scalable throughput | 5,000+ products/day | 🧩 Maintenance Schedule | Frequency | Task | | ------------- | ------------------------------ | | Daily | Monitor Slack alerts | | Weekly | Check disapproval logs | | Monthly | Refresh API tokens | | Quarterly | Tune AI prompts and thresholds | 🪜 Next Steps ✅ Deploy workflow in production 📈 Connect to your performance dashboard 🌍 Extend to multi-language feeds (Relevance AI translations) 💡 Add conversion optimization loop in Google Ads 🔗 References n8n Documentation Relevance AI Documentation Google Merchant API Docs Channable Help Center 🎉 Conclusion You now have a production-grade, AI-driven Shopping Feed Optimization workflow built on: Channable** for structured data ingestion Relevance AI** for content intelligence Google Merchant API** for publishing n8n** as the automation engine 💡 Result: A fully autonomous product feed system that self-improves daily, keeping your listings compliant, optimized, and performing at scale.