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 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 isaWOW
Description Paste any onboarding video URL into a simple form and the workflow handles everything automatically. It transcribes the video, sends the full transcript to an AI that writes the exact number of quiz questions you requested, and saves the complete quiz directly to your Google Sheet. Built for HR teams, L&D managers, and anyone who creates employee training content at scale. What This Workflow Does Accepts video input via form** — Collects the video URL, department topic, and desired question count from a clean, shareable web form Transcribes the video automatically** — Sends the video to WayinVideo and receives a clean, timestamped transcript with speaker labels Polls until transcription is ready** — Waits 45 seconds then keeps checking until the transcript is fully complete before moving forward Generates accurate MCQ questions** — An AI agent reads the full transcript and creates exactly the number of questions requested, each with four options and a correct answer Anchors every question to the transcript** — Each question includes a speaker reference and timestamp so you can verify answers directly in the video Saves the quiz to Google Sheets** — Appends all questions, metadata, and generation timestamp to your Quiz Bank tab automatically Setup Requirements Tools you'll need Active n8n instance (self-hosted or n8n Cloud) WayinVideo account + API key (for video transcription) OpenAI API key (GPT-4o-mini for quiz generation) Google Sheets with OAuth2 access (for saving the quiz) Estimated Setup Time: 10–15 minutes Step-by-Step Setup Get your WayinVideo API key — Log in to your WayinVideo account, go to API settings, and copy your API key. Add your WayinVideo key to Node 2 — Open the 2. WayinVideo — Submit Transcript node. In the Authorization header, replace YOUR_WAYINVIDEO_API_KEY with your actual key. Add your WayinVideo key to Node 4 — Open the 4. WayinVideo — Get Transcript node. Replace YOUR_WAYINVIDEO_API_KEY again in the Authorization header. > ⚠️ Your WayinVideo API key appears in two nodes — replace it in both 2. WayinVideo — Submit Transcript AND 4. WayinVideo — Get Transcript or the workflow will fail. Add your OpenAI API key — Open the OpenAI — Chat Model node and connect your OpenAI API credentials. If you haven't added them yet, go to n8n Settings → Credentials → New → OpenAI. Fix the IF node condition — Open the 5. If — Transcript Status Check node. Set the left value to {{ $json.data.status }} and the right value to SUCCEEDED. This tells the workflow to move forward only when transcription is complete. > ⚠️ This step is critical. Without this condition, the workflow will loop forever and never generate your quiz. Create your Google Sheet — Create a new Google Sheet with a tab named exactly Quiz Bank. Add these column headers in row 1: Department, Video URL, Total Questions, Quiz Questions, Generated On. Connect Google Sheets — Open the 7. Google Sheets — Save Quiz Bank node. Connect your Google Sheets OAuth2 credentials. Add your Sheet ID — In the same node, replace YOUR_GOOGLE_SHEET_ID with your actual Sheet ID. Find it in your Google Sheet URL — it's the long string between /d/ and /edit. Activate the workflow — Toggle the workflow ON. Open the form URL and run a test with a short video to confirm everything works end to end. How It Works (Step by Step) Step 1 — Form Trigger: Collect Video Details The workflow starts when someone submits the web form. They enter the onboarding video URL, their department or topic name, and how many questions they want. This is the only manual step — everything after this is fully automatic. Step 2 — HTTP Request: Submit Video to WayinVideo The workflow sends the video URL to the WayinVideo API to start the transcription job. WayinVideo processes the video and returns a unique transcription ID that the workflow uses to track progress. Step 3 — Wait: Pause for 45 Seconds The workflow pauses for 45 seconds to give WayinVideo time to process the video before checking whether it's ready. For longer videos, you can increase this wait time. Step 4 — HTTP Request: Fetch the Transcript Using the transcription ID from Step 2, the workflow calls WayinVideo again to retrieve the results. The response includes the full transcript with speaker names, timestamps, and spoken text for each segment. Step 5 — IF Check: Is the Transcript Ready? The workflow checks whether the transcription status equals SUCCEEDED. If yes, it moves forward to quiz generation. If no, it loops back to the 45-second wait and tries again. This polling loop repeats automatically until the transcript is fully ready. Step 6 — AI Agent: Generate the Quiz The full transcript is passed to GPT-4o-mini with a detailed prompt. The AI reads only the transcript — no outside knowledge — and generates exactly the number of MCQ questions requested. Each question has four options, one correct answer, and a reference to the speaker and approximate timestamp in the video. Step 7 — Google Sheets: Save the Quiz The completed quiz, along with the department name, video URL, question count, and generation timestamp, is appended as a new row in your Quiz Bank tab. The quiz is ready to review, share, or export. Key Features ✅ Exact question count — The AI always generates exactly the number of questions you requested — no more, no less ✅ Transcript-only questions — Every question is based strictly on what was said in the video, with no general knowledge mixed in ✅ Speaker + timestamp references — Each answer includes a citation so trainers can verify answers directly in the video ✅ Automatic polling loop — The workflow retries until transcription is complete, so you never have to check manually ✅ Simple form interface — Anyone on your team can use it — no n8n knowledge required ✅ Centralised quiz bank — All quizzes are saved to one Google Sheet, organised by department and date ✅ Swap the AI model — Easily upgrade to a stronger model for more complex training content Customisation Options Increase the wait time for long videos — Open the 3. Wait — 45 Seconds node and increase the wait duration if your training videos are longer than 15–20 minutes. Upgrade to a stronger AI model — In the OpenAI — Chat Model node, replace gpt-4o-mini with gpt-4o for higher-quality questions on dense or technical content. Change the quiz language — Edit the system prompt in the 6. AI — Generate MCQ Quiz node to request questions in any language. Also update the target_lang parameter in the 2. WayinVideo — Submit Transcript node to match. Add a difficulty level to the form — Add a new field to the 1. Form — Video URL + Topic node (e.g. Easy / Medium / Hard) and reference it in the AI prompt to adjust question complexity. Send the quiz by email — Add a Gmail or Outlook node after 7. Google Sheets — Save Quiz Bank to automatically email the completed quiz to the requester or their manager. Add a Slack notification — Insert a Slack node at the end to post a message to a team channel whenever a new quiz is saved, including the department name and question count. Troubleshooting Workflow loops forever and never generates questions: Open 5. If — Transcript Status Check and confirm the condition is set: left value {{ $json.data.status }} equals SUCCEEDED Without this condition, the workflow will always take the false path and loop indefinitely Transcription fails or returns an error: Check that your WayinVideo API key is correct in both nodes 2 and 4 Make sure the video URL is publicly accessible — private or region-restricted videos will fail Try increasing the wait time in 3. Wait — 45 Seconds for longer videos Quiz not saving to Google Sheets: Verify your Google Sheets OAuth2 credentials are connected in 7. Google Sheets — Save Quiz Bank Confirm the Sheet ID is correct — use only the ID string, not the full URL Check that the tab is named exactly Quiz Bank (case-sensitive) AI generates the wrong number of questions: The prompt already instructs the AI firmly on question count — if this happens, open 6. AI — Generate MCQ Quiz and add an extra line to the prompt: You must generate exactly [N] questions. Stop at exactly [N]. Consider upgrading to gpt-4o for stricter instruction-following Form not collecting responses: Make sure the workflow is toggled ON (activated) before sharing the form URL Test mode and production mode use different URLs in n8n Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@isawow.com 🌐 Website: https://isawow.com/
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 Ł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 Madame AI
Audit browser & Proxies fingerprint and IP integrity to Slack reports Introduction This workflow performs a comprehensive security audit on your web scraping infrastructure to detect potential IP leaks or bot detection flags. It iterates through a list of fingerprinting services and guarded websites using BrowserAct, uses AI to analyze the diagnostic data for anomalies (like mismatched User-Agents or leaked WebRTC IPs), and logs the results to Google Sheets before delivering a final "Go/No-Go" report to Slack. Target Audience Web scraping developers, DevOps engineers, and security analysts who need to verify that their automation infrastructure is not being flagged as a bot. How it works Initialization: The workflow starts by clearing a designated Google Sheet to prepare for a fresh audit. Target Definition: A Set node defines a list of diagnostic URLs (e.g., BrowserScan, IPQualityScore) and specific guarded websites (e.g., Footlocker) to test. Looping: A Split In Batches node iterates through each URL one by one. Data Extraction: The BrowserAct node visits each URL. It executes the "Bot Detection Check" template to extract raw fingerprint data, headers, and access logs. Forensic Analysis: An AI Agent (using OpenRouter/GPT-4o) acts as a security analyst. It parses the raw scraping output to identify specific red flags, such as "WebDriver" leaks, IP blacklisting, or CAPTCHA blocks. Logging: The individual analysis for each site is appended to a Google Sheet. Aggregation: Once all sites are checked, the workflow fetches all rows from the Google Sheet. Final Verdict: A second AI Agent reviews the aggregate data to generate a master report, calculating a success rate and identifying consistency issues across different checks. Notification: The final formatted report is sent to a Slack channel. How to set up Configure Credentials: Connect your BrowserAct, OpenRouter, Google Sheets, and Slack accounts in n8n. Prepare BrowserAct: Ensure you have the Bot Detection Check template saved and active in your BrowserAct library. Setup Google Sheet: Create a new Google Sheet. (See headers below). Define Targets: Open the Define Target URLs node and populate the array with the detection services you wish to test. Configure Guarded Sites: Open the Add guarded test step node if you wish to change the specific e-commerce or protected site being tested (default is Footlocker). Select Slack Channel: Update the Send Report node to point to your desired Slack channel. Google Sheet Headers To use this workflow, create a Google Sheet with the following header in the first row: Result Requirements BrowserAct Account:* Required to perform the browser-based checks. You must have the *Bot Detection Check** template. OpenRouter Account:** Required for the GPT-4o model to perform the forensic analysis. Google Sheets:** Used as a temporary database to store logs during the loop. Slack Account:** Used to receive the final audit report. How to customize the workflow Add Email Alerts: Add a Gmail or SendGrid node after the final AI Agent to email the report to stakeholders if the "Scorecard" falls below a certain threshold. Deepen the Analysis: Modify the System Prompt in the Analyze the site results node to check for specific custom headers or headers required by your target websites. Rotate Proxies: If the report returns a "Fail," you could extend the workflow to trigger a proxy rotation API (like Bright Data or IPRoyal) automatically. Need Help? How to Find Your BrowserAct API Key & Workflow ID How to Connect n8n to BrowserAct How to Use & Customize BrowserAct Templates Workflow Guidance and Showcase Video How to Test Your Proxies for n8n: AI-Powered Fingerprint & Bot Check
by Hyrum Hurst
Who this is for Property management companies managing frequent tenant move-outs across multiple units. What this workflow does Automatically schedules and coordinates move-out cleaning and repair tasks, sends vendor instructions, notifies internal teams, tracks completions, and logs everything for reporting. How it works Cron triggers workflow before lease end. AI generates personalized move-out instructions and checklists. Vendors and property management teams are notified. Completion updates logged in Google Sheets. Optional AI suggests follow-up actions for delays. How to set up Connect tenant data, configure Cron, Slack, Email, and Task Manager credentials. Customize AI prompts and verify notification flows. Requirements Google Sheets Email & Slack credentials AI Node access Task Manager (Trello/Asana/etc.) Built by QuarterSmart. Created by Hyrum Hurst.