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.
by Incrementors
Paste your live stream recording URL into a simple form — and this workflow automatically finds the most viral moments and turns them into ready-to-upload short clips. WayinVideo AI analyzes the full stream, extracts the best highlights, and uploads each clip directly to your Google Drive folder. Built for streamers, content teams, and social media managers who want to repurpose long streams into shareable content without watching hours of footage. What This Workflow Does Form-triggered entry** — Accepts a stream URL, channel name, category, and clip count via a clean web form — no chat interface or code needed AI clip extraction** — Sends the stream to WayinVideo AI which automatically identifies the most viral and exciting moments Automated waiting** — Pauses 90 seconds after submission to give the API time to process before fetching results Smart clip parsing** — Extracts each clip's title, score, tags, description, and timestamps from the API response Batch downloading** — Downloads every clip file automatically, one by one, in sequence Auto-named uploads** — Saves each clip to Google Drive using the AI-generated clip title as the filename — no manual renaming needed Setup Requirements Tools You'll Need n8n instance (self-hosted or n8n Cloud) WayinVideo account with API access Google account with Google Drive OAuth2 credentials in n8n Estimated Setup Time: 5–10 minutes Step-by-Step Setup 1. Get your WayinVideo API key Go to WayinVideo, log in, and navigate to your Dashboard → API section. Copy your Bearer token. 2. Add the API key to node 2 Open 2. WayinVideo — Submit Clipping Task. Find the Authorization header. Replace YOUR_WAYIN_API_KEY_HERE with your token. 3. Add the API key to node 4 Open 4. WayinVideo — Get Clips Result. Find the Authorization header again. Replace YOUR_WAYIN_API_KEY_HERE with the same token. > ⚠️ The API key appears in 2 nodes — nodes 2 and 4. Replace it in both or the workflow will fail. 4. Connect Google Drive In n8n, go to Credentials → Add Credential → Google Drive OAuth2. Complete the Google authentication flow. 5. Set your Drive folder ID Open 7. Google Drive — Upload Clip. Find the folderId field. Replace YOUR_GOOGLE_DRIVE_FOLDER_ID_HERE with your actual folder ID. > 💡 To find your folder ID: open the target folder in Google Drive, look at the URL bar — copy the long string of letters and numbers after /folders/. 6. Select your Drive credential In the same node (7. Google Drive — Upload Clip), select your connected Google Drive credential from the dropdown. 7. Activate the workflow Toggle the workflow to Active at the top of the n8n canvas. Copy the Form URL and share it with your team or streamers. How It Works (Step by Step) Step 1 — Form Trigger A streamer or team member opens the form and fills in four fields: the stream recording URL, the channel name, the stream category, and how many highlight clips they want. The moment they submit, the workflow starts automatically. Step 2 — WayinVideo — Submit Clipping Task The workflow sends a POST request to the WayinVideo AI Clipping API with the stream URL and your settings. It requests 9:16 vertical clips (ideal for Shorts and Reels), 30–60 seconds long, with captions enabled, an AI-generated hook at the beginning, and auto-reframing applied. The API returns a Job ID to track the task. Step 3 — Wait 90 Seconds The workflow pauses for 90 seconds. This gives WayinVideo enough time to begin processing the stream before the next step checks for results. > ⚠️ For streams longer than 90 minutes, this wait may not be long enough. If clips come back empty, increase this wait to 180–300 seconds. Step 4 — WayinVideo — Get Clips Result Using the Job ID from Step 2, the workflow calls the WayinVideo results endpoint to fetch the completed clips. Each clip in the response includes a title, export link, virality score, tags, description, and start/end timestamps. Step 5 — Code — Extract Clip Data A JavaScript code block loops through all the clips returned by the API and separates them into individual items. Each item carries its own title, export link, score, tags, description, and timestamps — ready to be processed one by one. Step 6 — HTTP — Download Clip For each clip, the workflow downloads the actual video file from the WayinVideo export link. The file is held in memory and passed directly to the next step. Step 7 — Google Drive — Upload Clip Each downloaded clip is uploaded to your specified Google Drive folder. The filename is automatically set to the AI-generated clip title — so your Drive stays organized without any manual work. Key Features ✅ No-code form trigger — Anyone on your team can submit a stream URL without touching n8n ✅ AI virality scoring — Each clip comes with a score so you know which moments hit hardest ✅ Vertical format output — Clips are auto-generated in 9:16 ratio, ready for TikTok, Reels, and Shorts ✅ Auto-captions included — WayinVideo adds captions to every clip automatically during processing ✅ AI hook generation — An AI-written hook is added to the beginning of each clip to boost retention ✅ Smart auto-naming — Drive uploads use the AI clip title, keeping your folder clean and searchable ✅ Batch processing — Handles multiple clips in one run — no manual looping or repeat submissions ✅ Timestamp metadata — Each clip carries exact start and end timestamps for future reference or logging Customisation Options Change clip length — In 2. WayinVideo — Submit Clipping Task, change target_duration from DURATION_30_60 to DURATION_15_30 for shorter Reels or DURATION_60_90 for longer YouTube clips. Switch to horizontal format — Change ratio from RATIO_9_16 to RATIO_16_9 in the same node for YouTube landscape highlights. Change caption language — Update target_lang in node 2 from en to hi, es, fr, or de to generate captions in a different language. Log clips to Google Sheets — Add a Google Sheets node after 7. Google Drive — Upload Clip to automatically record each clip's title, score, Drive link, and timestamps in a spreadsheet for reporting. Send a Slack or email notification — Add a Gmail or Slack node at the end to ping your team when all clips are uploaded and ready to review. Dynamic Drive folder by streamer — Modify the folder ID in node 7 using an expression based on the Streamer / Channel Name field from the form, so each creator gets their own organized subfolder automatically. Troubleshooting API returns empty or no clips: Confirm your WayinVideo API key is correct in both node 2 and node 4 Check your WayinVideo account has active credits or an active subscription Make sure the stream URL is publicly accessible — private, unlisted, or age-restricted videos won't work Test with a shorter video first (under 30 minutes) to isolate the issue Clips missing after the wait: The 90-second wait may not be enough for long streams — open 3. Wait — 90 Seconds and increase the amount to 180 or 300 Check your WayinVideo dashboard to see if the job is still processing Google Drive upload failing: Re-authenticate your Google Drive OAuth2 credential in n8n Credentials Double-check that the folder ID in node 7 is correct — open the target folder in Drive and copy the ID from the URL Make sure the credential has write access to the target folder Form not triggering the workflow: Make sure the workflow is toggled Active — inactive workflows do not run Copy the Form URL from the trigger node and test it in a fresh browser tab 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 LukaszB
Description This workflow is an AI-powered contact form triage and auto-response system built for businesses that want to handle website enquiries in a faster, cleaner, and more professional way. Instead of treating every incoming form submission the same way, the workflow automatically reviews the message, identifies its intent, and routes it into the correct path. Genuine enquiries are logged, shared with the internal team, and answered with a polished confirmation email. Seller pitches and spam submissions are separated from real leads so the inbox stays cleaner and the team can focus on messages that actually matter. It is especially useful for companies that receive regular website enquiries and want to improve response speed, reduce manual review, maintain cleaner lead records, and deliver a more professional first-touch experience without building a complex support process. How it works This workflow is built to automate the handling of incoming website form submissions in a more intelligent and structured way. It is useful for businesses that want to instantly process new enquiries, separate genuine leads from seller pitches or spam, notify the internal team, and send a professional confirmation email without manual work. Instead of treating every form submission the same way, the workflow uses AI to understand the intent of the message and decide what should happen next. The workflow follows these high-level steps: A new form submission is received through a webhook. The incoming data is standardized into a clean internal structure. AI analyzes the message and classifies it as a real enquiry, a seller / outreach message, or spam. Real enquiries are saved, sent to the internal team, and answered with a professional confirmation email. Seller messages are saved and forwarded internally without sending an automatic client reply. Spam or low-value submissions are filtered out to keep the workflow clean and efficient. Set up steps Setup usually takes around 20 to 40 minutes, depending on how your website form is currently built and whether you want to use Telegram or email for internal notifications. Before using the workflow, you will need to: connect your website form to the webhook map the incoming form fields in the Set data node create the data table used for storing submissions connect your OpenAI credential for classification and email generation connect your Gmail credential for confirmation emails optionally connect Telegram for internal notifications, or replace it with email notifications All detailed configuration notes and implementation guidance are included inside the workflow as sticky notes.
by Incrementors
Paste any podcast or YouTube video URL into a simple form and the workflow handles everything else. WayinVideo extracts summary and key highlights from the video, then OpenAI reads those highlights and writes a structured 550–700 word blog post with a title and subheadings. The finished blog post, along with the summary, highlights, and tags, is saved automatically as a new row in your Google Sheet. Built for content marketers, podcast teams, and agencies who want to turn video content into written blog posts without spending hours writing manually. What This Workflow Does Extracts video summary and highlights automatically** — Sends the video URL to WayinVideo, which returns a written summary, timestamped key highlights, and content tags — no manual watching needed Writes a full blog post using AI** — Passes the summary and highlights to OpenAI GPT, which writes a 550–700 word human-sounding blog post with a title, hook, subheadings, and a closing insight Structured blog output every time** — The output parser ensures the blog always arrives as a clean JSON object with a blog_title and blog_content field — no formatting errors Saves everything to Google Sheets** — Appends the video URL, blog title, full blog post, key summary, highlights, and tags as a new row in your sheet — your content library grows automatically Auto-retry if summary is not ready** — If WayinVideo has not finished processing when first checked, the workflow waits another 40 seconds and retries automatically until highlights are available Form-based submission** — Anyone on your team can paste a video URL and submit via the web form — no access to n8n required Brand-aware output** — The form collects your brand or show name alongside the URL — useful for tracking which content belongs to which show or client Setup Requirements Tools you'll need: Active n8n instance (self-hosted or n8n Cloud) WayinVideo account + API key OpenAI account + API key Google account connected to n8n via Google Sheets OAuth2 A Google Sheet with columns: Video URL, Blog Title, Blog, Key Summary, Highlights, Tags Estimated Setup Time: 15–20 minutes Step-by-Step Setup Get your WayinVideo API key Log in at WayinVideo, go to your account settings or developer section, and copy your API key. Paste the API key into node "2. WayinVideo — Submit Summary Request" Open this node, find the Authorization header, and replace YOUR_WAYINVIDEO_API_KEY with your actual key. Paste the API key into node "4. WayinVideo — Get Summary Result" Open this node, find the same Authorization header, and replace YOUR_WAYINVIDEO_API_KEY again. > ⚠️ This key appears in 2 nodes — you must replace it in both "2. WayinVideo — Submit Summary Request" and "4. WayinVideo — Get Summary Result". Missing either one will cause the workflow to fail. Connect your OpenAI account in node "7. OpenAI — GPT Chat Model" Open this node, click the credential field, and connect your OpenAI account. You will need a valid OpenAI API key from platform.openai.com. Set your Google Sheet URL in node "8. Google Sheets — Save Blog Content" Open this node and replace YOUR_GOOGLE_SHEET_URL with the full URL of your Google Sheet. To find it: open your Google Sheet in a browser and copy the entire URL from the address bar. Set your sheet tab in node "8. Google Sheets — Save Blog Content" In the same node, replace YOUR_SHEET_GID with the name of your sheet tab (e.g. Sheet1 or Sheet2). Then connect your Google Sheets credential via OAuth2. Prepare your Google Sheet columns Make sure your Google Sheet has these exact column headers in row 1: Video URL, Blog Title, Blog, Key Summary, Highlights, Tags — the workflow maps to these names exactly. Activate the workflow Toggle the workflow to Active. Open the form URL generated by node "1. Form — Podcast URL + Brand Name" and submit a test video URL to confirm the full workflow runs and a new row appears in your sheet. How It Works (Step by Step) Step 1 — Form Trigger (Web Form) The workflow starts when someone fills in the form. You enter two things: the podcast or YouTube video URL and your brand or show name. The form is hosted by n8n and can be shared with anyone on your team — no login required. Step 2 — Submit to WayinVideo Summaries API The video URL is sent to WayinVideo's Summaries endpoint. WayinVideo begins analysing the video and returns a task ID the workflow uses to check for results. The request asks for the output in English. Step 3 — Wait 40 Seconds The workflow pauses for 40 seconds to give WayinVideo time to process the video before checking for results. This prevents the workflow from requesting data before it is ready. Step 4 — Fetch Summary Results from WayinVideo The workflow calls WayinVideo's results endpoint using the task ID from Step 2. It receives the video title, written summary, timestamped highlights, and content tags — or an empty result if processing is not yet complete. Step 5 — Check: Highlights Ready? (YES / NO branch) YES** — If the highlights array is non-empty, the workflow moves forward and passes the data to the AI blog writer. NO** — If highlights are not available yet, the workflow loops back to Step 3, waits another 40 seconds, and checks again. This repeats until highlights are returned. > ⚠️ Infinite Loop Risk: If WayinVideo never returns highlights — because the video URL is invalid, private, or unsupported — this loop runs forever. Add a retry counter to stop after 8–10 attempts and send an error notification instead. Step 6 — AI Agent Writes the Blog Post (OpenAI) The video summary, highlights, and tags are passed to an OpenAI GPT agent with a detailed writing prompt. The prompt instructs GPT to write a 550–700 word blog post in a warm, human tone — with a hook, two to three subheaded sections, and a closing insight. It uses specific facts and names from the highlights wherever available. Step 7 — OpenAI GPT Chat Model This is the GPT model that powers the AI agent in Step 6. It processes the prompt and generates the blog content. Step 8 — Output Parser (Structured Blog) This step ensures the AI response is returned as a clean JSON object with exactly two fields: blog_title and blog_content. This prevents formatting errors before the data is written to Google Sheets. Step 9 — Google Sheets Saves the Blog The finished blog title, blog content, key summary, highlights, tags, and original video URL are appended as a new row in your Google Sheet. Your content library grows automatically with every form submission. The final result is a new row in your sheet containing a complete, ready-to-publish blog post — written from the video content, saved and organised automatically. Key Features ✅ Video to blog post in one form submission — Paste a URL, get a 550–700 word structured blog post saved to your sheet — no writing, no editing, no watching the video ✅ Human-style writing prompt — The AI agent is instructed to write like a thoughtful journalist — warm, story-driven, with real facts and no filler — not robotic AI text ✅ Highlights-driven content — The blog is written from WayinVideo's timestamped key highlights, not a generic summary — the most important moments from the video become the blog's core content ✅ Structured output every time — The output parser guarantees the blog always arrives as a clean blog_title + blog_content object — no broken formatting in your sheet ✅ Auto-retry on slow processing — If WayinVideo takes longer than 40 seconds, the workflow waits and retries automatically — no manual re-runs needed ✅ Full content archive in Google Sheets — Every blog post is saved with its video URL, summary, highlights, and tags — your whole team can search, review, and reuse past content ✅ Works with any video platform — Accepts YouTube, podcast recording URLs, Zoom recordings, or any video URL that WayinVideo supports Customisation Options Upgrade to GPT-4o for better writing quality In node "7. OpenAI — GPT Chat Model", change the model value from gpt-5-mini to gpt-4o for richer, more nuanced blog copy — especially useful for long-form or client-facing content. Add LinkedIn and Twitter captions after the blog After "6. AI Agent — Generate Blog Post", add a second AI Agent with a prompt asking it to write a LinkedIn post and two Twitter/X threads based on the same highlights — all from the same video data. Send a Slack or email notification when a new post is saved After "8. Google Sheets — Save Blog Content", add a Slack or Gmail node to notify your content team that a new blog post is ready — include the blog title and video URL in the message. Change the blog language In node "2. WayinVideo — Submit Summary Request", change "target_lang": "en" to another language code (e.g. "es" for Spanish, "hi" for Hindi) — the summary and highlights will come back in that language and the AI agent will write the blog in the same language. Add a publish step to WordPress or Webflow After "8. Google Sheets — Save Blog Content", add an HTTP Request step to send the blog_title and blog_content to your CMS via its API — so the blog post is drafted directly in your publishing platform without copy-pasting. Add a retry limit to prevent infinite loops Add a Set step before the retry path in "5. IF — Highlights Ready?" to track a counter, and a second IF check to stop after 10 attempts — route to a Gmail or Slack error notification instead of looping forever. Troubleshooting WayinVideo API key not working: Check that you replaced YOUR_WAYINVIDEO_API_KEY in both "2. WayinVideo — Submit Summary Request" and "4. WayinVideo — Get Summary Result" — missing either one causes the workflow to fail Confirm your WayinVideo account is active and the key has not expired Make sure there are no extra spaces before or after the key when pasting Workflow stuck in the retry loop: Check that the video URL is publicly accessible — private, age-restricted, or unsupported videos will not be processed by WayinVideo Open the output of "4. WayinVideo — Get Summary Result" and inspect the raw response — WayinVideo may have returned an error or an empty highlights array If the loop never exits, deactivate and reactivate the workflow, fix the video URL, and resubmit the form OpenAI step failing or returning an error: Check that the OpenAI credential in "7. OpenAI — GPT Chat Model" is connected and your API key is valid at platform.openai.com Make sure your OpenAI account has available credits — a depleted account causes the AI step to fail silently If the structured output parser fails, check the raw output of "6. AI Agent — Generate Blog Post" — the blog_title or blog_content key may be missing from the response Google Sheets not saving rows: Confirm that YOUR_GOOGLE_SHEET_URL in "8. Google Sheets — Save Blog Content" was replaced with the full URL of your actual Google Sheet Check that your sheet has the exact column headers: Video URL, Blog Title, Blog, Key Summary, Highlights, Tags — a typo in any header will cause that column to be skipped Make sure the Google Sheets OAuth2 credential is connected and not expired — reconnect it in n8n credentials if needed Form not triggering the workflow: Make sure the workflow is set to Active — it will not accept form submissions while inactive Copy the production form URL directly from "1. Form — Podcast URL + Brand Name" by clicking the node — do not use the test URL Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@incrementors.com 🌐 Website: https://incrementors.com/
by Salman Mehboob
**Send personalized LinkedIn InMails automatically to CEOs and founders using n8n, Google Sheets, and Unipile — with built-in duplicate prevention, credit tracking, and full conversation ID logging. Scale your LinkedIn outreach without manually writing or sending a single InMail. This workflow reads your leads from a Google Sheet, filters out already-messaged prospects, and sends each one a fully personalized InMail — with their first name and company name injected automatically — on a schedule, hands-free. Built for founders, sales professionals, and automation builders who want consistent, professional LinkedIn outreach without the repetitive manual effort. Every sent InMail is tracked back to your sheet with its unique conversation ID, making follow-up sequences easy to build on top. Good to know This workflow sends InMails via LinkedIn Sales Navigator or LinkedIn Recruiter Classic — you must have one of these plans active on your LinkedIn account InMail credits are consumed from your LinkedIn plan's monthly allowance — they are not charged separately by Unipile Monthly InMail credit allowances by plan: Sales Navigator Core: 50 credits/month Sales Navigator Advanced: 50 credits/month Recruiter Classic: 100 credits/month Unipile pricing is based on the number of connected accounts — the base plan starts at €49/$55 per month for up to 10 accounts. A 7-day free trial is available with no credit card required Already-messaged leads are automatically skipped on every future run — no duplicate InMails The chat_id returned after each sent InMail is saved to your sheet and can be used to build follow-up message sequences How it works Schedule Trigger runs the workflow automatically at your chosen frequency All leads are fetched from your Google Sheet and filtered to only those where the inmail column does not equal Sent A configurable Limit node caps how many InMails go out per run to protect your monthly credit allowance A Code node extracts the LinkedIn username from each profile URL All required data — first name, company name, username, and Unipile credentials — is bundled in the Data Arrangement node The Loop node processes leads one by one, sending each through the full InMail flow individually Unipile API resolves the LinkedIn username to an internal Provider ID required for sending InMails The InMail is sent via Unipile's /api/v1/chats endpoint using the sales_navigator API parameter, with the subject line and message body personalized automatically with the lead's first name and company name The sheet is immediately updated with Sent status and the unique chat_id of the opened conversation A Wait node pauses between each InMail to mimic human behavior and avoid LinkedIn restrictions The loop continues until all leads in the current batch are processed Set up steps Step 1: Prepare Your Google Sheet Create a sheet with these exact columns: first_name | last_name | linkedin_url | company_name | inmail | chat_ID | row_number Leave inmail and chat_ID empty — the workflow fills these automatically after each InMail is sent Make sure company_name is filled for every lead — it is used in both the subject line and the message body Step 2: Get Your Unipile Credentials Sign up at unipile.com — a 7-day free trial is available with no credit card required Connect your LinkedIn Sales Navigator or LinkedIn Recruiter Classic account from the Unipile dashboard Copy your API Key, DSN, and LinkedIn Account ID Open the Data Arrangement node and replace the three placeholder values with your credentials Step 3: Set Your LinkedIn Plan in the Send InMail Node Open the Send InMail node The api field is set to sales_navigator by default If you are using LinkedIn Recruiter Classic, change the api value to recruiter Do not change this field if you are on any Sales Navigator plan Step 4: Connect Google Sheets In n8n, go to Credentials → New Credential → Google Sheets OAuth2 Authenticate with the Google account that owns your leads sheet Update the Get Leads and Update Data nodes to point to your sheet Step 5: Set Your Safety Limits Open the Limit Connection Request node — set max items per run (recommended: 10–15) Open the Wait node — set your delay between each InMail (recommended: 3–5 minutes) Open the Schedule Trigger — set your run frequency (recommended: every 4–8 hours) Requirements LinkedIn Sales Navigator (Core, Advanced, or Advanced Plus) or LinkedIn Recruiter Classic — required to send InMails via the API Unipile account with your LinkedIn account connected — starts at €49/$55/month for up to 10 accounts, 7-day free trial available Google Sheet with lead data in the required column format n8n instance (cloud or self-hosted) Customising this workflow Build a follow-up message workflow using the stored chat_id to send a reply into the same conversation thread if there is no response after a set number of days Add an AI node to auto-generate unique personalized InMail messages per lead based on their job title, industry, or company size Replace the Schedule Trigger with a webhook to fire outreach instantly when a new lead is added to your CRM Add a Slack or email notification node to receive a daily summary of InMails sent Add error handling nodes to catch failed API calls and flag those leads in a separate sheet tab for manual review Combine this workflow with the LinkedIn Connection Request workflow to build a full outreach sequence — connection request first, InMail after acceptance *For assistance and support: salmanmehboob1947@gmail.com Linkedin: https://www.linkedin.com/in/salman-mehboob-pro/*
by AI/ML API | D1m7asis
Who’s it for For makers, founders, and productivity nerds who want to listen to their inbox instead of reading it. No servers, no hosting — all done with n8n, a Telegram bot, and AI/ML API (LLM + TTS). What it does / How it works This workflow listens for new Gmail emails, extracts the sender, subject, date, and snippet, generates a 2–3 sentence natural summary using GPT-5 via AI/ML API, then converts the text into a lifelike voice message using Inworld TTS-1-Max. The final audio file is downloaded and instantly delivered to your Telegram via a bot. A separate auxiliary flow captures your Telegram chat_id once, stores it in a Data Table, and the main flow reuses it every time — no hardcoding required. High-level flow: Gmail Trigger detects new incoming email Code node builds a clean emailData block AI/ML API (GPT-5) generates a natural spoken summary AI/ML API (Inworld TTS-1-Max) converts summary → voice Audio file is downloaded Voice message is sent to the same Telegram chat Requirements A working n8n instance (self-hosted or cloud) Gmail OAuth2 credentials Telegram bot token from @BotFather AI/ML API key Base URL: https://api.aimlapi.com/v1 Supports GPT-5 and Inworld TTS-1-Max Set up steps Create a Telegram bot via @BotFather and add Telegram API credentials in n8n Create an AI/ML API credential using your API key Add Gmail OAuth2 credentials for inbox access Import the workflow JSON Open nodes and attach the correct credentials (no hardcoded tokens inside nodes) Run the Telegram Trigger once and send any message to your bot — this saves your chat_id Activate your workflow and receive your first voice-summary How to customize Replace GPT-5 with another LLM from AI/ML API (same schema) Change prompt style: tone, structure, language, or verbosity Add language selection or multi-voice support Add filters (e.g., only important emails, only starred emails) Log all activity to Google Sheets or a database Add IF conditions: voice only during certain hours, weekday vs weekend rules Add rate-limits or user allowlists Change the voice model for different notification styles: corporate, friendly, narrator
by Krade1027
Monitor device disconnections from Omada emails to Google Sheets with Pushover alerts Who’s it for This workflow is designed for IT admins, network engineers, or small business owners who need to automatically monitor device connectivity from Omada Controller email alerts. If you want a lightweight, low-cost solution for tracking device uptime without complex monitoring software, this template is for you. How it works The workflow listens for Omada Controller email alerts using Gmail, parses each email, and logs device connection status (connected/disconnected) into Google Sheets. Every 5 minutes, it checks for devices that have been disconnected for more than 30 minutes. If a device has not reconnected, the workflow sends a push notification via Pushover. Old logs are cleared automatically every 2 days to keep the sheet clean. Workflow Overview The workflow is broken into three main parts: 1. Email Processing (Receives Alert -> Append Row in Sheet) Triggered whenever a new email is received. It uses a Code node to parse the raw text of the email, extracting details like device name, MAC address, and connection status. This data is formatted and appended as a new row to Google Sheets, creating a comprehensive log of all connection events. Important: In the Gmail trigger node, make sure to set the search field or filter so that it only matches the subject line used by Omada Controller alert emails. This ensures the workflow only processes the intended alerts and not unrelated emails. 2. Disconnected Device Alerting (Check Every 5 minutes -> Alert User) Runs every 5 minutes. It reads the device log from Google Sheets, identifies the most recent status for each device, and filters for devices currently disconnected. If a device has been disconnected for more than 30 minutes, a high-priority push notification is sent to Pushover account. Once sent, the workflow updates the corresponding row in the Google Sheet to prevent duplicate alerts. 3. Data Maintenance (Clear Rows Every 2 days -> Clear sheet) Runs every two days to clean up the Google Sheet by deleting the oldest rows, keeping the log from growing too large. Services and Dependencies To run this workflow, you’ll need the following services connected to n8n: Google Sheets**: Logs all connection events and tracks device status Gmail**: Acts as the trigger, listening for Omada Controller alerts Pushover**: Sends real-time, high-priority push notifications to mobile devices Setup Instructions 1. Create a Google Sheet Log Create a new Google Sheet in your Google Drive Name it something like Omada Device Log Add these headers in the first row: exact spelling and order is crucial rowId, timestamp, timestampISO, category, severity, mac, name, type, status, checkAfter, alertSent, timeStampFormated 2. Configure Credentials Google Sheets**: Create a new OAuth2 credential in n8n Gmail**: Create a new OAuth2 credential (must receive Omada alerts) Pushover**: Create a new API credential and get user keys for each recipient 3. Import the Workflow Copy the JSON workflow file In n8n: click New → Import from JSON Paste the JSON code 4. Update the Nodes Receives Alert**: Link it to your Gmail credential Append Row in Sheet, Get Row(s) in Sheet, Update Alert, Clear sheet**: Replace YOUR_GOOGLE_SHEET_ID with your Google Sheet’s ID (found in the sheet URL between /d/ and /edit) Alert User**: Replace YOUR_PUSHOVER_USER_KEY with your Pushover user keys Node Breakdown Receives Alert** (Gmail Trigger): Listens for new emails Process Email and Extract** (Code): Parses email and extracts structured data (timestamps, device info, status) Append Row in Sheet** (Google Sheets): Adds a new row to your log Check Every 5 minutes** (Schedule Trigger): Runs regularly to check device status Get Row(s) in Sheet** (Google Sheets): Reads log to get latest status per device Check Device and Notify** (Code): Groups rows by MAC, filters disconnected devices past 30 minutes Alert User** (Pushover): Sends formatted push notification with device details Update Alert** (Google Sheets): Marks the row as alerted to prevent duplicates Clear Rows Every 2 days** (Schedule Trigger): Runs maintenance Clear sheet** (Google Sheets): Deletes old rows, preserves header
by Oneclick AI Squad
This automated n8n workflow enables the creation and management of AWS RDS databases through email interactions. Users can send emails with commands such as "Create RDS" or "Delete RDS," including details like database engine, instance class, and credentials. The workflow parses the email, uses Terraform to execute the requested action on AWS RDS, updates a Google Sheet with the status, and sends a confirmation email. Fundamental Aspects Gmail Trigger**: Initiates the workflow upon receiving a new email in Gmail. Parse Email Content**: Analyzes the email body to extract the command (create or delete) and database details like region, identifier, engine, and credentials. Manage RDS Instance**: Executes Terraform commands to create or delete the AWS RDS database instance based on the parsed details. Wait For Data**: Pauses the workflow to allow time for the RDS operation to complete and data to become available. Update Google Sheet**: Appends or updates the Google Sheet with the database instance details, status, and any relevant IDs. Send Confirmation Email**: Formats and sends a response email confirming the action taken, including success/failure details. Setup Instructions Import the Workflow into n8n**: Download the workflow JSON and import it via the n8n interface. Configure API Credentials**: Set up Gmail API credentials for email triggering and sending. Configure AWS credentials with RDS management permissions. Set up Google Sheets API credentials with read/write access. Ensure Terraform is integrated or nodes are configured for Terraform execution. Prepare Google Sheet**: Create a sheet with columns for database identifier, engine, instance class, status, and other relevant fields. Run the Workflow**: Activate the Gmail trigger and test by sending an email with a create or delete command. Verify Responses**: Check the Google Sheet for updates and your email for confirmation messages. Adjust Parameters**: Fine-tune Terraform variables, email parsing logic, or wait times as needed. Columns For The Google Sheet: Database Identifier: Unique identifier for the RDS instance (e.g., var.db_identifier). Engine: Database engine type (e.g., MySQL, PostgreSQL) (e.g., var.db_engine). Instance Class: RDS instance class (e.g., var.instance_class) (e.g., db.t3.micro). Allocated Storage: Storage size in GB (e.g., var.allocated_storage) (e.g., 20). Region: AWS region for the instance (e.g., var.aws_region) (e.g., us-east-1). Username: Database admin username (e.g., var.db_username) (e.g., admin). Password: Database admin password (e.g., var.db_password) (e.g., SecurePassword123). Status: Current status of the RDS instance (e.g., creating, deleted). Database Name: Name or tag for the database (e.g., var.db_name) (e.g., MyRDSDatabase). Technical Dependencies Gmail API**: For receiving trigger emails and sending confirmations. AWS RDS API**: For database management (via Terraform). Google Sheets API**: For logging and updating database status. Terraform**: For infrastructure-as-code management of RDS instances. n8n**: For workflow automation and node integrations. Customization Possibilities Support Additional Commands**: Extend to include update or snapshot operations for RDS instances. Enhance Parsing**: Improve email content analysis with AI for better intent detection. Add Database Engines**: Include support for more RDS engines like Oracle or SQL Server. Integrate Monitoring**: Add nodes to monitor RDS performance and alert via email. Customize Sheets**: Modify sheet columns or add visualizations for database metrics. Security Enhancements**: Incorporate additional validation for sensitive credentials in emails. Want a tailored workflow for your business? Our experts can craft it quickly Contact our team
by PollupAI
This n8n workflow enables teams to automate and standardize multi-step onboarding or messaging workflows using Google Sheets, Forms, Gmail, and dynamic logic powered by Code and Switch nodes. It ensures the right email is sent at the right step, tracks progress in Google Sheets, and handles errors or escalations. 🧑💼 Who is this for? HR and PeopleOps teams managing candidate or employee onboarding processes Customer success or onboarding teams handling structured, step-based journeys Any team using Google Sheets as a lightweight CRM or workflow tracker 🧩 What problem is this workflow solving? Coordinating multi-step onboarding or communication flows using spreadsheets and email can quickly become error-prone. This workflow: Dynamically detects the current step and status from a Google Sheet Sends the right message at the right time Updates statuses and creates next steps Handles errors with escalation logic ⚙️ What this workflow does Trigger via Form or Manual Execution Users can fill a web form or run the workflow manually. Read Google Sheets Retrieves step definitions and user progress from two sheets: One for message templates One for user step/status tracking Generate Message Table Uses custom JavaScript to parse and structure message templates based on step and message type (sent, completed, error). Determine User Step A Switch node checks the user’s current step and status. Logic branches into the correct flow for message sending and verification. Send Message Message variables are replaced using a Code node. Final message is sent via Gmail or another workflow (using Execute Workflow). Update Sheets Marks the step as completed or passed. Creates the next step in the sheet with updated status. Handle Errors If the step fails, an error message is sent to the responsible admin. 🛠️ Setup Connect Google Sheets and Gmail: Ensure credentials are configured in n8n. Prepare Sheets: One sheet for messages with steps/types/subjects/content. You can copy the one from here One sheet for tracking users and their current step/status. You can copy the one from here Customize Webform: Use the provided form to capture First Name, Last Name, and Email. Connect to Your Email Templates: Ensure your message structure follows the expected JSON format by step and type. ✏️ How to customize this workflow to your needs Add More Steps**: Expand the Switch logic and template sheet for more steps. Use Different Channels**: Replace Gmail with Slack, Telegram, or another messaging node. Change Form Fields**: Adjust the FormTrigger node to match your onboarding fields. Custom Error Logic**: Customize escalation emails, including admin routing or Slack alerts. Integrate with Databases**: Swap Google Sheets with Airtable, PostgreSQL, or Notion. This workflow is ideal for automating repetitive, step-based processes involving human communication. It’s modular, extensible, and powered by spreadsheet-driven logic.
by Rakin Jakaria
Use cases are many: Let users book, check, reschedule, or cancel meetings directly from Telegram. Perfect for solopreneurs, agencies, or teams who want an AI-powered assistant that prevents double-bookings, manages Google Calendar, and even sends email invites automatically. Good to know At time of writing, this workflow uses OpenAI GPT-4.1-mini for natural conversation handling. See OpenAI Pricing for updated info. This workflow relies on Google Calendar for scheduling — if the model says “conflict found,” it means an event already exists in that time slot. How it works Telegram Chat**: A user types natural requests like “Book a meeting with Sarah tomorrow at 2 PM” or “Do I have meetings on Friday?”. AI Agent (OpenAI)**: Interprets the request, calculates dates (using Date & Time), and decides whether to create, update, or delete a meeting. Conflict Checking**: Before booking, the agent checks Google Calendar for existing events to avoid overlaps. Meeting Management**: Create: Adds new events with title, description, attendees. Update: Edits existing events. Delete: Cancels meetings if requested. Get: Lists all meetings for a date or time range. Notifications**: Replies instantly on Telegram and, if needed, sends a Gmail email with meeting details. Memory**: Keeps context of the conversation so users can speak naturally (“reschedule that meeting to 4 PM instead”). How to use Start a Telegram chat with the bot. Type a request in plain English (no need for structured inputs). The agent will confirm or suggest alternatives if a conflict exists. Meetings appear in Google Calendar and details can be emailed via Gmail. Requirements Telegram bot connected to n8n OpenAI API key (for AI-driven scheduling assistant) Google Calendar account (for event creation & conflict checking) Gmail account (for sending invites & confirmations) Customising this workflow Add support for multiple calendars (work, personal, shared). Change the conflict-resolution logic (e.g., auto-suggest nearest free slot). Include recurring meetings (weekly standups, monthly reviews). Add Slack or WhatsApp integration for multi-platform scheduling. Extend Gmail invites with calendar attachments (.ics files). 👉 Rakin Jakaria
by Yusuke Yamamoto
This n8n template automates responses to customer inquiries about DHL shipment status, handling requests from both web forms and emails. Use cases Automate Customer Support**: Provide 24/7 instant answers to the common "Where is my order?" question without human intervention. Reduce Support Tickets**: Decrease the volume of repetitive tracking inquiries by providing customers with immediate, self-service information. Enhance Customer Experience**: Offer a consistent and rapid response across multiple channels (your website and email), allowing customers to use their preferred method of contact. Good to know DHL API Key is required**: You'll need to register on the DHL Developer Portal to get your API key. This workflow requires Gmail credentials (OAuth2) to monitor incoming emails and send replies. The webhook URL must be configured in your website's contact or tracking form to receive submissions. How it works The workflow is initiated by one of two triggers: a Webhook (from a website form) or a Gmail Trigger (when a new email arrives). A Merge node combines the data from both triggers into a single, unified flow. The "Extract Tracking Number" Code node intelligently parses the tracking number from either the form data or the email body. It also extracts the customer's name and email address. The HTTP Request node sends the extracted tracking number to the DHL API to fetch the latest shipment status. The "Format Response Message" Code node takes the API response and composes a user-friendly message for the customer. It also handles cases where tracking information is not found. An If node checks the original source of the inquiry to determine whether it came from the webhook or email. If the request came from the webhook, a Respond to Webhook node sends the tracking data back as a JSON response. If the request came from an email, the Gmail node sends the formatted message as an email reply to the customer. How to use Configure the Triggers: Webhook Trigger: Copy the Test URL and set it as the action endpoint for your web form. Once you activate the workflow, use the Production URL. Webhook URL: https://your-n8n-instance.com/webhook/dhl-tracking-inquiry Gmail Trigger: Connect your Gmail account using OAuth2 credentials and set the desired filter conditions (e.g., unread emails with a specific subject). Set up the DHL API: Open the "Get DHL Tracking Status" (HTTP Request) node and navigate to the "Headers" tab. Replace YOUR_DHL_API_KEY with your actual DHL API key. { "DHL-API-Key": "YOUR_DHL_API_KEY" } Configure the Gmail Send Node: Connect the same Gmail credentials to the "Send Gmail Response" node. Customize options like the replyTo address as needed. Activate the workflow. Requirements A DHL Developer Portal account to obtain an API key. A Gmail account configured with OAuth2 in n8n. Customising this workflow Add More Carriers**: Duplicate the HTTP Request node and response formatting logic to support other shipping carriers like FedEx or UPS. Log Inquiries**: Add a node to save inquiry details (tracking number, customer email, status) to a Google Sheet or database for analytics. Advanced Error Handling**: Implement more robust error handling, such as sending a Slack notification to your support team if the DHL API is down or returns an unexpected error.