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.
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 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 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 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 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 iamvaar
Workflow explaination video: https://youtu.be/z1grVuNOXMk Prerequisites Before running this workflow, you need to have the following set up: JotForm: A form with fields for describing the issue and optionally naming the team member involved. Google Sheet 1 (Issue Resolver Logic): A sheet with three columns: Issue Category, Normal Resolver, and Alternate Resolver. This sheet defines who handles which type of complaint. Google Sheet 2 (Issue Logs): A sheet to store all submitted complaints. It needs columns like: Issue, The person Caused by, case_awarded_to, resolver_email, email_subject, email_body_html, submitted_time, and status. Google Sheet 3 (Resolver Details): A simple sheet with two columns: resolver (e.g., "HR Team") and email (e.g., "hr@yourcompany.com"). Credentials: You need to have connected accounts (credentials) in n8n for JotForm, Google (a Service Account for Sheets and OAuth for Gmail), and a Gemini API Key. Part 1: Initial Complaint Processing This part of the workflow triggers when a new complaint is submitted, uses AI to process it, logs it, and sends an initial notification. 1. JotForm Trigger What it is:** The starting point of the workflow. How it works:** It constantly listens for new submissions on your specified JotForm. When someone fills out and submits the form, this node activates and pulls in all the submitted data (like the issue description and the person involved). 2. AI Agent What it is:** The "brain" of the operation, which orchestrates several tools to make a decision. How it works:** This node receives the complaint details from the JotForm Trigger. It follows a detailed prompt that instructs it to perform a sequence of tasks: Classify: Analyze the complaint description to categorize it. Reason: Use its connected "tools" to figure out the correct resolver based on your business logic. Generate: Create a complete email notification and format the final output as a JSON object. Connected Tools:** Google Gemini Chat Model: This is the actual language model that provides the intelligence. The AI Agent sends its prompt and the data to this model for processing. Issue Resolver Allotment Logic Sheets tool: This allows the AI Agent to read your first Google Sheet. It can look up the issue category and find the designated "Normal Resolver" or "Alternate Resolver." Resolver Details Sheets tool: This allows the AI Agent to read your third Google Sheet. Once it knows the name of the resolver (e.g., "HR Team"), it uses this tool to find their corresponding email address. Structured Output Parser: This ensures that the AI's response is perfectly formatted into the required JSON structure (email, case_awarded_to, email_subject, etc.), making it reliable for the next steps. 3. Save Complaint (Google Sheets Node) What it is:** The record-keeping step. How it works:* This node takes the structured JSON output from the *AI Agent* and the original data from the *JotForm Trigger**. It then adds a new row to your second Google Sheet ("Issue Logs"), mapping each piece of data to its correct column (Issue, case_awarded_to, submitted_time, etc.). 4. Send a message (Gmail Node) What it is:** The initial notification step. How it works:* After the complaint is successfully logged, this node sends an email. It uses the resolver_email, email_subject, and email_body_html fields generated by the *AI Agent** to send a formal assignment email to the correct department or person. Part 2: Daily Follow-Up This second, independent part of the workflow runs every day to check for unresolved issues that are older than three days and sends a reminder. 1. Schedule Trigger What it is:** The starting point for the daily check-up. How it works:** Instead of waiting for a user action, this node activates automatically at a predefined time each day (e.g., 10:00 AM). 2. Get Complaint Logs (Google Sheets Node) What it is:** The data gathering step for the follow-up process. How it works:* When the schedule triggers, this node reads *all** the rows from your "Issue Logs" Google Sheet, bringing every recorded complaint into the workflow for evaluation. 3. If Node What it is:** The decision-making step. How it works:* This node examines each complaint passed to it from the previous step one by one. For each complaint, it performs a calculation: it finds the difference in days between the submitted_time and the current date. If that difference is *greater than or equal to 3**, the complaint is passed on to the next step. Otherwise, the workflow stops for that complaint. 4. Send a message1 (Gmail Node) What it is:** The reminder email step. How it works:* This node only receives complaints that met the "3 days or older" condition from the *If** node. For each of these old complaints, it sends a follow-up email to the resolver_email. The email body is dynamic, mentioning how many days have passed and including the original issue description to remind the resolver of the pending task.
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 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 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 SpaGreen Creative
WhatsApp Bulk Number Verification in Google Sheets Using Unofficial Rapiwa API Who’s it for This workflow is for marketers, small business owners, freelancers, and support teams who want to automate WhatsApp messaging using a Google Sheet without the official WhatsApp Business API. It’s suitable when you need a budget-friendly, easy-to-maintain solution that uses your personal or business WhatsApp number via an unofficial API service such as Rapiwa. How it works / What it does The workflow looks for rows in a Google Sheet where the Status column is pending. It cleans each phone number (removes non-digits). It verifies the number with the Rapiwa verify endpoint (/api/verify-whatsapp). If the number is verified: The workflow can send a message (optional). It updates the sheet: Verification = verified, Status = sent (or leaves Status for the send node to update). If the number is not verified: It skips sending. It updates the sheet: Verification = unverified, Status = not sent. The workflow processes rows in batches and inserts short delays between items to avoid rate limits. The whole process runs on a schedule (configurable). Key features Scheduled automatic checks (configurable interval; recommended 5–10 minutes). Cleans phone numbers to a proper format before verification. Verifies WhatsApp registration using Rapiwa. Batch processing with limits to control workload (recommended max per run configurable). Short delay between items to reduce throttling and temporary blocks. Automatic sheet updates for auditability (verified/unverified, sent/not sent). Defaults recommended in this workflow Trigger interval: every 5–10 minutes (adjustable). Max items per run: configurable (example: 200 max per cycle). Delay between items: 2–5 seconds (example uses 3 seconds). How to set up Duplicate the sample Google Sheet: ➤ Sample Fill contact rows and set Status = pending. Include columns like WhatsApp No, Name, Message, Verification, Status. In n8n, add and authenticate a Google Sheets node pointed to your sheet. Create an HTTP Bearer credential in n8n and paste your Rapiwa API key. Configure the workflow nodes (Trigger → Google Sheets → Limit/SplitInBatches → Code (clean) → HTTP Request (verify) → If → Update Sheet → Wait). Enable the workflow and monitor first runs with a small test batch. Requirements n8n instance with Google Sheets and HTTP Request nodes enabled. Google Sheets OAuth2 credentials configured in n8n. Rapiwa account and Bearer token (stored in n8n credentials). Google Sheet formatted to match the workflow columns. Why use Rapiwa Cost-effective and developer-friendly REST API for WhatsApp verification and sending. Simple integration via HTTP requests and n8n. Useful when you prefer not to use the official WhatsApp Business API. Note: Rapiwa is an unofficial service — review its terms and risks before production use. How to customize Change schedule frequency in the Trigger node. Adjust maxItems in Limit/SplitInBatches for throughput control. Change the Wait node delay for safer sending. Modify the HTTP Request body to support media or templates if the provider supports it. Add logging or a separate audit sheet to record API responses and errors. Best practices Test with a small batch first. Keep the sheet headers exact and consistent. Store API keys in n8n credentials (do not hardcode). Increase Wait time or reduce batch size if you see rate limits. Keep a log sheet of verified/unverified rows for troubleshooting. Example HTTP verify body (n8n HTTP Request node) { "number": "{{ $json['WhatsApp No'] }}" } Notes and best practices Test with a small batch before scaling. Store the Rapiwa token in n8n credentials, not in node fields. Increase Wait delay or reduce batch size if you see rate limits or temporary blocks. Keep the sheet headers consistent; the workflow matches columns by name. Log API responses or errors for troubleshooting. Optional Add a send-message HTTP Request node after verification to send messages. Append successful and failed rows to separate sheets for easy review. Support & Community Need help setting up or customizing the workflow? Reach out here: WhatsApp: Chat with Support Discord: Join SpaGreen Server Facebook Group: SpaGreen Community Website: SpaGreen Creative Envato: SpaGreen Portfolio
by Avkash Kakdiya
How it works This workflow automatically collects a list of companies from Google Sheets, searches for their competitors using SerpAPI, extracts up to 10 relevant competitor names with source links, and logs the results into both Google Sheets and Airtable. It runs on a set schedule, cleans and formats the company list, processes each entry individually, checks if competitors exist, and separates results into successful and “no competitors found” lists for organized tracking. Step-by-step 1. Trigger & Input Auto Run (Scheduled) – Executes every day at the set time (e.g., 9 AM). Read Companies Sheet – Pulls the list of companies from a Google Sheet (List column). Clean & Format Company List – Removes empty rows, trims names, and attaches row numbers for tracking. Loop Over Companies – Processes each company one at a time in batches. 2. Competitor Search Search Company Competitors (SerpAPI) – Sends a query like "{Company} competitors" to SerpAPI, retrieving structured search results in JSON format. 3. Data Extraction & Validation Extract Competitor Data from Search – Parses SerpAPI results to: Identify the company name Extract up to 10 competitor names Capture the top source URL Count total search results Has Competitors? – Checks if any competitors were found: Yes → Proceeds to logging No → Logs in “no results” list 4. Logging Results Log to Result Sheet – Appends or updates competitor data into the results Google Sheet. Log Companies Without Results – Records companies with zero competitors found in a separate section of the results sheet. Sync to Airtable – Pushes all results (successful or not) into Airtable for unified storage and analysis. Benefits Automated Competitor Research – Eliminates the need for manual Google searching. Daily Insights – Runs automatically at your chosen schedule. Clean Data Output – Stores structured competitor lists with sources for easy review. Multi-Destination Sync – Saves to both Google Sheets and Airtable for flexibility. Scalable & Hands-Free – Handles hundreds of companies without extra effort.