by Cheng Siong Chin
How It Works This workflow automates monthly revenue reconciliation across Stripe, PayPal, and bank statements by standardizing data formats, detecting discrepancies, and producing audit-ready reports. It concurrently retrieves revenue data from multiple sources, normalizes datasets into consistent structures, consolidates records, and reconciles transactions against bank statements with intelligent mismatch detection. The system aggregates monthly totals, generates detailed audit reports with clearly flagged discrepancies, archives finalized outputs to Google Drive, and notifies tax agents. Designed for accounting firms, finance teams, and businesses, it enables automated revenue verification, multi-channel reconciliation, discrepancy identification, and compliance audit documentation without manual record matching or error-prone spreadsheet workflows. Setup Steps Configure Stripe, PayPal. Set up normalization rules for date, currency, and transaction ID mappings. Connect Google Drive for report archiving and Gmail for agent notifications. Define mismatch thresholds and reconciliation tolerance parameters. Prerequisites Stripe, PayPal, and bank statement accounts Use Cases Accounting firms automating client revenue verification; multi-channel e-commerce businesses Customization Add additional payment sources (Square, Shopify), adjust normalization rules for regional formats Benefits Eliminates manual reconciliation, detects discrepancies automatically
by Cheng Siong Chin
How It Works This workflow automates credit operations onboarding by running KYC verification, credit bureau checks, identity validation, and sanctions screening through a single AI-powered agent. Built for credit operations teams, compliance officers, and fintech platforms, it eliminates manual eligibility reviews that are slow and error-prone. Triggered via webhook, the Credit Operations Agent orchestrates all verification tools simultaneously, then routes customers by eligibility status, eligible, ineligible, pending documentation, or compliance escalation. Each path prepares structured data stored in Airtable, triggers appropriate follow-up actions (email, Slack alerts), and logs a full audit trail. A final formatted response is returned to the originating system, closing the loop end-to-end with no manual handoffs. Setup Steps Set webhook URL and connect Credit Operations webhook node to your intake system. Add OpenAI API key to the OpenAI Chat Model node. Configure KYC, Credit Bureau, Identity, and Sanctions tool credentials. Add Gmail OAuth2 and Slack bot token for notification nodes. Connect Airtable API key; set base/table IDs for eligible and ineligible customer stores. Prerequisites KYC & Credit Bureau API credentials Sanctions screening API access Gmail OAuth2 and Slack bot token Airtable API key Use Cases Fintech platforms automating loan application eligibility screening Customisation Add extra verification tools (e.g., biometric or document OCR APIs) Benefits Eliminates manual KYC and sanctions review bottlenecks
by FlyCode
⚙️ Automated Stripe Failed Payment Recovery (with Postmark + AI Email Generator) Recover failed Stripe subscription payments with AI-personalized emails sent via Postmark. 📝 Template Description Recover failed subscription payments automatically with Stripe, Postmark, and AI. This workflow listens for Stripe invoice.payment_failed webhooks, checks that the event is related to an auto-charged subscription, and then automatically sends a personalized email (generated with AI) to the customer. The email is polite, branded, but also urgent — encouraging the customer to pay quickly and avoid service cancellation. 🛠️ How it works 📣 Webhook Listens for Stripe webhook events. Make sure to connect it in your Stripe dashboard (see setup below). 🧹 Filter (Guard) Ensures the event is indeed an invoice event and filters out unrelated webhooks. 💡 Code Node Extracts useful fields (firstName, lastName, customer email, amount, currency, invoice number, hosted invoice URL, subscription description, account name). ✅ If Node Verifies that: Event type = invoice.payment_failed Billing reason = subscription_cycle Collection method = charge_automatically 👉 This ensures only recurring subscription invoices with auto-payment are processed. 🤖 AI Agent + OpenAI Generates a ready-to-send email JSON (to, subject, HTML body) using the extracted Stripe data. ✍️ You can customize the prompt here to match your brand’s tone of voice and style. 🧩 Code Parser Parses the AI model’s JSON output into fields (to_email, email_subject, email_body). 📧 HTTP Request (Postmark) Sends the email using Postmark’s API. You’ll need your own Postmark Server Token, From address, and Message Stream. 🚀 Setup Instructions 1. Stripe Webhook Go to Stripe Dashboard → Developers → Webhooks. Click + Add endpoint. Use your n8n Webhook URL (from the Webhook node) as the endpoint. Select event type: invoice.payment_failed. Save and deploy. 👉 Example docs: Stripe: Listen to events with webhooks. 2. Disable Stripe’s Default Failed Payment Emails In Stripe, go to Billing → Settings → Customer emails → Manage failed payments. Turn off “Failed payment” emails under the Revenue Recovery section. This prevents customers from receiving duplicate or conflicting emails. 3. Postmark Setup Create a Postmark account. Add a Server and copy the Server API Token. In n8n, add Postmark credentials with this token. Configure: From = your verified sending email (must be verified in Postmark). MessageStream = typically "outbound" (or any custom stream you set up). Docs: Postmark API overview. 4. OpenAI Setup Add your OpenAI credentials in n8n. Attach them to the OpenAI Chat Model node. You can modify the prompt in the AI Agent node to fit your company’s style. ✨ Customization Tips Update the AI prompt with your brand’s tone of voice (friendly, formal, playful, etc.). Adjust the HTML email design inside the prompt (button colors, footer, etc.). Add extra guard conditions (e.g., only trigger if invoice_amount > 0). Change the sending service: replace Postmark with Gmail, SMTP, or another provider. 💬 Or talk to our Billing Recovery Experts at flycode.com for hands-on help. ✅ Outcome Whenever a customer’s subscription payment fails, this workflow: Detects it instantly via Stripe Generates a polite but urgent recovery email Sends it automatically via Postmark Result: Fewer cancellations, higher recovered revenue, and a smoother customer experience. 💸💌
by Ronnie Craig
Healthcare Email Autoresponder - Daily Outreach 📧 A production-ready n8n workflow for automated healthcare email marketing with AI-powered personalization. 🎯 What This Workflow Does This automated email system sends daily personalized healthcare-themed emails to your contact list. Perfect for: Healthcare professionals building patient relationships Medical practices maintaining client engagement Wellness coaches staying connected with clients Health educators sharing daily motivation ✨ Key Features AI-Powered Personalization**: Uses OpenAI to customize each email with recipient's name Smart Rate Limiting**: Random 2-5 minute delays between emails to avoid spam filters Batch Processing**: Limits to 10 emails per run for better deliverability Email Tracking**: Updates Google Sheets to prevent duplicates and track progress Professional Templates**: Healthcare-themed content with customizable signatures Automated Scheduling**: Runs daily at 1 PM (customizable) 🛠️ Setup Instructions Prerequisites n8n instance (cloud or self-hosted) Gmail account for sending emails Google Sheets for contact management OpenAI API key Step 1: Import the Workflow Download the Healthcare_Email_Autoresponder_Community_Template.json file In n8n, go to Templates and click "Import from File" Select the downloaded JSON file The workflow will be imported as inactive Step 2: Configure Credentials Gmail OAuth2 Setup: Click on the "Send Email" node Create new Gmail OAuth2 credential Follow n8n's Gmail setup guide Test the connection Google Sheets Setup: Click on the "Healthcare_Contact_List" node Create new Google Sheets OAuth2 credential Replace YOUR_GOOGLE_SHEET_ID_HERE with your actual sheet ID Ensure your sheet has these columns: First Name Email Emailed (for tracking timestamps) OpenAI API Setup: Click on the "OpenAI Chat Model" node Create new OpenAI credential Add your OpenAI API key Select your preferred model (gpt-4o-mini recommended for cost efficiency) Step 3: Customize Your Email Template Click on the "AI Email Generator" node Edit the system message to include your details: Replace [YOUR NAME HERE] with your actual name Replace [YOUR TITLE HERE] with your professional title Replace [YOUR COMPANY HERE] with your company name Replace [YOUR PHONE NUMBER] with your phone number Replace [YOUR EMAIL] with your email address Replace [YOUR WEBSITE] with your website URL Step 4: Prepare Your Contact List Create a Google Sheet with the following structure: | First Name | Email | Emailed | |------------|-------------------|------------| | John | john@example.com | | | Jane | jane@example.com | | Important Notes: Leave the "Emailed" column empty initially The workflow will populate timestamps as emails are sent Only contacts with empty "Emailed" cells will receive emails Step 5: Test and Activate Test the workflow with a few sample contacts Check that emails are being generated and sent correctly Verify that Google Sheets is being updated with timestamps Once satisfied, activate the workflow 📊 Google Sheets Structure Your contact sheet should include these columns: First Name** (required): Used for personalization Email** (required): Recipient email address Emailed** (required): Timestamp tracking (leave empty initially) Optional columns you can add: Last Name Company Phone Notes ⚙️ Customization Options Change Email Frequency Edit the "Daily Trigger (1 PM)" node Modify the schedule (hourly, daily, weekly) Set preferred time zones Adjust Batch Size Edit the "Limit to 10 Contacts" node Change maxItems value (recommend staying under 50) Modify Wait Times Edit the "Random Wait (2-5min)" node Adjust the random delay formula Current: {{ Math.floor(Math.random() * 4) + 2 }} (2-5 minutes) Update Email Content Edit the system message in "AI Email Generator" node Change the joke, signature, or entire email structure Add seasonal content or special promotions 🔧 Troubleshooting Common Issues: Emails not sending Verify Gmail credentials are active Check email quota limits Ensure recipient emails are valid Google Sheets not updating Confirm sheet ID is correct Check column names match exactly Verify Google Sheets credentials AI not generating content Validate OpenAI API key Check API quota and billing Test with different model if needed Rate limiting issues Increase wait times between emails Reduce batch size Check Gmail sending limits 📈 Best Practices Start Small: Begin with 5-10 contacts to test deliverability Monitor Metrics: Track open rates and responses Respect Privacy: Include unsubscribe options Stay Relevant: Update content regularly Follow Regulations: Comply with CAN-SPAM and GDPR 🤝 Contributing to the Community This template is designed to be: Easy to understand**: Clear node names and documentation Production ready**: Includes error handling and rate limiting Customizable**: Template placeholders for personalization Well documented**: Comprehensive setup instructions Feel free to adapt this workflow for your specific healthcare niche! 📄 License This workflow template is provided free to the n8n community under MIT License. 🆘 Support For questions or issues: Check the n8n community forum Review n8n's official documentation Test each node individually to isolate problems Made with ❤️ for the n8n community
by Jitesh Dugar
Streamline your manufacturing quality control process with automated inspection tracking, compliance documentation, and real-time alerts. This workflow eliminates manual QC paperwork while ensuring ISO compliance and instant visibility into product quality. 🎯 Use Case Perfect for manufacturing facilities that need to: Document quality inspections for compliance audits Track product defects and non-conformities Generate certificates of compliance automatically Alert teams instantly when products fail inspection Maintain ISO 9001:2015 documentation requirements ✨ Key Features Automated Data Collection Accepts inspection data from web forms (Typeform) or Google Sheets Processes measurements against predefined specifications Calculates PASS/FAIL status automatically Smart Documentation Stores all inspection records in Google Drive Maintains searchable tracking spreadsheet Generates HTML compliance certificates Creates audit-ready documentation trail Real-Time Alerts Instant Slack notifications for failed inspections Detailed non-conformity reporting Escalation to quality managers Daily Analytics Automated daily quality summaries at 8 AM Pass rate calculations and trend analysis Product and inspector performance metrics 🔧 Setup Requirements Google Workspace - For Sheets and Drive storage Slack - For team notifications Jotform (optional) - For web-based inspection forms Email (SMTP) - For sending compliance certificates 📝 Customization Tips Modify specifications in the "Process Inspection Data" node to match your products Add custom fields for industry-specific requirements Adjust alert thresholds and notification channels Extend certificate templates with your company branding 🏭 Industries Ideal for: Electronics, Automotive Parts, Medical Devices, Consumer Goods, Food & Beverage, Aerospace Components 💡 Example Scenario A electronics manufacturer uses this workflow to inspect PCB assemblies. When an inspector submits measurements via Jotform, the workflow automatically checks if dimensions and weight meet specifications, stores the report, and generates a certificate. If any board fails, the quality manager receives an immediate Slack alert with details. Time Saved: ~2 hours daily on documentation and reporting Error Reduction: 90% fewer data entry mistakes Compliance: 100% audit-ready documentation
by Neloy Barman
Who’s it for Affiliate managers, partner programs, and teams collecting leads via public forms who want automated, error-free routing to separate spreadsheets per affiliate — no more manual copying or sheet hunting. What it does This workflow captures new submissions from a Tally.so form, extracts the affiliate code, finds or creates the corresponding Google Sheet, appends the lead data, and sends a real-time Slack notification. New affiliates are handled automatically: if no sheet exists for the submitted code, the workflow creates one and places it in a designated Google Drive folder. Key features 📝 Real-time Tally form capture (Name, Email, Affiliation Code, Phone) 🔍 Smart routing by affiliation code 📊 Auto-creates new affiliate sheets when needed 📁 Organized storage in a single Google Drive folder 🔔 Instant Slack notifications with full lead details 🔄 How it works Tally submission → Webhook trigger Extract fields: Name, Email Address, Phone Number, Affiliation Code Add current Submission Date and Submission Time Search Google Drive for sheet matching the Affiliation Code ✅ Found → Append row with all data ❌ Not found → Create new sheet → Move to folder → Append row Send formatted Slack alert with full lead info 📋 Requirements Tally.so form including Name, Email Address, Phone Number, and Affiliation Code fields Google Drive folder for storing affiliate sheets Google Sheets & Drive OAuth2 credentials (with Drive + Sheets APIs enabled) Slack bot token with chat:write scope Slack channel ID where notifications will be sent ⚙️ How to set up Import the workflow into n8n Create credentials: Tally API Google Sheets OAuth2 Google Drive OAuth2 Slack Bot Configure nodes: Select your Tally form in the webhook Set the parent Folder ID for affiliate sheets Enter your Slack Channel ID Activate the workflow and start receiving leads! 🛠️ How to customize Add extra fields: Capture additional data (e.g., UTM parameters, notes, referral source) by adding the fields to your Tally form, then map them in the webhook parsing and Google Sheets **Append nodes. Change notification channels: Replace the **Slack node with Discord Webhook, Send Email, Microsoft Teams, or any other notification node to fit your team’s preferred platform. Add validation & duplicate checks: Insert **IF nodes or a Code node before the sheet append to validate data quality, reject incomplete entries, or check for duplicate emails/phone numbers. Support multiple programs or priority routing: Extend the routing logic with **Switch nodes or additional Drive searches to handle different affiliate programs, tiers, or priority queues.
by Avkash Kakdiya
How it works This workflow acts as an instant SDR that replies to new inbound leads across multiple channels in real time. It first captures and normalizes all incoming lead data into a unified structure. The workflow then evaluates IST working days and hours, generates a context-aware AI response, and routes the reply to the correct channel. Finally, it logs the full interaction, response status, and timing into Google Sheets. Step-by-step Step 1: Lead intake & normalization** Incomming Lead whatsapp1 – Receives new WhatsApp lead messages via webhook. Incomming Lead facebook1 – Captures incoming Facebook lead messages. Incomming Lead instagram1 – Listens for Instagram lead messages. Incomming Lead linkdin1 – Captures LinkedIn lead messages. Incomming Lead Website1 – Receives website form submissions. Normalize Lead Data6 – Normalizes WhatsApp lead fields. Normalize Lead Data7 – Normalizes Facebook lead fields. Normalize Lead Data8 – Normalizes Instagram lead fields. Normalize Lead Data9 – Normalizes LinkedIn lead fields. Normalize Lead Data5 – Normalizes website lead data. Switch2 – Merges all normalized leads into a single processing path. Step 2: Working hours & AI response** Extract Day and Hours1 – Converts timestamps to IST and extracts day and time. Is Working Day and Working Hour?1 – Determines whether the lead arrived during business hours. Code in JavaScript3 – Builds the AI prompt using lead details and timing context. Get Ai Response1 – Generates a short, human-like response. Step 3: Send reply & log data** Code in JavaScript4 – Combines AI output with normalized lead data. Switch3 – Routes the response based on the source channel. Send message – Sends WhatsApp replies. Send Instagram Message1 – Sends Instagram responses. Send Facebook Messages1 – Sends Facebook replies. Send Linkdin Messages1 – Sends LinkedIn responses. Send a message1 – Sends email replies for website leads. Code in JavaScript5 – Finalizes response status and metadata. google-sheet-name – Appends or updates lead and response data in Google Sheets. Why use this? Replies instantly to leads across all major inbound channels Keeps all lead data standardized and easy to manage Automatically respects IST working days and hours Reduces manual SDR workload without losing response quality Maintains a complete response log for reporting and follow-up
by WeblineIndia
Detect duplicate candidates by email/phone from Gmail to Slack using Google Sheets This workflow automatically detects duplicate job applicants by checking incoming emails from Gmail against existing records in Google Sheets. If a candidate's email is already found in the sheet, it sends an alert to Slack; otherwise, it adds the candidate to the sheet. Who’s it for HR and recruitment teams processing candidate emails manually Startups or SMEs handling job applications via Gmail Anyone who wants to automate resume collection and deduplication Teams using Slack and Google Workspace How it works Triggers every few minutes via the Schedule Trigger node Fetches recent emails labeled "applicant" from Gmail Extracts candidate details from the email body using regex Reads all existing rows from the Google Sheet Compares the candidate’s email with existing entries If duplicate → Sends a Slack alert If new → Appends to the Google Sheet How to set up Label candidate emails in Gmail with a label like applicant Connect Gmail, Google Sheets, and Slack credentials in n8n Create a Google Sheet with these columns: candidate_name, candidate_email, candidate_phone, role_applied, years_of_experience, recruiter, resume_url, source_email Import the workflow JSON Update: Gmail label ID Google Sheet ID Slack channel or user Activate the workflow Requirements n8n (self-hosted or cloud) Gmail account with access to labeled application emails Google Sheet to store candidates Slack account with chat:write scope Basic regex familiarity (optional) How to customize Change comparison logic to include phone numbers. Add fallback logic to check for similar names. Add filters for roles, experience levels. Forward resumes to Drive or Notion. Trigger an approval flow for screened candidates. Add‑ons Google Drive: Upload parsed resumes. Notion / Airtable: Store structured candidate records. Webhooks: Forward to ATS or CRM. PDF parsers: Extract data from attachments. Use Case Examples | Use Case | Description | | ------------------- | ----------------------------------------------------- | | Resume deduplication | Avoid processing the same applicant twice | | Auto Slack alert | Instantly notify recruiter of repeat candidates | | Centralized tracking | Keep candidate records in Sheets for filtering/export | | Passive sourcing | Run hourly checks on labeled Gmail inboxes | Common troubleshooting | Issue | Possible Cause | Solution | | ------------------------ | ------------------------------------------ | -------------------------------------------------------------- | | Slack message not sent | Invalid Slack token / channel not selected | Reauthorize Slack connection and select correct user/channel | | Google Sheet not updated | Sheet ID or tab name is incorrect | Double-check the Sheet URL and worksheet tab | | Email data not extracted | Email body format doesn’t match regex | Adjust regex in the "Code" node | | Nothing happens | Gmail label or date filter is too strict | Ensure emails exist with the right label in the last X minutes | Need Help? Need help setting it up or tweaking regex for your custom email format? We’re happy to help — just ask! Want to add phone number duplication checks or auto-resume upload to Google Drive? Our Automation team at WeblineIndia can guide you step-by-step.
by Oneclick AI Squad
This automated n8n workflow streamlines the process of receiving, processing, and delivering patient-friendly lab reports with precautionary advice. 🏆 Minimal But Complete Design: Node Flow: 📧 Email Trigger → Monitors inbox for lab reports 📄 PDF Extract → Processes attachments & extracts content 🤖 AI Simplify → Converts medical jargon to simple language ✨ Format Response → Creates beautiful patient-friendly layout 📤 Send Report → Delivers simplified report via email 🚀 Key Features: ✅ Automatic Processing: Monitors email for lab report PDFs Extracts content from attachments No manual intervention needed ✅ AI-Powered Simplification: Converts complex medical terms to plain English Explains what each test result means Adds ✅/⚠️ indicators for normal/abnormal results ✅ Patient-Friendly Output: Professional HTML email formatting Clear sections: Summary, Results, Precautions Includes next steps and follow-up advice ✅ Built-in Safety: Always includes medical disclaimers Encourages consulting healthcare providers Handles edge cases with fallbacks 🛠️ Setup Requirements: APIs Needed: IMAP Email** (Gmail, Outlook, etc.) Ollama AI Model** (Local medical AI) SMTP Email** (Sending service) Quick Configuration: Import the JSON into n8n Set up email credentials (IMAP + SMTP) Configure Ollama medical model Test with a sample lab report 📋 Sample Output: 🩺 Your Lab Report - Simplified ✅ CHOLESTEROL: 180 mg/dL - Normal! Good job maintaining healthy levels. ⚠️ BLOOD SUGAR: 126 mg/dL - Slightly high Normal is under 100. Consider reducing sugar intake. 🔬 VITAMIN D: 25 ng/mL - Low You may need supplements. Ask your doctor. 📋 PRECAUTIONS: • Eat more fruits and vegetables • Exercise 30 minutes daily • Schedule follow-up in 3 months • Watch for: excessive thirst, fatigue
by ueharayuuki
Who's it for This template is perfect for anyone struggling with habit consistency who wants a fun, engaging way to maintain daily routines. It's ideal for productivity enthusiasts, fitness beginners, remote workers, students, or anyone who loves gamification and RPG elements. If you've ever wished your daily tasks felt more like an adventure game, this workflow is for you. How it works The workflow runs automatically every morning at your chosen time (default: 6 AM) and transforms your daily habits into an RPG adventure: Daily Trigger - Scheduled to run every morning Player Stats Generation - Creates random level, XP, and streak data (in production, connect to a database) Quest Generation - Assigns daily "quests" based on the day of week (weekday routines, weekend specials, Monday goals) Quote Fetching - Gets a motivational quote from a free API Achievement Processing - Checks for milestone achievements (7-day streak, 30-day streak, level 10) Email Creation - Builds a beautiful HTML email with game-like design Email Delivery - Sends the quest email via Gmail Stats Logging - Records execution statistics The system includes different habit sets for weekdays and weekends, random bonus quests, a rank system (D to SSS), achievement unlocks, and progress tracking with visual elements like progress bars. Setup steps Setup takes approximately 5 minutes: Import the workflow into your n8n instance Connect Gmail - Click "Create New" in the Gmail node credentials and authenticate via OAuth2 Update recipient email - Change "your-email@gmail.com" to your actual email in the "Send Quest Email" node Customize habits (optional) - Edit the quest arrays in the "Generate Daily Quests" node Test the workflow - Click "Execute Workflow" to send a test email Activate - Toggle the workflow to "Active" when ready for daily automation Requirements Gmail account with OAuth2 authentication n8n instance (cloud or self-hosted) No external API keys required (uses free Quotable API) No database required (uses random data for demonstration) How to customize the workflow Modify Daily Habits Edit the questDatabase object in the "Generate Daily Quests" node: Add your own habits with custom names Adjust XP and coin rewards Change difficulty levels (Easy, Medium, Hard, Epic, Bonus) Set different quests for weekdays vs weekends Visual Customization In the "Create Email Template" node: Modify color schemes in the CSS Adjust font sizes and layouts Change emoji icons for quests Update achievement thresholds Timing and Schedule In the "Daily Morning Trigger" node: Change the trigger hour (default: 6 AM) Adjust timezone if needed Set different schedules for weekdays/weekends Motivational Content Update daily motivation messages for each day of the week Customize achievement names and descriptions Modify rank titles and progression Add your own fallback quotes This workflow brings the addictive nature of RPG games to your daily habits, making routine tasks feel like an epic adventure. Perfect for anyone who wants to level up their life, one quest at a time!
by Incrementors
Description Submit any YouTube, Vimeo, or Zoom webinar URL using a simple form and the workflow handles everything from there. It runs a two-phase pipeline: first identifying the top viral moments in your video without rendering anything, then exporting only the best clips as ready-to-post 9:16 vertical videos with animated captions, an AI hook, and AI subject reframing. Every clip is logged to Google Sheets and a Gmail digest with direct download links arrives in your inbox when all clips are ready. Built for content marketers and social media teams who want to turn a 1–2 hour webinar into short video content without any manual editing. What This Workflow Does Identifies viral moments first, renders second** — Phase 1 scans the entire video and ranks all potential clips by viral score before any rendering happens, so you only pay to export the best ones Exports clips as 9:16 vertical video** — Renders each selected clip in portrait format with animated captions, an AI-generated hook, and AI subject reframing — ready to post on TikTok, Reels, or Shorts Runs two independent polling loops** — Waits patiently for both the identification phase (up to 25 minutes) and the rendering phase (up to 20 minutes) with hard timeouts to prevent indefinite hanging Sorts clips by viral score** — Picks only the highest-scoring clips up to your chosen maximum so the best content always gets exported first Logs every clip to Google Sheets** — Appends one row per clip with title, duration, viral score, tags, description, and download link for your content library Sends a Gmail digest with download links** — Delivers all clip details and direct download links in one email after all clips are logged — with a 24-hour expiry warning so you download immediately Setup Requirements Tools Needed n8n instance (self-hosted or cloud) WayinVideo account with API access Google Sheets (one sheet with a tab named Social Media Clips) Gmail account (the account you want to receive the digest) Credentials Required WayinVideo API key (pasted into 2. Set — Config Values) Google Sheets OAuth2 Gmail OAuth2 Estimated Setup Time: 10–15 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Get your WayinVideo API key — Log in to your WayinVideo account → go to your account or API settings dashboard → copy your API key Fill in Config Values — Open node 2. Set — Config Values → replace all placeholders: | Field | What to enter | |---|---| | YOUR_WAYINVIDEO_API_KEY | Your WayinVideo API key from step 2 | | YOUR_GOOGLE_SHEET_ID | The ID from your Google Sheet URL (the string between /d/ and /edit) | | Social Media Clips | Leave as-is, or change to match your sheet tab name exactly | | you@yourcompany.com | The email address where the Gmail digest should be sent | | YOUR NAME | Your name for the email sign-off | | targetDuration | Leave as DURATION_30_60 for 30–60 second clips, or change to match WayinVideo's supported duration options | | exportRatio | Leave as RATIO_9_16 for vertical video, or change if you want a different aspect ratio | | exportResolution | Leave as HD_720 or change to a higher resolution if your WayinVideo plan supports it | Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly Social Media Clips → add these 10 column headers in row 1: Date, Video Title, Clip #, Clip Title, Duration (sec), Viral Score, Tags, Description, Export Link, Logged At Connect Google Sheets — Open node 19. Google Sheets — Log Clips → click the credential dropdown → add Google Sheets OAuth2 → sign in with your Google account → authorize access Connect Gmail — Open node 22. Gmail — Send Clips Digest → click the credential dropdown → add Gmail OAuth2 → sign in with the Gmail account that matches recipientEmail → authorize access Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Enter Video URL → open it in a browser to submit your first video How It Works (Step by Step) Step 1 — Form: Enter Video URL You open the form URL in a browser and fill in four fields: the video URL (YouTube, Vimeo, or Zoom), a title for the video, your name, and how many clips you want (maximum 5). Submitting the form kicks off the entire workflow automatically. Step 2 — Set: Config Values Your WayinVideo API key, Google Sheet ID, sheet tab name, recipient email, sender name, export settings, and all four form inputs are stored here. The clip count is automatically capped at 5 even if a higher number is entered. A submission timestamp is also generated. Step 3 — HTTP: Submit AI Clipping Task The video URL and title are submitted to the WayinVideo API with enable_export: false. This tells WayinVideo to analyze the video and identify all viral clip candidates without rendering any videos yet. WayinVideo returns a project ID confirming the job was accepted. Step 4 — Code: Save Clipping Project ID The project ID is saved along with all config values. A poll counter is initialized at zero to track how many times Phase 1 has been checked. Step 5 — Wait: 60 Seconds The workflow pauses for 60 seconds before checking the Phase 1 status for the first time, giving WayinVideo time to begin processing. Step 6 — HTTP: Poll Clipping Results A GET request checks the WayinVideo results endpoint using the project ID. It returns the current status and, once complete, the full list of identified clips with their viral scores, titles, descriptions, timestamps, and tags. Step 7 — Code: Check Clipping Status The poll counter is incremented and the status is evaluated. SUCCEEDED sets isReady to true. FAILED throws an error and stops. Still processing continues. If 25 polls pass without success (approximately 25 minutes), the workflow times out with an error. Step 8 — IF: Clips Ready? Phase 1 gate check. If clips are identified (YES path), the workflow moves to select the top clips for export. If still processing (NO path), the workflow routes to 9. Set — Still Clipping which loops back to 5. Wait — 60 Seconds for another cycle. Step 9 — Set: Still Clipping Handles the still-processing case for Phase 1. Sets a brief in-progress message and loops back to the 60-second wait. Step 10 — Code: Select Top Clips for Export All identified clips are sorted by viral score from highest to lowest. The top clips up to your chosen maximum are selected. Their index numbers are extracted and packaged as the clipIndices list needed for the export API call. Step 11 — HTTP: Submit Export Task The selected clip indices are submitted to the WayinVideo export API. The export is configured with: animated captions in original style using caption template temp-7, an AI-generated hook in excited style placed at the beginning, AI subject reframing, 9:16 aspect ratio, and HD 720p resolution. WayinVideo returns an export task ID. Step 12 — Code: Save Export Task ID The export task ID is saved and the export poll counter is reset to zero for the Phase 2 polling loop. Step 13 — Wait: 60 Seconds (Export) The workflow pauses for 60 seconds before checking the Phase 2 rendering status for the first time. Step 14 — HTTP: Poll Export Results A GET request checks the WayinVideo export endpoint using the export task ID. It returns the rendering status and, once complete, the list of exported clips with their download links. Step 15 — Code: Check Export Status The export poll counter is incremented and the status is evaluated. SUCCEEDED sets isExportReady to true. FAILED throws an error. Still rendering continues. If 20 polls pass without success (approximately 20 minutes), the workflow times out. Step 16 — IF: Export Ready? Phase 2 gate check. If rendering is complete (YES path), the workflow moves to build sheet rows and send the email. If still rendering (NO path), the workflow routes to 17. Set — Still Exporting which loops back to 13. Wait — 60 Seconds (Export). Step 17 — Set: Still Exporting Handles the still-rendering case for Phase 2. Sets a brief in-progress message and loops back to the 60-second export wait. Step 18 — Code: Build Sheet Rows The exported clips with download links are matched to the original clip metadata by index. Duration in seconds is calculated. Each clip is assembled into a complete sheet row. An isLastRow flag is set on the final clip. All clip details are also assembled for the Gmail digest. Step 19 — Google Sheets: Log Clips Each clip is appended as one row to your Social Media Clips tab with all 10 columns populated: date, video title, clip number, clip title, duration, viral score, tags, description, download link, and logged-at timestamp. Step 20 — IF: Last Row? After each row is written, this check reads the isLastRow flag. If true (YES path — final clip logged), the Gmail digest is built and sent. If false (NO path — more clips to log), the workflow routes to 23. Set — More Rows and continues logging. Step 21 — Code: Build Gmail Digest The email subject and body are assembled. The body includes a greeting, video title, total clips found, export count, format summary, and a full breakdown of each clip with title, duration, viral score, tags, description, and download link. A clear 24-hour download link expiry warning is included. Step 22 — Gmail: Send Clips Digest The digest email is sent to your recipient email. All clips, their details, and download links arrive in one clean message. Key Features ✅ Two-phase pipeline — Phase 1 identifies all clips first; Phase 2 renders only the top ones — avoiding wasted rendering time and API cost on low-scoring clips ✅ Viral score sorting — Clips are ranked by WayinVideo's viral score before export so your highest-quality content always gets selected first ✅ Two independent retry loops with hard timeouts — Phase 1 retries up to 25 times and Phase 2 retries up to 20 times — long videos never hang indefinitely ✅ 9:16 vertical video with captions and AI hook — Every exported clip is fully production-ready for TikTok, Reels, and Shorts with no manual editing needed ✅ Gmail fires once after all clips are logged — The isLastRow flag ensures you receive one clean email digest, not one email per clip ✅ 24-hour expiry warning in the email — The digest explicitly warns you to download immediately, preventing lost clips due to expired links ✅ Configurable clip count from the form — You set how many clips you want per submission directly in the form — no need to edit the workflow between videos ✅ Permanent clip library in Google Sheets — Every clip from every webinar is logged with its viral score and download link so you can build a searchable content archive Customisation Options Change the clip duration range — In node 2. Set — Config Values, update targetDuration from DURATION_30_60 to a longer or shorter WayinVideo duration option to generate clips of a different length for different platforms. Change the caption style — In node 11. HTTP — Submit Export Task, edit cc_style_tpl from temp-7 to a different WayinVideo caption template ID to change the visual style of the animated captions on your clips. Send to Slack instead of or alongside Gmail — After node 21. Code — Build Gmail Digest, add a Slack node that posts a short summary (video title, number of clips, and the first download link) to a #content-team channel so your social media team sees the clips immediately without checking email. Increase the Phase 1 timeout for very long webinars — In node 7. Code — Check Clipping Status, change pollCount >= 25 to pollCount >= 40 to allow up to approximately 40 minutes for identification on 2+ hour recordings that take longer to process. Log clips to a different sheet per month — In node 2. Set — Config Values, make sheetName dynamic using the current month (e.g. Social Media Clips — April 2026) so clips are automatically organized into monthly tabs without any manual file management. Troubleshooting Form submission not starting the workflow: Confirm the workflow is Active — inactive workflows do not receive form submissions Copy the Form URL fresh from node 1. Form — Enter Video URL after activating — test URLs generated before activation will not work Make sure the Video URL field is filled in correctly — the URL must be a direct link to a publicly accessible video WayinVideo API returning an error or no project ID: Confirm YOUR_WAYINVIDEO_API_KEY in node 2. Set — Config Values is replaced with your actual key — not the placeholder text Check the execution log of node 3. HTTP — Submit AI Clipping Task for the exact error response from WayinVideo Ensure the video URL is publicly accessible — private or password-protected videos cannot be processed by WayinVideo Phase 1 or Phase 2 polling loop timing out: If the loop times out, check your WayinVideo dashboard to see if the job is still processing or failed on their end For very long recordings (2+ hours), increase the timeout in 7. Code — Check Clipping Status or 15. Code — Check Export Status by raising the poll limit from 25 or 20 to a higher number Check the poll count in the execution log to see how many attempts ran before timeout Google Sheets not logging rows: Confirm the Google Sheets OAuth2 credential in node 19. Google Sheets — Log Clips is connected and not expired — re-authorize if needed Check that YOUR_GOOGLE_SHEET_ID in node 2. Set — Config Values is the ID from the sheet URL, not the full URL Confirm the tab is named Social Media Clips exactly and all 10 column headers in row 1 match exactly Gmail digest not arriving: Confirm the Gmail OAuth2 credential in node 22. Gmail — Send Clips Digest is connected and authorized Check that you@yourcompany.com in node 2. Set — Config Values is replaced with your actual email address Check your spam or promotions folder — automated Gmail OAuth2 messages sometimes land there on first send Check the execution log of node 22 for any Gmail API error message 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/
by WeblineIndia
WooCommerce Seasonal Sales Planning & Monitor → SET Pattern Compare → Slack This workflow automatically aggregates sales data, calculates performance trends (Revenue & Orders) against previous months and years, identifies the top-selling SKU and sends a strictly formatted, professional summary report to Slack. This workflow runs on a schedule (e.g., daily or weekly) to generate a snapshot of your business performance. It fetches sales data from your database or e-commerce platform, calculates growth percentages (vs. Month, vs. Year), formats the data into a clean JSON structure and sends a structured report to Slack without unnecessary clutter or emojis. You receive: Automated comparison of Revenue & Order counts** Trend analysis (Percentage change & directional trend)** Identification of the Top Performing SKU** A clean, professional Slack alert for team visibility** Ideal for management teams needing a quick, data-driven pulse check on store performance without manually running reports. Quick Start – Implementation Steps Add your Database or API Credentials (e.g., Postgres, Shopify, WooCommerce) in the data fetching nodes. Connect your Slack account credentials and select the target channel. Ensure your data source provides current, vsMonth and vsYear metrics (or use the calculation nodes provided). Review the Slack Node to ensure the JSON block formatting matches your preference. Activate the workflow — automated reporting begins instantly. What It Does This workflow automates the generation of your business trend report: Trigger: Starts automatically based on a schedule (e.g., every morning at 8 AM). Fetch Data: Retrieves raw sales numbers for the current period, previous month and previous year. Process Trends: Calculates the percentage difference and determines the trend direction (Increase, Flat, Decrease). Identify Top SKU: Sorts product sales to find the highest-performing item of the period. Format Report: Constructs a strict JSON object containing: Revenue (Current, vs Month, vs Year) Orders (Current, vs Month, vs Year) Top SKU Name Send Slack Alert: Pushes a cleanly formatted message (using Block Kit or Markdown) to your team channel. This ensures your team focuses on the numbers that matter, with zero manual effort. Who’s It For This workflow is ideal for: E-commerce Store Owners Sales & Marketing Managers Data Analysts Operations Teams Executive leadership requiring daily snapshots Teams preferring data-heavy, emoji-free reports Requirements to Use This Workflow To run this workflow, you need: n8n instance** (cloud or self-hosted) Data Source** (PostgreSQL, MySQL, Shopify, WooCommerce or Google Sheets) Slack workspace** with API permissions (Webhook or Bot Token) Basic understanding of JSON structure for Slack Block Kit How It Works Scheduled Trigger – Initiates the workflow at a specific time. Get Sales Data – Queries your backend to get the raw numbers. Calculate Logic – Compares current numbers vs. historical data to generate percentages. Create Report Object – Maps the values into a standardized JSON format (e.g., revenue.current, orders.vsYear). Format Message – Converts the JSON object into a Slack-readable text block or UI block. Send Notification – Posts the final report to Slack. Setup Steps Import the provided n8n JSON file. Open the Data Fetch nodes and configure your database/API connection. Ensure your query returns the necessary fields (Revenue Orders, SKU). Verify the Format Data node is correctly mapping your variables to the JSON structure: {{ $json"revenue" }} {{ $json"orders"["percent"] }} Connect Slack API credentials and choose your channel. Run a test execution to verify the numbers appear correctly in Slack. Activate the workflow — done! How To Customize Nodes Customize Report Metrics Modify the Set/Calculation nodes: Add Average Order Value (AOV) Include Customer Acquisition Cost (CAC) Change the comparison period (e.g., vs Last Week instead of Month) Customize Slack Layout You can modify the JSON in the Slack node to: Use Block Kit for a table-like structure (columns for Revenue/Orders) Use Plain Text for a simple list view Add or remove bold formatting (bold) Add a "View Dashboard" button link Customize Data Source Replace the generic database node with: Shopify Node** (Get Orders) WooCommerce Node** (Get Sales Report) Stripe Node** (Get Balance Transactions) Google Sheets** (Read Row) Add-Ons (Optional Enhancements) You can extend this workflow to: Send reports to Email or Microsoft Teams in addition to Slack. Generate a PDF report using an HTML-to-PDF service. Save the daily snapshot into a "History" table in Airtable/Database. Add conditional alerts (e.g., @mention the CEO if Revenue drops by >20%). Integrate with OpenAI to write a qualitative analysis of the trends. Use Case Examples 1. Morning Standup Report Delivers key metrics to the team channel 15 minutes before the daily meeting. 2. Performance Monitoring Quickly identifies if a new marketing campaign is driving order volume. 3. Inventory Awareness Highlights the "Top SKU" so the warehouse team knows what is moving fast. 4. Executive Summaries Provides leadership with a noise-free, "just the numbers" view of the business. Troubleshooting Guide | Issue | Possible Cause | Solution | | :--- | :--- | :--- | | "N/A" in Trend | No historical data found | Ensure database has data for previous month/year | | Slack formatting broken | Invalid JSON syntax | Check quotes and brackets in Slack node | | Wrong Top SKU | Sorting logic incorrect | Verify the "Sort" node is ordering by Count DESC | | Authentication Error | Slack token expired | Re-connect Slack credentials in n8n | | Workflow not running | Schedule disabled | Toggle "Active" switch to ON | Need Help? If you need help customizing or extending this workflow — integrating specific ERPs, creating complex visual dashboards or scaling your data reporting, feel free to contact our n8n workflow development experts at WeblineIndia. We are happy to assist you with advanced automation solutions.