by Davide
This workflow automates the entire Calendly onboarding and offboarding process for company users. It relies on form submissions, Google Sheets as a source of truth, AI-generated HR emails, man-in-the-loop approval steps, and direct API interactions with Calendly. Key Advantages ✅ Full Automation of Routine HR Processes The workflow removes the need for HR to manually add or remove Calendly users. It handles data collection, checks eligibility, interacts with Calendly’s API, and updates records automatically. ✅ Centralized Data Management All onboarding/offboarding data is stored and maintained in a Google Sheet, ensuring a single source of truth for user status and activity tracking. ✅ Built-in Human Validation (Man-in-the-Loop) HR receives automated approval emails and must validate each action before a Calendly account is created or removed. This ensures: security accuracy compliance with internal policies ✅ AI-Generated Professional Communication OpenAI generates polished, consistent HTML emails for HR, improving communication quality and reducing manual writing time. ✅ Clean Separation of Onboarding and Offboarding Paths Both processes are independent but structured similarly, making maintenance easier and ensuring consistent logic. ✅ Direct Integration with Calendly’s API The workflow automatically: creates invitations retrieves organization membership deletes users This eliminates manual operations inside Calendly, greatly reducing administrative workload. ✅ Error Reduction & Traceability Since every action is logged in the Google Sheet, HR can easily track: when onboarding/offboarding occurred whether approval was given if Calendly access is active ✅ Improved User Experience The final screens (“Onboarding complete”, “Offboarding complete”, “Not approved”) provide immediate feedback to the requester. The workflow contains two parallel automation paths: 1. Onboarding Workflow How it works User submits the Onboarding Form The form collects first name, last name, and email. User is appended to the Google Sheet A new record is added with date, name, email, and a placeholder for the Calendly status. AI-generated email is prepared OpenAI generates a full HTML email notifying HR about the onboarding request. HR receives an approval request via email Using Gmail’s “send and wait” feature, HR must approve or reject onboarding. If approved: The system calls Calendly’s API to invite the user to the organization. The Google Sheet record is updated (CALENDLY = on). The process ends with a confirmation page. If rejected: The workflow ends with a “Not approved” page. 2. Offboarding Workflow How it works User submits the Offboarding Form Only the email is required. The system checks the Google Sheet It verifies if the email exists and if the user currently has Calendly access. If the user exists, the workflow: Uses AI to generate a professional offboarding request email. Sends an approval prompt to HR. If HR approves: The workflow retrieves the user’s Calendly membership via API. Deletes the user from the Calendly organization. Updates Google Sheets (CALENDLY = off). Ends with a confirmation page. If approval is denied: The workflow ends with a “Not approved” screen. Here's a description of the Calendly Onboarding and Offboarding workflow for n8n: How It Works This workflow automates user onboarding and offboarding processes for Calendly with human approval steps. The system operates through two parallel streams: Onboarding Process: Users submit their information (first name, last name, email) through an onboarding form Data is automatically recorded in a Google Sheets spreadsheet An AI agent generates a professional HTML email notification for HR The email is sent to HR with a double-approval mechanism requiring manual confirmation If approved, the system automatically adds the user to Calendly organization via API The spreadsheet is updated to mark the user as "on" for Calendly access User receives a completion confirmation Offboarding Process: Users submit their email through an offboarding form The system checks Google Sheets to verify the user exists and has Calendly access An AI agent generates an offboarding notification email for HR approval After HR double-approval, the system retrieves the user's Calendly membership via API The user is automatically removed from Calendly organization The spreadsheet is updated to mark Calendly access as "off" User receives offboarding completion confirmation Set Up Steps Prerequisites: Google Sheets spreadsheet with columns: DATE, FIRST NAME, LAST NAME, EMAIL, CALENDLY Calendly organization ID and API access Gmail account for sending approval emails OpenAI API access for email generation Configuration Steps: Google Sheets Setup: Create a spreadsheet with the required column structure Configure Google Sheets OAuth credentials in n8n Update the document ID in all Google Sheets nodes Calendly API Configuration: Replace "XXX" placeholders in HTTP Request nodes with actual Calendly API bearer tokens Set the correct Calendly organization ID in the Set nodes Verify API endpoints match your Calendly organization structure Email System Setup: Configure Gmail OAuth credentials for sending approval emails Update recipient email address from "info@n3w.it" to your HR department's email Adjust approval timeout settings as needed (currently 45 minutes) Form Configuration: Deploy both onboarding and offboarding forms Test form submissions to ensure data flows correctly Customize completion messages for both success and rejection scenarios AI Email Generation: Verify OpenAI API credentials are properly configured Test email template generation for both onboarding and offboarding scenarios Adjust system prompts if different email formatting is required Workflow Activation: Test both onboarding and offboarding flows end-to-end Verify approval emails are received and functional Confirm Google Sheets updates correctly Activate the workflow once testing is complete Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Anoop
📩 Automatically Log Transactions from Gmail into Notion and Get Telegram Alerts Who’s it for This workflow is for individuals or entrepreneurs who receive bank alerts, invoices, and payment emails in Gmail and want them to be automatically organized in Notion — while also receiving quick Telegram notifications for each transaction. If you manage personal or business finances and find it tedious to manually record every debit, credit, or invoice — this automation does it all for you. How it works The workflow acts as an AI-powered Accountant Agent that reads incoming Gmail messages and decides whether each email represents a Debit Transaction, Credit Transaction, Debit Invoice, or Credit Invoice. The Gmail Trigger watches your selected inboxes (like forwarding@bayesian-labs.com, support@bayesian-labs, anoop.karnik@bayesian-labs). The Classifier (GPT-5-nano) determines the correct transaction type. The appropriate Agent (GPT-5) then extracts amount, currency, and description details. The Agent uses Notion API tools to log structured data into your Personal Finance System Notion template (Financial Transactions & Income databases). Finally, a Telegram notification is sent summarizing the entry (From, To, Subject, Snippet). In short: every time your bank emails you — Notion gets updated, and you get notified. How to set up Duplicate the Personal Finance System Notion template into your workspace. Create a Telegram Bot with BotFather → copy the bot token and your chat ID. Generate an OpenRouter API key for GPT-5 / GPT-5-nano. Create a Notion Integration Token and connect it to your duplicated finance databases. Add your Gmail accounts (forwarding@, support@, and/or personal Gmail) under Gmail OAuth2 credentials in n8n. Import the workflow JSON into n8n → fill in the credential names as listed below: n8n_cloud_regular_usage → OpenRouter Notion account → Notion API Accountant AI → Telegram Bot Gmail OAuth2 for each inbox trigger Once active, n8n polls Gmail every minute, classifies emails, updates Notion, and sends Telegram updates. Requirements n8n instance (self-hosted or cloud) Gmail accounts connected via OAuth2 OpenRouter API key Telegram bot token & chat ID Notion integration token Your duplicated Personal Finance System Notion template How to customize the workflow You can extend this workflow to: Track credit card statements, subscriptions, or payroll notifications. Add Slack or WhatsApp alerts alongside Telegram. Include live FX rates for USD→INR conversion using an API node. Connect Google Sheets as a backup ledger or export target. Add error-handling branches to mark Gmail messages as processed or label them “Logged to Notion”.
by Cheng Siong Chin
Extract PDF Itineraries to Google Sheets with GPT-4.1-Mini & Gmail Notifications Overview Automates PDF data extraction using OpenAI GPT, saves to Google Sheets, sends email confirmations. Reduces manual entry by 90%. How It Works Receives PDF uploads via form Splits & loops through files AI extracts structured data Appends to Sheets with timestamps Sends confirmation email Prerequisites OpenAI API key (platform.openai.com) Google Workspace (Sheets & Gmail) n8n v1.0.0+ Setup Add OpenAI API key to n8n credentials Create Google Sheet with extraction columns, authorize OAuth2 Configure Gmail OAuth2 Import workflow JSON Edit AI prompt for your fields Activate & share form URL Customization Modify extraction prompts Adjust Sheets mapping Customize email templates Add error handling/validation Extend to Word/Excel files Use Cases Invoices, expense reports, resumes, contracts, forms, legal docs
by Łukasz
What Is This? This workflow is an automated invoice payment tracking and vindication system that monitors unpaid and overdue invoices stored in NocoDB, then sends escalating reminders to clients based on configurable time thresholds. The system handles three escalation levels: friendly payment reminders before/at due date, formal warning notices for overdue invoices, and legal action notifications for severely overdue accounts. It works with any accounting system that can populate a NocoDB database, making it ideal for businesses using custom invoicing systems, international accounting software, or multiple invoice sources. Who Is It For? Designed for small to medium-sized businesses, IT service providers, consulting agencies, and accounting departments that need professional payment enforcement without expensive debt collection services. This workflow is particularly valuable for companies experiencing cash flow challenges due to late-paying clients. B2B service providers, software development agencies, consultancies, and freelancers managing multiple client invoices will benefit from automated, multi-channel payment reminders that maintain professional relationships while firmly enforcing payment terms. Whether you're tracking 5 high-value contracts or managing 200+ monthly invoices, this automation ensures no payment deadline slips through the cracks. It's especially useful for businesses operating internationally or using accounting systems without built-in reminder features. How Does It Work? This comprehensive invoice vindication automation consists of four main stages: 1. Configuration & Company Details Setup Defines critical parameters including escalation timeframes (Days before Due Date for reminder, Days after Due Date for warning, Days after Due Date for Legal action), and toggles for notification channels (Send Email, Send Physical Letter). The workflow also captures complete company information for professional correspondence including banking details, tax identification numbers, and contact information. 2. Invoice & Client Data Retrieval Connects to NocoDB to fetch all invoices with their associated client information. The workflow uses a Split in Batches node to process each invoice individually, retrieving complete client details (name, email, full address) from the linked Clients table. This two-step fetch ensures all necessary data is available for personalized communications. 3. Intelligent Filtering & Categorization Invoices are filtered to remove already-paid invoices (checking both Invoice Status ≠ "Paid" and Payment Date = empty), then categorized into three escalation groups: Today/Upcoming Invoices**: Due date is today OR X days away → Sends friendly payment reminder Overdue for Warning**: Exactly Y days past due date → Sends formal warning about potential legal action Overdue for Legal Notice**: Exactly Z days past due date → Sends notice of commenced legal proceedings 4. Multi-Channel Notification Dispatch For each escalation level, the workflow generates professionally formatted HTML content with complete invoice details, payment instructions, and appropriate urgency levels. Notifications are dispatched via: Email** (Gmail): Professional HTML emails with company branding Physical Mail** (PostGrid): Printed letters delivered via postal service for serious escalations Slack**: Internal team notifications for tracking sent reminders Each notification includes invoice number, amounts, due dates, payment details (bank account, SWIFT code), and clear call-to-action based on escalation level. How To Set It Up? Prerequisites: An active N8N account or self-hosted instance A NocoDB instance (hosted at your domain or using NocoDB Cloud) A Slack workspace with bot permissions (Optional) Gmail account configured for sending emails (Optional) PostGrid account for physical mail delivery Step 1: Create NocoDB Tables Execute the "Create Tables" manual trigger to automatically create two tables in your NocoDB base: Invoices Table with fields: Invoice Id (SingleLineText) Amount (Currency, PLN) Issue Date (Date) Due Date (Date) Invoice Status (SingleSelect: Unpaid, Partial, Paid, Overdue) Vindication Status (SingleSelect: None, Reminder Sent, Warning Sent, Legal Notice Sent) Reminder Sent Date, Warning Sent Date, Legal Notice Sent Date (Date fields) Payment Date (Date) Clients Table with fields: Name (SingleLineText) Email (Email) Country Code, Province, City, Postal Code, Address (SingleLineText) The workflow automatically creates a one-to-many relationship between Clients and Invoices. Step 2: Configure NocoDB Connection In the "NocoDB Config" node: Base ID**: Your NocoDB base identifier (e.g., pksfpoc943gwhvy) NocoDB Url**: Your NocoDB instance URL (e.g., https://noco.sbyte.eu/) Update all NocoDB credentials to point to your instance using the "NocoDB Token" authentication. Step 3: Set Escalation Timing In the "Config" node, configure: Days before Due Date for reminder**: How early to send friendly reminders (default: 7 days before) Days after Due Date for warning**: When to escalate to formal warning (default: 7 days overdue) Days after Due Date for Legal action**: When to send legal notices (default: 10 days overdue) Critical: Ensure "Days after Due Date for Legal action" > "Days after Due Date for warning" to maintain proper escalation sequence. Setting legal action earlier than warning will confuse clients. Step 4: Configure Notification Channels In the "Config" node: Send Email**: Toggle to enable/disable Gmail notifications Send Physical Letter**: Toggle to enable/disable PostGrid physical mail Step 5: Add Your Company Details In the "Your Company Details" node, provide: Company Name, Email, Phone Full address (Country Code, City, Street, Postal Code) Banking information (Bank Name, Bank Account Number, SWIFT Code) Tax Identification Number (TIN) This information appears in all correspondence and legal notices. Step 6: Configure Credentials Set up the following credentials: NocoDB API Token**: From your NocoDB account settings Gmail OAuth2**: For email delivery (if Send Email = true) PostGrid API**: For physical letter delivery (if Send Physical Letter = true) Slack OAuth2**: For internal team notifications Step 7: Customize Slack Channel In the "Send a message" node, update the Slack channel ID to your desired notification channel. Step 8: Schedule Execution The workflow runs automatically daily at 7:00 AM via the "Run daily" trigger node. Adjust timing in the Schedule Trigger node as needed. For testing, execute manually using the "Execute workflow" button. What's More? Professional HTML Email Templates: Three distinct HTML email templates provide escalating urgency levels while maintaining professional communication standards. Each template includes: Company branding and letterhead Clear invoice details with formatting Payment instructions with bank details Appropriate tone for escalation level (friendly → formal → legal) Contact information for questions Smart Date Calculations: The workflow uses N8N's DateTime functions to calculate: Days until due date for upcoming invoices Days overdue for late payments Exact matching for escalation thresholds (uses equals operator, not ranges) This ensures invoices are processed exactly once at each escalation stage, preventing duplicate notifications. Flexible Data Model: The NocoDB schema supports tracking: Multiple vindication stages with dedicated date fields Invoice status progression (Unpaid → Partial → Overdue → Paid) Vindication status history (None → Reminder Sent → Warning Sent → Legal Notice Sent) Payment reconciliation via Payment Date field Multi-Format Address Handling: The workflow correctly formats addresses for: Email recipients (standard format) PostGrid API (structured JSON with country codes, provinces, postal codes) HTML templates (human-readable format) Batch Processing with Error Isolation: The Split in Batches node processes invoices individually, ensuring one failed notification (e.g., invalid email address) doesn't block processing of remaining invoices. Each invoice proceeds through the workflow independently. Conditional Notification Routing: IF nodes check configuration flags before sending notifications, allowing granular control: Send only emails for low-cost operations Send only physical letters for serious escalations Send both for maximum impact Disable specific channels temporarily without modifying workflow Slack Notification Intelligence: Slack messages include structured blocks showing: Email subject (escalation type) Invoice number and amount Contractor name Days overdue calculation Payment deadline and issue date This provides at-a-glance visibility into which invoices triggered notifications and why. Table Creation Automation: Rather than requiring manual NocoDB table setup, the workflow includes HTTP Request nodes that programmatically create tables with exact field types, validation rules, and relationships using NocoDB's Meta API. This ensures consistent schema across deployments and eliminates manual configuration errors. Currency Support: While defaulting to PLN (Polish Złoty), the Amount field uses NocoDB's Currency type, which can be easily changed to EUR, USD, GBP, or 150+ other currencies via the table schema without modifying workflow logic. Thank You, Perfect! Visit my profile for other free business automations. And if you're looking for dedicated software development or custom n8n workflow solutions, don't hesitate to reach out at developers@sailingbyte.com or on sailingbyte.com!
by Dev Dutta
Convert PDF Articles to Podcast Workflow Name: Convert PDF Articles to Podcast Author: Devjothi Dutta Category: Productivity, Content Creation, Automation Complexity: Medium Setup Time: 45-60 minutes 📖 Description Transform any PDF article, research paper, or document into a high-quality audio podcast automatically. This workflow extracts text from PDFs, converts it to natural-sounding speech using Google Cloud Text-to-Speech, stores the audio files in cloud storage, and generates an RSS feed compatible with all major podcast apps (Apple Podcasts, Spotify, Pocket Casts, etc.). Perfect for consuming long-form content while commuting, exercising, or multitasking. Turn your reading list into a personal podcast feed. 👥 Who's it for For Professionals: Convert industry reports and whitepapers to audio Listen to research papers during commutes Stay updated with long-form articles hands-free For Students: Turn textbooks and study materials into audio Create audio versions of lecture notes Study while exercising or commuting For Content Creators: Repurpose written content into audio format Create podcast episodes from blog posts Reach audio-focused audiences For Busy Readers: Convert saved articles to a personal podcast Listen to newsletters and essays on the go Build a private audio library ✨ Key Features 📄 PDF Text Extraction** - Automatically extracts text from any PDF file 🎙️ Natural Voice Synthesis** - High-quality WaveNet voices from Google Cloud TTS ☁️ Cloud Storage** - Files hosted on Cloudflare R2 (S3-compatible) with public URLs 📻 RSS Feed Generation** - Full iTunes-compatible podcast feed with metadata 📧 Email Notifications** - Instant alerts when new episodes are ready 🎨 Custom Branding** - Configurable podcast name, artwork, and descriptions ⚙️ Modular Configuration** - Easy-to-update centralized config node 🔄 Automated Workflow** - Set it and forget it - fully automated pipeline 🛠️ Requirements Required Services: n8n (self-hosted or cloud) - Workflow automation platform Google Cloud Platform - Text-to-Speech API access Free tier: 1 million characters/month (WaveNet voices) Paid: $16 per 1 million characters Cloudflare R2 - Object storage for audio files and RSS feed Free tier: 10GB storage, unlimited egress Email Service - SMTP or email service for notifications Required Community Nodes: Cloudflare R2 Storage** (n8n-nodes-cloudflare-r2-storage) Install via: Settings → Community Nodes → Install Search for: n8n-nodes-cloudflare-r2-storage Important: Install this BEFORE importing the workflow Optional: Custom domain for podcast feed URLs Podcast artwork (3000x3000px recommended) 📦 What's Included This workflow package includes: Complete n8n workflow JSON (ready to import) Comprehensive setup guide Architecture documentation Configuration templates Credentials setup instructions Testing and validation checklist RSS feed customization guide Troubleshooting documentation 🚀 Quick Start Install community node (required): Go to Settings → Community Nodes → Install Search for: n8n-nodes-cloudflare-r2-storage Click Install and wait for completion Import workflow into your n8n instance Configure credentials: Google Cloud TTS API key Cloudflare R2 credentials (Access Key ID + Secret) SMTP email credentials Update Workflow Config node with your settings: R2 bucket name and public URL Podcast name and description Artwork URL Email recipient Test with a sample PDF to verify setup Add RSS feed URL to your podcast app 📊 Workflow Stats Nodes:** 10 Complexity:** Medium Execution Time:** ~2-5 minutes per PDF (depends on length) Monthly Cost:** $0-20 (depending on usage and free tiers) Maintenance:** Minimal (set and forget) 🎨 Customization Options Change TTS voice (20+ English voices available) Adjust speech speed and pitch Customize RSS feed metadata Add custom intro/outro audio Configure file retention policies Set up webhook triggers for remote submission 🔧 How it Works User uploads PDF to n8n Text is extracted from PDF Text is sent to Google TTS API Audio file (.mp3) is generated Files uploaded to R2 storage: Original PDF Generated MP3 audio RSS feed is generated/updated with: Episode title (from PDF filename) Audio URL Duration and file size Publication date Rich HTML description RSS feed uploaded to R2 Email notification sent with episode details 💡 Pro Tips Voice Selection:** Test different WaveNet voices to find your preferred style Batch Processing:** Process multiple PDFs by running workflow multiple times Quality vs Cost:** WaveNet voices sound better but cost more than Standard voices Storage Management:** Set up R2 lifecycle rules to auto-delete old episodes Custom Domains:** Use Cloudflare for custom podcast feed URLs 🔗 Related Workflows PDF to Email Summary Document Translation to Audio Blog RSS to Podcast Multi-language Audio Generation 📧 Support & Feedback For questions, issues, or feature requests: GitHub: PDF-to-Podcast---N8N Repository n8n Community Forum: Tag @devdutta Email: devjothi@gmail.com 📄 License MIT License - Free to use, modify, and distribute ⭐ If you find this workflow useful, please share your feedback and star the workflow!
by Incrementors
Paste your webinar recording URL into a simple form — and this workflow does the rest automatically. WayinVideo AI scans the full recording and extracts the most engaging clip segments, ready for your lead nurture campaigns. Each clip is downloaded and saved directly to your Google Drive folder with no manual effort. Built for marketers, agencies, and growth teams who run webinars and want to repurpose content at scale without editing software. What This Workflow Does Form-triggered input** — Collects the recording URL, webinar topic, brand name, and clip limit from a clean hosted form before any processing begins AI-powered clip extraction** — Submits the webinar video to WayinVideo, which identifies and cuts the highest-engagement moments automatically Smart polling loop** — Waits 45 seconds and checks for results repeatedly until clips are ready — no manual checking needed Per-clip file download** — Downloads every generated clip as an individual video file directly from the WayinVideo export link Automatic Google Drive upload** — Saves each clip to your chosen Drive folder with the AI-generated clip title as the filename Batch processing** — Handles multiple clips in a single run — all clips are downloaded and uploaded one by one without any extra configuration Setup Requirements Tools You'll Need Active n8n instance (self-hosted or n8n Cloud) WayinVideo account with API access (wayin.ai) Google account with Google Drive OAuth2 access in n8n Estimated Setup Time: 5–10 minutes Step-by-Step Setup 1. Get Your WayinVideo API Key WayinVideo is the AI engine that finds and clips the best moments from your webinar. Go to WayinVideo and log in or create an account Navigate to your Dashboard → API section Copy your Bearer token Open the 2. WayinVideo — Submit Clipping Task node in n8n Find the Authorization header and replace YOUR_WAYINVIDEO_API_KEY with your token Open the 4. WayinVideo — Poll Clip Results node and replace the same placeholder there > ⚠️ This API key appears in two nodes — Submit (node 2) and Poll (node 4). Replace it in both or the workflow will fail on the polling step. 2. Connect Google Drive (OAuth2) In n8n, go to Credentials → Add Credential → Google Drive OAuth2 API Complete the Google authentication flow Open the 8. Google Drive — Upload Clip node Select your new credential from the dropdown 3. Set Your Google Drive Folder ID Open Google Drive and navigate to the folder where you want clips saved Look at the URL bar — copy the string after /folders/ In the 8. Google Drive — Upload Clip node, replace YOUR_GOOGLE_DRIVE_FOLDER_ID with that string Update YOUR_FOLDER_NAME with a recognisable label for your own reference 4. Activate the Workflow Save the workflow Toggle it Active at the top of the editor Open the form URL (shown in the 1. Form — Webinar URL + Details node) and submit a test recording How It Works (Step by Step) Step 1 — Form: Collect Webinar Details The workflow starts when you fill out a hosted n8n form. You provide four things: the webinar recording URL, the topic or title, your company name, and the maximum number of clips you want generated. Once submitted, all this data is passed to the next step. Step 2 — Submit Clipping Task to WayinVideo The workflow sends your recording URL to the WayinVideo API using a POST request. It also sends the project name, clip limit, resolution setting (HD 720p), and caption preferences. WayinVideo returns a Job ID that is used to track the processing status in the next steps. Step 3 — Wait 45 Seconds The workflow pauses for 45 seconds. This gives WayinVideo time to begin processing the video before the first status check. Checking too early would return an empty result. Step 4 — Poll for Clip Results Using the Job ID from Step 2, the workflow calls the WayinVideo results endpoint to check if the clips are ready. The response either contains completed clip data or an empty result. Step 5 — Clips Ready? (Smart Retry Loop) The workflow checks whether the result data is populated: YES (clips are ready)** — moves forward to extract and download each clip NO (still processing)** — loops back to the 45-second wait and checks again > This retry loop runs every 45 seconds until WayinVideo finishes. For longer webinars (60+ minutes) this may take several cycles — this is completely normal. Step 6 — Extract Each Clip A Code step splits the clips array into individual items. For each clip it extracts the title, export link, engagement score, tags, description, and start/end timestamps. Each clip then flows through the next steps independently. Step 7 — Download the Clip File For each clip, the workflow fetches the export link from WayinVideo and downloads the video file directly as a binary file attachment. Step 8 — Upload to Google Drive Each downloaded clip file is uploaded to your configured Google Drive folder. The filename is set automatically using the AI-generated clip title from Step 6 — so your Drive folder stays organised without any manual renaming. Key Features ✅ No editing software needed — WayinVideo selects the best clips automatically using AI engagement scoring ✅ Form-based entry point — Anyone on your team can submit a webinar without touching n8n ✅ Automatic retry loop — Polling continues every 45 seconds until processing is done — no babysitting required ✅ Per-clip Drive organisation — Each clip is saved as a separate file with its AI-generated title as the filename ✅ Engagement scoring — The API returns a score for each clip so you can prioritise the highest-impact segments ✅ Caption support — Captions are enabled by default, making clips ready for social media with no extra steps ✅ Configurable clip count — Set the max number of clips per webinar directly in the form — no code changes needed ✅ Scalable batch processing — Multiple clips are processed and uploaded in a single workflow run automatically Customisation Options Change clip length for social media In the 2. WayinVideo — Submit Clipping Task node, change target_duration from DURATION_30_60 to DURATION_15_30 to generate shorter clips optimised for Instagram Reels or YouTube Shorts. Enable vertical video reframing In the same Submit node, set enable_ai_reframe to true to let WayinVideo automatically crop and reframe clips to a vertical 9:16 format — ready for mobile-first platforms without any editing. Change output language Set target_lang in the Submit node to hi, es, fr, or de to receive captions and AI output in a different language — useful for international webinars. Organise clips by client or campaign Add a Set node before the Google Drive upload step to dynamically build a folder path based on the brand name submitted in the form. This keeps clips from different clients separated automatically. Send clip links by email after upload Add a Gmail node after the 8. Google Drive — Upload Clip step to email the Google Drive link of each clip to your team or client as soon as the upload is complete. Add a Slack notification when done Place a Slack node at the end of the workflow to send a summary message to a channel once all clips are uploaded — including the clip titles and Drive links — so your team knows when new content is ready. Troubleshooting API key not working / WayinVideo returns an error: Double-check that YOUR_WAYINVIDEO_API_KEY has been replaced in both node 2 and node 4 Confirm your WayinVideo account is active and has available processing credits Make sure the Authorization header value starts with Bearer followed by your key with no extra spaces Workflow stuck in the polling loop: Long webinars (90+ minutes) can take 5–10 minutes to process — multiple retry cycles are expected Open your WayinVideo dashboard to check if the job is still running or has failed If the loop runs for more than 20 minutes with no result, the recording URL may be unsupported or behind a login wall Clips not uploading to Google Drive: Re-authenticate your Google Drive OAuth2 credential in n8n (credentials can expire) Verify the folder ID in node 8 is correct — copy it fresh from the Drive URL Check that your Google account has write access to the target folder Form not submitting / workflow not starting: Make sure the workflow is toggled Active — inactive workflows do not accept form submissions Use the exact form URL shown in the 1. Form — Webinar URL + Details node trigger settings Confirm the webinar URL is publicly accessible — password-protected Zoom recordings will not be processed Clip files downloading but not uploading correctly: Confirm the Google Drive credential is selected in the 8. Google Drive — Upload Clip node (not left as unconfigured) Check n8n execution logs for any binary data errors in the download step — some export links may expire quickly after generation Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@incrementors.com 🌐 Website: https://www.incrementors.com/contact-us/
by vinci-king-01
Property Listing Aggregator with Microsoft Teams and Baserow ⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template. This workflow automatically aggregates commercial real-estate listings from multiple broker and marketplace websites, stores the fresh data in Baserow, and pushes weekly availability alerts to Microsoft Teams. Ideal for business owners searching for new retail or office space, it runs on a timetable, scrapes property details, de-duplicates existing entries, and notifies your team of only the newest opportunities. Pre-conditions/Requirements Prerequisites An n8n instance (self-hosted or n8n.cloud) ScrapeGraphAI community node installed A Baserow workspace & table prepared to store property data A Microsoft Teams channel with an incoming webhook URL List of target real-estate URLs (CSV, JSON, or hard-coded array) Required Credentials ScrapeGraphAI API Key** – Enables headless scraping of listing pages Baserow Personal API Token** – Grants create/read access to your property table Microsoft Teams Webhook URL** – Allows posting messages to your channel Baserow Table Schema | Column Name | Type | Notes | |-------------|---------|--------------------------------| | listing_id| Text | Unique ID or URL slug (primary)| | title | Text | Listing headline | | price | Number | Monthly or annual rent | | sq_ft | Number | Size in square feet | | location | Text | City / neighborhood | | url | URL | Original listing link | | scraped | Date | Timestamp of last scrape | How it works This workflow automatically aggregates commercial real-estate listings from multiple broker and marketplace websites, stores the fresh data in Baserow, and pushes weekly availability alerts to Microsoft Teams. Ideal for business owners searching for new retail or office space, it runs on a timetable, scrapes property details, de-duplicates existing entries, and notifies your team of only the newest opportunities. Key Steps: Schedule Trigger**: Fires every week (or on demand) to start the aggregation cycle. Load URL List (Code node)**: Returns an array of listing or search-result URLs to be scraped. Split In Batches**: Processes URLs in manageable groups to avoid rate-limits. ScrapeGraphAI**: Extracts title, price, size, and location from each page. Merge**: Reassembles batches into a single dataset. IF Node**: Checks each listing against Baserow to detect new vs. existing entries. Baserow**: Inserts only brand-new listings into the table. Set Node**: Formats a concise Teams message with key details. Microsoft Teams**: Sends the alert to your designated channel. Set up steps Setup Time: 15-20 minutes Install ScrapeGraphAI node: In n8n, go to “Settings → Community Nodes”, search for “@n8n-nodes/scrapegraphai” and install. Create Baserow table: Follow the schema above. Copy your Personal API Token from Baserow profile settings. Generate Teams webhook: In Microsoft Teams, open channel → “Connectors” → “Incoming Webhook”, name it, and copy the URL. Open the workflow in n8n and set the following credentials: ScrapeGraphAI API Key Baserow token (Baserow node) Teams webhook (Microsoft Teams node) Define target URLs: Edit the “Load URL List” Code node and add your marketplace or broker URLs. Adjust schedule: Double-click the “Schedule Trigger” and set the cron expression (default: weekly Monday 08:00). Test-run the workflow manually to verify scraping and data insertion. Activate the workflow once results look correct. Node Descriptions Core Workflow Nodes: stickyNote** – Provides inline documentation and reminders inside the canvas. Schedule Trigger** – Triggers the workflow on a weekly cron schedule. Code** – Holds an array of URLs and can implement dynamic logic (e.g., API calls to get URLs). SplitInBatches** – Splits URL list into configurable batch sizes (default: 5) to stay polite. ScrapeGraphAI** – Scrapes each URL and returns structured JSON for price, size, etc. Merge** – Combines batch outputs back into one array. IF** – Performs existence check against Baserow’s listing_id to prevent duplicates. Baserow** – Writes new records or updates existing ones. Set** – Builds a human-readable message string for Teams. Microsoft Teams** – Posts the summary into your channel. Data Flow: Schedule Trigger → Code → Split In Batches → ScrapeGraphAI → Merge → IF → Baserow IF (new listings) → Set → Microsoft Teams Customization Examples Add additional data points (e.g., number of parking spaces) // In ScrapeGraphAI "Selectors" field { "title": ".listing-title", "price": ".price", "sq_ft": ".size", "parking": ".parking span" // new selector } Change Teams message formatting // In Set node return items.map(item => { const l = item.json; item.json = { text: 🏢 ${l.title} — ${l.price} USD\n📍 ${l.location} | ${l.sq_ft} ft²\n🔗 <${l.url}|View Listing> }; return item; }); Data Output Format The workflow outputs structured JSON data: { "listing_id": "12345-main-street-suite-200", "title": "Downtown Office Space – Suite 200", "price": 4500, "sq_ft": 2300, "location": "Austin, TX", "url": "https://broker.com/listings/12345", "scraped": "2024-05-01T08:00:00.000Z" } Troubleshooting Common Issues ScrapeGraphAI returns empty fields – Update CSS selectors or switch to XPath; run in headless:true mode. Duplicate records still appear – Ensure listing_id is truly unique (use URL slug) and that the IF node compares correctly. Teams message not delivered – Verify webhook URL and that the Teams connector is enabled for the channel. Performance Tips Reduce batch size if websites block rapid requests. Cache previous URLs to skip unchanged search-result pages. Pro Tips: Rotate proxies in ScrapeGraphAI for larger scraping volumes. Use environment variables for credentials to simplify migrations. Add a second Schedule Trigger for daily “hot deal” checks by duplicating the workflow and narrowing the URL list.
by Devon Toh
Classify Cold Email Replies and Notify via Telegram with OpenAI and Instantly Automatically classifies incoming cold email replies as HOT, WARM, or COLD using AI and sends priority Telegram notifications with auto-acknowledgment for fast response times. Who is this for? Outbound sales teams using Instantly for cold email who want instant lead classification and speed-to-lead automation. What problem does this solve? Manually checking inboxes for replies is slow. Hot leads go cold while you sleep. This workflow classifies replies in seconds, notifies you on Telegram, and auto-acknowledges warm/hot leads so they know you're responsive. How it works: Instantly Reply Webhook - receives reply event from Instantly Respond 200 OK - acknowledges webhook immediately Validate Payload - checks required fields (email, reply body) Extract Lead Fields - normalizes lead data (email, name, subject, campaign) Classify Reply - OpenAI - GPT-4o-mini classifies as HOT/WARM/COLD with reasoning Parse Classification - extracts classification + carries forward lead data Is HOT? / Is WARM? - routes to the right notification branch Telegram - HOT/WARM/COLD Lead - sends priority-formatted notification Auto-Ack HOT/WARM Gmail - instantly sends acknowledgment email to engaged leads Log Reply to Sheet - logs everything for tracking Setup: Add credentials: OpenAI, Gmail, Telegram Bot, Header Auth Replace YOUR_TELEGRAM_CHAT_ID with your chat ID (message @userinfobot) Create a Google Sheet with columns: timestamp, lead_email, lead_name, classification, campaign, subject, reply_snippet, reasoning, auto_ack_sent, manual_reply_sent, manual_reply_at Replace YOUR_GOOGLE_SHEET_ID with your sheet ID Configure Instantly webhook: Settings > Integrations > Webhooks > reply_received event > paste your n8n webhook URL Customization: Edit the OpenAI system prompt to adjust classification criteria Modify auto-ack email copy in the Gmail nodes Adjust Telegram message formatting per branch
by Rajeet Nair
Overview This workflow automates the complete appointment booking process, from request validation to scheduling, notifications, and reminders. It checks calendar availability in real time, prevents double bookings, suggests alternative slots when unavailable, and automatically sends confirmations and reminders—ensuring a smooth and reliable booking experience. Perfect for service-based businesses, consultants, and teams managing appointments at scale. How It Works Webhook Trigger Receives booking requests (name, email, date, time, notes). Workflow Configuration Defines: Google Calendar ID Appointment duration Business hours Sender email Data Validation Parses and validates input fields Ensures required data is present and correctly formatted Calendar Availability Check Fetches existing events from Google Calendar Compares requested time with existing bookings Conflict Detection Detects overlapping events Determines whether the slot is available Decision Logic If available → proceed with booking If not available → trigger alternative flow Booking Flow (Available Slot) Create Calendar Event Schedules appointment in Google Calendar Adds attendee and event details Confirmation Email Sends booking confirmation with event details Includes calendar event link Webhook Response Returns success response to client/system Reminder System Schedules automated reminders: 24-hour reminder before appointment 1-hour reminder before appointment Uses wait nodes to trigger emails at exact times Includes appointment details to reduce no-shows Alternative Flow (Unavailable Slot) Generate Alternative Slots Finds next available time slots within business hours Ensures slots are within a defined time window Alternative Email Notification Sends suggested time slots to the user Webhook Response Returns unavailable status with alternatives Setup Instructions Webhook Setup Configure endpoint (booking) Connect to your frontend or booking form Google Calendar Add Google Calendar credentials Set calendar ID Gmail Integration Add Gmail credentials for: Confirmation emails Reminder emails Alternative slot notifications Configure Parameters Set: Appointment duration (e.g., 60 minutes) Business hours (e.g., 9–17) Sender email Customize Messages Edit email templates for: Confirmation Alternatives Reminders Use Cases Appointment booking systems for businesses Coaching and consulting session scheduling Service-based business automation (salons, clinics, etc.) Internal team scheduling tools Calendly-style booking workflows Requirements Google Calendar account Gmail account n8n instance (cloud or self-hosted) Key Features Real-time availability checking Automatic conflict detection Calendar event creation Alternative slot suggestions Email notifications and confirmations Automated reminder system (24h + 1h) Fully customizable booking logic Summary A complete appointment scheduling system that automates booking validation, calendar management, notifications, and reminders. It reduces manual coordination, prevents scheduling conflicts, and improves attendance with automated follow-ups.
by Jitesh Dugar
Email List Hygiene - Automated Weekly Validator Overview Validates email lists through automated checks, categorizes results as Valid/Invalid/Risky, updates Google Sheets in real-time, and delivers HTML reports. Runs every Friday at 5 PM via cron scheduling. Workflow Architecture Schedule Trigger → Read Google Sheets → Loop (Process Each Email) → Validate API → IF Branch (Valid/Invalid) → Update Google Sheets → Merge → Loop Back → Calculate Statistics → Send Email Report Loop Mechanism Split in Batches processes one email at a time Each email: validate → branch → update sheet → merge → continue Loop accumulates all results internally "Done" output triggers statistics calculation after all emails processed Health Score Formula Score = (Valid% × 100) - (Invalid% × 20) - (Risky% × 10) Bounded: 0-100 Ranges: 80-100: Excellent (green) 60-79: Good (orange) 0-59: Needs Attention (red) Prerequisites Required: Google account with Sheets access Email validation API (VerifiEmail) n8n v1.0+ Google Sheet Structure | Column | Type | Filled By | |--------|------|-----------| | row_number | Number | Auto-generated | | name | Text | You | | email | Text | You | | status | Text | Workflow | | checked_at | Text | Workflow | | notes | Text | Workflow | Only populate first three columns. Setup 1. Import Template Import JSON file to n8n via Workflows → Add workflow → Import from File 2. Configure Credentials Google Sheets OAuth2 (used by 3 nodes): Create credential via any Google Sheets node Grant spreadsheet permissions Apply same credential to all Google Sheets nodes Validation API: Get API key from https://verifi.email Add credential to "Validate Email Address" node Gmail OAuth2: Add credential to "Send Weekly Report" node Grant email sending permissions 3. Connect Google Sheet In all three Google Sheets nodes: Select your spreadsheet from Document dropdown Select sheet tab Verify "Column to Match On" = row_number (for Update nodes) 4. Set Email Recipient In "Send Weekly Report" node: Change "Send To" from placeholder to your email Optional: Add CC/BCC for multiple recipients 5. Test Add 3-5 test emails (mix of valid/invalid) Click "Execute Workflow" Verify sheet updates and email arrives 6. Activate Toggle "Active" switch. Workflow runs automatically every Friday at 5 PM. Customization Change Schedule: Edit "Weekly Schedule" node cron expression: Daily 9 AM: 0 9 * * * Monday 5 PM: 0 17 * * 1 First of month: 0 9 1 * * Email Design: Edit HTML in "Send Weekly Report" message field. Modify colors (search hex codes), text, or add branding. Archive Invalid Emails: Add Google Sheets Append node after "Update Invalid Status" → create "Invalid_Archive" tab → append email, name, reason, date Slack Notifications: Add Slack node after email report → configure channel → use summary text from statistics Rate Limiting: Add Wait node (1-2 seconds) after validation for large lists to prevent API throttling Troubleshooting "Column not found": Verify exact column names in sheet: row_number, name, email, status, checked_at, notes (case-sensitive) Only processes 1 email: Check Google Sheets node Range field is empty or set to include all rows. Verify "Use Header Row" enabled. Wrong statistics: Enable "Execute Once" in Calculate Statistics node settings (gear icon) Email not arriving: Check spam/promotions folder, verify Gmail credential authorized, confirm recipient address correct API errors: Verify API key valid, check quota not exceeded, test with simple email like test@gmail.com Merge node error: Confirm both Update nodes connect to Merge inputs (top and bottom). Check both branches execute successfully. Validation Checks Each email undergoes: RFC 5322 format compliance MX record existence (domain has mail servers) SMTP verification (mailbox exists) Disposable email service detection Catch-all domain detection Categories: Valid: All checks passed Invalid: Critical checks failed Risky: Disposable or catch-all domain Support Check execution logs in n8n Executions tab for errors. Use "Execute Node" on individual nodes to isolate issues. Visit n8n community forum for additional help. Tags email-validation marketing-automation data-cleaning google-sheets scheduled-workflow deliverability list-hygiene
by WeblineIndia
Goal-Based Savings Tracker with Email Nudges > n8n, Google Sheets & Gemini AI This workflow automates goal-based savings tracking by pulling user data from Google Sheets, calculating progress and sending AI-generated motivational nudges via email. It evaluates whether users are ahead, on track or behind schedule and dynamically adjusts savings advice using an AI model. Quick Start Guide (Get Running in Minutes) Login to your n8n account. Connect your Google Sheets account and map required columns Add your Gemini API credentials (or any LLM provider) Connect your Gmail account for sending emails Replace the Manual Trigger with a Schedule Trigger (daily) Test the workflow with sample data Activate the workflow What It Does This workflow acts as a smart financial assistant that helps users stay on track with their savings goals. It fetches savings data from a Google Sheet, processes it to calculate key metrics like progress percentage, expected savings and remaining days and determines whether the user is ahead, on track or behind schedule. Based on this evaluation, the workflow generates personalized financial nudges using an AI agent. These nudges include motivational messages, practical advice and updated daily savings targets tailored to the user's current progress. Finally, the workflow formats this information into a structured email and sends it directly to the user, creating a fully automated feedback loop that encourages consistent saving behavior. Who It's For Individuals tracking personal savings goals Financial coaches and advisors Fintech startups building savings tools Automation enthusiasts using n8n Anyone who wants automated financial motivation Requirements To use this workflow, ensure the following: Accounts & Credentials n8n account Google Sheets account (OAuth connected in n8n) Gmail account (OAuth for email sending) Google Gemini API (or any supported LLM provider) Google Sheet Structure (Required) Your sheet must include the following columns: | Column Name | Description | |-----------------|--------------------------------------| | Name | User's name | | Email | Recipient email address | | Goal Amount | Total savings target (USD) | | Total Saved | Current saved amount (USD) | | Start Date | Savings start date | | Target Date | Goal completion date | How It Works & Set Up Workflow Overview Fetch data from Google Sheets Normalize and calculate savings metrics Evaluate user progress Generate AI-based savings advice Format email content Send email notification Setup Instructions Step 1: Replace Trigger with Schedule Remove or disable Manual Trigger Add Schedule Trigger Configure it to run daily (e.g., 8 AM) Step 2: Configure Google Sheets Node Connect your Google Sheets account Select your spreadsheet and sheet Ensure column names match the required schema Step 3: Prepare & Normalize Data This node calculates: Total days between start and target Days passed and remaining Expected savings by now Progress percentage Daily required savings No changes required unless modifying logic Step 4: Evaluate Progress (IF Node) Compares: Total Saved vs Expected Savings Outputs: Ahead / On Track → Positive path Behind → Recovery path Step 5: Set Messaging Context Two branches: Ahead/On Track → Encouraging messages Behind → Catch-up strategy Prepares base tone before AI processing Step 6: Configure AI Savings Coach Connect your Gemini API credentials You may replace with: OpenAI Claude Any LLM supported in n8n AI generates: Motivation Advice New daily savings target Step 7: Format Final Output Structures email content: Subject Body (Motivation + Advice + Target) Recipient Step 8: Configure Gmail Node Connect Gmail OAuth Ensure sender permissions are correct Test email delivery Step 9: Activate Workflow Run a test execution Activate workflow for daily automation How To Customize Nodes Modify Savings Logic Edit formulas in Prepare & Normalize Data node Adjust: Progress calculation Daily savings logic Customize Email Content Modify Format Final Output node Add: Progress percentage Visual indicators (emojis, charts) Adjust AI Behavior Update prompt in AI Savings Coach Agent Change tone: Strict / Friendly / Analytical Modify output format if needed Add-ons (Extend Functionality) Add dashboard using Google Data Studio Send notifications via Slack or WhatsApp Add weekly/monthly summary reports Add reminders for missed savings days Track multiple goals per user Use Case Examples Personal Savings Tracker Automatically monitor and improve individual savings habits Financial Coaching Automation Advisors can send automated guidance to clients Employee Financial Wellness Programs Companies can encourage employees to save regularly Fintech App Backend Automation Use as a backend workflow for savings apps Goal-Based Investment Planning Extend logic for SIP or investment tracking > There can be many more use cases depending on how you extend and integrate this workflow. Troubleshooting Guide | Issue | Possible Cause | Solution | |------|--------------|---------| | No data fetched | Incorrect sheet or permissions | Verify Google Sheets connection and sheet ID | | Email not sent | Gmail OAuth not configured | Reconnect Gmail credentials | | Incorrect calculations | Date format mismatch | Ensure dates are in valid format (YYYY-MM-DD) | | AI output missing | API not connected | Check Gemini/OpenAI credentials | | Workflow not running | Trigger not active | Enable Schedule Trigger | | Wrong user data | Column mismatch | Ensure exact column names in sheet | Need Help? If you need assistance setting up or customizing this workflow or if you want to build more advanced automation solutions like this, then our n8n workflow developers at WeblineIndia are here to help. We can assist you with: Custom workflow development AI integration and optimization Scaling automation systems Adding advanced features and integrations 👉 Reach out to WeblineIndia to turn your automation ideas into production-ready solutions.
by Incrementors
Paste any long influencer or YouTube video URL into the form, and this workflow does everything else. It sends the video to WayinVideo AI, which automatically finds the most engaging short clips. Each clip is then downloaded and saved directly to your Google Drive folder — ready to post on TikTok, Instagram Reels, or YouTube Shorts. Built for content agencies, social media managers, and creators who want to repurpose long videos at scale without editing manually. What This Workflow Does AI clip extraction** — Sends any video URL to WayinVideo, which identifies and generates the top viral short clips using AI scoring and engagement signals Auto-polling with retry** — Waits 45 seconds, then checks if clips are ready. If still processing, it loops back automatically until results arrive Batch clip processing** — Extracts every clip from the results — including title, score, tags, description, and timestamps — and processes each one separately Automatic file download** — Downloads each clip video file directly from the WayinVideo export link, no manual clicking required Google Drive upload** — Saves every downloaded clip to your specified Google Drive folder, named using the clip's AI-generated title Form-based input** — A simple web form lets anyone on your team submit jobs — no n8n knowledge needed Setup Requirements Tools you'll need: Active n8n instance (self-hosted or n8n Cloud) WayinVideo account + API key Google account connected to n8n via OAuth2 Estimated Setup Time: 10–15 minutes Step-by-Step Setup Get your WayinVideo API key Log in at WayinVideo, go to your account settings or developer section, and copy your API key. Paste the API key into node "2. WayinVideo — Submit Clipping Task" Open this node, find the Authorization header, and replace YOUR_WAYINVIDEO_API_KEY with your actual key. Paste the API key into node "4. WayinVideo — Poll Clips Result" Open this node, find the same Authorization header, and replace YOUR_WAYINVIDEO_API_KEY again. > ⚠️ This key appears in 2 nodes — you must replace it in both "2. WayinVideo — Submit Clipping Task" and "4. WayinVideo — Poll Clips Result" or the workflow will fail. Connect your Google account Open node "8. Google Drive — Upload Clip". Click the credential field and connect your Google account via OAuth2. Follow the on-screen prompts to authorise n8n. Set your Google Drive folder ID In node "8. Google Drive — Upload Clip", find the folderId field. Replace YOUR_GOOGLE_DRIVE_FOLDER_ID with your actual folder ID. To find it: open your target Google Drive folder in a browser — the folder ID is the string of letters and numbers at the end of the URL after /folders/. Activate the workflow Toggle the workflow to Active. Open the form URL generated by node "1. Form — Video URL + Brand + Clip Count" and submit a test video to confirm everything works end to end. How It Works (Step by Step) Step 1 — Form Trigger (Web Form) The workflow starts when someone fills out the web form. They enter three things: the influencer video URL, the brand or creator name, and how many clips to generate. This form is hosted by n8n and can be shared with anyone on your team. Step 2 — Submit to WayinVideo AI The video URL and settings are sent to the WayinVideo API. The request includes clip duration (30–60 seconds), HD 720p resolution, 9:16 vertical ratio for social media, captions enabled, and AI reframing. WayinVideo processes the video and returns a task ID that the workflow uses to check for results. Step 3 — Wait 45 Seconds The workflow pauses for 45 seconds to give WayinVideo time to process the video before the first check. This avoids sending requests too early when results won't be ready yet. Step 4 — Poll for Results The workflow calls the WayinVideo results endpoint using the task ID from Step 2. It asks: "Are the clips ready yet?" and receives either a clips array or an empty result. Step 5 — Check: Are Clips Ready? (YES / NO branch) YES** — If the results contain clip data, the workflow moves forward to extract and download each clip. NO** — If the results are empty (still processing), the workflow loops back to Step 3, waits another 45 seconds, and polls again. This loop continues until clips are ready. > ⚠️ Infinite Loop Risk: If WayinVideo never returns clips (due to an invalid URL or API error), this loop runs forever. Consider adding a retry counter to stop after a maximum number of attempts. Step 6 — Extract Clips Array A code step reads the clips data and splits it into individual items — one per clip. Each item includes the clip title, download link, score, tags, description, and start/end timestamps. Step 7 — Download Each Clip File For each clip, the workflow fetches the video file from WayinVideo's export link and downloads the binary file into n8n's memory, ready to be uploaded. Step 8 — Upload to Google Drive Each downloaded clip file is uploaded to your Google Drive folder. The file is named using the AI-generated clip title from Step 6, so every clip arrives in Drive with a descriptive, ready-to-use filename. The final result is a folder in your Google Drive containing all extracted short clips, named and ready to post. Key Features ✅ AI clip scoring — WayinVideo ranks clips by engagement potential, so you always get the most viral-ready moments first ✅ 9:16 vertical format — Every clip is automatically reframed for TikTok, Instagram Reels, and YouTube Shorts — no manual cropping ✅ Captions included — AI captions are embedded in every clip export, improving watch time and accessibility without extra editing ✅ Auto-retry polling — The workflow keeps checking until clips are ready — you don't need to monitor or re-run anything manually ✅ Batch processing — Multiple clips are downloaded and uploaded in one run, no matter how many you requested ✅ Smart file naming — Each clip in Drive is named using its AI-generated title, not a random ID — your folder stays organised ✅ Team-friendly form — The web form means anyone on your team can submit jobs without logging into n8n ✅ Configurable clip count — Enter any number in the form to control how many clips are generated per video Customisation Options Shorter TikTok clips — In node "2. WayinVideo — Submit Clipping Task", change target_duration from DURATION_30_60 to DURATION_15_30 to generate 15–30 second clips optimised for TikTok. Add Slack or email notifications — Insert a Slack or Gmail node after "8. Google Drive — Upload Clip" to ping your team with a message (and the Drive link) every time a new clip is saved. Log clip metadata to Google Sheets — After the upload step, add a Google Sheets "Append Row" node to record each clip's title, score, tags, and Drive link in a spreadsheet — useful for content calendars and client reporting. Change video resolution — In the Submit node, change resolution from HD_720 to FULL_HD_1080 for higher-quality exports, or SD_480 to reduce file sizes. Add a retry limit to the polling loop — To prevent the infinite loop risk, add a counter variable in the Wait step and check it in "5. If — Clips Ready?" — stop after 10 attempts and send an error notification instead. Switch to a different output folder per brand — Connect the Brand Name field from the form to the folder selection in the Google Drive node to auto-sort clips into brand-specific folders. Troubleshooting API key not working: Check that you replaced YOUR_WAYINVIDEO_API_KEY in both node "2. WayinVideo — Submit Clipping Task" and node "4. WayinVideo — Poll Clips Result" Confirm your WayinVideo account is active and the key has not expired Make sure there are no extra spaces before or after the key when pasting Workflow stuck in the polling loop: Check that the video URL is publicly accessible — private, age-restricted, or region-blocked videos will not process Open the results from node "4. WayinVideo — Poll Clips Result" and look at the raw response to see if WayinVideo returned an error message If no clips are ever returned, the workflow will loop indefinitely — activate the workflow again after fixing the URL Google Drive upload failing: Make sure the Google OAuth2 credential in "8. Google Drive — Upload Clip" is connected and not expired — reconnect it if needed Confirm the folder ID is correct: it should be just the ID string (e.g. 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs), not the full URL Check that your Google account has write access to that specific folder Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@incrementors.com 🌐 Website: https://incrementors.com/