by vinci-king-01
File Processing Pipeline with Email and GitHub This workflow automatically ingests newly-uploaded files, validates and transforms their contents, stores the processed files in a GitHub repository, and sends email notifications upon completion. It is ideal for teams that regularly receive data drops and need an auditable, automated pipeline to clean, version, and distribute those files. Pre-conditions/Requirements Prerequisites n8n instance (self-hosted or n8n cloud) GitHub and SMTP credentials with appropriate permissions Basic understanding of JavaScript for custom validation/transform code Required Credentials | Credential | Purpose | Minimum Scope | |------------|---------|---------------| | GitHub OAuth2 | Commit transformed files to a repository | repo | | SMTP (Email Send) | Dispatch success/failure notifications | send | Repository & Email Setup Requirements | Item | Example | Notes | |------|---------|-------| | GitHub Repository | git@github.com:org/data-pipeline.git | Branch must exist (default: main) | | Email Recipients | ops@company.com, data@company.com | Comma-separated list | How it works This workflow automatically ingests newly-uploaded files, validates and transforms their contents, stores the processed files in a GitHub repository, and sends email notifications upon completion. It is ideal for teams that regularly receive data drops and need an auditable, automated pipeline to clean, version, and distribute those files. Key Steps: Schedule Trigger**: Executes the pipeline on a defined schedule (e.g., hourly). HTTP Request**: Pulls a file manifest or fetches file blobs from an upstream service. SplitInBatches**: Iterates over each file individually for isolated processing. Code (Validate)**: Runs custom JavaScript to ensure file integrity and schema compliance. If (Validation Pass?)**: Routes good files forward and diverts failures. Code (Transform)**: Performs any data re-formatting, enrichment, or cleansing. Set**: Prepares commit metadata (file path, commit message). GitHub**: Creates or updates a file in the target repository/branch. Email Send**: Notifies stakeholders of overall job status, including summary metrics. Set up steps Setup Time: 10-15 minutes Clone the Workflow: Import the JSON file or copy from the n8n community templates gallery. Configure Schedule Trigger: Set your desired cron expression (e.g., 0 * * * * for hourly). HTTP Request Node: Enter the endpoint that lists or returns your new uploads. Add authentication headers if required. Adjust Validation Code: Open the first Code node and replace the schema rules with your own logic. Modify Transformation Logic: In the second Code node, apply formatting (e.g., CSV → JSON) or enrichment steps. GitHub Node: Select your GitHub OAuth2 credential. Specify repository, branch, and file path template (e.g., processed/{{ $json.filename }}). Email Send Node: Set SMTP credential. Add recipients and customize subject/body with variables. Test Run: Click “Execute Workflow” to ensure end-to-end success. Activate: Toggle workflow to “Active” for autonomous execution. Node Descriptions Core Workflow Nodes: Sticky Note** – Documentation and inline comments for maintainers. Schedule Trigger** – Initiates the automation on a fixed timetable. HTTP Request** – Retrieves incoming file list or contents. SplitInBatches** – Paginates large manifests to conserve memory. Code (Validate / Transform)** – Custom JS powering data quality checks and format conversion. If** – Branching logic for pass/fail handling. Set** – Crafts commit metadata and email summaries. GitHub** – Commits each transformed file to the repository. Email Send** – Dispatches completion notices or error alerts. Data Flow: Schedule Trigger → HTTP Request → SplitInBatches → Code (Validate) → If true → Code (Transform) → Set → GitHub false → Set (Error) Both branches converge → Email Send Customization Examples Custom Validation Rule // Reject files larger than 5 MB or missing required columns if (items[0].binary.data.size > 5 * 1024 * 1024) { throw new Error('File exceeds 5MB limit'); } const required = ['id', 'email', 'created_at']; required.forEach(col => { if (!items[0].json.headers.includes(col)) { throw new Error(Missing column: ${col}); } }); return items; Dynamic Commit Path Based on Date const date = new Date().toISOString().split('T')[0]; // YYYY-MM-DD item.json.gitPath = archive/${date}/${item.json.filename}; return item; Data Output Format The workflow outputs structured JSON data: { "filename": "orders_2023-10-01.csv", "status": "committed", "commitSha": "a1b2c3d4", "linesProcessed": 523, "errors": [] } Troubleshooting Common Issues GitHub authentication error – Ensure OAuth app is approved and the token has repo scope. Email not delivered – Verify SMTP host, port, and that “less secure apps” are allowed (if using Gmail). Performance Tips Batch large manifests (e.g., 100 records) to avoid memory spikes. Enable n8n queue mode for parallel processing on self-hosted instances. Pro Tips: Use environment variables ({{ $env["VAR_NAME"] }}) for endpoints and secrets. Configure branch protection in GitHub to enforce pull requests instead of direct commits. Aggregate success vs. failure counts in the Email body for quick health checks. This is a community n8n workflow template provided “as-is.” Always review and adapt the workflow to meet your security, compliance, and operational requirements.
by Oneclick AI Squad
A fully automated, AI-powered email assistant built in n8n that reads incoming emails, understands their intent and sentiment, classifies them by category, drafts intelligent context-aware replies, and sends them automatically — all without any human intervention. Built using OpenAI + Gmail/SMTP integration for any business or team. 🎯 What's the Goal? Replace slow, manual email handling with an always-on AI email assistant that reads every incoming message, understands what the sender needs, and responds instantly with a professional, personalized reply — escalating only when truly necessary. 💡 Why Does It Matter? Email overload is one of the biggest productivity killers for businesses. Teams spend hours every day reading, triaging, and replying to repetitive messages — support requests, meeting inquiries, sales questions, and more. This workflow automates the entire cycle: inbox → understand → reply → log → escalate, saving hours per day while improving response times from hours to seconds. ⚙️ How It Works Gmail trigger polls inbox for new unread emails Email content (subject + body) is extracted and cleaned AI classifies email: Support / Sales / Meeting / Complaint / Spam / General Sentiment is analyzed: Positive / Neutral / Negative / Urgent AI drafts a professional, context-aware reply based on classification If sentiment is Urgent or Negative → escalate to human via Slack If routine → auto-send reply via Gmail Email thread logged to Google Sheets (sender, category, sentiment, reply) Slack notification sent with summary for team awareness Label applied in Gmail for organization & tracking 🔧 Configuration Requirements Gmail OAuth2** (for reading inbox and sending replies) OpenAI API key** (for classification, sentiment & reply generation) Google Sheets OAuth2** (for email log & analytics) Slack Bot Token** (for escalation alerts & team summaries) Optional: SMTP credentials** (if using non-Gmail provider) Optional: CRM webhook** (to sync contacts & interactions) 🚀 Setup Guide Import this workflow into your n8n instance Connect credentials: Gmail OAuth2, OpenAI, Google Sheets, Slack Open the Set Email Config node and configure: check_interval_minutes — how often to poll inbox (recommended: 5) auto_reply_categories — which categories to auto-reply (e.g. Support, General) escalate_categories — which to escalate (e.g. Complaint, Urgent) sender_name — your name or business name for reply signature log_sheet_id — Google Sheets document ID for logging slack_channel — channel name for escalation alerts Customize reply templates in the Set Reply Templates node Run a test with a sample email using the manual trigger Verify reply quality in Gmail Sent folder Check Google Sheets log for the entry Activate workflow — it will now monitor inbox automatically Monitor escalation volume in Slack and tune thresholds weekly 📞 Contact Us Need help setting up or customizing this workflow for your business? 👉 https://www.oneclickitsolution.com/contact-us/
by Ian Kerins
Overview This n8n template automates the generation of local business leads by scraping Google Maps. It goes beyond basic search results by visiting individual business pages to extract detailed contact information, reviews, and attributes (like LGBTQ+ friendly status). It includes built-in deduplication against a Google Sheet to ensure you only receive alerts for new leads. Who is this for? Marketing Agencies**: Finding local clients for services. Sales Teams**: Building lists of prospects in specific cities. Recruiters**: Finding businesses in specific niches. Researchers**: Gathering data on local business landscapes. What problems it solves Manual Data Entry**: Eliminates the need to copy-paste business details from Maps. Duplicate Leads**: Automatically checks against your database to prevent duplicate entries. Incomplete Data**: Performs a "deep scrape" to get data often missing from list views (websites, full phone numbers, reviews). Delayed Action**: Sends instant alerts via Gmail and Slack so you can act on new leads immediately. How it works Input: Takes a city name via a form (or can be scheduled). Search: Uses ScrapeOps to search Google Maps for your target keyword (e.g., "Dentist"). Deep Extraction: Visits each business profile to scrape phone numbers, websites, ratings, and reviews. Validation: Compares found businesses with your existing Google Sheet database. Action: Saves new leads to the sheet and notifies you via Gmail and Slack. Set up steps (~ 10-15 minutes) ScrapeOps Account: Register for a free API key at ScrapeOps. Google Sheet: Create a new Google Sheet. Add these headers: businessName, phone, website, rating, totalReviews, address, city, category, mapUrl, status, checkedAt, lgbtqFriendly, review1, review2, review3. Or duplicate this Template Sheet. Configure Nodes: Set Google Maps Configuration: Set your keyword (e.g., "dentist", "plumber"). Google Sheets Nodes: Connect your account and select the sheet you created. Gmail & Slack Nodes: Update with your email address and Slack channel. Pre-conditions An n8n instance (Cloud or Self-hosted). A ScrapeOps API Key (Free tier available). Google Cloud Console project with Gmail and Sheets APIs enabled (for credentials). Disclaimer This template uses ScrapeOps as a community node. You are responsible for complying with Google's Terms of Use, robots directives, and applicable laws in your jurisdiction. Scraping targets may change at any time; adjust render/scroll/wait settings and parsers as needed. Use responsibly for legitimate business purposes. Key Features The ScrapeOps n8n node provides access to three main APIs: 1. Proxy API Access to ScrapeOps' proxy aggregator for reliable web scraping: Smart proxy rotation across multiple providers JavaScript rendering support Anti-bot bypass capabilities Geo-targeting options Mobile and residential proxy support Full Documentation: n8n Proxy API Aggregator 2. Parser API Extract structured data from popular websites without maintaining your own parsers: Supported Sites:** Amazon, eBay, Walmart, Indeed, Redfin Page Types:** Product pages, search results, reviews, categories Returns clean, structured JSON data Full Documentation: n8n Parser API 3. Data API Direct access to structured data endpoints: Amazon Product API:** Get product details by ASIN or URL Amazon Search API:** Search products and get structured results Full Documentation: n8n Data APIs
by masahiro hanawa
Who is this for? This template is ideal for event organizers, conference managers, and community teams who need an automated participant management system. Perfect for workshops, conferences, meetups, or any event requiring registration and check-in tracking. What this workflow does This workflow provides end-to-end event management with two main flows: Registration Flow: ⦁ Receives participant registration via webhook ⦁ Generates unique ticket ID and stores in Google Sheets ⦁ Creates QR code using the QR Code node ⦁ Sends confirmation email with QR code attached Check-in Flow: ⦁ Scans and decodes QR code at venue entrance ⦁ Validates ticket against participant database ⦁ Blocks duplicate check-ins with clear error messages ⦁ Sends Slack notification for VIP arrivals ⦁ Returns real-time attendance statistics Setup Create a Google Sheet with columns: Ticket ID, Event ID, Name, Email, Ticket Type, Registered At, Checked In, Check-in Time Connect your Google Sheets and Gmail credentials Configure Slack for VIP notifications Set up the webhook URLs in your registration form Requirements ⦁ Google Sheets (participant database) ⦁ Gmail account (confirmation emails) ⦁ Slack workspace (VIP notifications) How to customize ⦁ Add capacity limits by checking row count before registration ⦁ Modify QR code size and format in the QR Code node ⦁ Add additional ticket types beyond VIP/standard ⦁ Integrate with payment systems for paid events
by Rahul Joshi
Description This workflow automatically detects bounced or invalid email addresses from your Gmail inbox and updates their status in Google Sheets. It fetches bounce notifications, extracts failed email addresses, and matches them against your contact list to update each record’s status as “Not Found” (bounced) or “Not Sent” (no bounce). Additionally, it runs a daily scheduled summary that sends bounce statistics to Slack, helping marketing or sales teams maintain clean, up-to-date mailing lists. What This Template Does (Step-by-Step) 📬 Fetch Bounce Notifications from Gmail Retrieves bounce messages automatically filtered by sender mailer-daemon@googlemail.com. 🔢 Get Latest 5 Bounces Sorts all bounce emails by date and limits processing to the five most recent to keep performance fast and focused. 🔍 Parse Bounced Email Addresses Extracts failed email addresses from Gmail message snippets using regex pattern matching. 📋 Fetch All Email Contacts from Google Sheets Loads all contact records from your “Fraud Email” sheet, including columns like Name, Email, Status, and Last Updated. 🔗 Combine Bounce Data with Contact List Merges parsed bounce results with your existing contact data to prepare for status updates. ✅ Match & Update Contact Status Marks “Not Found” for bounced emails. Marks “Not Sent” for valid but inactive ones. Updates “Last Updated” timestamp for all. 💾 Write Updated Status Back to Sheet Pushes updated contact information (Status and Last Updated) back into Google Sheets, ensuring centralized record accuracy. ⏰ Daily 7PM Trigger Automatically starts the summary workflow every evening at 7:00 PM. 🧮 Calculate Summary Statistics Counts total invalid emails (“Not Found”) and inactive ones (“Not Sent”). 💬 Send Slack Daily Summary Sends a formatted report to your #email-cleanup Slack channel showing: 📧 Invalid email count 📭 No activity count ✅ Reminder to maintain list hygiene Prerequisites Gmail account connected with n8n Google Sheet (Fraud Email) with contact data Slack workspace and channel for daily reports n8n instance (cloud or self-hosted) Step-by-Step Setup Connect Gmail → Fetch bounce notifications. Add Google Sheet → Load and update contact data. Parse bounces → Identify failed email addresses. Merge & update → Sync statuses in Google Sheet. Enable daily trigger → Schedule Slack summaries. Customization Ideas 🎯 Expand bounce limit beyond 5 recent messages. 📢 Add a Gmail label like “Bounced” after processing. 📚 Integrate with HubSpot or Airtable for CRM sync. 💡 Include timestamps or sender domains in Slack summary. Key Benefits ✅ Keeps mailing lists accurate and deliverable ✅ Saves hours of manual bounce management ✅ Automates email hygiene with zero supervision ✅ Provides transparent daily Slack reports ✅ 100% automated, efficient, and scalable Perfect For 👥 Marketing and outreach teams managing bulk campaigns 🏢 Businesses maintaining verified contact databases 📊 Sales teams using Gmail and Google Sheets ⚙️ Agencies ensuring top-tier email deliverability
by Yaron Been
Monitor a company watchlist for new Seed and Series A funding rounds and deliver a formatted weekly scouting report via email and Slack. This workflow reads company domains from a Google Sheets watchlist, checks each one for recent financing events via the PredictLeads Financing Events API, filters for Seed and Series A rounds from the past 7 days, then uses OpenAI to generate a professional weekly scouting report with a summary table and trend analysis. The report is delivered via Gmail and Slack. How it works: Weekly schedule trigger runs every Monday. Reads company domains from the Google Sheets watchlist. Loops through each company and fetches financing events from PredictLeads. Filters for Seed and Series A rounds that occurred in the last 7 days. Aggregates all filtered funding events into a single dataset. Sends the aggregated data to OpenAI to generate a formatted scouting report. The report includes a markdown table (Company, Round Type, Amount, Date, Key Investors) and trend analysis. Sends the full report via Gmail. Posts a summary notification to Slack. Setup: Create a Google Sheet with a "Watchlist" tab containing a column: domain. Configure the Gmail recipient address in the Send Report Email node (default: team@yourcompany.com). Set up a Slack incoming webhook URL in the Slack Summary node. Add your OpenAI API key in the Generate Scouting Report HTTP Request node. Add your PredictLeads API credentials (X-Api-Key and X-Api-Token headers). Requirements: Google Sheets OAuth2 credentials. Gmail OAuth2 credentials. Slack incoming webhook URL. OpenAI API account (uses gpt-4o-mini, ~$0.003-0.008 per call). PredictLeads API account (https://docs.predictleads.com). Notes: The 7-day lookback window is configured in the Filter Seed & Series A code node. Funding categories include "seed", "series_a", and "series a" variations. If no funding rounds are found, the report states that clearly rather than failing. PredictLeads Financing Events API docs: https://docs.predictleads.com
by Daniel Shashko
How it Works This workflow automatically monitors your Gmail support inbox every minute for new unread messages, instantly sending each email to OpenAI for intelligent analysis. The AI engine evaluates sentiment (Positive/Neutral/Negative/Critical), urgency level (Low/Medium/High/Critical), and categorizes requests into Technical, Billing, Feature Request, Bug Report, or General Inquiry, while extracting key issues and generating professional response templates. The system calculates a priority score (0-110 points) by combining urgency weight (25 points per level) with sentiment impact (10 points per level), automatically flagging any Critical urgency or Critical sentiment tickets for immediate attention. Critical issues trigger instant Slack alerts with full context, suggested responses, and 30-minute SLA reminders, while routine tickets route to monitoring channels for standard processing. Every ticket is logged to Airtable with complete analysis data and thread tracking, then simultaneously posted to a Google Sheets analytics dashboard for real-time metrics. A secondary AI pass generates strategic insights including trend identification, risk assessment, and actionable recommendations for the support team, storing these insights back in Airtable linked to the original ticket. The entire process takes seconds from email arrival to team notification, eliminating manual triage and ensuring critical customer issues receive immediate attention while building a searchable knowledge base of support patterns. Who is this for? Customer support teams drowning in high email volumes needing automated prioritization SaaS companies tracking support metrics and response times for customer satisfaction Startups with lean support teams requiring intelligent ticket routing and escalation E-commerce businesses managing technical support, returns, and billing inquiries simultaneously Support managers needing data-driven insights into customer pain points and support trends Setup Steps Setup time: Approx. 20-30 minutes (OpenAI API, Gmail connection, database setup) Requirements: Gmail account with support email access OpenAI API account with API key Airtable account with workspace access Google Sheets for analytics dashboard Slack workspace with incoming webhooks Sign up for OpenAI and obtain your API key for the AI analysis nodes. Create an Airtable base with two tables: "tblSupportTickets" (main records) and "tblInsights" (AI insights) with matching column names. Create a Google Sheet with columns for Date, Time, Customer, Email, Subject, Sentiment, Urgency, Category, Priority, Critical, Status. Set up these nodes: Monitor Support Emails: Connect Gmail account, configure to check INBOX label for unread messages. AI Analysis Engine: Add OpenAI credentials and API key, system prompt pre-configured. Parse & Enrich Data: JavaScript code automatically extracts and scores data (no changes needed). Route by Urgency: Configure routing rules to split critical vs. routine tickets. Slack Alert Nodes: Set up webhook URLs for critical alerts channel and routine monitoring channel. Log to Airtable Database: Connect Airtable, select base and table, map all data fields. Update Analytics Dashboard: Connect Google Sheets and select target sheet/range. Generate Insights & Store AI Insights: OpenAI credentials already set, Airtable connection for storage. Replace placeholder IDs: Airtable base ID (appXXXXXXXXXXXXXX), table names, Google Sheet document ID (1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX). Credentials must be entered into their respective nodes for successful execution. Customization Guidance Priority Scoring Formula:** Adjust urgency multiplier (currently 25) and sentiment weight (currently 10) in the Code node to match your SLA requirements. Urgency Thresholds:** Modify critical routing logic—currently any "Critical" urgency or sentiment triggers immediate alerts. AI Analysis Temperature:** Lower OpenAI temperature (0.1-0.2) for more consistent categorization, or raise (0.4-0.5) for nuanced sentiment detection. Polling Frequency:** Change Gmail trigger from every minute to every 5/15/30 minutes based on support volume and urgency needs. Email Filters:** Add sender whitelist/blacklist, specific label filters, or date ranges to focus on particular customer segments. Category Customization:** Modify AI system prompt to add industry-specific categories like "Compliance," "Integration," "Onboarding," etc. Multi-Language Support:** Add language detection and translation steps before AI analysis for international support teams. Auto-Response:** Insert Gmail send node after AI analysis to automatically send suggested responses for low-priority inquiries. Escalation Rules:** Add additional routing for VIP customers, enterprise accounts, or tickets mentioning "cancel/refund." Dashboard Enhancements:** Connect to Data Studio, Tableau, or Power BI for advanced support analytics and team performance tracking. Once configured, this workflow transforms your support inbox into an intelligent triage system that never misses critical issues, provides instant team visibility, and builds actionable customer insights—all while your team focuses on solving problems instead of sorting emails. Built by Daniel Shashko Connect on LinkedIn
by WeblineIndia
Smart Partner API Usage Monitoring with Slack, Jira & Gmail Alerts This workflow monitors partner API usage in real time and triggers alerts based on usage thresholds. It validates incoming data, calculates usage percentage and routes actions using a Switch node. Slack notifications are sent at 80%, Jira tickets are created at 90% and critical alerts (Email + Jira + Slack) are triggered at 100%. Quick Implementation Steps Import the workflow into n8n Configure the Webhook node and test with sample data Add credentials for Slack, Jira and Gmail Update Slack channel ID, Jira project and email recipient Activate the workflow Send test payloads to verify all alert levels What This Workflow Does This workflow helps monitor partner API usage automatically and ensures timely alerts when usage reaches defined thresholds. It starts by receiving usage data through a webhook, validating the payload and calculating the usage percentage based on quota and consumption values. Once calculated, the workflow routes the data using a Switch node. At 80% usage, it sends an early warning Slack notification. At 90%, it escalates by creating a Jira ticket and notifying via Slack. When usage reaches 100%, it triggers a critical alert by sending an email, creating a Jira ticket and sending a Slack notification. This approach ensures better visibility, timely action and helps prevent service disruption. Who’s This For? SaaS platforms with API-based billing DevOps and Engineering teams Product and Platform teams Customer Success managers Businesses managing partner integrations Requirements n8n (Cloud or Self-hosted) Slack account with API access Jira Software Cloud account Gmail account (OAuth configured in n8n) API or system to send usage data via webhook How It Works & Setup Guide Setup Steps Webhook Setup Configure the Incoming Partner Usage Data node Accept POST requests Required fields: partner_id partner_name quota consumed timestamp Validate Payload The workflow checks for missing fields and invalid values Calculate Usage Calculates usage percentage from quota and consumed values Stops execution if usage is below 80% Switch Routing Routes workflow based on usage: 80% → Slack alert 90% → Jira + Slack 100% → Gmail + Jira + Slack Configure Integrations Slack: Set channel ID Jira: Set project and issue type Gmail: Set recipient email Test Workflow Send sample data to webhook Verify all alert paths Activate Enable workflow after testing How To Customize Nodes Webhook Node** → Change endpoint path or add authentication Validation Node** → Add more fields like plan or email Calculation Node** → Modify threshold logic Switch Node** → Adjust percentage ranges Slack Node** → Customize message format and channel Jira Node** → Update ticket structure Gmail Node** → Modify email subject, HTML, recipients Add-ons & Enhancements Add deduplication to avoid repeated alerts Store usage data in database or Google Sheets Send alerts to multiple email recipients Integrate with CRM or billing systems Add cooldown or rate limiting Enrich partner data using external APIs Use Case Examples Monitor API usage for partners in SaaS platforms Prevent service downtime due to overuse Trigger internal review processes automatically Automate partner upgrade discussions Improve operational visibility for teams This workflow can be adapted for many other automation use cases as well. Troubleshooting Guide | Issue | Possible Cause | Solution | | ----------------------- | -------------------------------- | ----------------------------------- | | Workflow not triggering | Webhook not called | Verify webhook URL and method | | Invalid payload error | Missing fields | Ensure required fields are included | | Slack message not sent | Incorrect channel or credentials | Reconfigure Slack node | | Jira ticket not created | Wrong project or API issue | Verify Jira credentials | | Email not sent | Gmail OAuth issue | Reconnect Gmail account | | Incorrect usage % | Invalid data format | Ensure numeric values | Need Help? If you need help setting up or customizing this workflow, our n8n workflow development team at WeblineIndia can assist you in building scalable automation solutions, integrating APIs and optimizing workflows using n8n. Whether you need custom workflow development, advanced automation features or production-ready deployment, we are here to help you build reliable automation systems.
by WeblineIndia
Birthday & Milestone Message Automation (n8n Google Sheets + Gemini AI + Gmail) This workflow automatically sends personalized birthday and anniversary emails to clients. It runs daily, checks a Google Sheet for matching dates, generates a warm AI message using Google Gemini and sends it via Gmail. It also includes a thoughtful investment idea tailored to the client’s age, risk profile and relationship type. Quick Implementation Steps Connect Google Sheets OAuth2 Add your Google Gemini API key Connect Gmail OAuth2 Update the Google Sheet ID Ensure your sheet has required columns: Client Name, Email, Advisor Name, Birthday, Anniversary, Relationship Type (Premium / Normal), Client Age, Risk Profile Activate the workflow What It Does This workflow automates client relationship engagement for financial advisors by sending personalized messages on important milestones like birthdays and anniversaries. It eliminates the need for manual tracking and ensures that no important date is missed. Every day at a scheduled time, the workflow reads all client records from a Google Sheet and checks if any client has a birthday or anniversary on that day. If a match is found, it prepares detailed variables including client information, tone and occasion. The workflow then intelligently selects a suitable investment idea based on the client’s age group and risk profile. This context is passed to Google Gemini, which generates a warm, human-like message. Finally, the message is formatted and sent as a text email via Gmail. Who’s It For Financial advisors Wealth managers Investment consultants Relationship managers handling client portfolios Firms managing high-value or premium clients Requirements To use this workflow, you need: n8n instance (Cloud or Self-hosted) Google Sheets account with client data Google Gemini API key Gmail account for sending emails Proper OAuth2 credentials configured in n8n A Google Sheet with the following columns: Client Name Email Advisor Name Birthday Anniversary Relationship Type (Premium / Normal) Client Age Risk Profile How It Works & Setup Guide 🧩 Step-by-Step Workflow Execution Schedule Trigger Runs every day at 9:01 AM Read Client Data Fetches all rows from Google Sheets Settings Node Stores configuration such as: Message tone Default values Subject line format Labels for birthday and anniversary Date Matching (IF Node) Checks if today matches: Client Birthday OR Client Anniversary If no match → workflow stops Prepare Variables Extracts and formats: Client details Occasion type Message tone (premium or normal) Email subject AI prompt Investment Suggestion Logic (Code Node) Selects suggestion based on: Age group (Young / Mid / Senior) Risk profile (Low / Moderate / High) Adds a meaningful explanation AI Message Generation Google Gemini generates: Warm personalized message Includes emotional investment suggestion Format Email Converts AI output into clean text format Send Email Gmail sends the message directly to the client How To Customize Nodes Schedule Node** Change time based on your preference Settings Node** Modify: Tone (formal, friendly) Subject lines Default age or risk values Advisor firm name Google Sheet Node** Replace Sheet ID with your own data source Code Node (Investment Logic)** Add or modify: Investment ideas Age group logic Risk mapping Gemini Node** Adjust prompt for: More emotional tone Shorter or longer messages Gmail Node** Change sender name or email behavior Add-ons (Enhancements) Add WhatsApp or SMS integration for multi-channel messaging Store sent messages in Google Sheets or CRM Add Slack notifications for internal tracking Include attachments (PDF reports or offers) Add client segmentation logic for advanced personalization Use Case Examples Automatically send birthday wishes to all clients without manual effort Strengthen relationships with premium clients using personalized messages Promote subtle investment awareness without sounding salesy Maintain consistent engagement across a large client base Improve client retention through thoughtful communication There can be many more such use cases depending on how you want to extend and customize this workflow. Troubleshooting Guide | Issue | Possible Cause | Solution | |------|--------------|---------| | No emails are sent | No matching date found | Verify birthday/anniversary format in sheet | | Workflow stops early | IF condition not satisfied | Check date comparison logic | | Incorrect client data | Column mismatch | Ensure exact column names are used | | Gemini not generating response | API key issue | Verify Gemini credentials | | Emails not delivered | Gmail authentication issue | Reconnect Gmail OAuth | | Wrong message tone | Settings misconfigured | Check tone values in Settings node | Need Help? If you need assistance setting up this workflow, customizing it for your business or building advanced automation solutions, feel free to reach out to our n8n workflow development team at WeblineIndia. Our team can help you design scalable, production-ready workflows tailored to your exact requirements.
by Jitesh Dugar
Customer Onboarding Email Verification Automated email verification and welcome email workflow that validates new user signups, prevents fake emails, and creates a seamless onboarding experience with real-time team notifications. Features ✅ Real-time email validation with VerifiEmail API ✅ Automatic data sanitization (lowercase, trim whitespace) ✅ Smart typo detection and correction suggestions ✅ Disposable email domain blocking ✅ Professional HTML welcome emails with responsive design ✅ Automatic duplicate prevention in Google Sheets logging ✅ Real-time Slack notifications for sales/marketing teams ✅ MX record and SMTP deliverability checks What You Need Required Accounts/APIs: VerifiEmail API - For email validation (verifi.email) Gmail account (or SMTP server) - For sending welcome emails Google Sheets - For logging verified users Slack workspace - For team notifications (optional but recommended) Setup Instructions Create Google Sheet Create new spreadsheet named "Verified Users" Add headers: Name | Email | Status | Verified At | Original Email | Validation Score Connect Credentials Add VerifiEmail API key in n8n credentials Connect Gmail via OAuth2 (enable 2FA, generate app password if needed) Connect Google Sheets via OAuth2 Connect Slack workspace via OAuth2 Customize Email Template Open "Personalize Welcome Email" node Replace "Your Company" with your brand name (appears 3 times) Update CTA URLs: yourapp.com/dashboard → Your actual dashboard URL yourapp.com/getting-started → Your docs/guide URL yourapp.com/support → Your support page URL Modify colors: Purple gradient #667eea to #764ba2 (line 37) Configure Slack Channel Create #new-signup channel in Slack (or use existing) Update channel in "Team Notification" node Test Workflow Activate workflow Copy webhook URL from Webhook node Test with: curl -X POST [webhook-url] -H "Content-Type: application/json" -d '{"name":"Test User","email":"test@gmail.com"}' Integrate with Your Signup Form Point form submission to webhook URL Ensure payload includes name and email fields Input Format Send POST request to webhook with this JSON: { "name": "John Doe", "email": "johndoe@gmail.com" } The workflow handles various input formats (nested in body field, query params, etc.) and sanitizes automatically. Output After execution, you'll get: Email validated via VerifiEmail API with deliverability score Welcome email sent to user with personalized greeting and CTAs User logged to Google Sheets with timestamp and validation details Slack notification sent to team with user details and status Invalid emails blocked with typo correction suggestions prepared For Valid Emails (~85-90%): Professional HTML welcome email delivered Entry added to "Verified Users" sheet Real-time Slack alert to #new-signup channel For Invalid Emails (~10-15%): Workflow stops with error message No email sent (prevents bounces) Typo suggestion prepared (e.g., gmial.com → gmail.com) Customization Change Email Design: Edit the "Personalize Welcome Email" node HTML: Colors**: Change gradient in line 37: background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) Logo**: Add `` tag in header section Buttons**: Modify CTA text and links in lines 45-65 Footer**: Update copyright year and company name Modify Validation Rules: In "Prepare Correction Email" node, add more typo patterns: const commonTypos = { 'gmial': 'gmail', 'gmai': 'gmail', // Add your custom patterns: 'yourdomain': 'yourcorrectdomain' } Enable Correction Email Sending: Replace "Stop and Error" node with Gmail "Send Email" node: Connect from "Prepare Correction Email" Use {{ $json.email }} as recipient Use {{ $json.emailBody }} as message User receives helpful correction suggestion instead of silent failure Add More Notification Channels: After "Log Valid Users" node, add: Discord webhook for team notifications Microsoft Teams connector Email to sales@ or support@ Custom webhook to your CRM Log Invalid Attempts: Add Google Sheets node after "Prepare Correction Email": Create "Invalid Attempts" tab in same spreadsheet Log: Name, Email, Reason, Suggestion, Timestamp Analyze patterns weekly for form improvements Troubleshooting "undefined" error in Data Sanitization: Check webhook payload structure Verify name and email fields are present Test with the debug code provided in sticky notes All emails marked as invalid: Verify VerifiEmail API key is active Test API directly at verifi.email dashboard Welcome emails not sending: Confirm Gmail OAuth2 is connected (check for expired tokens) Verify sending limits not exceeded Check spam folder if testing with personal email Review Gmail "Sent" folder for delivery confirmation No Slack notifications: Verify OAuth2 connection is active Check bot has permission to post in #new-signup channel Confirm channel ID is correct Test Slack credentials in n8n Duplicate entries in Google Sheets: Verify "Email" is set as matching column Confirm operation is "Append or Update" not just "Append" Check Sheet1 has the exact column names expected High validation failure rate: Review invalid emails in execution logs Check for form submission issues (bots, testing) Verify VerifiEmail API is not blocking legitimate domains Performance Optimization For high-volume signups (>100/day): Switch Slack notifications to hourly digest Implement rate limiting on webhook Consider caching frequent domain validations Use Google Workspace for higher email sending limits Maintenance Weekly: Check VerifiEmail API usage and quota Review Slack notifications for anomalies Scan Google Sheets for data quality Test with sample signup Monthly: Archive old Google Sheets data (>90 days) Review invalid email patterns Update email template if needed Audit credential security Support For issues or questions, visit the n8n community forum.
by WeblineIndia
Job post expiry & refresh reminders from Google Sheets using HTTP Last‑Modified checks This workflow checks each job URL in your Google Sheet and identifies listings that look stale based on the page’s Last‑Modified date. At 10:00 Asia/Kolkata every day, it requests each URL (HEAD, then GET if needed), calculates the age in days, and sends a polite email reminder to the recruiter when age ≥ a configurable threshold (default 30 days). It includes a DRY_RUN mode to preview who would be emailed, and conservative rate limits for both HTTP requests and email sends. Who’s it for Recruitment teams maintaining job links on external boards/career sites. Coordinators who want a daily, hands‑off nudge to refresh or unlist outdated posts. Teams using Google Sheets to store job URLs and owner contacts. How it works Cron (10:00 IST) triggers daily. Google Sheets reads the Job Posts tab (job_url, recruiter_name, recruiter_email). Validate rows (URL + email format, weekend rule via config). HTTP HEAD to fetch headers; if Last-Modified missing, HTTP GET and parse common meta tags (article:modified_time, og:updated_time, lastmod, dateModified). Compute age (days since last modified in your configured timezone). If age_days ≥ THRESHOLD_DAYS, prepare a personalized email using templates. DRY_RUN? If true, output a preview; if false, rate‑limit and send emails via SMTP. How to set up Create the Sheet Tab name: Job Posts Columns: job_url, recruiter_name, recruiter_email Credentials in n8n Google Sheets (OAuth) SMTP (Gmail) (use an app password if 2FA) Open “Set: Config” and set: SPREADSHEET_ID = your Sheet ID SOURCE_SHEET = Job Posts TIMEZONE = Asia/Kolkata THRESHOLD_DAYS = 30 (change if needed) USER_AGENT = n8n-job-checker/1.0 HTTP_TIMEOUT_SECONDS = 10 HTTP_RETRIES = 2 RATE_LIMIT_HTTP_SECONDS = 5 RATE_LIMIT_EMAIL_SECONDS = 2 SMTP_FROM = sender email (e.g., hiring-ops@company.com) SUBJECT_TEMPLATE, HTML_TEMPLATE, TEXT_TEMPLATE (placeholders: {{recruiter_name}}, {{job_url}}, {{age_days}}, {{last_modified}}) INCLUDE_WEEKENDS = true DRY_RUN = false (set true to preview) Activate the workflow. Requirements Google Sheet with Job Posts tab and required columns. SMTP (Gmail) account to send emails. n8n (cloud or self‑hosted) with Google Sheets + SMTP credentials. How to customize Threshold:** Change THRESHOLD_DAYS (e.g., 15, 45). Schedule:** Adjust the Cron time from 10:00 IST to your preferred hour. Templates:** Edit SUBJECT_TEMPLATE, HTML_TEMPLATE, and TEXT_TEMPLATE. Rate limits:** Tune RATE_LIMIT_HTTP_SECONDS and RATE_LIMIT_EMAIL_SECONDS for your environment. Weekend behavior:** Toggle INCLUDE_WEEKENDS. Preview runs:** Use DRY_RUN=true to check recipients before real sends. Add‑ons Helper columns:** Write back last_modified_http, age_days, reminder_sent_at, last_checked_at, notes to the sheet. Per‑row override:** Add threshold_days column to override the global threshold per job. Slack notifications:** DM the recruiter or a channel in addition to (or instead of) email. One‑time reminders:** Email only once until the page updates (track reminder_sent_at). Robots/backoff:** Respect robots.txt or add exponential backoff for high‑traffic sites. Use Case Examples Career site posts** that haven’t been updated in 30+ days. Remind owners to refresh copy or close the listing. Third‑party boards** (e.g., niche communities) where Last‑Modified is available — automate hygiene checks. Agency partnership links** — ensure outdated roles aren’t left live, protecting brand experience. Common troubleshooting | Issue | Possible Cause | Solution | | --- | --- | --- | | No emails sent | DRY_RUN is true | Set DRY_RUN=false to actually send. | | Rows skipped | Invalid/missing job_url or recruiter_email | Fix the row values; ensure valid URL and email. | | “Stale” not detected | Page has no Last-Modified header and no recognizable meta tags | Add manual review; consider the Helper columns add‑on to log missing dates, or track first_seen_at. | | Wrong time math | Timezone mismatch | Confirm TIMEZONE=Asia/Kolkata (or your TZ) in Set: Config. | | Too many requests | Sites rate‑limit frequent checks | Increase RATE_LIMIT_HTTP_SECONDS; consider running less frequently. | | Emails fail to send | SMTP auth or quota issues | Verify SMTP credentials, sender address, and provider limits; try a different sender or schedule. | Need Help? If you’d like help tailoring the templates, adding Slack notifications or writing back helper columns for audit, just message us at WeblineIndia and we will be happy to help you get this running smoothly.
by Jitesh Dugar
Verified Visitor Pass Generator Overview Transform your visitor management process with this fully automated, enterprise-grade workflow. The Verified Visitor Pass Generator eliminates manual data entry, prevents fake registrations through email verification, and creates professional branded visitor passes in under 30 seconds. What This Workflow Does This comprehensive automation handles the complete visitor onboarding lifecycle: Captures Visitor Data - Receives form submissions via webhook from Jotform, Typeform, or any custom form Verifies Email Authenticity - Uses VerifiEmail API to validate emails and block disposable/fake addresses Generates Unique IDs - Creates visitor IDs with timestamps for tracking and security Creates QR Codes - Generates scannable QR codes containing visitor information for fast check-in Designs Digital Passes - Produces professional, branded visitor badges with HTML/CSS to Image Sends Email Notifications - Delivers passes to visitors with visit details and instructions Alerts Security Team - Posts real-time notifications to Slack with visitor details Maintains Audit Trail - Logs all visitor data to Google Sheets for compliance and reporting Key Features ✅ Email Verification - Blocks fake registrations (95%+ accuracy) ✅ Branded Badges - Customizable design with logo, colors, and QR codes ✅ Instant Delivery - Visitors receive passes within 30 seconds ✅ Real-Time Alerts - Security team gets Slack notifications immediately ✅ Complete Audit Trail - All visitor data logged to Google Sheets ✅ Mobile-Friendly - Passes work on any smartphone ✅ QR Code Integration - Fast scanning for contactless check-in ✅ Professional Templates - HTML email templates included ✅ Error Handling - Invalid emails automatically rejected ✅ Zero Manual Work - 100% automated from submission to delivery Perfect For 🏢 Coworking spaces and shared offices 🏛️ Corporate offices and headquarters 🎪 Event venues and conference centers 🏥 Healthcare facilities 🏫 Educational institutions 🏭 Manufacturing facilities 🏨 Hotels and hospitality venues Business Impact Before Automation: ⏱️ 10-15 minutes per visitor (manual process) 📝 Manual data entry errors 🔒 No email verification 📊 No centralized tracking 💸 High labor costs After Automation: ⚡ 30 seconds per visitor ✅ Zero manual work 🔐 Email verification prevents fraud 📈 Complete analytics and reporting 💰 99% cost reduction Use Cases Scenario 1: Daily Office Visitors A coworking space receives 50 visitors daily. The workflow automatically verifies each visitor, generates professional passes, and maintains a searchable database for security compliance. Scenario 2: Event Registration A conference venue uses the workflow for event check-in. Attendees receive QR-coded passes that security scans for instant verification. Scenario 3: Contractor Management A corporate office tracks all contractor visits with automated logging, ensuring compliance with safety regulations and insurance requirements. Customization Options Easy Customizations: Change company logo and branding colors Modify email templates and messaging Adjust badge design and layout Add custom visitor fields Update location and contact information Advanced Customizations: Add SMS notifications (Twilio integration) Implement visitor pre-approval workflow Create recurring visitor fast-track Add NDA/terms acceptance step Integrate with access control systems Build visitor analytics dashboard What Users Love ⭐⭐⭐⭐⭐ "Reduced our visitor processing time from 10 minutes to 30 seconds. Game changer!" ⭐⭐⭐⭐⭐ "The email verification feature stopped all fake registrations. Security team loves it." ⭐⭐⭐⭐⭐ "Professional badges make our coworking space look enterprise-grade. Clients are impressed." 🔧 Required Integrations & Credentials 1. VerifiEmail API (Required) Setup:** Sign up at https://verifi.email and get API token 2. HTMLCSSToImage API (Required) Setup:** Sign up at https://htmlcsstoimg.com and get API credentials 3. Gmail OAuth2 or SMTP (Required) Setup:** Connect Gmail account via OAuth2 in n8n 4. Slack API (Required) Setup:** Create Slack app and get OAuth token 5. Google Sheets OAuth2 (Required) Setup:** Connect Google account and create spreadsheet 🎯 Quick Start Guide Step 1: Setup Credentials Create VerifiEmail account and get API token Setup HTMLCSSToImage API credentials Connect Gmail account via OAuth2 Create Slack app and get bot token Connect Google Sheets account Step 2: Configure Nodes Update company name in HTML badge template Replace logo in badge design (line 76 in HTML/CSS node) Update email template with your contact info Set Slack channel ID for notifications Create Google Sheets with proper column headers Step 3: Test Workflow Click "Execute Workflow" with test data Verify email is sent to test address Check Slack notification appears Confirm data logs to Google Sheets Scan QR code to verify it works Step 4: Activate Toggle workflow to "Active" Copy webhook URL to your form Submit first real visitor registration Monitor execution logs for issues 📈 Monitoring & Analytics Track these metrics in Google Sheets: Total visitors processed Email verification success rate Peak visitor hours/days Most common visit purposes Visitor company frequency Average processing time 📄 License This workflow is provided as-is for use in your n8n instance. Feel free to modify and adapt to your needs.