by Oneclick AI Squad
This n8n workflow automates the monitoring of warehouse inventory and sales velocity to predict demand, generate purchase orders automatically, send them to suppliers, and record all transactions in ERP and database systems. It uses AI-driven forecasting to ensure timely restocking while maintaining operational efficiency and minimizing stockouts or overstocking. Key Features Automated Scheduling:** Periodically checks inventory and sales data at defined intervals. Real-Time Data Fetching:** Retrieves live warehouse stock levels and sales trends. AI Demand Forecasting:** Uses OpenAI GPT to predict future demand based on sales velocity and stock trends. Auto-Purchase Orders:** Automatically generates and sends purchase orders to suppliers. ERP Integration:** Logs completed purchase orders into ERP systems like SAP, Oracle, or Netsuite. Database Logging:** Saves purchase order details and forecast confidence data into SQL databases (PostgreSQL/MySQL). Email Notifications:** Notifies relevant teams upon successful order creation and logging. Modular Configuration:** Each node includes configuration notes and credentials setup instructions. Workflow Process Schedule Trigger Runs every 6 hours to monitor stock and sales data. Interval can be adjusted for higher or lower frequency checks. Fetch Current Inventory Data Retrieves live inventory levels from the warehouse API endpoint. Requires API credentials and optional GET/POST method setup. Fetch Sales Velocity Pulls recent sales data for forecasting analysis. Used later for AI-based trend prediction. Merge Inventory & Sales Data Combines inventory and sales datasets into a unified JSON structure. Prepares data for AI model input. AI Demand Forecasting Sends merged data to OpenAI GPT for demand prediction. Returns demand score, reorder need, and confidence levels. Parse AI Response Extracts and structures forecast results. Combines AI data with original inventory dataset. Filter: Reorder Needed Identifies items flagged for reorder based on AI output. Passes only reorder-required products to next steps. Create Purchase Order Automatically creates a PO document with item details, quantity, and supplier information. Calculates total cost and applies forecast-based reorder logic. Send PO to Supplier Sends the generated purchase order to supplier API endpoints. Includes response validation for order success/failure. Log to ERP System Records confirmed purchase orders into ERP platforms (SAP, Oracle, Netsuite). Includes timestamps and forecast metrics. Save to Database Stores all PO data, supplier responses, and AI forecast metrics into PostgreSQL/MySQL tables. Useful for long-term audit and analytics. Send Notification Email Sends summary emails upon PO creation and logging. Includes PO ID, supplier, cost, and demand reasoning. Setup Instructions Schedule Trigger:** Adjust to your preferred interval (e.g., every 6 hours or once daily). API Configuration:** Provide credentials in Inventory, Sales, and Supplier nodes. Use Authorization headers or API keys as per your system. AI Node (OpenAI):** Add your OpenAI API key in the credentials section. Modify the prompt if you wish to include additional forecasting parameters. ERP Integration:** Replace placeholder URLs with your ERP system endpoints. Match fields like purchase order number, date, and cost. Database Connection:** Configure credentials for PostgreSQL/MySQL in the Save to Database node. Ensure tables (purchase_orders) are created as per schema provided in sticky notes. Email Notifications:** Set up SMTP credentials (e.g., Gmail, Outlook, or custom mail server). Add recipients under workflow notification settings. Industries That Benefit This automation is highly beneficial for: Retail & E-commerce:** Predicts product demand and auto-orders from suppliers. Manufacturing:** Ensures raw materials are restocked based on production cycles. Pharmaceuticals:** Maintains optimum inventory for high-demand medicines. FMCG & Supply Chain:** Balances fast-moving goods availability with minimal overstocking. Automotive & Electronics:** Prevents delays due to missing components. Prerequisites API access to inventory, sales, supplier, and ERP systems. Valid OpenAI API key for demand forecasting. SQL database (PostgreSQL/MySQL) for record storage. SMTP or mail server credentials for email notifications. n8n environment with required nodes installed (HTTP, AI, Filter, Email, Database). Modification Options Change forecast logic or thresholds for different industries. Integrate Slack/Teams for live notifications. Add approval workflow before sending POs. Extend AI prompt for seasonality or promotional trends. Add dashboard visualization using Grafana or Google Sheets. Explore More AI Workflows: Get in touch with us to build industry-grade n8n automations with predictive intelligence.
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
(Retail) Customer Cleanup API → Supabase and send Notification This workflow provides an API-first solution to validate, clean, deduplicate and store customer data in Supabase. It ensures consistent customer records, prevents duplicates and keeps both internal teams and customers informed through automated notifications. This workflow acts as a backend customer intake API. It validates and normalizes incoming customer data, checks for existing users in Supabase, stores new customers safely and returns clear API responses. Internal teams receive Slack and Telegram updates, while customers get an email confirmation on successful creation. You receive: Centralized customer data validation** Automatic duplicate prevention** Supabase-backed customer storage** Real-time API responses** Team notifications + user confirmation email** Ideal for retail, e-commerce and SaaS teams that want clean customer data without manual intervention. Quick Start – Implementation Steps Import the provided n8n workflow JSON. Configure Supabase credentials with read/write access. Connect Slack, Telegram and Gmail/SMTP credentials. Copy the Webhook URL and use it as your customer intake API. Activate the workflow — your customer API is live. What It Does This workflow automates customer data intake and processing: Receives customer data via a POST API call. Cleans and normalizes names, email and phone numbers. Validates required fields and formats using JavaScript. Aggregates clear, field-specific validation errors. Checks Supabase to prevent duplicate users. Stores valid, new customers in Supabase. Returns structured API responses (success, validation error or duplicate). Sends notifications to Slack and Telegram. Emails the customer after successful account creation. This ensures reliable, consistent customer records across systems. Who’s It For This workflow is ideal for: Retail and e-commerce platforms CRM and customer data teams SaaS product teams Backend automation teams Marketing teams needing clean contact lists Developers building API-driven systems Requirements to Use This Workflow To run this workflow, you need: n8n instance** (cloud or self-hosted) Supabase project** with a customers table Supabase service role key Slack workspace** with API access Telegram bot** + chat ID Gmail or SMTP account** for user notifications How It Works API Request – Client sends customer data to the webhook endpoint. Validation & Cleanup – JavaScript validates and formats data. Validation Fail – Returns 400 response with clear error messages. Duplicate Check – Supabase is queried using the email address. Duplicate Found – Returns 409 response without creating a record. Create Customer – New customer is saved in Supabase. Success Response – API confirms successful creation. Notifications – Slack, Telegram and customer email are triggered. Setup Steps Create a Supabase table with fields for customer data, validation status and errors. Add Supabase credentials to n8n. Import the workflow JSON into n8n. Configure the Webhook node and copy the API URL. Review the validation logic if custom rules are required. Configure Slack, Telegram and email credentials. Test using Postman for invalid, duplicate and valid requests. Activate the workflow. How To Customize Nodes Customize Validation Rules Update the JavaScript validation node to add country-specific phone rules or additional fields. Customize Duplicate Logic Extend duplicate checks to include phone numbers or other identifiers. Customize Notifications Modify Slack and Telegram messages, add emojis, mentions or execution metadata. Add-Ons (Optional Enhancements) You can extend this workflow to: Add API key authentication Enable rate limiting Log failed attempts separately Support multi-country phone validation Add CRM or email marketing sync Implement soft deletes or upserts Use Case Examples 1. Customer Registration API Centralize customer creation for web and mobile apps. 2. Data Hygiene Automation Prevent invalid or duplicate contacts in your database. 3. Retail & CRM Integration Keep customer records consistent across systems. 4. Marketing Readiness Ensure only clean, valid contacts enter campaigns. Troubleshooting Guide | Issue | Possible Cause | Solution | | ----------------------- | ----------------------------- | ----------------------------------- | | Validation always fails | Incorrect payload structure | Ensure data is sent in request body | | Duplicate user created | Duplicate check misconfigured | Verify Supabase filter conditions | | No Slack alert | Invalid credentials | Reconnect Slack API | | No email sent | Gmail/SMTP not configured | Verify sender account | | API not responding | Webhook not active | Activate the workflow | Need Help? If you need help customizing or extending this workflow, adding authentication, scaling for high traffic, integrating CRMs or enhancing validation, the n8n automation team at WeblineIndia can assist you with production-ready automation and integration support. Contact us today.
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 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 Avkash Kakdiya
How it works This workflow identifies HubSpot deals that have gone untouched for 21+ days and automatically updates their status to Closed Lost. It fetches associated contacts, retrieves their details, and sends personalized follow-up emails requesting feedback. Finally, it notifies your team via Slack about the deals moved to Closed Lost. The workflow runs on a scheduled interval, ensuring consistent lead management without manual intervention. Step-by-step 1. Trigger the workflow Schedule Trigger** – Runs the workflow at a defined interval (daily, weekly, etc.). Get HubSpot Deals** – Retrieves all deals with key properties from HubSpot. Extract Deal Fields** – Normalizes deal data for consistent processing. 2. Identify and update cold deals Filter Cold Leads (21+ days)** – Keeps only deals not updated in the past 21 days. Update Deal to Closed Lost** – Marks stale deals as Closed Lost in HubSpot. 3. Map deals to contacts Fetch Deal Associations** – Retrieves contacts linked to filtered deals. Extract Contact IDs** – Parses associations to get contactId, dealId, and dealName. Get Contact Details** – Fetches enriched contact information. Extract Contact Email** – Simplifies data, keeping only the email field. 4. Follow-up & team notification Send Gmail Feedback Request** – Sends a personalized thank-you email requesting feedback. Send Slack Notification** – Alerts the team about deals updated to Closed Lost. Why use this? Ensures timely closure of stale HubSpot deals, keeping your pipeline clean. Automates follow-up emails to gather valuable feedback from disengaged leads. Reduces manual effort in deal management and contact outreach. Keeps your team informed in real-time with Slack notifications. Improves sales process efficiency and lead data hygiene.
by Dean Pike
Client Form → Draft → Approve → Sign → Deliver, fully automated This workflow automates the entire agreement lifecycle from client form submission to signed document delivery. It generates personalized agreements from templates, manages internal approvals, orchestrates e-signatures via Signwell, and delivers fully executed documents with complete audit trails in n8n Data Tables. Good to know Handles client data collection via JotForm with custom field mapping Automatically populates Google Doc templates with client-specific details Internal approval workflow with email-based confirmation Signwell integration for embedded e-signatures - test mode enabled by default - disable for legally binding documents Complete lifecycle tracking in n8n Data Tables (draft → approval → sent → signed) Auto-cleanup: removes documents from Signwell after completion to save storage Who's it for Service businesses, consultants, agencies, and freelancers who send agreements to clients regularly. Perfect for anyone wanting to avoid other costly e-signature platforms with limited API and automation capabilities. Signwell has an affordable entry level tier with generous API limits. If you're looking to eliminate manual document preparation, have an approval workflow, and track signatures while maintaining professional client communication, then this solution is a good fit. How it works Phase 1: Draft Creation JotForm trigger captures client submission (company name, address, contact details, position) Standardizes form data and duplicates Google Doc template with custom filename Replaces template variables with client information (company name, address, full name, position, dates) Creates clean document URL and logs initial record to Data Tables Emails internal team with draft review link and client details Phase 2: Approval & Preparation Gmail monitors inbox for "Approved" reply email Fetches agreement record from Data Tables and marks as approved Downloads Google Doc as PDF and uploads to Drive folder Grants temporary public sharing access (required for Signwell file import) Creates Signwell document with embedded signature fields and signing URL Emails client with personalized signing link Revokes public sharing access for security and updates Data Tables with Signwell details Phase 3: Signature & Delivery Gmail monitors for Signwell completion notification Extracts signed document download link from notification email Downloads fully executed PDF from Signwell Uploads to "Final Versions" folder in Google Drive Updates Data Tables with completion status and final document URLs Sends confirmation email to client with signed PDF attached Deletes document from Signwell to free up storage Requirements JotForm account (free tier works) Gmail account with OAuth2 access Google Drive account (OAuth2) Google Docs account (OAuth2) with a draft Agreement template Signwell account with API key n8n Data Tables (built-in, no external service needed) Google Drive folders: "Services Agreements - Drafts" and "Services Agreements - Final Versions" How to set up Add credentials: JotForm API, Gmail OAuth2, Google Drive OAuth2, Google Docs OAuth2, Signwell API key Create JotForm: Build form with fields: Company Name, Company Address (address field), Full Name (name field), Your Position/Job Title, Email In "JotForm Trigger" node: select your form Create Google Doc template: Add variables {{clientCompanyName}}, {{clientFullName}}, {{clientNamePosition}}, {{clientCompanyAddress}}, {{agreementDate1}}, {{agreementDate2}} In "Copy and Rename File" node: select your template document and update folder ID to your "Drafts" folder Create Data Table: Name it "Services Agreements" with columns: documentFileName, clientEmail, clientFullName, clientNamePosition, clientCompanyName, clientCompanyAddress, documentUrl, approvalStatus, sentDocumentPdfUrl, sentDate, signwellUrl, signwellDocID, docSigned, finalExecutedDocGDrive, finalExecutedDocSignwellUrl In "Insert Row" and all "Get/Update Row" nodes: select your Data Table Create Gmail labels: "_AGREEMENTS" with 2 nested (sublabels) Agreement-Approvals" and "Agreement-Completed" for filtering In "Check for Email Approval" node: select your approval label and update internal email address In "Check Email for Completed Notification" node: select your completed label In "Create Document in Signwell" node: update API key and adjust signature field coordinates for your document Set Signwell to live mode: Change "test_mode": true to "test_mode": false when ready for production Activate workflow Customizing this workflow Change template variables: Edit "Update New File" node to add/remove fields (e.g., pricing, terms, scope of work) Modify approval email: Edit "Share Email Draft" node to change recipient, subject line, or message format Adjust Signwell fields: Edit "Create Document in Signwell" node to change signature/date field positions (x, y coordinates) to match your agreement template, and add any other fields you'd like Add approval deadline: Add Wait node with timeout after "Share Email Draft" to auto-remind for pending approvals Multi-signer support: Modify "Create Document in Signwell" recipients array to add multiple signers (e.g., both parties) Change storage folders: Update folder IDs in "Upload PDF File" and "Upload Completed Doc" nodes Add Slack notifications: Add Slack nodes after key milestones (draft created, approved, signed) Custom client messaging: Edit "Send Prepared Agreement to Client" and "Send Client Completed Agreement PDF" nodes for personalized communication Add reminder logic: Insert Wait + Send Email nodes between signing and completion to remind client if not signed within X days Quick Troubleshooting JotForm not triggering: Verify webhook is active in JotForm settings and form ID matches "JotForm Trigger" node Template variables not replacing: Check variable names in template doc exactly match {{variableName}} format (case-sensitive) Wrong internal email for approval: Update email address in "Share Email Draft" node to your own email Approval email not detected: Confirm Gmail label "Agreement-Approvals" exists and reply contains exact word "Approved" Signwell document creation fails: Verify PDF has public sharing enabled before API call AND Signwell API key is valid in "Create Document in Signwell" node Signature fields in wrong position: Adjust x/y coordinates in "Create Document in Signwell" node (test in Signwell UI first to find correct pixel positions) Completed document not downloading: Check Signwell completion email format - Code node extracts link via regex pattern Data Tables errors: Ensure documentFileName exactly matches between "Insert Row" and "Get/Update Row" operations Client emails not sending: Re-authorize Gmail OAuth2 credentials and verify sender name/address in Gmail nodes Drive folder not found: Update folder IDs in "Copy and Rename File", "Upload PDF File", and "Upload Completed Doc" nodes to your own folder IDs Signwell deletion fails: Verify signwellDocID was correctly stored in Data Tables before deletion (check "Update Row - Additional Doc Details" output) 401/403 API errors: Re-authorize all OAuth2 credentials (Gmail, Google Drive, Google Docs) Test mode documents: Change "test_mode": true to "test_mode": false in "Create Document in Signwell" node for production signatures Sample Outputs Agreement Drafts and Final folders/files in Google Drive File References Agreement Template (sample) Final Agreement Signed (sample)
by Onur
Template Description: > Stop manually reading every CV and copy-pasting data into a spreadsheet. This workflow acts as an AI recruiting assistant, automating your entire initial screening process. It captures applications from a public form, uses AI to read and understand PDF CVs, structures the candidate data, saves it to Google Sheets, and notifies all parties. This template is designed to save HR professionals and small business owners countless hours, ensuring no applicant is missed and all data is consistently structured and stored. 🚀 What does this workflow do? Provides a public web form for candidates to submit their name, email, experience, and PDF CV. Automatically reads the text content from the uploaded PDF CV. Uses an AI Agent (OpenAI) to intelligently parse the CV text, extracting key data like contact info, work experience, education, skills, and more. Writes a concise summary** of the CV, perfect for quick screening by HR. Checks for duplicate applications** based on the candidate's email address. Saves all structured applicant data** into a new row in a Google Sheet, creating a powerful candidate database. Sends an automated confirmation email to the applicant. Sends a new application alert with the CV summary to the recruiter. 🎯 Who is this for? HR Departments & Recruiters:** Streamline your hiring pipeline and build a structured candidate database. Small Business Owners:** Manage job applications professionally without dedicated HR software. Hiring Managers:** Quickly get a summarized overview of each candidate without reading the full CV initially. ✨ Benefits Massive Time Savings:** Drastically reduces the time spent on manual CV screening and data entry. Structured Candidate Data:** Turns every CV into a consistently formatted row in a spreadsheet, making it easy to compare candidates. Never Miss an Applicant:** Every submission is logged, and you're instantly notified. Improved Candidate Experience:** Applicants receive an immediate confirmation that their submission was successful. AI-Powered Summaries:** Get a quick, AI-generated summary of each CV delivered to your inbox. ⚙️ How it Works Form Submission: A candidate fills out the n8n form and uploads their CV. PDF Extraction: The workflow extracts the raw text from the PDF file. AI Analysis: The text is sent to OpenAI with a prompt to structure all key information (experience, skills, etc.) into a JSON format. Duplicate Check: The workflow checks your Google Sheet to see if the applicant's email already exists. If so, it stops. Save to Database: If the applicant is new, their structured data is saved as a new row in Google Sheets. Send Notifications: Two emails are sent simultaneously: a confirmation to the applicant and a notification with the CV summary to the recruiter. 📋 n8n Nodes Used Form Trigger Extract From File OpenAI Code (or JSON Parser) Google Sheets If Gmail 🔑 Prerequisites An active n8n instance. OpenAI Account & API Key**. Google Account** with access to Google Sheets and Gmail (OAuth2 Credentials). A Google Sheet** prepared with columns to store the applicant data (e.g., name, email, experience, skills, cv_summary, etc.). 🛠️ Setup Import the workflow into your n8n instance. Configure Credentials: Connect your credentials for OpenAI and Google (for Sheets & Gmail) in their respective nodes. Customize the Form: In the 1. Applicant Submits Form node, you can add or remove fields as needed. Activate the workflow. Once active, copy the Production URL from the Form Trigger node and share it to receive applications. Set Your Email: In the 8b. Send Notification... (Gmail) node, change the "To" address to your own email address to receive alerts. Link Your Google Sheet: In the 5. Check for Duplicate... and 7. Save Applicant Data... nodes, select your spreadsheet and sheet.
by iTzJok3r
Overview Intelligent email-to-WhatsApp automation that monitors Gmail and Outlook accounts, uses Google Gemini AI to filter important emails, and forwards them to WhatsApp via Evolution API. Key Features Multi-account support (Gmail + 2 Outlook accounts) AI-powered email classification with Google Gemini Automatic Arabic translation for foreign emails Approved sender whitelist Security email prioritization (2FA, activations, passwords) Spam and promotion filtering Automatic mark-as-read Link extraction from emails Setup Requirements Services Needed: n8n instance Gmail account with API access Microsoft Outlook account(s) Google Gemini API key (free tier available) Evolution API (self-hosted WhatsApp API) Credentials to Add: Gmail OAuth2 Microsoft Outlook OAuth2 Google Gemini API Evolution API Configuration Steps Import workflow Add all credentials in n8n Update WhatsApp numbers in all "Send" nodes (format: number@s.whatsapp.net) Replace "YourInstanceName" with your Evolution API instance Customize approved sender emails in AI Agent system prompts Test and activate How It Works Workflow monitors emails every minute, parses content with JavaScript, classifies importance with Google Gemini AI, extracts links, translates non-Arabic content, and sends formatted messages to WhatsApp. Use Cases Perfect for professionals needing instant mobile notifications for critical emails while filtering spam and promotions.
by go-surfe
🚀 Build Hyper-Targeted Prospecting Lists with Surfe & HubSpot This template automatically discovers companies that match your Ideal Customer Profile (ICP), finds the right people inside those companies and enriches them — ready to drop straight into HubSpot. Launch the workflow, sit back, and get a clean list of validated prospects in minutes. 1. ❓ What Problem Does This Solve? Sourcing prospects that truly fit your ICP is slow and repetitive. You jump between databases, copy domains, hunt down decision-makers, and then still have to enrich emails and phone numbers one by one. This workflow replaces all that manual effort: It queries Surfe’s database for companies that match your exact industry, size, revenue and geography filters. It pulls the best-fit people inside each company and enriches them in bulk. It keeps only records with both a direct email and mobile phone, then syncs them to HubSpot automatically. No spreadsheets, no copy-paste — just a fresh, qualified prospect list ready for outreach. 2. 🧰 Prerequisites You’ll need: A self-hosted or cloud instance of n8n A Surfe API Key A HubSpot Private App Token with contact read/write scopes A Gmail account (OAuth2) for the completion notification The workflow JSON file linked above N8N_FLOW_2__Building_Prospecting_Lists.json 3. 📌 Search ICP Companies Configuration — Fine-Tune Your Targeting 3.1 Editing the JSON Every targeting rule lives inside the “🔍 Search ICP Companies” HTTP node. Open the node Search ICP Companies → Parameters tab → JSON Body to edit the filters. | Filter | JSON path | What it does | Example | | --- | --- | --- | --- | | industries | filters.industries | Narrow to specific verticals (case-sensitive strings) | ["Software","Apps","SaaS"] | | employeeCount.from / to | filters.employeeCount | from / to | 1 / 35 | | countries | filters.countries | 2-letter ISO codes | ["FR","DE"] | | revenues | filters.revenues | Annual revenue brackets | ["1-10M"] | | limit | limit | Companies per run | 20 | 3.2 Where to find allowed values Surfe exposes an “🗂 Get Filters” endpoint that returns every accepted value for: industries employeeCounts revenues countries (always ISO-2 codes) You can hit it with a simple GET /v1/people/search/filters request or browse the interactive docs here: https://developers.surfe.com/public-008-people-filters developers.surfe.com For company-level searches, the same enumerations apply. 4. ⚙️ Setup Instructions 4.1 🔐 Create Your Credentials in n8n 4.1.1 🚀 Surfe API In your Surfe dashboard → Use Surfe Api → copy your API key Go to n8n → Credentials → Create Credential Choose Credential Type: Bearer Auth Name it something like SURFE API Key Paste your API key into the Bearer Token Save 4.1.2 📧 Gmail OAuth2 API Go to n8n → Credentials Create new credentials: Type: Gmail OAuth2 API A pop-up window will appear where you can log in with your Google account that is linked to Gmail Make sure you grant email send permissions when prompted 4.1.3 🎯 HubSpot 🔓 Private App Token Go to HubSpot → Settings → Integrations → Private Apps Create an app with scopes: crm.objects.contacts.read crm.objects.contacts.write crm.schemas.contacts.read Save the App token Go to n8n → Credentials → Create Credential → HubSpot App Token Paste your App Token ✅ You are now all set for the credentials 4.2 📥 Import and Configure the N8N Workflow Import the provided JSON workflow into N8N Create a New Blank Workflow click the … on the top left Import from File 4.2.1 🔗 Link Nodes to Your Credentials In the workflow, link your newly created credentials to each node of this list : Surfe HTTP nodes: Authentication → Generic Credential Type Generic Auth Type → Bearer Auth Bearer Auth → Select the credentials you created before Gmail Node Credentials to connect with → Gmail account Hubspot Node →Credentials to connect with → Gmail account Surfe HTTP nodes Surfe HTTP nodes HubSpot node → Credentials to connect with → select your HubSpot credentials in the list 5. 🔄 How This N8N Workflow Works Manual Trigger – Click Execute Workflow (or schedule it) to start. Search ICP Companies – Surfe returns company domains that match your filter set. Prepare JSON Payload with Company Domains – Formats the domain list for the next call. Search People in Companies – Finds people inside each company. Prepare JSON Payload Enrichment Request – Builds the bulk-enrichment request. Surfe Bulk Enrichments API – Launches one enrichment job for the whole batch. Wait + Polling loop – Checks job status every 3 seconds until it’s COMPLETED. Extract List of People – Pulls the enriched contacts from Surfe’s response. Filter: phone AND email – Keeps only fully reachable prospects (email and mobile). HubSpot: Create or Update – Inserts/updates each contact in HubSpot. Gmail – Sends you a “Your ICP prospecting enrichment is done” email. 6. 🧩 Use Cases Weekly prospect list refresh** – Generate 50 perfectly-matched prospects every Monday morning. Territory expansion** – Spin up a list of SMB software CEOs in a new country in minutes. ABM prep** – Build multi-stakeholder buying-group lists for target accounts. Campaign-specific lists** – Quickly assemble contacts for a limited-time product launch. 7. 🛠 Customization Ideas prepare 🎯 Refine filters for people – Add seniorities or other filters in the node JSON PAYLOAD WITH Company Domains use the surfe search people api doc https://developers.surfe.com/public-009-search-people-v2 ♻️ Deduplicate – Check HubSpot first to skip existing contacts. 🟢 Slack alert – Replace Gmail with a Slack notification. 📊 Reporting – Append enriched contacts to a Google Sheet for analytics. 8. ✅ Summary Fire off the workflow, and n8n will find ICP-fit companies, pull key people, enrich direct contact data and drop everything into HubSpot — all on autopilot. Prospecting lists, done for you.
by Rahul Joshi
Description Automatically identify clients who haven’t been contacted in 14+ days and re-engage them with personalized Gmail follow-up emails, Google Sheets tracking, and Slack notifications for account managers. Prevents churn by ensuring no client goes unnoticed. 💌📊💬 What This Template Does Triggers every Monday at 9:00 AM to check client activity. ⏰ Fetches all contacts from GoHighLevel CRM. 🔗 Filters clients with no updates in the last 14+ days. 🔍 Sends personalized Gmail re-engagement emails. 📧 Logs all inactive clients in Google Sheets for tracking. 📊 Sends Slack notifications summarizing inactive clients for account managers. 💬 Handles workflow errors and alerts the team via Slack. 🚨 Key Benefits ✅ Automated client re-engagement — no more missed follow-ups. ✅ Reduces churn by maintaining regular touchpoints. ✅ Centralized Google Sheets audit trail for visibility. ✅ Real-time Slack alerts keep teams informed. ✅ Fully customizable inactivity threshold (default: 14 days). ✅ Built-in error handling with instant Slack error alerts. Features Weekly cron trigger (default: Monday 9 AM). ⏰ GoHighLevel CRM integration to fetch contacts. 🔗 Dynamic filter for “inactive 14+ days” clients. 🕒 Personalized HTML re-engagement email via Gmail. 💌 Automatic Google Sheets logging with client metadata. 📊 Slack notification summarizing inactive clients. 💬 Error Trigger node for reliable monitoring. 🚨 Requirements n8n instance (cloud or self-hosted) Gmail OAuth2 credentials for sending emails Slack API credentials with chat:write and channels:read GoHighLevel OAuth2 credentials for CRM data access Google Sheets OAuth2 credentials for logging Target Audience Agencies and consultants managing multiple client relationships. 👩💼 Account managers preventing client churn. 🔄 Service businesses needing systematic client check-ins. 🏢 Remote teams requiring Slack alerts for client engagement. 🌐 Step-by-Step Setup Instructions Connect Gmail, Slack, Google Sheets, and HighLevel credentials in n8n. 🔑 Replace placeholder values (YOUR_GOOGLE_SHEET_ID, YOUR_SLACK_CHANNEL_ID) with environment variables. ⚙️ Customize inactivity threshold (default: 14 days). 🕒 Import the workflow JSON into n8n. 📦 Test manually with sample client records. ✅ Enable the workflow for weekly automated execution. 🚀
by Seb
Stripe invoicing automation that is connected to your CRM, in this example, it is ClickUp. At the end of the flow, once your lead has been sent an invoice, you (or your team) will be sent an email notifying you of the newly sent invoice with all relevant details. How it works: • Monitors ClickUp task status → triggers workflow when status changes to send invoice. • Fetches task details from ClickUp, including customer name, email, and project cost. • Creates a Stripe customer using the fetched information. • Generates a Stripe invoice via HTTP request, including description, footer, and due date (calculated in Unix timestamp). • Adds invoice items automatically with correct amounts (converted to cents for Stripe). • Sends the invoice to the customer automatically (manual or auto-charge option). • Sends notification emails to team members with a link to the ClickUp task. Works with other CRMs like Monday or HubSpot, not just ClickUp. Test mode is available in Stripe to validate the workflow without sending real invoices. Setup steps: • You will need to connect your ClickUp Account • Connect your Stripe Account via HTTP Request (Shown in YouTube Video Linked Below) • You will need to connect your email account to N8N (Gmail, Outlook etc) for sending the emails to your team and the client Important Have your Stripe account and PUT IT IN TEST/DEVELOPER MODE when testing and developing the automation. Alternatively, set up an entirely separate account from your main Stripe account. This is only up until the point where you want to send the invoice, as you cannot send an invoice when your Stripe account is in test/developer mode For a complete rundown on how to set this up watch my YouTube tutorial linked below See full video tutorial here: https://youtu.be/vthK5I8x33k?si=W0Nreu403pDs-ud3 My LinkedIn: https://www.linkedin.com/in/seb-gardner-5b439a260/