by Cheng Siong Chin
How It Works This workflow automates intelligent fleet operations management for transport operators, logistics companies, and smart mobility teams. It solves the problem of manually triaging high-volume vehicle telemetry data, a process prone to delays, missed safety thresholds, and inconsistent service prioritisation. Incoming vehicle telemetry is received via webhook and validated by a Telemetry Validation Agent using an AI model and output parser. Validated data is passed to a Fleet Orchestration Agent that coordinates three specialist sub-agents: a Safety Compliance Sub-Agent (checking thresholds and escalating breaches), a Service Scheduling Sub-Agent (optimising maintenance windows), and a Customer Email Notification Tool. The orchestrator then routes each case by service priority, namely: urgent, high, normal, or low, triggering the appropriate service preparation step and logging traceability data to Google Sheets. Compliance escalations follow a parallel path: checking status, preparing reports, and logging to Sheets. All branches converge into a unified webhook response, ensuring downstream systems receive a consistent, structured reply. Setup Steps Import workflow and configure the webhook trigger URL. Add AI model credentials to Validation Agent, Orchestration Agent, and both Sub-Agents. Connect Gmail credentials to the Customer Email Notification Tool. Link Google Sheets credentials; set target sheet IDs for Safety Traceability and Compliance Escalation logs. Configure the Fleet Management API Tool and Urgent Service API Call with your fleet service endpoint URLs. Set safety threshold values in the Safety Threshold Calculator node. Prerequisites OpenAI API key (or compatible LLM) Gmail account with OAuth credentials Google Sheets with log tabs pre-created Use Cases Logistics fleets auto-triaging vehicle fault alerts by severity Customisation Swap OpenAI for any LangChain-compatible model Benefits Eliminates manual telemetry triage, reducing response lag
by Avkash Kakdiya
How it works This workflow acts as an instant SDR that replies to new inbound leads across multiple channels in real time. It first captures and normalizes all incoming lead data into a unified structure. The workflow then evaluates IST working days and hours, generates a context-aware AI response, and routes the reply to the correct channel. Finally, it logs the full interaction, response status, and timing into Google Sheets. Step-by-step Step 1: Lead intake & normalization** Incomming Lead whatsapp1 – Receives new WhatsApp lead messages via webhook. Incomming Lead facebook1 – Captures incoming Facebook lead messages. Incomming Lead instagram1 – Listens for Instagram lead messages. Incomming Lead linkdin1 – Captures LinkedIn lead messages. Incomming Lead Website1 – Receives website form submissions. Normalize Lead Data6 – Normalizes WhatsApp lead fields. Normalize Lead Data7 – Normalizes Facebook lead fields. Normalize Lead Data8 – Normalizes Instagram lead fields. Normalize Lead Data9 – Normalizes LinkedIn lead fields. Normalize Lead Data5 – Normalizes website lead data. Switch2 – Merges all normalized leads into a single processing path. Step 2: Working hours & AI response** Extract Day and Hours1 – Converts timestamps to IST and extracts day and time. Is Working Day and Working Hour?1 – Determines whether the lead arrived during business hours. Code in JavaScript3 – Builds the AI prompt using lead details and timing context. Get Ai Response1 – Generates a short, human-like response. Step 3: Send reply & log data** Code in JavaScript4 – Combines AI output with normalized lead data. Switch3 – Routes the response based on the source channel. Send message – Sends WhatsApp replies. Send Instagram Message1 – Sends Instagram responses. Send Facebook Messages1 – Sends Facebook replies. Send Linkdin Messages1 – Sends LinkedIn responses. Send a message1 – Sends email replies for website leads. Code in JavaScript5 – Finalizes response status and metadata. google-sheet-name – Appends or updates lead and response data in Google Sheets. Why use this? Replies instantly to leads across all major inbound channels Keeps all lead data standardized and easy to manage Automatically respects IST working days and hours Reduces manual SDR workload without losing response quality Maintains a complete response log for reporting and follow-up
by WeblineIndia
Detect duplicate candidates by email/phone from Gmail to Slack using Google Sheets This workflow automatically detects duplicate job applicants by checking incoming emails from Gmail against existing records in Google Sheets. If a candidate's email is already found in the sheet, it sends an alert to Slack; otherwise, it adds the candidate to the sheet. Who’s it for HR and recruitment teams processing candidate emails manually Startups or SMEs handling job applications via Gmail Anyone who wants to automate resume collection and deduplication Teams using Slack and Google Workspace How it works Triggers every few minutes via the Schedule Trigger node Fetches recent emails labeled "applicant" from Gmail Extracts candidate details from the email body using regex Reads all existing rows from the Google Sheet Compares the candidate’s email with existing entries If duplicate → Sends a Slack alert If new → Appends to the Google Sheet How to set up Label candidate emails in Gmail with a label like applicant Connect Gmail, Google Sheets, and Slack credentials in n8n Create a Google Sheet with these columns: candidate_name, candidate_email, candidate_phone, role_applied, years_of_experience, recruiter, resume_url, source_email Import the workflow JSON Update: Gmail label ID Google Sheet ID Slack channel or user Activate the workflow Requirements n8n (self-hosted or cloud) Gmail account with access to labeled application emails Google Sheet to store candidates Slack account with chat:write scope Basic regex familiarity (optional) How to customize Change comparison logic to include phone numbers. Add fallback logic to check for similar names. Add filters for roles, experience levels. Forward resumes to Drive or Notion. Trigger an approval flow for screened candidates. Add‑ons Google Drive: Upload parsed resumes. Notion / Airtable: Store structured candidate records. Webhooks: Forward to ATS or CRM. PDF parsers: Extract data from attachments. Use Case Examples | Use Case | Description | | ------------------- | ----------------------------------------------------- | | Resume deduplication | Avoid processing the same applicant twice | | Auto Slack alert | Instantly notify recruiter of repeat candidates | | Centralized tracking | Keep candidate records in Sheets for filtering/export | | Passive sourcing | Run hourly checks on labeled Gmail inboxes | Common troubleshooting | Issue | Possible Cause | Solution | | ------------------------ | ------------------------------------------ | -------------------------------------------------------------- | | Slack message not sent | Invalid Slack token / channel not selected | Reauthorize Slack connection and select correct user/channel | | Google Sheet not updated | Sheet ID or tab name is incorrect | Double-check the Sheet URL and worksheet tab | | Email data not extracted | Email body format doesn’t match regex | Adjust regex in the "Code" node | | Nothing happens | Gmail label or date filter is too strict | Ensure emails exist with the right label in the last X minutes | Need Help? Need help setting it up or tweaking regex for your custom email format? We’re happy to help — just ask! Want to add phone number duplication checks or auto-resume upload to Google Drive? Our Automation team at WeblineIndia can guide you step-by-step.
by Oneclick AI Squad
This automated n8n workflow streamlines the process of receiving, processing, and delivering patient-friendly lab reports with precautionary advice. 🏆 Minimal But Complete Design: Node Flow: 📧 Email Trigger → Monitors inbox for lab reports 📄 PDF Extract → Processes attachments & extracts content 🤖 AI Simplify → Converts medical jargon to simple language ✨ Format Response → Creates beautiful patient-friendly layout 📤 Send Report → Delivers simplified report via email 🚀 Key Features: ✅ Automatic Processing: Monitors email for lab report PDFs Extracts content from attachments No manual intervention needed ✅ AI-Powered Simplification: Converts complex medical terms to plain English Explains what each test result means Adds ✅/⚠️ indicators for normal/abnormal results ✅ Patient-Friendly Output: Professional HTML email formatting Clear sections: Summary, Results, Precautions Includes next steps and follow-up advice ✅ Built-in Safety: Always includes medical disclaimers Encourages consulting healthcare providers Handles edge cases with fallbacks 🛠️ Setup Requirements: APIs Needed: IMAP Email** (Gmail, Outlook, etc.) Ollama AI Model** (Local medical AI) SMTP Email** (Sending service) Quick Configuration: Import the JSON into n8n Set up email credentials (IMAP + SMTP) Configure Ollama medical model Test with a sample lab report 📋 Sample Output: 🩺 Your Lab Report - Simplified ✅ CHOLESTEROL: 180 mg/dL - Normal! Good job maintaining healthy levels. ⚠️ BLOOD SUGAR: 126 mg/dL - Slightly high Normal is under 100. Consider reducing sugar intake. 🔬 VITAMIN D: 25 ng/mL - Low You may need supplements. Ask your doctor. 📋 PRECAUTIONS: • Eat more fruits and vegetables • Exercise 30 minutes daily • Schedule follow-up in 3 months • Watch for: excessive thirst, fatigue
by ueharayuuki
Who's it for This template is perfect for anyone struggling with habit consistency who wants a fun, engaging way to maintain daily routines. It's ideal for productivity enthusiasts, fitness beginners, remote workers, students, or anyone who loves gamification and RPG elements. If you've ever wished your daily tasks felt more like an adventure game, this workflow is for you. How it works The workflow runs automatically every morning at your chosen time (default: 6 AM) and transforms your daily habits into an RPG adventure: Daily Trigger - Scheduled to run every morning Player Stats Generation - Creates random level, XP, and streak data (in production, connect to a database) Quest Generation - Assigns daily "quests" based on the day of week (weekday routines, weekend specials, Monday goals) Quote Fetching - Gets a motivational quote from a free API Achievement Processing - Checks for milestone achievements (7-day streak, 30-day streak, level 10) Email Creation - Builds a beautiful HTML email with game-like design Email Delivery - Sends the quest email via Gmail Stats Logging - Records execution statistics The system includes different habit sets for weekdays and weekends, random bonus quests, a rank system (D to SSS), achievement unlocks, and progress tracking with visual elements like progress bars. Setup steps Setup takes approximately 5 minutes: Import the workflow into your n8n instance Connect Gmail - Click "Create New" in the Gmail node credentials and authenticate via OAuth2 Update recipient email - Change "your-email@gmail.com" to your actual email in the "Send Quest Email" node Customize habits (optional) - Edit the quest arrays in the "Generate Daily Quests" node Test the workflow - Click "Execute Workflow" to send a test email Activate - Toggle the workflow to "Active" when ready for daily automation Requirements Gmail account with OAuth2 authentication n8n instance (cloud or self-hosted) No external API keys required (uses free Quotable API) No database required (uses random data for demonstration) How to customize the workflow Modify Daily Habits Edit the questDatabase object in the "Generate Daily Quests" node: Add your own habits with custom names Adjust XP and coin rewards Change difficulty levels (Easy, Medium, Hard, Epic, Bonus) Set different quests for weekdays vs weekends Visual Customization In the "Create Email Template" node: Modify color schemes in the CSS Adjust font sizes and layouts Change emoji icons for quests Update achievement thresholds Timing and Schedule In the "Daily Morning Trigger" node: Change the trigger hour (default: 6 AM) Adjust timezone if needed Set different schedules for weekdays/weekends Motivational Content Update daily motivation messages for each day of the week Customize achievement names and descriptions Modify rank titles and progression Add your own fallback quotes This workflow brings the addictive nature of RPG games to your daily habits, making routine tasks feel like an epic adventure. Perfect for anyone who wants to level up their life, one quest at a time!
by WeblineIndia
WooCommerce Seasonal Sales Planning & Monitor → SET Pattern Compare → Slack This workflow automatically aggregates sales data, calculates performance trends (Revenue & Orders) against previous months and years, identifies the top-selling SKU and sends a strictly formatted, professional summary report to Slack. This workflow runs on a schedule (e.g., daily or weekly) to generate a snapshot of your business performance. It fetches sales data from your database or e-commerce platform, calculates growth percentages (vs. Month, vs. Year), formats the data into a clean JSON structure and sends a structured report to Slack without unnecessary clutter or emojis. You receive: Automated comparison of Revenue & Order counts** Trend analysis (Percentage change & directional trend)** Identification of the Top Performing SKU** A clean, professional Slack alert for team visibility** Ideal for management teams needing a quick, data-driven pulse check on store performance without manually running reports. Quick Start – Implementation Steps Add your Database or API Credentials (e.g., Postgres, Shopify, WooCommerce) in the data fetching nodes. Connect your Slack account credentials and select the target channel. Ensure your data source provides current, vsMonth and vsYear metrics (or use the calculation nodes provided). Review the Slack Node to ensure the JSON block formatting matches your preference. Activate the workflow — automated reporting begins instantly. What It Does This workflow automates the generation of your business trend report: Trigger: Starts automatically based on a schedule (e.g., every morning at 8 AM). Fetch Data: Retrieves raw sales numbers for the current period, previous month and previous year. Process Trends: Calculates the percentage difference and determines the trend direction (Increase, Flat, Decrease). Identify Top SKU: Sorts product sales to find the highest-performing item of the period. Format Report: Constructs a strict JSON object containing: Revenue (Current, vs Month, vs Year) Orders (Current, vs Month, vs Year) Top SKU Name Send Slack Alert: Pushes a cleanly formatted message (using Block Kit or Markdown) to your team channel. This ensures your team focuses on the numbers that matter, with zero manual effort. Who’s It For This workflow is ideal for: E-commerce Store Owners Sales & Marketing Managers Data Analysts Operations Teams Executive leadership requiring daily snapshots Teams preferring data-heavy, emoji-free reports Requirements to Use This Workflow To run this workflow, you need: n8n instance** (cloud or self-hosted) Data Source** (PostgreSQL, MySQL, Shopify, WooCommerce or Google Sheets) Slack workspace** with API permissions (Webhook or Bot Token) Basic understanding of JSON structure for Slack Block Kit How It Works Scheduled Trigger – Initiates the workflow at a specific time. Get Sales Data – Queries your backend to get the raw numbers. Calculate Logic – Compares current numbers vs. historical data to generate percentages. Create Report Object – Maps the values into a standardized JSON format (e.g., revenue.current, orders.vsYear). Format Message – Converts the JSON object into a Slack-readable text block or UI block. Send Notification – Posts the final report to Slack. Setup Steps Import the provided n8n JSON file. Open the Data Fetch nodes and configure your database/API connection. Ensure your query returns the necessary fields (Revenue Orders, SKU). Verify the Format Data node is correctly mapping your variables to the JSON structure: {{ $json"revenue" }} {{ $json"orders"["percent"] }} Connect Slack API credentials and choose your channel. Run a test execution to verify the numbers appear correctly in Slack. Activate the workflow — done! How To Customize Nodes Customize Report Metrics Modify the Set/Calculation nodes: Add Average Order Value (AOV) Include Customer Acquisition Cost (CAC) Change the comparison period (e.g., vs Last Week instead of Month) Customize Slack Layout You can modify the JSON in the Slack node to: Use Block Kit for a table-like structure (columns for Revenue/Orders) Use Plain Text for a simple list view Add or remove bold formatting (bold) Add a "View Dashboard" button link Customize Data Source Replace the generic database node with: Shopify Node** (Get Orders) WooCommerce Node** (Get Sales Report) Stripe Node** (Get Balance Transactions) Google Sheets** (Read Row) Add-Ons (Optional Enhancements) You can extend this workflow to: Send reports to Email or Microsoft Teams in addition to Slack. Generate a PDF report using an HTML-to-PDF service. Save the daily snapshot into a "History" table in Airtable/Database. Add conditional alerts (e.g., @mention the CEO if Revenue drops by >20%). Integrate with OpenAI to write a qualitative analysis of the trends. Use Case Examples 1. Morning Standup Report Delivers key metrics to the team channel 15 minutes before the daily meeting. 2. Performance Monitoring Quickly identifies if a new marketing campaign is driving order volume. 3. Inventory Awareness Highlights the "Top SKU" so the warehouse team knows what is moving fast. 4. Executive Summaries Provides leadership with a noise-free, "just the numbers" view of the business. Troubleshooting Guide | Issue | Possible Cause | Solution | | :--- | :--- | :--- | | "N/A" in Trend | No historical data found | Ensure database has data for previous month/year | | Slack formatting broken | Invalid JSON syntax | Check quotes and brackets in Slack node | | Wrong Top SKU | Sorting logic incorrect | Verify the "Sort" node is ordering by Count DESC | | Authentication Error | Slack token expired | Re-connect Slack credentials in n8n | | Workflow not running | Schedule disabled | Toggle "Active" switch to ON | Need Help? If you need help customizing or extending this workflow — integrating specific ERPs, creating complex visual dashboards or scaling your data reporting, feel free to contact our n8n workflow development experts at WeblineIndia. We are happy to assist you with advanced automation solutions.
by WeblineIndia
WooCommerce VIP Customer Automation This workflow automatically identifies VIP customers from your WooCommerce store based on their total spending and number of completed orders. It pulls new orders on a schedule, filters valid transactions, groups customers, calculates their VIP tier, stores them into Airtable and notifies your team in Slack.It removes all manual checking and ensures your team instantly knows when a high-value customer places an order. Quick Start – Implementation Steps Add your WooCommerce store domain and API credentials inside n8n. Configure Airtable and Slack credentials. Adjust VIP rules (lifetime spend or total orders) if needed. Activate the workflow — it will automatically detect VIPs and alert your team. What It Does This workflow fully automates VIP customer detection for WooCommerce stores. Every few minutes, it retrieves new orders via WooCommerce API. It filters only processing or completed orders and extracts essential fields such as customer ID, customer name order total and timestamps. The workflow then groups orders by customer to ensure duplicate orders don’t inflate metrics. For each customer, it fetches their complete order history, calculates lifetime value, counts total paid orders and assigns a VIP tier (Platinum, Gold or Silver). Once a customer qualifies, their details are saved into Airtable for tracking. A Slack message is simultaneously sent to inform your team so they can take immediate action — such as providing priority support, follow-up messages or special offers. This system runs completely on its own and keeps customer insights up-to-date without manual checks. Who’s It For This workflow is ideal for: WooCommerce store owners Customer support teams Marketing teams CRM & retention specialists eCommerce operations teams Businesses wanting automated VIP alerts Requirements to Use This Workflow You will need: A running n8n instance (cloud or self-hosted) A WooCommerce store with API keys A Slack workspace with API permissions An Airtable Base to store VIP customers Basic understanding of WooCommerce and Airtable fields How It Works Scheduled Trigger – Runs every few minutes to check for new orders. Domain Setup – Assigns the WooCommerce store domain used across API calls. Fetch Orders – Retrieves all orders from WooCommerce. Filter Valid Orders – Only keeps completed or processing orders. Format & Clean Data – Extracts only key order details. Deduplicate Customers – Only the first order per customer is processed. Fetch Order History – Gets lifetime order history for each customer. Calculate VIP Tier – Determines Platinum/Gold/Silver based on spend or order count. Filter VIP Only – Removes customers who do not qualify. Save to Airtable – Creates/updates VIP records. Notify Team on Slack – Sends VIP alerts instantly. Setup Steps Import this workflow JSON into n8n. Enter your WooCommerce API credentials in the HTTP Request nodes. Update the wc\_domain value in the “Set WooCommerce Domain” node. Configure Airtable credentials and select your Base + Table. Set your Slack channel ID inside the Slack node. Adjust VIP rules inside the “Calculate VIP Tier” code node if needed. Activate the workflow — it will now run automatically. How to Customize Nodes Adjust VIP Rules Edit the logic inside Calculate VIP Tier: Change Platinum threshold (₹20,000 or your value) Change Gold rule (5 orders or more) Add new VIP tiers Customize Airtable Fields You can modify: Table columns Field naming Additional customer details Customize Slack Alerts In the Slack node, change: Message format Channel ID Emoji, headings or urgency indicators Add-Ons (Optional Enhancements) You can extend this workflow with: Automatic email to VIP customers Loyalty point calculation Google Sheets export Integration with CRM platforms Send SMS notifications Separate VIP tiers into dedicated Slack channels Use Case Examples Notify support about high-value customers Track customers crossing spending milestones Identify loyal customers with 5+ repeat purchases Automatically sync VIP customers to CRM Trigger loyalty coupon generation Troubleshooting Guide | Issue | Possible Cause | Solution | |---------------------------|--------------------------------------------------|--------------------------------------------------------------| | No orders fetched | Wrong domain or API keys | Update WooCommerce credentials | | VIP not detected | Customer has low spend or low orders | Verify VIP rules in “Calculate VIP Tier” | | Airtable record not created | Incorrect table schema | Match Airtable fields with node mapping | | Slack alert missing | Wrong Slack channel ID or credentials | Re-check Slack authentication | | Guest users included | Missing customer_id filter | Ensure customer_id != 0 condition stays in place | Need Help? If you need assistance integrating this workflow, customizing VIP rules or adding new automations, our automation team at WeblineIndia is happy to help. You can also extend this system with loyalty engines, advanced analytics, multi-store support or any custom automation tailored for your eCommerce business.
by Muhammad Bello
Description This automation streamlines client onboarding by instantly processing a submitted form, extracting key details from an uploaded proposal, and using GPT-4 to generate a full onboarding task list. It then sets up the client workspace across Google Drive, ClickUp, and Slack, and sends a personalized welcome email completing in under a minute from submission. Setup Steps Connect your Google Drive, ClickUp, Slack, Gmail, and OpenAI accounts. Customize the form fields and system prompt to match your business. Test the workflow with a sample client submission to confirm all outputs. Estimated Setup Time: \~30–45 minutes for a first-time user familiar with n8n integrations.
by Devon Toh
This Template Demonstrates How To Automate Generating and Sending Personalized Quotations as PDF. Use cases are many: send branded quotations to new leads after a discovery call, distribute pricing proposals to inbound form submissions, or push service packages to prospects. All without manually creating documents, exporting PDFs, or writing individual emails. Good to know OpenAI charges per token. The workflow uses gpt-4o-mini for cost efficiency (~$0.15/1M input tokens). Check OpenAI Pricing before running at scale. Google Docs template must be set up with placeholder variables before the first run. The workflow fills data in — it won’t generate a layout for you. Gmail has daily sending limits depending on your Google Workspace plan. Check your quota before sending large volumes. The form is hosted by n8n — share the form URL with your team or embed it in your internal tools. How it works PHASE 1: FORM INTAKE An n8n Form Trigger collects all quotation details: client name, email, company, service type, service description, price, validity date, and optional notes. The form is self-hosted on your n8n instance — no third-party form tools needed. Once submitted, all fields pass directly into the workflow as structured data. PHASE 2: AI PERSONALIZATION The form data is sent to OpenAI (gpt-4o-mini) which generates two pieces of content: – A personalized introduction paragraph addressing the client by name, referencing their company and specific needs. – A structured scope of work summary with deliverable bullet points based on the service description. Output is returned as JSON so it slots cleanly into the document template and email body. PHASE 3: DOCUMENT GENERATION The workflow copies your pre-built Google Docs quotation template to a new document, named automatically as “Quotation - {Company} - {Service}”. Nine placeholder variables are replaced in the copied document: {{client_name}}, {{company_name}}, {{client_email}}, {{service}}, {{price}}, {{valid_until}}, {{notes}}, {{intro}}, and {{scope_summary}}. The completed document is exported from Google Drive as a PDF. Your branding, layout, and formatting stay exactly as designed in the template. PHASE 4: EMAIL DELIVERY The PDF is attached to a personalized email sent via Gmail directly to the client’s email address. The email body includes the AI-generated intro, scope of work summary, total price, and validity date — no manual copy-pasting. The form submitter sees a confirmation response once the email is sent. Closed loop, fully hands-off. How to use Create your Google Docs template with your preferred layout, branding, and these placeholders: {{client_name}}, {{company_name}}, {{client_email}}, {{service}}, {{price}}, {{valid_until}}, {{notes}}, {{intro}}, {{scope_summary}}. Copy the template Document ID from the URL (docs.google.com/document/d/THIS_PART/edit) and paste it into the Copy Template node. Configure Google OAuth via Google Console. Create a project, apply your Client ID and Secret in the Google Drive, Google Docs, and Gmail node credentials. Set the OpenAI credential with your API key in the OpenAI Personalize node. Share the form URL with your team. The URL is generated automatically when the workflow is activated. Requirements • OpenAI API — personalized intro and scope generation • Google Drive OAuth — template copying and PDF export • Google Docs OAuth — variable replacement in the document • Gmail OAuth — personalized email delivery with PDF attachment • n8n instance (self-hosted or cloud) Customising this workflow • Swap the form trigger for a webhook or CRM integration (HubSpot, GoHighLevel, Airtable) if you want quotations generated from pipeline stage changes instead of manual form submissions. • Add a Slack or email approval step before sending — insert a Slack node between Export as PDF and Send Quotation Email if you want a manager to review before it goes out. • Replace Gmail with any email provider (Outlook, SMTP, SendGrid) if your team doesn’t use Google Workspace. • Add a Google Sheets logging step after sending to track all sent quotations with client name, date, service, and price for reporting. • This pattern works beyond quotations — try it for proposals, invoices, contracts, or any document where the structure stays fixed but the data changes. • Add multiple service line items by extending the form with repeating fields and adjusting the template to include a table of services with individual pricing.
by Akshay Chug
Overview Know what your competitors are doing every morning before your first meeting. This workflow visits each competitor website daily, uses OpenAI to analyse it for strategic signals, and emails your team a consolidated executive briefing automatically. How it works A schedule trigger fires every morning at 8AM Your list of competitor URLs is loaded from the Configure node Each competitor page is fetched and stripped to clean readable text GPT-4o-mini analyses each one for key signals, threat level, and recommended actions All analyses are aggregated and sent to GPT-4o to write one consolidated executive briefing The briefing is formatted as a clean HTML email and sent to your team via Gmail Every run is logged to Google Sheets with the date and summary Setup steps Competitors — Open Configure Competitors and Settings, replace the placeholder URLs with your real competitor URLs Your details — In the same node set YOUR_COMPANY and YOUR_FOCUS to describe your market OpenAI — Add your OpenAI API key as a credential at platform.openai.com Gmail — Connect your Gmail account in Send Email Briefing and set your team email in the Configure node Google Sheets — Create a sheet with columns: Date, Company, Competitors Analyzed, Briefing Summary. Connect your Google account and update the sheet ID in the Log node Activate the workflow — it runs automatically at 8AM every day
by Shady Ahmed
📌 Description Automate your course enrollment process with this workflow that handles student submissions, evaluates eligibility, and sends acceptance or rejection emails — all without manual effort. It's perfect for instructors managing multi-week technical courses who want to streamline onboarding and communication. ⚙️ How It Works 📥 Captures student registration data via an n8n Form Trigger 📊 Evaluates responses (e.g., checks programming background & availability) 📤 Sends automated, personalized acceptance or rejection emails based on criteria 📝 Logs submission outcomes for review 📨 Optionally stores records in Google Sheets, Airtable, or a database (customizable) 🛠️ Set Up Steps 🔗 Connect Gmail (or your preferred email service) ✅ Add your course filtering logic to the decision node (simple JSON rules) 📄 Customize email templates (plain or HTML) 🧪 Test the flow with sample submissions ⏱️ Setup Time: 10–15 minutes (depending on integrations) 🔐 Notes No hardcoded API keys used – all credentials must be set up using the n8n credential system Sticky notes inside the workflow provide detailed setup and customization tips Easily extendable to add payment links, WhatsApp alerts, or CRM integration
by Vlad Arbatov
Summary Send a number to your Telegram bot (e.g., 2) and get a neatly formatted digest of all Gmail newsletters received since that date. Each email is summarized by an LLM into concise topics, merged into a single Telegram message, automatically split into chunks to fit Telegram limits, and safely formatted as HTML. What this workflow does Triggers on your Telegram message containing a number of days, e.g., 1, 2, 7 Fetches all Gmail messages since that date using a custom search query, optionally filtered by senders Retrieves and decodes each email’s HTML, subject, sender name, date Prompts an LLM (GPT‑4.1‑mini) to produce a consistent JSON summary of topics per email Merges topics from all emails into a single digest Builds a readable, enumerated message (with bold titles) Splits it into 3 500‑char parts and sanitizes Markdown to Telegram‑safe HTML Sends the digest to your Telegram chat with preview disabled Apps and credentials Gmail OAuth2: Gmail account Telegram: Telegram account (bot) OpenAI: OpenAi account Typical use cases Personal or team daily/weekly newsletter digests in Telegram Curated feeds from selected senders compiled on demand Lightweight knowledge briefings without leaving Telegram How it works (node-by-node) Telegram Trigger Waits for your message (e.g., "2"). Chat ID is restricted to your Telegram ID for safety. Get days (Code) Takes the numeric daysAgo from the Telegram message text Computes YYYY/MM/DD for Gmail’s after: filter Get many messages (Gmail → getAll, returnAll: true) Uses a custom q filter like: =(from:@.com) OR (from:@.com) OR (from:@.com -"__") after:{{ $json.dateString }} Returns a list of message IDs Loop Over Items (Split in Batches) Iterates through each message ID Get a message (Gmail → get) Retrieves the full message/payload for the current email Get message data (Code) Extracts HTML from Gmail’s payload (body/parts) Normalizes sender to just the name Formats the date as DD.MM.YYYY Passes html, subject, from, date forward Clean (Code) Converts DD.MM.YYYY → MM.DD (for prompt brevity) Passes html, subject, from, date to the LLM Message a model (OpenAI, model: gpt‑4.1‑mini, JSON output) Prompt instructs: Produce JSON: { "topics": [ { "title", "descr", "subject", "from", "date" } ] } Split multi-news blocks into separate topics Combine or ignore specific blocks for particular senders (placeholders __) Keep subject untranslated; other values in __ language Injects subject/from/date/html from the current email Loop Over Items (continues) After all iterations complete, the aggregated per-email results are available Merge (Code) Flattens the topics arrays from all processed emails into one combined topics list Create TG message (Code) Renders an enumerated list: 1. Title (bold) Short description Original subject From — Date Split (Code) Splits into 3 500‑character chunks to stay below Telegram’s 4 096 limit with HTML overhead Sanitize (Code) Escapes &, <, > Fixes unbalanced * and _ Converts basic Markdown markers to Telegram HTML Send a message (Telegram) Sends each part with parse_mode=HTML, previews disabled Node map | Node | Type | Purpose | |---|---|---| | Telegram Trigger | Trigger | Receive daysAgo command from Telegram | | Get days | Code | Compute Gmail after:YYYY/MM/DD from daysAgo | | Get many messages | Gmail (getAll) | Search emails since date with custom from: filters | | Loop Over Items | Split in Batches | Iterate messages one-by-one | | Get a message | Gmail (get) | Fetch full message payload | | Get message data | Code | Extract HTML/subject/from/date; normalize sender and date | | Clean | Code | Reformat date and forward fields to LLM | | Message a model | OpenAI | Summarize email into JSON topics | | Merge | Code | Merge topics from all emails | | Create TG message | Code | Build human-friendly digest text | | Split | Code | Chunk into 3 500‑char parts | | Sanitize | Code | Escape HTML and map Markdown to Telegram HTML | | Send a message | Telegram | Deliver digest to Telegram chat | Before you start Create a Telegram bot and get its token (via @BotFather) Get your Telegram user ID to restrict access Connect Gmail OAuth2 in n8n Add your OpenAI API key Import the provided workflow JSON into n8n Setup instructions 1) Telegram Telegram Trigger node: additionalFields.chatIds = your Telegram user ID Send a message node: chatId = your Telegram user ID parse_mode = HTML disable_web_page_preview = true 2) Gmail Connect a Gmail OAuth2 credential (Gmail account) In Get many messages, adjust filters.q to your senders and rules: Example: =(from:news@publisher.com) OR (from:briefs@media.com -"promo") after:{{ $json.dateString }} If needed, add label: or category: filters 3) OpenAI Message a model: Model: gpt‑4.1‑mini (can swap to gpt‑4o‑mini or your preferred) Update the prompt placeholders: __ language → your target language __ sender rules → your special cases (combine blocks, ignore sections) 4) Safety and formatting Keep parse_mode=HTML in Telegram The Sanitize node is designed for ` and ` only; avoid other HTML tags The Split node uses 3 500 chars per part to stay safe under Telegram limits How to use In Telegram, send a number indicating “days ago” Example: 2 → will query Gmail after the date 2 days ago The workflow compiles and returns a digest in your chat Rerun anytime with a new number Customization ideas Labels instead of global search: q = label:Newsletters after:{{ $json.dateString }} Time window control: add before: or exact date ranges Different language: set the __ language in the LLM prompt Model choice: swap to cheaper/faster models if volume is high Chunk size: adjust from 3 500 to your needs Formatting: tweak Create TG message to include links parsed from HTML (if you add an HTML parser step) Limits and notes Telegram messages are limited to ~4 096 characters; we chunk to 3 500 per part Gmail “after:” uses YYYY/MM/DD and Google’s interpretation of dates; your n8n server time influences the computed date LLM usage incurs cost and latency proportional to email size and count HTML extraction is robust for typical Gmail structures but may need tweaks for exotic MIME layouts Privacy and safety Emails are sent to OpenAI for summarization—ensure that’s acceptable for your data policies The Telegram Trigger restricts chat access; keep your chatIds locked down Avoid sending raw HTML to Telegram; rely on the Sanitize node Sample output format (Telegram) Bold topic title One-sentence description Original Subject Line → Sender Name — DD.MM.YYYY Next topic title ... Tips and troubleshooting Got empty digests? Check Gmail filters.q and make sure there really are emails after the computed date Model errors or empty JSON? Lower prompt complexity or switch model HTML formatting issues in Telegram? Ensure parse_mode=HTML and keep only `, ` Long messages not fully delivered? Reduce chunk size from 3 500 Tags gmail, telegram, openai, llm, newsletters, digest, summarization, automation Changelog v1: Initial release with sender filters, topic merging, Telegram HTML sanitization, and on-demand time window via Telegram message