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 Shadrack
This workflow is an AI-powered multi-agent system built for startup founders and small business owners who want to automate decision-making, accountability, research, and communication, all through WhatsApp. The “virtual executive team,” is designed to help small teams to work smarter. This workflow sends you market analysis, market and sales tips, It can also monitor what your competitors are doing using perplexity (Research agent) and help you stay a head, or make better decisions. And when you feeling stuck with your start-up accountability director is creative enough to break the barrier 🎯 Core Features 🧑💼 1. President (Super Agent) Acts as the main controller that coordinates all sub-agents. Routes messages, assigns tasks, and ensures workflow synchronization between the AI Directors. 📊 2. Sales & Marketing Director Uses SerpAPI to search for market opportunities, leads, and trends. Suggests marketing campaigns, keywords, or outreach ideas. Can analyze current engagement metrics to adjust content strategy. 🕵️♀️ 3. Business Research Director Powered by Perplexity AI for competitive and market analysis. Monitors competitor moves, social media engagement, and product changes. Provides concise insights to help the founder adapt and stay ahead. ⏰ 4. Accountability Director Keeps the founder and executive team on track. Sends motivational nudges, task reminders, and progress reports. Promotes consistency and discipline — key traits for early-stage success. 🗓️ 5. Executive Secretary Handles scheduling, email drafting, and reminders. Connects with Google Calendar, Gmail, and Sheets through OAuth. Automates follow-ups, meeting summaries, and notifications directly via WhatsApp. 💬 WhatsApp as the Main Interface Interact naturally with your AI team through WhatsApp Business API. All responses, updates, and summaries are delivered to your chat. Ideal for founders who want to manage operations on the go. ⚙️ How It Works Trigger: The workflow starts from a WhatsApp Trigger node (via Meta Developer Account). Routing: The President agent analyzes the incoming message and determines which Director should handle it. Processing: Marketing or sales queries go to the Sales & Marketing Director. Research questions are handled by the Business Research Director. Accountability tasks are assigned to the Accountability Director. Scheduling or communication requests are managed by the Secretary. Collaboration: Each sub-agent returns results to the President, who summarizes and sends the reply back via WhatsApp. Memory: Context is maintained between sessions, ensuring personalized and coherent communication. 🧩 Integrations Required Gemini API – for general intelligence and task reasoning Supabase- for RAG and postgres persistent memory Perplexity API – for business and competitor analysis SerpAPI – for market research and opportunity scouting Google OAuth – to connect Sheets, Calendar, and Gmail WhatsApp Business API – for message triggers and responses 🚀 Benefits Acts like a team of tireless employees available 24/7. Saves time by automating research, reminders, and communication. Enhances accountability and strategy consistency for founders. Keeps operations centralized in a simple WhatsApp interface. 🧰 Setup Steps Create API credentials for: WhatsApp (via Meta Developer Account) Gemini, Perplexity, and SerpAPI Google OAuth (Sheets, Calendar, Gmail) Create a supabase account at supabase Add the credentials in the corresponding n8n nodes. Customize the system prompts for each Director based on your startup’s needs. Activate and start interacting with your virtual executive team on WhatsApp. Use Case You are a small organisation or start-up that can not afford hiring; marketing department, research department and secretar office, then this workflow is for you 💡 Need Customization? Want to tailor it for your startup or integrate with CRM tools like Notion or HubSpot? You can easily extend the workflow or contact the creator for personalized support. Consider adjusting the system prompt to suite your business
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!
by Antonio Gasso
Overview Streamline your entire client onboarding process with a single workflow. When a new client submits the intake form, this automation creates a Monday.com item, generates a complete Google Drive folder structure from your template, updates the Monday item with the folder link, and sends a personalized welcome email—all automatically. What This Workflow Does Displays a professional intake form (client name, email, project type) Creates a new item in your Monday.com board with all details Generates a Google Drive folder for the client Duplicates your template folder structure using Apps Script Updates the Monday.com item with the Google Drive folder link Sends a welcome email to the client with folder access Key Features End-to-end automation** — From form submission to welcome email CRM integration** — All client data captured in Monday.com Organized file storage** — Consistent folder structure for every client Professional onboarding** — Clients receive immediate welcome email with resources Fully customizable** — Add more form fields, notifications, or integrations Prerequisites Monday.com account with API credentials Google Drive account with OAuth2 credentials Gmail account with OAuth2 credentials Google Apps Script deployment (code below) Template folder in Google Drive with {{NAME}} placeholders Setup Step 1: Get your Monday.com IDs Open your Monday.com board Board ID: Check the URL → monday.com/boards/BOARD_ID Group ID: Use Monday API Explorer or browser dev tools Column IDs: Found in column settings or via API Step 2: Create your Drive template folder 📁 {{NAME}} - Client Files ├── 📁 01. Contracts & Agreements ├── 📁 02. {{NAME}} - Assets ├── 📁 03. Deliverables ├── 📁 04. Communications └── 📄 {{NAME}} - Project Brief.gdoc Step 3: Deploy Apps Script Go to script.google.com Create new project → Paste code below Deploy → New deployment → Web app Execute as: Me | Access: Anyone Copy the deployment URL Step 4: Configure the workflow Replace these placeholders: YOUR_BOARD_ID — Monday.com board ID YOUR_GROUP_ID — Monday.com group ID DESTINATION_PARENT_FOLDER_ID — Drive folder for new client folders YOUR_APPS_SCRIPT_URL — Apps Script deployment URL YOUR_TEMPLATE_FOLDER_ID — Template folder to duplicate Step 5: Connect credentials Monday.com API credentials Google Drive OAuth2 Gmail OAuth2 Apps Script Code function doPost(e) { try { var params = e.parameter; var templateFolderId = params.templateFolderId; var name = params.name; var destinationFolderId = params.destinationFolderId; if (!templateFolderId || !name) { return jsonResponse({ success: false, error: 'Missing required parameters: templateFolderId and name are required' }); } var templateFolder = DriveApp.getFolderById(templateFolderId); if (destinationFolderId) { var destinationFolder = DriveApp.getFolderById(destinationFolderId); copyContentsRecursively(templateFolder, destinationFolder, name); return jsonResponse({ success: true, id: destinationFolder.getId(), url: destinationFolder.getUrl(), name: destinationFolder.getName(), mode: 'copied_to_existing', timestamp: new Date().toISOString() }); } else { var parentFolder = templateFolder.getParents().next(); var newFolderName = replacePlaceholders(templateFolder.getName(), name); var newFolder = parentFolder.createFolder(newFolderName); copyContentsRecursively(templateFolder, newFolder, name); return jsonResponse({ success: true, id: newFolder.getId(), url: newFolder.getUrl(), name: newFolder.getName(), mode: 'created_new', timestamp: new Date().toISOString() }); } } catch (error) { return jsonResponse({ success: false, error: error.toString() }); } } function replacePlaceholders(text, name) { var result = text; result = result.replace(/\{\{NAME\}\}/g, name); result = result.replace(/\{\{name\}\}/g, name.toLowerCase()); result = result.replace(/\{\{Name\}\}/g, name); return result; } function copyContentsRecursively(sourceFolder, destinationFolder, name) { var files = sourceFolder.getFiles(); while (files.hasNext()) { try { var file = files.next(); var newFileName = replacePlaceholders(file.getName(), name); file.makeCopy(newFileName, destinationFolder); Utilities.sleep(150); } catch (error) { Logger.log('Error copying file: ' + error.toString()); } } var subfolders = sourceFolder.getFolders(); while (subfolders.hasNext()) { try { var subfolder = subfolders.next(); var newSubfolderName = replacePlaceholders(subfolder.getName(), name); var newSubfolder = destinationFolder.createFolder(newSubfolderName); Utilities.sleep(200); copyContentsRecursively(subfolder, newSubfolder, name); } catch (error) { Logger.log('Error copying subfolder: ' + error.toString()); } } } function jsonResponse(data) { return ContentService .createTextOutput(JSON.stringify(data)) .setMimeType(ContentService.MimeType.JSON); } Use Cases Agencies** — Automate client onboarding with CRM tracking Freelancers** — Professional intake process for new projects Consulting firms** — Standardized client setup workflow Creative studios** — Organize assets and deliverables from day one Service businesses** — Streamline customer setup and communication Customization Ideas Add more form fields: phone, company size, budget, deadline Add Slack notification to alert your team Create tasks in Monday.com sub-items Add to Google Calendar for kickoff meeting Integrate with invoicing (Stripe, QuickBooks) Notes Apps Script may take 30-60 seconds for large folder structures Monday.com column IDs must match your board's actual columns The welcome email can be customized with your branding Test with a single client before full deployment
by George Dan
How it works Gmail is monitored every minute for new incoming emails Automated and irrelevant emails are filtered out (newsletters, noreply senders, out-of-office replies, bounce notifications) AI reads the email and drafts a reply based on your company documentation - embedded directly in the system prompt, no vector database needed The original email and the draft reply are logged to a Google Sheet for human review Type "send" in the Send column to approve a reply - the workflow detects it and sends it via Gmail The row is updated to "Replied" to prevent duplicate sends Set up steps Connect your Gmail, OpenRouter, and Google Sheets credentials (~5 min) Create a Google Sheet with columns: Message ID, From, Subject, Body, Reply, Send In the Draft AI Reply node, replace the sample company documentation in the system prompt with your own In the Filter Unwanted Emails node, update the first condition with your own email address Activate the workflow
by AI Solutions
How it works This workflow fires whenever a visitor submits a contact form on your website. Webhook receives the POST payload (Name, Email, Phone, Message, Date, Time) from your website form. Log Submission to SharePoint writes each field into a SharePoint list for permanent record-keeping. Build Branded Email HTML — Code node constructs a fully branded HTML notification email (customize colors and logo to match your brand). Send Email Notification delivers the notification via Gmail to your designated recipient address, with Reply-To automatically set to the submitter's email so you can respond in one click.