by Amirul Hakimi
Advanced AI Lead Enrichment & Cold Email Personalization with n8n, Airtable, Apify, and LLMs Automated B2B Lead Nurturing: Hyper-Personalization for High-Converting Cold Email Campaigns This powerful n8n automation workflow is designed to execute advanced B2B lead enrichment and hyper-personalization for cold email outreach. By orchestrating a complex chain of data scraping, AI analysis (via LLMs/GPT-4.1), and CRM synchronization (using Airtable), this workflow ensures every lead receives a highly tailored and relevant outreach message, maximizing conversion rates and minimizing manual effort. Workflow Execution & Key Features Airtable Trigger & Lead Qualification: The workflow is triggered by an Airtable webhook, pulling a new lead record (including name, email, and company URLs). Email Validation* is performed using *NeverBounce** to filter out invalid contacts. Initial Lead Filtering screens for key demographic criteria (e.g., US: Yes or No? and target Headcount: >5, <30?). Only qualified B2B leads proceed, ensuring optimal resource allocation. Deep Web & Social Scraping (Apify Integration): LinkedIn Company Scraper* and a *LinkedIn Profile Scraper* (via *Apify**) extract raw data from the lead's company and personal profiles. Company Homepage Scraper** pulls the main website content for analysis. Scrape Personal LinkedIn Posts** node retrieves recent activity for the ultimate personalization hook. AI-Powered Data Synthesis & Variable Determination: Multiple OpenAI (GPT-4.1-mini/4.1) nodes analyze and structure the raw, cleaned text (Remove HTML nodes ensure clean inputs). Determine Valuable URLs** uses an LLM to smartly categorize and select key company pages (e.g., ==/about==, ==/solutions==, ==/case-studies==) for deeper scraping. Analyze Company/Mission, Analyze Offerings & Positioning, Analyze Process & Differentiation, and **Analyze Proof of Success nodes create factual, structured business summaries for the ultimate ICP research. Determine Variables* nodes create *pre-written, personalized cold email variables** (==company_specialty==, ==ICPofLead==, ==PainPointLeadSolves==, etc.) for different outreach strategies. LinkedIn Post Personalization: An LLM (Craft Opening Line - Posts) analyzes recent LinkedIn activity to generate a hyper-specific, conversation-starting opener (e.g., "Saw your LinkedIn post about..."). Conditional logic (Posts Available?) determines whether to use the post-based opener or fall back to the standard, company-based personalization. CRM Update & Campaign Launch (Instantly.ai): Finalized, enriched lead data and the crafted personalization variables are synchronized back to the Airtable CRM for record-keeping and lead status updates (Update Lead W/ Enrichment). The lead is then seamlessly pushed to the Instantly.ai outbound platform, injecting the AI-generated custom variables directly into the cold email sequence for mass deployment. This blueprint automates the tedious, high-effort task of prospect research and personalization, providing a scalable lead generation solution that increases both outreach quality and sales velocity. Stop sending generic emails—start leveraging AI automation today.
by David Olusola
📄 AI Summarize Weekly Google Docs Updates → Send Email This workflow automatically reviews selected Google Docs every week, checks for updates, and generates a professional weekly summary email using AI. It’s perfect for keeping your team or leadership informed without manually digging through multiple documents. ⚙️ How It Works Weekly Monday 9AM Trigger A Cron node runs every Monday at 9 AM (adjustable). Ensures summaries arrive at the start of the workweek. Prepare Docs List A Code node defines which Google Docs to monitor. Includes doc IDs, names, and categories (e.g., Projects, Meetings, Updates). Sets a 7-day date range for updates. Fetch Google Docs & Metadata Retrieves document content and metadata (last modified, user, version). Filters only docs that have been updated in the past week. Process Doc Data Extracts plain text content from Google Docs. Cleans and normalizes text for summarization. Collects key details: word count, modified by, last updated date. Aggregate Updated Docs Gathers all updated docs into one combined content block. Prepares context for the AI model to create a weekly digest. Generate AI Summary Uses GPT-4 to generate a business-style weekly summary. Includes: Executive summary Key updates by document Important changes Action items Next week’s focus Prepare Email Content Formats the AI response into both plain text and HTML email. Adds a list of updated documents with last modified info. Send Summary Email Sends the final summary to the configured team emails via Gmail. Subject line includes the date range for easy reference. 🛠️ Setup Steps 1. Google Docs Setup Add document IDs in the Prepare Docs List node. Enable the Google Drive API in your Google account. Connect Google OAuth credentials in n8n. 2. OpenAI API Key Get your key from platform.openai.com. Add it to your n8n credentials. Uses GPT-4 for high-quality summaries. 3. Email Recipients Update the Gmail node with your team’s email addresses. Customize the subject line and template if needed. 4. Schedule Default: Every Monday at 9 AM. Adjust the Cron node if you prefer a different time. 📧 Example Output Subject: 📄 Weekly Document Updates Summary – 08/22/2025 – 08/29/2025 Body (excerpt): Dear Team, Here's your weekly document updates summary: Executive Summary: Project Status Doc updated with new timelines. Meeting Notes highlight three key decisions from leadership. Team Updates document includes two new hires and onboarding tasks. Key Updates by Document: • Project Status Doc (Projects) - Updated by Alice on 08/27 • Meeting Notes (Meetings) - Updated by Bob on 08/28 • Team Updates (Updates) - Updated by Sarah on 08/29 Action Items: Confirm revised project deadlines. Follow up on onboarding checklist. This summary was automatically generated by your n8n workflow. ⚡ With this workflow, you’ll never miss important document changes — your team gets a clear, AI-generated weekly digest straight in their inbox.
by Khairul Muhtadin
Ticketing Backend automates registration, QR-ticket generation, email delivery, and check-in validation using Google Sheets, Gmail, and a webhook scanner — reducing manual ticket prep from ~3 hours to under 5 minutes for 200 attendees. Why Use This Workflow? Time Savings:** Automates ticket generation & delivery. reduces manual processing for 200 attendees from ~3 hours to <5 minutes. Cost Reduction:** Removes dependency on paid ticketing platforms for basic events — save up to $150–$300/month for small organizations. Error Prevention:** Single-source truth in Google Sheets with QR-based check-in reduces double-checkin and human errors by >90%. Scalability:** Runs on a schedule and webhooks; scales from dozens to thousands of tickets (watch API/email quotas). Ideal For Event Organizers / Community Managers:** Sell & distribute tickets for meetups, runs, and local events with immediate QR delivery. Operations / Venue Staff:** Fast, reliable check-in via mobile scanner POSTing to webhook for instant validation. Small Agencies & SaaS Teams:** Lightweight, low-cost ticketing backend that integrates with existing Google accounts. How It Works Trigger (Registration): POST /v1/register receives registration payload (nama, email, no_hp, jumlah_tiket, total_price, payment_method). Data Collection (Registration): Validate input → check existing participant in Register sheet → append registration. Processing (Ticket Generation): Scheduled job (START runs every minute) finds rows with Payment Status = PAID and Email Sent = NO. Intelligence Layer: For each ticket: generate unique Ticket ID (TL-YYYYMMDD-XXXX-N-HASH), build QR payload JSON, create QR image via qrserver API, and build HTML email with embedded base64 QR. Output & Delivery: Send ticket email(s) via Gmail; write one Tickets row per generated ticket and mark Email Sent = YES in Register. Storage & Logging: All participant & ticket records persisted to Google Sheets; check-in events update row (Checked In = YES and Checkin TIme). Core Endpoints Registration webhook: POST /v1/register Scanner webhook (check-in): POST /v1/scanner Event Metadata Event:** TABRAK_LARI Event date:** 15 November 2025 Event location:** GOR Pontianak Setup Guide Prerequisites | Requirement | Type | Purpose | |-------------|------|---------| | n8n instance(https://n8n.partnerlinks.io/khmuhtadin)) | Essential | Host the workflow and webhooks | | Google account (Sheets + Gmail) | Essential | Store tickets & send emails | | Google Sheet | Essential | Register & Tickets data store | | Public webhook URL / reverse proxy | Essential | Expose /v1/register & /v1/scanner to scanners/clients | | qrserver.com (public API) | Optional | Generate QR images (no credentials) | > Important: Make sure your n8n instance URL is publicly accessible or use a tunneling/reverse proxy so webhooks can receive POSTs. Installation Steps Import the JSON into your n8n instance([https://n8n.partnerlinks.io/khmuhtadin). Configure credentials: Google Sheets OAuth2: Grant access to Google Drive & Sheets API (spreadsheets.readonly & spreadsheets). Gmail OAuth2: Grant send email scope (Gmail send). Update environment-specific values: Verify Google Sheet ID. Set the public base URL for ticket scanner clients to POST /v1/scanner. Customize settings: Event name/date/location (variables in Generate Ticket Data / Build HTML Email). Email sender address and subject line in Gmail node. Test execution: Use a sample POST to /v1/register with valid fields to create a registration. Mark a row as PAID and Email Sent = NO to trigger scheduled ticket generation. Simulate a scanner POST to /v1/scanner with the barcode JSON payload to test check-in. Technical Details Core Nodes | Node | Purpose | Key Configuration | |------|---------|-------------------| | REGISTER (Webhook) | Accepts registration POSTs | Path: /v1/register | | Validate Input (Code) | Server-side validation | Validates nama, email, no_hp, jumlah_tiket, payment_method | | Get Participant (Google Sheets) | Check duplicate email | Filters Register tab by Email | | Store Data (Google Sheets) | Append registration | Tab: Register (gid=0) | | START (Schedule Trigger) | Finds paid registrations | Runs every 1 minute | | Get Rows (Google Sheets) | Reads Register rows | Reads full Register tab | | Filter Paid Not Sent (Filter) | Finds rows with Payment Status=PAID & Email Sent=NO | Filter node conditions | | Generate Ticket Data (Code) | Generate ticket IDs & QR payloads | Ticket ID format TL-YYYYMMDD-XXXX-N-HASH | | Generate QR Code (HTTP Request) | Calls qrserver.com to build PNG | URL: https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=... | | Build HTML Email (Code) | Builds ticket HTML & embeds Base64 QR | Template contains ticket details & QR | | Send Email (Gmail) | Sends ticket email | To: recipient Email; Subject configurable | | Update Sheet (Tickets) | Append ticket rows | Tab: Tickets (gid=2010454173) | | Parse Data (Code) | Aggregates ticket IDs per email | Updates Register with combined ticket IDs | | SCAN TICKET (Webhook) | Check-in endpoint | Path: /v1/scanner | | Parse Barcode (Code) | Parses incoming scanner payload | Expects JSON in body.barcode | | Get Tickets (Google Sheets) | Lookup ticket by Ticket ID | Filters Tickets tab by Ticket ID | | Ticket Available? (If) | Validates existence & Checked In status | Branches to update or return error | | Update Ticket Status (Google Sheets) | Mark Checked In = YES | Sets Checkin TIme to scannedAt | | Checked IN / Already Checked IN (RespondToWebhook) | Respond payloads for scanner | JSON responses with status & metadata | Workflow Logic Registration:** Writes to Register sheet. A scheduled job picks up PAID rows where Email Sent = NO; for each row it generates one record per ticket, calls the QR API for an image, sends an email per ticket (multi-ticket support), then appends Tickets rows and marks Email Sent = YES by updating the Register sheet with combined ticket IDs. Check-in:** The scanner webhook accepts barcode JSON, extracts ticket_id, looks up the Tickets sheet, prevents duplicate check-ins by checking "Checked In" flag, and updates sheet with check-in timestamp on success. Customization Options Basic Adjustments Email Template:** Edit Build HTML Email node to change branding, copy, or layout. Ticket ID Format:** Change code in Generate Ticket Data to alter prefix or hash length. Event Metadata:** Change event_name, event_date, event_location in code nodes. Advanced Enhancements Payment Gateway Integration:** Integrate with payment gateway (e.g., webhook from Stripe) to automatically set Payment Status = PAID — complexity: medium. Cloud Storage for QR Images:** Use cloud storage (S3) for QR images instead of base64-embedding — complexity: medium-high. Batch Email Provider:** Use batch email provider (SendGrid/Mailgun) for high-volume events to reduce Gmail quota risks — complexity: medium. Troubleshooting | Problem | Cause | Solution | |---------|-------|----------| | Invalid QR / scanner returns "Invalid QR code format" | Scanner payload not sending barcode JSON or malformed JSON | Ensure scanner POST body contains valid JSON string under body.barcode; validate payload in Parse Barcode node | | Ticket exists but cannot update | Google Sheets API auth / permission error | Reconnect Google Sheets OAuth2 credential; ensure the service account/user has edit access to the sheet | | Emails not sent | Gmail OAuth2 credential missing or Gmail API quota reached | Reauthorize Gmail credential; consider switching to SendGrid/Mailgun for large volumes | | Duplicate check-in allowed | Logic checking "Checked In" value mismatch (case/format) | Normalize the Checked In field values and use strict comparisons in Ticket Available? node | | Slow generation for many tickets | Sequential QR calls and sends | Use parallel execution or a dedicated email service; increase worker resources for n8n instance | Use Case Examples Scenario 1: Community Fun Run (200 attendees) Challenge:** Manual QR generation and emailing takes ~3 hours. Solution:** After marking registrations as PAID, the scheduled job generates 200 QR tickets and emails them automatically. Result:** Ticket prep completed in <5 minutes; volunteer time reduced by ~3 hours. Scenario 2: Regional Festival (2,000 tickets) Challenge:** High volume requires reliable delivery and check-in speed. Solution:** Use this workflow but replace Gmail with a transactional email provider (SendGrid) and host n8n on a scalable instance. Monitor Google Sheets and email provider quotas. Result:** Automated delivery scales; on-site check-in handled via the /v1/scanner endpoint with near-instant validation. Additional Information Created by: Khmuhtadin Category: Event Automation, Ticketing Backend Tags: google-sheets, gmail, qr-code, webhook, ticketing Need custom workflows or help adapting this for your event? Contact us Note: Import the JSON into your n8n instance to get started. My Social: Threads LinkedIn Medium Workflow Collections portfolio
by Yang
Who's it for This template is perfect for YouTube creators, content marketers, and social media managers who want to turn existing videos into fresh, high-performing content ideas—automatically. It’s ideal if you want to save time brainstorming and focus on publishing videos that your audience actually wants. What it does This workflow watches a Google Sheet for new YouTube video links. For each new video, it fetches the transcript and top comments using Dumpling AI, then sends that data along with the original search topic to GPT-4o. GPT-4o returns 3–5 new content ideas based on: What was discussed in the video What people are searching for What viewers are saying in the comments Each idea is saved to another Google Sheet and also sent to your email. How it works Trigger: Watches for new rows in the "YouTube Finds" sheet Transcript & Comments: Sends video URL to Dumpling AI to fetch transcript and comments Merge & Format: Cleans and aggregates comments into one input AI Prompting: GPT-4o analyzes transcript, topic, and comments to suggest ideas Output: Splits and saves the results to a "YouTube Content Idea" sheet and emails them Requirements 🧠 OpenAI API Key stored securely in credentials 🤖 Dumpling AI API Key stored as HTTP header credentials 📄 Google Sheets with the following setup: Input Sheet ("YouTube Finds") Video Link search topic Output Sheet ("YouTube Content Idea") title whyGoodIdea engagementPotential How to customize You can: Change the number of ideas returned by GPT-4o Adjust the AI prompt to reflect your niche (e.g. education, tech, travel) Add an approval step before sending the email Extend it to post ideas directly into Trello, Notion, or Airtable > This workflow gives you an automated content strategist working 24/7—turning every YouTube upload into a launching pad for future content.
by 小林幸一
Generate personalized sales emails from Google Maps results to Google Sheets This workflow automates the entire process of lead generation and personalized outreach drafting for local businesses. It utilizes Apify to scrape business data from Google Maps based on your search criteria (e.g., "Cafes in Shibuya"), visits each business's website to extract content, and uses OpenAI to generate a highly personalized sales email that connects the business's unique characteristics with your service's value proposition. Finally, it saves the business details, scraped data, and the generated email draft into Google Sheets. This template is perfect for reducing the manual effort required to research leads and write initial cold outreach emails. Who is this for Sales Representatives** looking to automate lead sourcing and initial drafting. Marketing Agencies** doing outreach for local businesses. Freelancers** offering web design, SEO, or reservation system services to brick-and-mortar stores. What it does Configuration: You define your search query (e.g., "Gyms in London"), the number of leads to fetch, and details about the service you are selling. Lead Scraping: The workflow triggers an Apify actor (Google Maps Scraper) to find businesses matching your criteria. Website Analysis: It checks if the business has a website, fetches the HTML, and extracts relevant text to understand the business's vibe and offerings. AI Email Generation: OpenAI analyzes the scraped website text and generates a specific, personalized email subject and body promoting your service. Data Storage: All data (Business Name, Phone, Address, Website, Scraped Info, and Email Draft) is appended to a Google Sheet. Requirements n8n** (v1.0 or later) Apify Account**: You need an Apify account and the compass/google-maps-scraper actor. OpenAI Account**: An API key for generating the email content. Google Cloud Platform**: A project with the Google Sheets API enabled. How to set up Credentials: Set up your credentials for Apify, OpenAI, and Google Sheets in n8n. Google Sheet: Create a new Google Sheet and add the following headers in the first row: 店舗名 (Store Name) 住所 (Address) Webサイト (Website) 電話番号 (Phone Number) サイトから取得した情報 (Info from Website) 生成されたメール件名 (Generated Subject) 生成されたメール本文 (Generated Body) Workflow Configuration Node: Open the first "Workflow Configuration" node and update the following values: searchQuery: The location and keyword you want to target. serviceName: The name of the product you are selling. serviceStrength: The USP (Unique Selling Proposition) of your product. Google Sheets Node: Open the "Save to Google Sheets" node and select the file you created in step 2. How to customize Change the Prompt**: Open the "Generate Personalized Email" (OpenAI) node to modify the system prompt. You can change the tone, language (currently set to Japanese context in your example), or structure of the sales email. Filter Results**: You can add logic to the "Check Website URL Exists" node to filter out specific types of businesses or domains. Limit Scraping**: Adjust the maxPlaces value in the Configuration node to control how many leads you process per run to save on API credits.
by Patrick Siewert
🛡️ Evaluate Guardrails Node Accuracy with Automated Test Suite This workflow benchmarks the n8n Guardrails node across multiple safety categories -including PII, NSFW, jailbreak attempts, secret keys, and unsafe URLs. It runs 36 structured test cases, classifies each as PASS or VIOLATION, calculates accuracy metrics, and emails a detailed HTML report. 🔄 How it works The workflow loops through 36 predefined test prompts. Each prompt is checked by the Guardrails node for violations. Results are recorded as PASS or VIOLATION. The system calculates metrics (accuracy, precision, recall, F1). A formatted Markdown → HTML report is generated and sent via Gmail. ⚙️ Set up steps Add your OpenAI and Gmail credentials in n8n. Replace YOUR_MAIL_HERE in the Gmail node with your own address. (Optional) Change the model in the OpenAI Chat Model node. Default: gpt-4o-mini You can switch to gpt-5 or another available model if needed. Click Execute Workflow: test cases will run automatically. Check your inbox for the results. 🧠 Who it’s for AI safety testers and workflow developers n8n users experimenting with the Guardrails node Teams validating LLM moderation, filtering, or compliance setups 🧩 Requirements n8n v1.119+ Guardrails node enabled OpenAI credentials (optional but recommended) Email integration (Gmail or SendGrid) 💡 Why it’s useful Use this test suite to understand how accurately the Guardrails node identifies unsafe content across different categories. The generated metrics help you fine-tune thresholds, compare models, and strengthen AI moderation workflows. Example result
by Rahul Joshi
Description Synchronize OKRs (Objectives and Key Results) between Monday.com and Jira to automatically calculate progress variance, update dashboards, and share variance reports via Slack and Outlook. This workflow ensures teams have accurate, real-time visibility into performance metrics and project alignment — without manual reconciliation. 🎯📈💬 What This Template Does Step 1: Triggers daily at a scheduled time to fetch the latest OKRs from Monday.com. ⏰ Step 2: Extracts Key Results and their linked Jira epic keys from the OKR board. 🔗 Step 3: Fetches corresponding Jira epic details such as status, assignee, and last updated date. 🧩 Step 4: Merges Monday.com KR data with Jira epic progress through SQL-style joins. 📋 Step 5: Calculates real-time progress and variance against target goals. 📊 Step 6: Updates Monday.com KR items with actual progress, variance percentage, and status (“On Track”, “At Risk”, or “Ahead”). 🔄 Step 7: Aggregates all KR data into a consolidated report for communication. 📦 Step 8: Sends formatted variance reports to Slack and Outlook, with summaries of owner, progress, and variance metrics. 📢 Key Benefits ✅ Automates end-to-end OKR and Jira synchronization ✅ Eliminates manual progress tracking errors ✅ Provides daily visibility on team and project health ✅ Enables proactive risk detection via variance thresholds ✅ Keeps all stakeholders updated via Slack and Outlook ✅ Centralizes OKR performance metrics for reporting Features Daily scheduled trigger for automatic OKR sync Monday.com → Jira data integration via API Real-time variance computation logic Automatic updates of OKR fields in Monday.com SQL-style data merging and aggregation Slack notification with variance summaries Outlook email digest with formatted HTML tables Requirements Monday.com API credentials with board access Jira API credentials with permission to view epics Slack Bot token with chat:write permissions Microsoft Outlook OAuth2 credentials for sending emails Environment variables for board, channel, and recipient configuration Target Audience Product and engineering teams managing OKRs across platforms 🎯 Project managers tracking cross-tool performance metrics 📋 Leadership teams needing automated OKR reporting 💼 Operations and strategy teams monitoring execution health 🧭 Step-by-Step Setup Instructions Connect your Monday.com, Jira, Slack, and Outlook credentials in n8n. 🔑 Replace MONDAY_BOARD_ID, GROUP_ID, and column identifiers with your own. 🧩 Set environment variables for SLACK_CHANNEL_ID and REPORT_RECIPIENT_EMAIL. 💬 Adjust the cron expression to define your sync frequency (e.g., daily at 9 AM). ⏰ Test the workflow with a single OKR item to confirm successful synchronization. 🧠 Enable the workflow to automate daily OKR variance tracking and reporting. ✅
by Itunu
CoinMarketCap Token Discovery (Free API) Automatically discover cryptocurrency tokens from CoinMarketCap, clean the data, enrich it with official websites, and store the results in your preferred database or sheet. This workflow is designed to be safe for free API usage, easy to understand, and ready for extension. What This Workflow Does This workflow runs on a schedule and: Randomly selects pages from CoinMarketCap listings Fetches token data using the free CoinMarketCap API Cleans and normalizes token fields Enriches each token with official website data Processes tokens in safe batches with delays Outputs clean, structured token records Optionally saves results to a database or sheet Who This Is For This workflow is useful if you are: Doing crypto research or market discovery Building token datasets Running crypto outreach or lead generation Learning how to work with APIs in n8n Looking for a clean, real-world n8n example No advanced n8n knowledge is required. Setup Instructions (Required) Follow these steps before running the workflow: 1. Get a CoinMarketCap API Key Create a free account on CoinMarketCap Generate an API key from your dashboard 2. Add Your API Key Open the HTTP Request nodes Add your API key to the request headers: X-CMC_PRO_API_KEY = YOUR_API_KEY 3. Connect Storage Replace the storage node with your preferred option: Google Sheets Airtable PostgreSQL Webhook Add your own credentials before running the workflow. 4. Activate the Workflow Enable the workflow Let it run automatically based on the schedule How the Workflow Is Structured Trigger:** Runs every few days to avoid API limits Random Page Generator:** Prevents bias toward only top tokens Batch Processing:** Controls memory and request volume Delay Logic:** Keeps the workflow stable and API-friendly Cleaning Steps:** Removes messy or invalid data Final Output:** Clean, simple token records ready for use Output Example Each valid token produces a clean record like: Token name Symbol (ticker) Official website Source (CoinMarketCap) Timestamp Invalid or incomplete entries are automatically skipped. Customization Ideas You can easily extend this workflow to: Add social media scraping Track new tokens over time Trigger alerts for specific tokens Combine with other crypto APIs Feed data into outreach or analytics pipelines Important Notes This workflow uses CoinMarketCap’s free API tier Do not remove batch limits or delays unless you upgrade your API plan Replace sample storage with your own before production use License This workflow is provided for educational and practical use. You are free to modify and adapt it for your own projects. Author Built and shared by Itunu Ola n8n automation builder focused on practical, production-ready workflows.
by Intuz
This n8n template from Intuz provides a complete and automated solution for instant team-wide financial visibility. It actively monitors QuickBooks and, upon detecting a new invoice, immediately sends a detailed alert to your chosen Slack channel. For customized reporting, the workflow can pull specific keywords or data like the customer name, invoice amount, and due date directly into the Slack message, creating a complete, real-time feed of your company's sales activity. Use Cases Sales Team Visibility:** Instantly notify the sales channel when an invoice is generated for a deal they closed. Finance & Ops Sync:** Keep the finance team aware of all billing activities as they happen in a dedicated channel. Account Management:** Alert account managers when invoices are sent to their clients, allowing for proactive follow-up. Executive Dashboard:** Create a high-level #billing-feed channel for leadership to monitor revenue-generating activities in real time. How it Works 1. Instant Webhook Trigger: The workflow begins when an invoice is created or updated in QuickBooks. A configured webhook in your Intuit Developer Portal sends a real-time notification to n8n, instantly activating the flow. 2. Fetch Full Invoice Details: The initial webhook payload only contains a basic event notification. This node uses the invoice ID from that payload to query the QuickBooks API and retrieve the full invoice details, such as the customer's name, due date, and domain. 3. Format Key Data: A simple but essential Code node takes the raw data from QuickBooks and cleans it up. It extracts only the most important fields (ID, Domain, Customer Name, Due Date) and organizes them for the next step. 4. Send Slack Notification: The final node crafts a human-readable message and posts it to your chosen Slack channel. The message is dynamically populated with the invoice data, providing a clear and concise update for the whole team. For example: Invoice having ID: 160 having the Domain: QBO for the customer Rondonuwu Fruit and Vegi which is due on 2025-09-07 has been generated successfully. Setup Instructions To get this workflow running, follow these configuration steps: 1. Credentials: QuickBooks: Connect your QuickBooks account credentials to n8n. Slack: Connect your Slack account using OAuth2 credentials. 2. QuickBooks Webhook Configuration: First, activate this n8n workflow. This will make the webhook URL live. Copy the Production URL from the QuickBooks Webhook node. Log in to your Intuit Developer Portal, navigate to the webhooks section for your application, and paste the URL. Ensure you subscribe to Invoice events (e.g., Create, Update, etc.). 3. Node Configuration: Get an invoice: No configuration needed; it will automatically use your QuickBooks credentials. Send a message (Slack): In the parameters, select the Slack Channel where you want the notifications to be posted. Support If you need help setting up this workflow or require a custom version tailored to your specific use case, please feel free to reach out to the template author: Website: https://www.intuz.com/services Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz For Custom Worflow Automation Click here- Get Started
by Oneclick AI Squad
This workflow automatically tracks shipments across multiple courier services, updates Google Sheets, and notifies customers via WhatsApp/Email when status changes. Good to know Runs daily at 9 AM and only sends notifications when shipment status actually changes API costs may apply for courier tracking (Delhivery, DHL) and WhatsApp notifications Requires Google Sheet with proper column structure and valid API credentials Currently supports Delhivery and DHL APIs but easily expandable How it works Daily Trigger**: Cron node runs workflow every day at 9 AM Get Shipments List**: Fetches all shipment data from Google Sheet Filter Active Shipments**: Excludes delivered orders and empty tracking numbers Route by Courier**: Directs shipments to appropriate API (Delhivery or DHL) Track via APIs**: Makes real-time tracking calls to courier services Parse Tracking Data**: Normalizes different API responses and detects status changes Check Status Change**: Only processes shipments with actual status updates Update & Notify**: Simultaneously updates Google Sheet, sends WhatsApp message, and email notification Execution Summary**: Logs workflow performance metrics How to use Import the JSON workflow into n8n Create Google Sheet with columns: tracking_number, order_id, customer_email, customer_phone, courier, status, location, last_updated, estimated_delivery Configure credentials: Google Sheets OAuth2, Delhivery API, DHL API, WhatsApp API, SMTP Replace YOUR_GOOGLE_SHEET_ID with actual sheet ID Test workflow manually before enabling daily schedule Requirements Google Sheets API access Courier API keys (Delhivery, DHL) WhatsApp Business API credentials SMTP email service n8n instance (self-hosted or cloud) Customizing this workflow Add courier services**: Create new HTTP Request node and update routing logic Change frequency**: Modify cron expression (hourly: 0 * * * *, twice daily: 0 9,17 * * *) Customize notifications**: Edit WhatsApp/Email templates in respective nodes Add CRM integration**: Insert CRM update node after status change detection
by Rapiwa
Who is this for? This workflow is for online store owners, support teams, and marketing staff who want to automatically verify WhatsApp numbers and send order invoice links or personalized order updates to customers. It’s built against WooCommerce order webhooks but can be adapted to Shopify or other e-commerce platforms that provide billing and line_items. What this Workflow Does Receives order events (Webhook / WooCommerce order.updated). Normalizes the payload into a compact object: { data: { customer, products, invoice_link } } via a Code node. Iterates items in batches (SplitInBatches) to control throughput. Cleans phone numbers (removes non-digits) and verifies WhatsApp registration using Rapiwa (/api/verify-whatsapp). Sends templated WhatsApp messages through Rapiwa (/api/send-message) for verified numbers. Logs every attempt into Google Sheets: one sheet for verified & sent rows, another for unverified & not sent rows. Uses a Wait node to throttle and loop back into the batch processor. Key Features Trigger-based automation (Webhook or WooCommerce trigger). Payload normalization and mapping via JavaScript Code nodes. Controlled batching (SplitInBatches) to avoid rate limits. Pre-send verification of WhatsApp numbers using Rapiwa. Conditional branching with the IF node to separate verified vs unverified flows. Personalized message templates that pull customer and product fields from the mapped data. Logging and audit trail stored in Google Sheets (two separate append flows). How to Use — Step-by-step Setup Add credentials in n8n Rapiwa: Create an HTTP Bearer credential and paste your Bearer token (example name used in the flow: Rapiwa Bearer Auth). Google Sheets: Create an OAuth2 credential (example: Google Sheets). WooCommerce: Add WooCommerce API credentials for the trigger (or configure Shopify credentials if adapting). Import / configure nodes in n8n Webhook (or WooCommerce Trigger): receive order payloads. Example Webhook path is present in the exported flow. Code node Format Webhook Response Data: map body.billing, body.line_items, body.payment_url into { data: { customer, products, invoice_link } }. Code node Clean WhatsApp Number: ensure the phone number is a string and strip non-digits: String(rawNumber).replace(/\D/g, ""). HTTP Request Check valid whatsapp number Using Rapiwa: POST to https://app.rapiwa.com/api/verify-whatsapp with { number }. Use the Rapiwa Bearer credential. IF If: check verification result. The flow compares {{$json.data.exists}} to "true" in the exported flow; normalize types if your API returns booleans. HTTP Request Rapiwa Sender: POST to https://app.rapiwa.com/api/send-message with number, message_type: 'text', and a templated message (see message template in the flow). Google Sheets Store State of Rows in Verified & Sent and Store State of Rows in Unverified & Not Sent Google Sheet Column Structure Create these columns exactly (the Google Sheets nodes in the flow expect these names): A Google Sheet formatted like this ➤ sample | Name | Number | Email | Address | Product Title | Product ID | Size | Quantity | Total Price | Product Image | Invoice Link | Product Status | Validity | Status | |-----------------|---------------|-------------------|--------------|------------------------------------------------|------------|------|----------|----------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|----------------|------------|----------| | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251 | 40 | 1 | BDT 5800.00 | | Invoice | on-hold | verified | sent | | Abdul Mannan | 8801322827799 | contact@spagreen.net | mirpur dohs | Air Force 1 Reigning Champ Dark Grey 1:1 - 40 | 251 | 40 | 1 | BDT 5800.00 | | Invoice | on-hold | unverified | not sent | Customization Ideas Adapt the Code mapping node for Shopify payloads or other marketplaces. Iterate and include multiple products in the message instead of using products[0]. Add filters in the Code node (e.g., only process orders with total > 5000). Add fallback channels (SMS or email) for unverified numbers. Persist logs into a database for analytics and retention beyond Google Sheets. Add admin notifications (Slack, email) at the end of each run. Useful Links Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support & Help WhatsApp**: Chat on WhatsApp Discord**: SpaGreen Community Facebook Group**: SpaGreen Support Website**: https://spagreen.net Developer Portfolio**: Codecanyon SpaGreen
by Daniel Shashko
How it Works This workflow automatically monitors your Google Ads campaigns every day, analyzing performance with AI-powered scoring to identify scaling opportunities and catch issues before they drain your budget. Each morning at 9 AM, it fetches all active campaign data including clicks, impressions, conversions, costs, and conversion rates from your Google Ads account. The AI analysis engine evaluates four critical dimensions: CTR (click-through rate) to measure ad relevance, conversion rate to assess landing page effectiveness, cost per conversion to evaluate profitability, and traffic volume to identify scale-readiness. Each campaign receives a performance score (0-100 points) and is automatically categorized as Excellent (75+), Good (55-74), Fair (35-54), or Underperforming (0-34). High-performing campaigns trigger instant Slack alerts to your PPC team with detailed scaling recommendations and projected ROI improvements, while underperforming campaigns generate urgent alerts with specific optimization actions. Every campaign is logged to your Google Sheets dashboard with daily metrics, and the system generates personalized email reports—action-oriented scaling plans for top performers and troubleshooting guides for campaigns needing attention. The entire analysis takes minutes, providing your team with daily intelligence reports that would otherwise require hours of manual spreadsheet work and data analysis. Who is this for? PPC managers and paid media specialists drowning in campaign data and manual reporting Marketing agencies managing multiple client accounts needing automated performance monitoring E-commerce brands running high-spend campaigns who can't afford budget waste Growth teams looking to scale winners faster and pause losers immediately Anyone spending $5K+ monthly on Google Ads who needs data-driven optimization decisions Setup Steps Setup time:** Approx. 15-25 minutes (credential configuration, dashboard setup, alert customization) Requirements:** Google Ads account with active campaigns Google account with a tracking spreadsheet Slack workspace SMTP email provider (Gmail, SendGrid, etc.) Create a Google Sheets dashboard with two tabs: "Daily Performance" and "Campaign Log" with appropriate column headers. Set up these nodes: Schedule Daily Check: Pre-configured to run at 9 AM daily (adjust timing if needed). Fetch Google Ads Data: Connect your Google Ads account and authorize API access. AI Performance Analysis: Review scoring thresholds (CTR, conversion rate, cost benchmarks). Route by Performance: Automatically splits campaigns into high-performers vs. issues. Update Campaign Dashboard: Connect Google Sheets and select your "Daily Performance" tab. Log All Campaigns: Select your "Campaign Log" tab for historical tracking. Slack Alerts: Connect workspace and configure separate channels for scaling opportunities and performance issues. Generate Action Plan: Customize email templates with your brand voice and action items. Email Performance Report: Configure SMTP and set recipient email addresses. Credentials must be entered into their respective nodes for successful execution. Customization Guidance Scoring Weights:** Adjust point values for CTR (30), conversion rate (35), cost efficiency (25), and volume (10) in the AI Performance Analysis node based on your business priorities. Performance Thresholds:** Modify the 75-point Excellent threshold and 55-point Good threshold to match your campaign quality distribution and industry benchmarks. Benchmark Values:** Update CTR benchmarks (5% excellent, 3% good, 1.5% average) and conversion rate targets (10%, 5%, 2%) for your industry. Alert Channels:** Create separate Slack channels for different alert types or route critical alerts to Microsoft Teams, Discord, or SMS via Twilio. Email Recipients:** Configure different recipient lists for scaling alerts (executives, growth team) vs. optimization alerts (campaign managers). Schedule Frequency:** Change from daily to hourly monitoring for high-spend campaigns, or weekly for smaller accounts. Additional Platforms:** Duplicate the workflow structure for Facebook Ads, Microsoft Ads, or LinkedIn Ads with platform-specific nodes. Budget Controls:** Add nodes to automatically pause campaigns exceeding cost thresholds or adjust bids based on performance scores. Once configured, this workflow will continuously monitor your ad spend, identify opportunities worth thousands in additional revenue, and alert you to issues before they waste your budget—transforming manual reporting into automated intelligence. Built by Daniel Shashko Connect on LinkedIn