by Mark Hansen
This n8n template demonstrates how to automate the followup when your customer completes a checkout in Stripe by emailing a receipt, logging the transaction, and sending an internal notification. See the video. Who it's for This workflow is for small to medium sized organizations using Stripe for payment processing and looking for a simple way to automate communication and logging that needs to happen post-checkout. How it works The workflow is triggered when a Stripe checkout is completed and again when Stripe creates an invoice. Checkout and invoice details are logged to a Google Sheet. A Slack message is sent to a channel where RevOps receive notifications about new sales. Lastly, a personalized email is sent to the customer with a link for downloading their receipt. How to set up Edit the two Stripe trigger nodes to enter your credentials. Create a Google Sheet named Payments with two tabs: transactions and invoices and the columns as shown in this example. Edit the three Google Sheets nodes to enter your credentials. The Gmail node also needs the credentials of the account that you want emails to come from. Lastly, enter credentials into the Slack node for the user that you want to be shown as posting Stripe transaction notifications. The Slack node is configured to send notifications to the revops channel, but you can change that to be whatever channel you want to use. Use your Stripe sandbox to test the workflow. In your sandbox, create a payment link that you can use to create the checkouts that will trigger the workflow. Make sure that your payment link has the option checked to create a post-payment invoice PDF. This will trigger the Invoice Created node. Requirements Stripe Account Google Workspace Account (Sheets, Mail) Slack Account
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 Jitesh Dugar
Startup Pitch Deck Submission Validator & Auto-Processor Overview A comprehensive n8n workflow template that completely automates the startup pitch deck submission process for accelerators, incubators, VC firms, and startup competitions. This workflow validates founder emails, stores pitch decks securely, generates professional PDF summaries, and sends notifications to both your team and the founders—all in under 30 seconds per submission. Key Features Email Verification & Spam Protection Real-time email validation** using VerifiEmail API Checks for RFC compliance, MX records, disposable emails, and spoofed addresses Automatically rejects invalid submissions before file storage Prevents spam, fake entries, and temporary email addresses Automated File Management Downloads pitch deck PDFs from provided URLs Uploads to organized Google Drive folders with automatic naming Creates two permanent archives: Original pitch decks in /PitchDecks/ Generated summaries in /Submission Summaries/ Maintains clean folder structure with timestamp-based filenames Professional PDF Reports Generates beautiful, branded PDF summary reports Includes company info, founder details, email verification status Professional gradient design with interactive elements Links to Google Drive documents for easy access Smart Email Notifications Admin Team Notification**: Comprehensive email with all details and clickable document links Founder Confirmation**: Professional thank-you email with next steps and timeline Invalid Submission Alerts**: Immediate notification for failed verifications with detailed reasons Intelligent Routing Conditional logic based on email validation results Valid submissions proceed through full workflow Invalid submissions trigger admin alerts and stop processing No wasted resources on fake submissions Error Handling Comprehensive error detection at every step Admin alerts for failed email verifications Graceful handling of file download failures Detailed logging for troubleshooting Perfect For Startup Accelerators** (Y Combinator, Techstars, 500 Startups style programs) Incubators & Innovation Hubs** Venture Capital Firms** (deal flow management) Pitch Competitions** (local, national, international events) Investment Rounds** (seed, Series A applications) Government Innovation Programs** Corporate Accelerators** University Entrepreneurship Programs** Workflow Statistics Total Nodes**: 11 Complexity**: ⭐⭐⭐ Medium Processing Time**: 15-30 seconds per submission Setup Time**: 15-20 minutes Code Required**: None (no-code solution) Maintenance**: Minimal (set and forget) Requirements Required Services & APIs VerifiEmail API Purpose: Email verification Sign up: https://verifi.email Google Drive Purpose: File storage Setup: Enable Drive API in Google Cloud Console Gmail Purpose: Email notifications Setup: Enable Gmail API in Google Cloud Console HTML to PDF API (pdfmunk.com) Purpose: PDF generation Sign up: https://pdfmunk.com Optional Integrations Typeform** - For frontend submission forms Google Forms** - Alternative form solution Webflow** - For custom landing pages Airtable** - For additional database logging Slack** - For team notifications What Gets Created Folder Structure in Google Drive My Drive/ ├── PitchDecks/ │ ├── TechVenture_JohnDoe_PitchDeck.pdf │ ├── AIStartup_JaneSmith_PitchDeck.pdf │ └── GreenTech_MikeJones_PitchDeck.pdf │ └── Submission Summaries/ ├── TechVenture_Summary_20251012_143025.pdf ├── AIStartup_Summary_20251012_145532.pdf └── GreenTech_Summary_20251012_151147.pdf Email Notifications Admin Team Email (to: accelerator@yourdomain.com) All startup details Founder information with verified email badge Clickable buttons to view pitch deck and summary Email verification breakdown (RFC, MX, disposable check) Google Drive folder structure overview Document IDs for reference Founder Confirmation (to: founder's email) Personalized thank you message Submission confirmation checklist Detailed submission summary table Clear next steps with timeline (5-7 day review) PDF summary attached for records Contact information for questions Invalid Email Alert (to: admin@yourdomain.com) Failed submission details Email verification failure reasons Timestamp for tracking Option for manual review Quick Start Guide 1. Import Template Download the JSON file In n8n: Workflows → Import from File Select: startup-pitch-deck-validator-template.json 2. Configure Credentials (15 minutes) A. VerifiEmail API Sign up at https://verifi.email Get API key from dashboard In n8n: Credentials → VerifiEmail API → Paste key B. Google Drive OAuth2 Go to https://console.cloud.google.com Create project → Enable Drive API Create OAuth 2.0 credentials In n8n: Credentials → Google Drive OAuth2 → Follow flow C. Gmail OAuth2 Same Google Cloud project Enable Gmail API In n8n: Credentials → Gmail OAuth2 → Authorize D. HTML to PDF API Sign up at https://pdfmunk.com Get API key In n8n: Credentials → HTML to PDF API → Paste key 3. Create Google Drive Folders Create these folders in your Google Drive: /PitchDecks/ (for original pitch decks) /Submission Summaries/ (for generated reports) Then select them in the workflow nodes. 4. Update Email Addresses Replace placeholder emails in these nodes: Notify Accelerator Team**: Change accelerator@yourdomain.com Alert Admin - Invalid Email**: Change admin@yourdomain.com Founder confirmation template**: Update support@youraccelerator.com 5. Test the Workflow Send a test webhook: curl -X POST https://your-n8n.com/webhook/startup-submission -H "Content-Type: application/json" -d '{ "name": "Jane Smith", "email": "jane@example.com", "startup_name": "TechVenture AI", "website": "https://techventure.io", "industry": "Artificial Intelligence", "pitch_deck_file_url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" }' 6. Activate Workflow Click the toggle in top-right corner to activate! Detailed Setup Instructions Step 1: VerifiEmail Configuration Visit https://verifi.email and create account Navigate to API section in dashboard Copy your API key In n8n workflow, click "Verifi Email" node Create new credential → Paste API key Test credential to ensure it works Step 2: Google Cloud Project Setup Create Google Cloud Project Go to https://console.cloud.google.com Click "New Project" Name it: "n8n Startup Workflow" Click "Create" Enable Required APIs Go to "APIs & Services" → "Library" Search and enable: "Google Drive API" Search and enable: "Gmail API" Create OAuth Credentials Go to "APIs & Services" → "Credentials" Click "Create Credentials" → "OAuth 2.0 Client ID" Application type: "Web application" Add authorized redirect URI from n8n Download credentials JSON Configure in n8n In workflow, click any Google Drive node Create new credential → Google Drive OAuth2 Upload credentials JSON or paste values Complete OAuth flow and authorize Repeat for Gmail nodes using same project Step 3: Folder Setup Open Google Drive in browser Create folder: "PitchDecks" (note the folder ID from URL) Create folder: "Submission Summaries" In workflow, select these folders in the respective nodes: "Upload Pitch Deck to Drive" → PitchDecks folder "Save Summary PDF to Drive" → Submission Summaries folder Step 4: PDF API Setup Sign up at https://pdfmunk.com Get API key from account dashboard In "HTML to PDF" node, create new credential Paste API key Test with sample execution Step 5: Email Customization In "Notify Accelerator Team" node: Line 7: Change recipient email Update company name in footer (optional) In "Send Founder Confirmation" node: Line 69-70: Update support email Line 72: Update company name and year In "Alert Admin - Invalid Email" node: Line 3: Change recipient email Step 6: Test & Validate Test with Valid Email: Use your own email address Valid pitch deck URL Verify you receive confirmation email Check Google Drive for files Test with Invalid Email: Use temporary email service Verify admin receives alert Confirm no files are stored Test Error Handling: Use invalid file URL Check error messages Verify graceful failure Workflow DiagramStart → Webhook Trigger ↓ Email Verification (VerifiEmail API) ↓ Conditional Check (Valid?) ↙️ ↘️ TRUE FALSE ↓ ↓ Download PDF Alert Admin ↓ (end) Upload to Drive ↓ Generate Summary PDF ↓ Download Summary ↓ Save to Drive ↓ Notify Admin Team ↓ Confirm to Founder ↓ Done! ✅ Processing Flow Details For Valid Submissions (TRUE Branch): Webhook receives data → ~0s Email verification → ~2-3s Download pitch deck → ~3-5s Upload to Google Drive → ~2-3s Generate PDF summary → ~5-8s Download PDF → ~1-2s Save PDF to Drive → ~2-3s Send admin notification → ~2-3s Send founder confirmation → ~2-3s Total: 15-30 seconds For Invalid Submissions (FALSE Branch): Webhook receives data → ~0s Email verification → ~2-3s Send admin alert → ~2-3s Total: 4-6 seconds (saves resources!) Customization Options Easy Customizations Email Templates Modify HTML in Gmail nodes Add your logo Change colors and branding Adjust text and messaging PDF Template Edit HTML in "HTML to PDF" node Add custom styling Include additional fields Add company logo/branding Folder Structure Create subfolders by industry Add year-based organization Implement custom naming conventions Notification Preferences Add Slack notifications Set up SMS alerts Create calendar events Log to Airtable/database Advanced Customizations Add Duplicate Detection Check if email already submitted Prevent multiple submissions Create whitelist/blacklist Implement Scoring System Add rating fields to PDF Create evaluation criteria Automate preliminary screening Multi-Stage Workflow Add approval process Create interview scheduling Implement status updates Analytics & Reporting Track submission metrics Generate monthly reports Monitor email verification rates Analyze industry trends Troubleshooting Common Issues & Solutions 1. Email Verification Fails Problem**: All emails marked as invalid Solution**: Check VerifiEmail API key and quota 2. Google Drive Upload Error Problem**: "Insufficient permissions" error Solution**: Re-authorize OAuth, ensure Drive API enabled Check**: Folder exists and is accessible 3. PDF Generation Fails Problem**: PDF not generated or broken Solution**: Check HTML to PDF API key and quota Verify**: HTML template syntax is valid 4. Emails Not Sending Problem**: Gmail node fails Solution**: Re-authorize Gmail OAuth, check API quota Check**: Email addresses are valid format 5. File Download Fails Problem**: "Cannot fetch file from URL" Solution**: Verify URL is publicly accessible Check**: File exists and is not behind authentication 6. Webhook Not Triggering Problem**: No workflow execution Solution**: Check webhook URL is correct Verify**: Workflow is activated (toggle ON) Performance & Scalability Current Capacity Concurrent Submissions**: Up to 10-20 simultaneously Daily Volume**: ~500-1000 submissions (depends on API quotas) File Size Limit**: Up to 100MB per pitch deck Storage**: Unlimited (within Google Drive quota) Scaling Considerations For High Volume (1000+ submissions/day): Upgrade to paid API tiers Use queue system for processing Add database for tracking Implement rate limiting For Large Files (>100MB): Use direct file upload to Drive Skip PDF generation for large files Add file size validation Security & Privacy Data Protection Email verification via secure API Encrypted file transfer (HTTPS) OAuth2 authentication for Google services No data stored in n8n beyond execution logs Compliance GDPR compliant (data minimization) No sensitive data retention Secure credential storage Audit trail via execution logs Community Support n8n Forum: https://community.n8n.io Discord: https://discord.gg/n8n GitHub Issues: https://github.com/n8n-io/n8n 📄 License This template is provided as-is for commercial and personal use.
by Rahul Joshi
Description This workflow automates the tracking and follow-up process for pending payments. It pulls lead payment data from Google Sheets, checks whether the status is “Open,” and then routes actions accordingly. For open payment cases, it creates a dedicated ClickUp task and sends an email confirmation to stakeholders. For non-open cases, it notifies the team via Slack. This ensures payment verifications are never missed, while keeping all updates transparent and centralized. What This Template Does (Step-by-Step) 📊 Fetch Lead Data from Google Sheets Retrieves lead records including: Lead Name Company Name Payment Verification Status Status (Open/Closed) ⚖️ Check if Status = Open ✅ TRUE (Open): Creates a ClickUp task and sends an email confirmation. ❌ FALSE (Not Open): Sends a Slack notification only. 🗂 Create ClickUp Task for Payment Verification: Adds a task with lead and company details for pending payment follow-up in the specified list. ✉️ Send Email Confirmation: Notifies the assigned watcher (via Gmail) with task details (name, ID, and link). 💬 Send Slack Notification: Alerts the Slack workspace if a lead’s status is not “Open,” providing visibility on non-actionable cases. Prerequisites Google Sheet with lead/payment data ClickUp account & API credentials Gmail API credentials Slack API credentials n8n instance (cloud or self-hosted) Step-by-Step Setup Connect Google Sheets → Fetch payment verification data. Apply Status Filter (If Node) → Route based on “Open” status. Open Status → Create ClickUp Task → Send Email confirmation. Not Open Status → Send Slack notification. Customization Ideas 🎯 Add additional filtering (e.g., only create tasks if payment verification = “Pending”). 📢 Send Slack alerts for all new leads, not just closed ones. 📚 Log completed payment verifications into Airtable or Notion for reporting. 💡 Include payment due dates or invoice numbers in ClickUp task details. Key Benefits ✅ Automates payment follow-up process ✅ Keeps stakeholders informed via email ✅ Provides real-time Slack alerts for non-actionable cases ✅ Centralizes pending payment tasks in ClickUp ✅ Reduces manual monitoring and ensures no pending case is missed Perfect For 👥 Finance teams handling multiple payment verifications 🏢 Companies wanting a transparent and automated payment tracking process 🎯 Teams already using ClickUp for task management 📊 Managers who need visibility into pending vs. closed payment statuses
by Calistus Christian
How it works Checks if a website is up, sends the HTTP result to an AI model (ChatGPT) for analysis, and emails a clear success or failure message. Great for a quick “is this site up?” check you can trigger from any system via HTTP. Webhook — Receives a POST with the target URL. HTTP Request — Attempts to fetch the URL. Message a model — Uses ChatGPT to explain the status and cause of any error. IF — Checks if the HTTP status code equals 200. Gmail Success — Sends a success email with AI explanation. Gmail Error — Sends an error email with AI explanation and next steps. Set up steps Estimated setup: 5–10 minutes. Beginner friendly — no advanced config required. Add your Webhook URL where needed and connect your Gmail account. Keep detailed instructions and configuration notes inside Sticky Notes in your workflow. Inputs Send a POST request to your Webhook with: { "url": "https://example.com" }
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 AureusR
Synchronize Excel or Google Sheets with Postgres (bi-directional) Who’s it for This workflow is perfect for companies that have always managed their operations in Excel or Google Sheets and want to gradually transition to using a database or custom software. It ensures business continuity while modernizing data management. How it works / What it does Trigger options → Run the sync manually, on schedule, or as part of another workflow. Get data from Excel → Reads rows from an Excel or Google Sheet table. Sanitize data → Cleans up formats (e.g., converting Excel serial dates into proper date strings). Upsert into Postgres → Inserts or updates rows in the database, ensuring no duplicates. For auto-mapping to work, the column names in Excel/Sheets and the DB must match exactly. If you want different names, you can manually map columns in the Postgres node. (Optional) → Can be extended to push DB updates back to Excel, creating a true two-way sync. This way, your team can continue working in Excel/Sheets while data is safely persisted in a database—ideal for scaling into dashboards, SaaS, or ERP systems later. How to set up Import the workflow JSON into your n8n instance. Connect your credentials: Microsoft Excel / Google Sheets OAuth2 Postgres database Point the Excel node to the right workbook, worksheet, and table. Make sure column names match between the Excel sheet and DB table (or map manually if they differ). Run manually or configure the schedule trigger for automated syncs. Requirements n8n self-hosted or cloud account. Either Microsoft Excel Online or Google Sheets access. Postgres database (or replace with MySQL, MariaDB, or any supported DB). How to customize the workflow Replace Excel with Google Sheets by swapping the node. Replace Postgres with any preferred database node. Add validation steps (e.g., check for missing emails, duplicate IDs). Extend with reporting workflows (e.g., sync DB data to BI dashboards). Use this as a stepping stone to migrate from spreadsheets into software-driven processes.
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 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 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 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 Onur
🏨 Hotel Price Comparison Workflow with Scrape.do This template requires a self-hosted n8n instance to run. A complete n8n automation that extracts hotel prices from multiple booking platforms (Booking.com, Hotels.com, Expedia, etc.) using Scrape.do API, compares prices across platforms, and saves structured results into Google Sheets for price monitoring and decision-making. 📋 Overview This workflow provides an automated hotel price comparison solution that monitors hotel rates across different booking platforms for specific destinations and dates. Ideal for travel agencies, price comparison websites, travelers, and hospitality analysts who need real-time pricing insights without manual searching. Who is this for? Travel agencies automating price comparisons Price comparison website operators Budget-conscious travelers tracking best deals Hospitality analysts monitoring market pricing Hotel managers tracking competitor rates Travel bloggers researching accommodation options What problem does this workflow solve? Eliminates manual price checking across multiple sites Processes multiple hotels and date ranges automatically Extracts structured pricing data (price, rating, amenities) Identifies the cheapest option across platforms Automates saving results into Google Sheets Ensures consistent and repeatable price monitoring ⚙️ What this workflow does Manual Trigger → Starts the workflow manually or on schedule Get Search Parameters from Sheet → Reads hotel names, destinations, check-in/check-out dates from Google Sheet URL Encode Parameters → Converts search parameters into URL-safe format Process Hotels in Batches → Handles multiple searches sequentially to avoid rate limits Fetch Hotel Data from Multiple Platforms → Calls Scrape.do API to retrieve pricing from Booking.com, Hotels.com, and Expedia Extract and Structure Price Data → Parses HTML into structured hotel data (name, price, rating, amenities) Compare Prices Across Platforms → Identifies best price and calculates savings Append Results to Sheet → Writes comparison results into Google Sheet 📊 Output Data Points | Field | Description | Example | |-------|-------------|---------| | Hotel Name | Name of the hotel | Hilton Garden Inn Downtown | | Destination | City or location | New York, NY | | Check-in Date | Arrival date | 2025-12-15 | | Check-out Date | Departure date | 2025-12-18 | | Nights | Number of nights | 3 | | Booking.com Price | Price from Booking.com | $450 | | Hotels.com Price | Price from Hotels.com | $425 | | Expedia Price | Price from Expedia | $440 | | Best Price | Lowest price found | $425 | | Best Platform | Platform with lowest price | Hotels.com | | Savings | Difference from highest price | $25 | | Average Rating | Average customer rating | 8.5/10 | | Total Reviews | Number of reviews | 1,247 | | Free Cancellation | Cancellation policy | Yes | | Breakfast Included | Breakfast availability | No | ⚙️ Setup Prerequisites n8n instance (self-hosted) Google account with Sheets access Scrape.do account with API token Google Sheet Structure This workflow uses one Google Sheet with two tabs: Input Tab: "Search Parameters" | Column | Type | Description | Example | |--------|------|-------------|---------| | Hotel Name | Text | Name of hotel (optional) | Hilton Garden Inn | | Destination | Text | City or location | New York, NY | | Check-in Date | Date | Arrival date (YYYY-MM-DD) | 2025-12-15 | | Check-out Date | Date | Departure date (YYYY-MM-DD) | 2025-12-18 | | Guests | Number | Number of guests | 2 | | Rooms | Number | Number of rooms | 1 | Output Tab: "Price Comparison" | Column | Type | Description | Example | |--------|------|-------------|---------| | Search Date | Timestamp | When search was performed | 2025-11-17 10:30:00 | | Hotel Name | Text | Name of the hotel | Hilton Garden Inn Downtown | | Destination | Text | City/location | New York, NY | | Check-in | Date | Arrival date | 2025-12-15 | | Check-out | Date | Departure date | 2025-12-18 | | Nights | Number | Number of nights | 3 | | Booking.com Price | Currency | Price from Booking.com | $450 | | Hotels.com Price | Currency | Price from Hotels.com | $425 | | Expedia Price | Currency | Price from Expedia | $440 | | Best Price | Currency | Lowest price | $425 | | Best Platform | Text | Cheapest platform | Hotels.com | | Savings | Currency | Potential savings | $25 | | Rating | Number | Average rating | 8.5 | | Reviews | Number | Total reviews | 1,247 | 🛠 Step-by-Step Setup Import Workflow: Copy the JSON → n8n → Workflows → + Add → Import from JSON Configure Scrape.do API: Endpoint: https://api.scrape.do/ Parameter: token=YOUR_SCRAPEDO_TOKEN Add render=true for JavaScript-heavy booking sites Add country=US (or target country) for localized results Configure Google Sheets: Create a sheet with two tabs: Search Parameters (input), Price Comparison (output) Set up Google Sheets OAuth2 credentials in n8n Replace placeholders: YOUR_GOOGLE_SHEET_ID and YOUR_GOOGLE_SHEETS_CREDENTIAL_ID Configure Platform URLs: Update base URLs for Booking.com, Hotels.com, Expedia in HTTP Request nodes Customize search parameters based on platform URL structure Run & Test: Add test data in Search Parameters tab Execute workflow → Check results in Price Comparison tab 🧰 How to Customize Add more platforms**: Include Agoda, Trivago, or direct hotel websites by adding new HTTP Request nodes Price alerts**: Add conditional logic to send email/Slack notification when price drops below threshold Historical tracking**: Store daily snapshots to track price trends over time Filtering**: Add filters for amenities (pool, gym, parking) or star ratings Batch Size**: Adjust "Process Hotels in Batches" based on API rate limits Rate Limiting**: Insert Wait nodes (20–30 seconds) between platform requests Currency conversion**: Add currency API integration for multi-currency comparison Scheduling**: Add Schedule Trigger to run automatically (daily/weekly) 📊 Use Cases Travel Planning**: Find the best hotel deals for upcoming trips Price Monitoring**: Track price changes for specific hotels over time Agency Operations**: Automate price research for client bookings Market Analysis**: Monitor competitor pricing in hospitality market Deal Alerts**: Get notified when prices drop below target threshold Budget Planning**: Compare costs across multiple destinations 📈 Performance & Limits Single Hotel (3 platforms)**: ~30–45 seconds (depends on Scrape.do response) Batch of 10 hotels**: 8–12 minutes typical Large Sets (50+ hotels)**: 45–90 minutes depending on API credits & batching API Calls**: 3 Scrape.do requests per hotel (one per platform) Reliability**: 90%+ extraction success, 95%+ price accuracy 🧩 Troubleshooting API error** → Check YOUR_SCRAPEDO_TOKEN and API credits on Scrape.do dashboard No hotels loaded* → Verify Google Sheet ID & tab name = *Search Parameters** Permission denied** → Re-authenticate Google Sheets OAuth2 in n8n Empty prices** → Check if Scrape.do rendered JavaScript (render=true) Parsing errors** → Booking sites change HTML structure; update CSS selectors in Extract nodes Workflow timeout** → Reduce batch size or add more Wait nodes between requests Wrong currency** → Add country parameter to Scrape.do request for localized pricing 🤝 Support & Community n8n Forum**: https://community.n8n.io n8n Docs**: https://docs.n8n.io Scrape.do Dashboard**: https://dashboard.scrape.do Scrape.do Documentation**: https://scrape.do/docs 🎯 Final Notes This workflow provides a powerful foundation for automated hotel price comparison across multiple booking platforms using Scrape.do and Google Sheets. You can extend it with: Real-time price alerts via email/Slack Historical price tracking and trend analysis Integration with travel planning dashboards Automated booking when price threshold is met Multi-destination comparison for trip planning Pro Tip: Schedule this workflow to run daily to catch early-bird discounts and flash sales automatically!