by oka hironobu
Forecast sales trends and generate reports with Stripe, Sheets, and Gemini AI Who is this for Revenue operations teams, SaaS growth managers, and sales directors who need automated weekly insights from their Stripe payment data. Perfect for small to medium businesses tracking subscription revenue, one-time charges, and refund patterns without manual spreadsheet work. How it works Every Monday morning, the workflow pulls the previous week's charges, subscriptions, and refunds from Stripe's API. It merges this fresh data with historical sales records stored in Google Sheets, then calculates key metrics like week-over-week growth, moving averages, and MRR estimates. Google Gemini AI analyzes the compiled data to identify trends, predict next week's performance, and flag unusual revenue patterns. When significant changes are detected (20%+ variance), the system triggers targeted alerts through a separate Slack channel. All insights get logged to a Google Sheets history for tracking, while a comprehensive dashboard page updates automatically in Notion. The weekly summary posts to your main sales Slack channel, and executives receive detailed email reports with strategic recommendations. How to set up Configure Stripe API credentials with read access to charges, subscriptions, and refunds. Set up Google Sheets OAuth for both reading historical data and writing analysis logs. Create a Notion integration with page update permissions for your sales dashboard. Add Slack OAuth credentials for posting to your chosen sales and alerts channels. Configure Gmail SMTP for executive email delivery. Update the Configuration Settings node with your specific IDs, channels, and email addresses. Requirements Stripe account with API access Google Sheets with historical sales data Notion workspace for dashboard Slack workspace with posting permissions Gmail account for executive reports Google Gemini API access How to customize Adjust the anomaly detection threshold in the Calculate Trends code node (currently 50% variance triggers alerts). Modify the Slack message templates, email formatting, or add additional metrics to the Notion dashboard. Change the schedule trigger from weekly to daily or monthly based on your reporting needs.
by Takumi Oku
Who is this for Entrepreneurs looking for verified technology to license. R&D Teams tracking aerospace innovation. Content Creators covering tech trends. How it works Fetch: Gets the latest patents from NASA's Tech Transfer API. Filter & Loop: Removes empty entries and processes each patent individually. Analyze: Translates the abstract (DeepL) and uses OpenAI to brainstorm practical business applications. Archive: Saves the details to Google Sheets. Notify: Compiles a summary and sends it to Slack. How to set up Prepare Google Sheet: Create a new sheet with these exact headers in Row 1: Date Title Abstract_Translated Business_Idea Link Edit Settings: Double-click the Edit Settings node to add your Google Sheet ID, Sheet Name, and Slack Channel ID. Credentials: Configure credentials for OpenAI, DeepL, Google Sheets, and Slack. Activate: Run a test execution, then switch the workflow to Active. Requirements OpenAI: API Key (gpt-4o or gpt-3.5-turbo) DeepL: API Key (Free or Pro) Google Sheets: OAuth2 credentials with Drive/Sheets scopes. Slack: Bot User OAuth Token with chat:write scope. How to customize Change the Prompt: Edit the Generate Business Ideas node to tailor ideas for a specific niche (e.g., "Applications for medical devices"). Adjust Schedule: Change the trigger in the Weekly Schedule node to run daily or monthly. Different Output: Swap Slack for Microsoft Teams or Email nodes if preferred.
by Kumar SmartFlow Craft
🚀 How it works Fully automates your service order pipeline from incoming booking to supplier confirmation — with built-in SLA enforcement and automatic escalation if a supplier goes silent. 📥 Receives orders via webhook from your booking form or website 💳 Verifies payment against Stripe before processing anything 🤖 Extracts and structures order details (service type, address, date, priority) using Claude AI 👤 Upserts the customer contact and creates a deal in Freshworks CRM automatically 📧 Sends branded confirmation emails to the customer and assigned supplier via Postmark ⏱️ Enforces a 4-hour supplier acceptance SLA — escalates automatically if no response 🔁 Reassigns to a backup supplier and retries for 2 hours before flagging for manual review 🚨 Alerts your team on Slack if manual intervention is required 📊 Logs every outcome (confirmed, reassigned, escalated) to Google Sheets for full audit trail 🛠️ Set up steps Estimated setup time: ~30 minutes Webhook — copy the webhook URL and point it from your booking form or website checkout Stripe — add your Stripe secret key to the HTTP Request node; set the correct payment_intent field name from your payload Claude (Anthropic) — connect your Anthropic API credential; claude-sonnet-4-6 or higher recommended Freshworks CRM — connect your Freshworks credential; set your domain in the HTTP Request upsert node (e.g. yourcompany.freshsales.io) Postmark — add your Postmark Server Token to the HTTP Request nodes; update the sender email address Slack — connect Slack OAuth2; set your ops/dispatch channel in the alert nodes (e.g. #dispatch-alerts) Google Sheets — connect Google Sheets OAuth2; set your spreadsheet ID and sheet name in the log nodes Follow the sticky notes inside the workflow — each section has a one-liner setup guide 📋 Prerequisites Stripe account with payment intents enabled Anthropic API key (Claude API access) Freshworks CRM account (Growth plan or higher for API access) Postmark account with a verified sender domain Slack workspace with a bot or OAuth2 app Google Sheets spreadsheet set up as your audit log --- Custom Workflow Request with Personal Dashboard kumar@smartflowcraft.com https://www.smartflowcraft.com/contact More free templates https://www.smartflowcraft.com/n8n-templates
by Oneclick AI Squad
Quick overview This workflow runs on a schedule (or manually) to reconcile bank/PSP transactions against open invoices from an ERP via HTTP APIs, auto-applying exact matches, routing partial matches to Slack for approval, logging unmatched payments as exceptions in Google Sheets, and posting a reconciliation summary to Slack. How it works Runs on a schedule or via a manual trigger and loads configuration values like API URLs, matching tolerances, Google Sheets IDs, and Slack channels. Fetches incoming payment transactions from a bank/PSP API and open invoices from an ERP/accounting API. Compares each payment to invoices using deterministic rules (reference match first, then amount/currency plus a date window) and labels it as matched, partial, or unmatched. For matched payments, updates the invoice in the ERP as paid via an HTTP request and appends the outcome to a Google Sheets audit log. For partial matches, posts the candidate invoices to Slack for human review, waits for a decision, and then either applies the payment in the ERP and logs it to the audit sheet or flags it as a rejected exception and alerts Slack. For unmatched payments, writes an exception row to a Google Sheets exceptions sheet and notifies finance in Slack. Aggregates run-level counts and totals across all processed payments and posts a summary message to Slack. Setup Create HTTP Header Auth credentials for your bank/PSP and ERP endpoints, and replace the example API URLs and ledger base URL in the configuration values. Add Google Sheets credentials and set the audit and exceptions spreadsheet IDs, ensuring the target sheets exist (for example, tabs named “AuditLog” and “Exceptions”). Add Slack credentials and set the channel names for review, exceptions, and summary notifications. If you use the manual review path, configure Slack (or an external callback) to resume the wait step by sending an approval payload (for example, approved: true and optionally selectedInvoiceId).
by Margaux Faurie
Quick overview This workflow runs weekly and pulls overlap changes, net-new accounts, and partner suggestions from Crossbeam via MCP, uses Anthropic Claude to prioritize actions against your ICP, posts a Block Kit brief to Slack, and (after Slack approval) creates selected companies in Salesforce or HubSpot. How it works Runs every hour on a schedule and continues only at the configured weekday/hour (or when manually triggered). Queries Crossbeam MCP for recent overlap changes, net-new accounts, and partner suggestions, then deduplicates and filters results using stored history. Uses Anthropic Claude (optionally with read-only Crossbeam MCP lookups) to rank weekly priorities, score ICP fit for net-new accounts, and add rationale for partner suggestions. Formats the results into a single Slack Block Kit message (including partner invite buttons) and posts the weekly brief to the configured Slack channel. Saves the current overlap state and partner-suggestion state to n8n Data Tables so next week’s run reports only meaningful changes and enforces the re-nudge window. If net-new accounts are available, sends a Slack form in the thread to select which ones to create and waits up to the configured approval window. Creates only the approved records in Salesforce (Account or Lead) or HubSpot (Company), records outcomes to a Data Table, and replies in the Slack thread with results and record links. Setup Create and select credentials for Crossbeam MCP (OAuth2), Anthropic (Claude), and Slack (OAuth2), and invite the Slack bot to the target channel. Enable Slack Interactivity for your Slack app using n8n’s webhook URL so the approval form button can submit responses. Create three n8n Data Tables for overlap history, partner suggestion history, and net-new/CRM outcomes, then select the correct table IDs in the Data Table nodes. In the Configure step, set your timezone, brief schedule, Slack channel ID, ICP description, and Crossbeam list/settings (pages, segments, lookback, and ignore lists). Configure CRM settings by choosing Salesforce or HubSpot, setting Salesforce Account vs Lead (and Salesforce base URL or HubSpot portal ID), then test with dry_run enabled before turning dry_run off to allow record creation. Requirements Crossbeam with MCP access (credit metered: one call per page and per agent lookup, all capped in Configure me) Anthropic API key (Claude) Slack app with chat:write and interactivity for the selection form Salesforce or HubSpot (only used for the accounts you approve) Customization Filter net-new accounts by size, country and industry with employee_ranges, countries, industries_to_include and industries_to_exclude. Describe your ideal customer profile in plain words in icp_description; Claude scores fit against it. Change the brief day and hour, page counts, item caps and the re-nudge window for partner suggestions. Set crm_choice to hubspot to create HubSpot companies instead of Salesforce records. Additional info Crossbeam AI Agents and List Notifications send partner alerts one by one, and Crossbeam's native CRM push only enriches records that already exist. This template gives one weekly, prioritised view across overlaps, net-new accounts and partner suggestions, and a safe way to create only the accounts you choose. Nothing is created while dry_run is true. Partner invites stay in Crossbeam: each suggestion links to Crossbeam's own invite page. Next steps: add Claude to the channel (Claude in Slack) to draft partner intros, or enrich new accounts with Clay before creating them. Setup guide: Crossbeam MCP server https://help.crossbeam.com/en/articles/12601327-crossbeam-mcp-server-limited-availability
by iamvaar
Quick overview Youtube Video Explanation: https://youtu.be/GNAplBWdCDE?si=fX31M-nu3sP2b276 This workflow receives an authenticated webhook with an audio file and mobile number, looks up the matching contact and recent notes in GoHighLevel, transcribes the audio with Deepgram, generates a structured CRM call note using Gemini, and logs the results to Google Sheets before responding. How it works Receives an authenticated POST webhook request containing a contact mobile number and an uploaded audio file. Looks up the contact in GoHighLevel (LeadConnector) by the provided mobile number and continues only if a matching contact ID is found. Extracts the uploaded audio from the webhook payload and sends it to Deepgram’s transcription API to produce a call transcript. Retrieves the contact’s notes from GoHighLevel and uses only notes from the last 30 days as context. Sends the recent notes and transcript to Google Gemini to generate a structured CRM interaction note. Appends or updates a row in Google Sheets with the contact details, recent notes, execution link, and the AI-generated note. Returns the workflow result back to the original webhook request. Setup Configure the Webhook trigger URL in your calling app and include the required header authentication plus a POST body field named mobile_number and a binary audio upload. Add GoHighLevel (HighLevel OAuth2) credentials with access to contacts and notes for your location/account. Add a Deepgram API key (HTTP Header Auth) and ensure the webhook uploads an audio format supported by Deepgram. Add Google Gemini (Google PaLM) credentials for the Gemini chat model used to generate the CRM note. Add Google Sheets service account credentials, select the target spreadsheet and sheet, and replace https://enter-your-n8n-instance-url-here with your n8n base URL for the execution link.
by Lucía Maio Brioso
🧑💼 Who is this for? This workflow is for any YouTube user who wants to bulk delete all playlists from their own channel — whether to start fresh, clean up old content, or prepare the account for a new purpose. It’s useful for: Creators reorganizing their channel People transferring content to another account Anyone who wants to avoid deleting playlists manually one by one 🧠 What problem is this workflow solving? YouTube does not offer a built-in way to delete multiple playlists at once. If you have dozens or hundreds of playlists, removing them manually is extremely time-consuming. This workflow automates the entire deletion process in seconds, saving you hours of repetitive effort. ⚙️ What this workflow does Connects to your YouTube account Fetches all playlists you’ve created (excluding system playlists) Deletes them one by one** automatically > ⚠️ This action is irreversible. Once a playlist is deleted, it cannot be recovered. Use with caution. 🛠️ Setup 🔐 Create a YouTube OAuth2 credential in n8n for your channel. 🧭 Assign the credential to both YouTube nodes. ✅ Click “Test workflow” to execute. > 🟨 By default, this workflow deletes everything. If you want to be more selective, see the customization tips below. 🧩 How to customize this workflow to your needs ✅ Add a confirmation flag Insert a Set node with a custom field like confirm_delete = true, and follow it with an IF node to prevent accidental execution. ✂️ Delete only some playlists Add a Filter node after fetching playlists — you can match by title, ID, or keyword (e.g. only delete playlists containing “old”). 🛑 Add a pause before deletion Insert a Wait or NoOp node to give you a moment to cancel before it runs. 🔁 Adapt to scheduled cleanups Use a Cron trigger if you want to periodically clear temporary playlists.
by Anna Bui
🎯 LinkedIn ICP Lead Qualification Automation Automatically identify and qualify ideal customer prospects from LinkedIn post reactions using AI-powered profile analysis and intelligent data enrichment. Perfect for sales teams and marketing professionals who want to convert LinkedIn engagement into qualified leads without manual research. This workflow transforms post reactions into actionable prospect data with AI-driven ICP classification. Good to know LinkedIn Safety**: Only use cookie-free Apify actors to avoid account detection and suspension risks Daily Processing Limits**: Scrape maximum 1 page of reactions per day (50-100 profiles) to stay under LinkedIn's radar Apify actors cost approximately $0.01-0.05 per profile scraped - budget accordingly for daily processing Includes intelligent rate limiting to prevent API restrictions and maintain LinkedIn account safety AI classification requires clear definition of your Ideal Customer Profile criteria Processing too many profiles or running too frequently will trigger LinkedIn's anti-scraping measures Always monitor your LinkedIn account health and Apify usage patterns for any warning signs How it works Scrapes LinkedIn post reactions using Apify's specialized actor to identify engaged users Extracts and cleans profile data including names, job titles, and LinkedIn URLs Checks against existing Airtable records to prevent duplicate processing and save costs Creates new prospect records with basic information for tracking purposes Enriches profiles with comprehensive LinkedIn data including company details and experience Aggregates and formats profile data for AI analysis and classification Uses AI to analyze prospects against your ICP criteria with detailed reasoning Updates records with ICP classification results and extracted email addresses Implements smart batching and delays to respect API rate limits throughout the process How to use IMPORTANT**: Select cookie-free Apify actors only to avoid LinkedIn account suspension Set up Apify API credentials in both HTTP Request nodes for safe LinkedIn scraping Configure Airtable OAuth2 authentication and select your prospect tracking base Replace the LinkedIn post URL with your target post in the initial scraper node Daily Usage**: Process only 1 page of reactions per day (typically 50-100 profiles) maximum Customize the AI classification prompt with your specific ICP criteria and job titles Test with a small batch first to verify setup and monitor both API costs and LinkedIn account health Schedule workflow to run daily rather than processing large batches to maintain account safety Requirements Apify account with API access and sufficient credits for profile scraping Airtable account with OAuth2 authentication configured OpenAI or compatible AI model credentials for prospect classification LinkedIn post URL with reactions to analyze (minimum 10+ reactions recommended) Clear definition of your Ideal Customer Profile criteria for accurate AI classification Customising this workflow Safety First**: Always verify Apify actors are cookie-free before configuring to protect your LinkedIn account Modify ICP classification criteria in the AI prompt to match your specific target customer profile Set up daily scheduling (not hourly/frequent) to respect LinkedIn's usage patterns and avoid detection Adjust rate limiting delays based on your comfort level with LinkedIn scraping frequency Add additional data fields to Airtable schema for storing custom prospect information Integrate with CRM systems like HubSpot or Salesforce for automatic lead import Set up Slack notifications for new qualified prospects or daily summary reports Create email marketing sequences in tools like Mailchimp for nurturing qualified leads Add lead scoring based on company size, industry, or engagement level for prioritization Consider rotating between different LinkedIn posts to diversify your prospect sources while maintaining daily limits
by iamvaar
Project Overview: Automated Climate-Driven HVAC Upsell & AI Concierge This project is specifically built for an HVAC business to automatically upsell to old customers when their locality has a heatwave or snow wave forecast in the upcoming five days. Prerequisites & Setup 1. GoHighLevel (GHL) Create Custom Fields:** stop_whatsapp: Used when a user replies "STOP" to remove them from the marketing list. opp_type: To track the campaign type (e.g., heatwave or snowwave). Create Two Pipelines:** Pipeline A: HEATWAVE Pipeline B: SNOWWAVE Note: Both pipelines require 4 stages: New Lead, Contacted, Scheduled, and Closed. Grab the Calendar ID:** Keep your GHL Calendar ID handy, as the workflow will need it to search for free slots and book appointments. 2. WhatsApp (Meta Business Suite) Create and approve two marketing templates for proactive outreach: A. Heatwave Template > Hello {{1}}, > With temperatures expected to rise soon, we wanted to share a few tips to keep your home comfortable and your AC running efficiently. > Maintenance Tips: > • Keep blinds closed during peak sun hours. > • Check your air filters; a clean filter prevents overworking. > • If you leave the house, raise the thermostat a few degrees rather than turning it off. > Need help? > If your system is struggling to keep up, we are here to assist. > Stay cool and safe! B. Snow Wave Template > Hello {{1}}, > With a cold front and freezing temperatures expected soon, we wanted to share a few tips to keep your home warm and your heating system running efficiently. > Winter Comfort Tips: > • Keep curtains and blinds open during the day to let sunlight naturally warm your home, then close them at night to trap the heat. > • Check your air filters; a clogged filter makes your heater work much harder in freezing weather. > • Ensure your outdoor vents and heat pump units are clear of snow or debris to maintain proper airflow. > Need help? > If your heating system is struggling to stay warm or making unusual noises, we are here to assist. > Stay warm and safe! 3. API Integrations Nominatim OpenStreetMap API:** Review the documentation. This open-source tool will be used to extract exact cities from customer street addresses. WeatherAPI:** Obtain a free API key. Add this to your workflow's generic credentials (Type: Query Auth > Name: key > Value: your-api-key). Gemini API:** Obtain your API key to power the AI Service Concierge. Part 1: The Climate-Driven Lead Generation Engine (Proactive Outreach) This sub-workflow acts as a proactive scraper. It monitors your CRM contacts, cross-references their locations with live weather data, and triggers targeted upsell campaigns. 1. Schedule Trigger & Fetch Contacts Schedule Trigger:** Kicks off the workflow every morning at 7:00 AM. Fetch Contacts (HighLevel):** Pulls your entire list of previous customers and leads from GoHighLevel. 2. Geocoding & Data Cleaning If Node (City Set):** Checks if the CRM contact already has a city populated. Nominatim API (Loop & Fetch):** If a city is missing, the workflow runs the address through the Nominatim OpenStreetMap API to extract the exact city. Update Contact (HighLevel):** Saves the extracted city back to the GHL contact profile to prevent redundant geocoding in the future. 3. Weather Data Aggregation Code Node (Group by City):** A vital step to optimize API usage. Instead of making 1,000 separate calls for 1,000 contacts, custom JavaScript groups all contacts by their respective cities. HTTP Request (Fetch Forecast):** Pings WeatherAPI.com to grab the 5-day forecast for each unique city. 4. Hazard Detection & Routing Code Node (Detect Weather Hazards):** A script evaluates the 5-day forecast against dynamic, seasonal temperature thresholds (e.g., a "heatwave" threshold in May might be >85°F, but >95°F in August). It tags the grouped contacts with a campaign type (HEATWAVE or SNOWWAVE). If Node (Check Campaign Type):** Routes the qualified leads into the appropriate pipeline logic. 5. CRM Execution & WhatsApp Outreach Create Opportunity (HighLevel):** Drops the qualified lead into the "New Lead" stage of the respective GHL pipeline. Send Template (WhatsApp):** Dispatches the pre-approved Meta marketing template to the customer. Update & Upsert (HighLevel):** Moves the Opportunity to the "Contacted" stage and updates the opp_type custom field so the system tracks the reason for outreach. Part 2: The AI-Powered Service Concierge (Inbound Handling) When a customer replies to the proactive blast (e.g., "My AC is making a weird noise, can someone come out?"), this sub-workflow seamlessly takes over to assist the customer and autonomously book an appointment. 1. Trigger & Validation Trigger (WhatsApp Message Received):** Listens for inbound replies from customers. Fetch & Validate (HighLevel):** Looks up the sender's phone number in GHL. If the number does not exist in the CRM, the workflow ignores the message to prevent spam handling. 2. The Opt-Out Filter If Node (Stop Command):** Scans the inbound message for the keyword "STOP". Upsert Contact (HighLevel):** If "STOP" is detected, the workflow immediately updates the user's stop_whatsapp custom field to TRUE, excluding them from all future blasts, and terminates the flow. 3. The Agentic Core Customer Service AI Agent (LangChain + Gemini):** If the user is requesting assistance, the message is routed to an AI Agent powered by the Gemini Chat Model. Redis Chat History Memory:** Connects to a Redis instance so the AI retains conversation context, which is crucial for natural, back-and-forth scheduling. Agent Tools (HighLevel Integration):** The Gemini agent is equipped with specific tools it can trigger autonomously: Fetch Available Calendar Slots: The AI is strictly instructed to check live GHL availability before suggesting times to the user. Book Calendar Appointment: Automatically secures the timeslot in GHL if the user agrees. Close Deal: If the user declines service ("I'm good, no thanks"), the AI triggers this tool to mark the GHL opportunity as "Closed/Lost". Update Pipeline Stage: If an appointment is successfully booked, the AI moves the pipeline stage to "Scheduled" without any manual human intervention. 4. Final Response Send Response (WhatsApp):** The AI formulates a conversational, friendly reply—utilizing WhatsApp's native formatting like bolding and bullet points—and sends it back to the customer to confirm the action taken.
by iamvaar
Quick overview Youtube Video: https://youtu.be/4eBS3peutkI This workflow captures Facebook Lead Ads submissions, validates and normalizes contact data, upserts the lead into GoHighLevel, and immediately sends a WhatsApp welcome template while saving the first message to Redis so a Google Gemini–powered WhatsApp agent can continue the conversation with context. How it works Triggers when a new lead is submitted via Facebook Lead Ads. Normalizes the payload (email, name, and phone), validates required fields, and stops processing for invalid leads. Searches GoHighLevel for an existing contact by email and creates/updates the contact when no match is found. Prepares a personalized WhatsApp outreach message, sends a WhatsApp approved template to the lead, and stores the same initial message in a Redis list keyed by the lead’s phone digits. Triggers on incoming WhatsApp messages and ignores any non-text messages. Uses a Google Gemini chat model with Redis chat memory to generate a short sales-assistant reply based on the inbound message and prior context. Sends the generated reply back to the lead via WhatsApp. Setup Connect Facebook Lead Ads OAuth2 credentials and select the correct Facebook Page and Lead Form in the Facebook Lead Ads trigger. Connect GoHighLevel (HighLevel) OAuth2 credentials and confirm the contact lookup uses the right identifier (email) for your CRM. Connect WhatsApp Business API credentials, set the correct Phone Number ID, and ensure the “lead_welcome” WhatsApp message template exists and is approved for your account. Connect Redis credentials and ensure your Redis instance is reachable for storing and retrieving chat history. Connect Google Gemini (Google PaLM) credentials for the LangChain chat model used by the WhatsApp AI agent. Update environment-specific defaults as needed, such as the default country code used to normalize 10-digit phone numbers in the validation logic.
by vinci-king-01
CRM Contact Sync with Mailchimp and Pipedrive This workflow keeps your contact records perfectly aligned between your CRM (e.g. HubSpot / Salesforce / Pipedrive) and Mailchimp. Whenever a contact is created or updated in one system, the automation propagates the change to the other platform, ensuring every email address, phone number and custom field stays in sync. Pre-conditions/Requirements Prerequisites n8n instance (self-hosted or cloud) Community nodes: Pipedrive, Mailchimp A dedicated service account in each platform with permission to read & write contacts Basic understanding of how webhooks work (for CRM → n8n triggers) Required Credentials Pipedrive API Token** – Used for creating, updating and searching contacts in Pipedrive Mailchimp API Key** – Grants access to lists/audiences and contact operations CRM Webhook Secret** (optional) – If your CRM supports signing webhook payloads Specific Setup Requirements | Environment Variable | Description | Example | |----------------------|--------------------------------------|---------------------------------| | PIPEDRIVE_API_KEY | Stored in n8n credential manager | 123abc456def | | MAILCHIMP_API_KEY | Stored in n8n credential manager | us-1:abcd1234efgh5678 | | MAILCHIMP_DC | Mailchimp Datacenter (sub-domain) | us-1 | | CRM_WEBHOOK_URL | Generated by the Webhook node | https://n8n.myserver/webhook/... | How it works This workflow keeps your contact records perfectly aligned between your CRM (e.g. HubSpot / Salesforce / Pipedrive) and Mailchimp. Whenever a contact is created or updated in one system, the automation propagates the change to the other platform, ensuring every email address, phone number and custom field stays in sync. Key Steps: Inbound Webhook**: Receives contact-change events from the CRM. Split in Batches**: Processes contacts in chunks to stay within API rate limits. Mailchimp Upsert**: Adds or updates each contact in the specified Mailchimp audience. Pipedrive Upsert**: Mirrors the same change in Pipedrive (or vice-versa). Merge & IF nodes**: Decide whether to create or update a contact by checking existence. Error Trigger**: Captures any API failures and posts them to the configured alert channel. Set up steps Setup Time: 15-25 minutes Create credentials • In n8n, add new credentials for Pipedrive and Mailchimp using your API keys. • Name them clearly (e.g. “Pipedrive Main”, “Mailchimp Main”). Import the workflow • Download or paste the JSON template into n8n. • Save the workflow. Configure the Webhook node • Set HTTP Method to POST. • Copy the generated URL and register it as a webhook in your CRM’s contact-update events. Map CRM fields • Open the first Set node and match CRM field names (firstName, lastName, email, etc.) to the standard keys used later in the flow. Select Mailchimp Audience • In the Mailchimp node, choose the audience/list that should receive the contacts. Define Pipedrive Person Fields • If you have custom fields, add them in the Pipedrive node’s Additional Fields section. Enable the workflow • Turn the workflow from “Inactive” to “Active”. • Send a test update from the CRM to verify that contacts appear in both Mailchimp and Pipedrive. Node Descriptions Core Workflow Nodes: Webhook** – Accepts contact-change payloads from the CRM. Set** – Normalises field names to a common schema. SplitInBatches** – Loops through contacts in controllable group sizes. HTTP Request** – Generic calls (e.g. HubSpot/Salesforce look-ups when required). Pipedrive** – Searches for existing persons; creates or updates accordingly. Mailchimp** – Performs contact upsert into an audience. If** – Branches logic on “contact exists?”. Merge** – Re-assembles branch data back into a single execution line. Code** – Small JS snippets for complex field transformations. Error Trigger** – Listens for any node failure and routes it to alerts. StickyNote** – Documentation hints inside the workflow. Data Flow: Webhook → Set (Normalise) → SplitInBatches SplitInBatches → Mailchimp (Get) → If (Exists?) → Mailchimp (Upsert) SplitInBatches → Pipedrive (Search) → If (Exists?) → Pipedrive (Upsert) Merge → End / Success Customization Examples Add a Tag to Mailchimp contacts // Place inside a Code node before the Mailchimp Upsert item.tags = ['Synced from CRM', 'High-Value']; return item; Apply a Deal Stage in Pipedrive // Pipedrive node → Additional Fields "deal": { "title": "New Lead from Mailchimp", "stage_id": 2 } Data Output Format The workflow outputs structured JSON data: { "id": 1472, "status": "updated", "email": "alex@example.com", "source": "CRM", "synced": { "pipedrive": "success", "mailchimp": "success" }, "timestamp": "2024-04-27T10:15:00Z" } Troubleshooting Common Issues HTTP 401 Unauthorized – Verify that the API keys are still valid and have not been revoked. Webhook receives no data – Double-check that the CRM webhook URL matches exactly and that the event is enabled. Performance Tips Batch contacts in groups of 50-100 to respect Mailchimp & Pipedrive rate limits. Use Continue On Fail in non-critical nodes to prevent the entire run from stopping. Pro Tips: Map your CRM’s custom fields once in the Set node to avoid touching each downstream node. Use Merge+If pattern to keep “create vs update” logic tidy. Enable workflow execution logs only in development to reduce storage usage. *Community Template Disclaimer: This workflow is provided by the n8n community “as is”. n8n GmbH makes no warranties regarding its performance, security or compliance. Always review and test in a development environment before using it in production.*
by Kumar SmartFlow Craft
⏺ 🚀 How it works Fully automates your inbound and outbound voice sales pipeline — from live call qualification to CRM pipeline management — with multi-agent AI and automatic lead nurturing if a prospect doesn't book. 📞 Receives end-of-call reports from Vapi or Retell AI via webhook — works with both providers out of the box 🧠 Qualifies every inbound lead using BANT scoring (Budget · Authority · Need · Timeline) powered by Claude Haiku 📅 Detects appointment intent and preferred meeting time using GPT-4o before touching your CRM 🗂️ Upserts the contact and creates a pipeline opportunity in GoHighLevel automatically — no duplicates 💬 Analyses objections and generates a rebuttal script using Claude Sonnet (feel-felt-found + Challenger Sale) 📝 Writes a professional CRM note from the call summary using Gemini 2.0 Flash — ready to sync 🔁 Enrols unqualified leads into a GoHighLevel nurture workflow automatically for long-term follow-up 📤 Fires prioritised outbound calls every morning at 9 AM via Vapi — GPT-4o Mini ranks leads by conversion probability 📊 Logs every call (inbound + outbound) to Supabase and Google Sheets for full pipeline reporting 🛠️ Set up steps Estimated setup time: ~45 minutes Webhook — copy the webhook URL and paste it into your Vapi or Retell dashboard as the end-of-call report URL GoHighLevel — connect your HighLevel OAuth2 credential; set your Pipeline ID, Hot Stage ID, and Nurturing Stage ID in the opportunity nodes (Opportunities → Settings → Pipelines) Anthropic — connect your Anthropic API credential; used for Claude Haiku (BANT qualification) and Claude Sonnet (objection handling) OpenAI — connect your OpenAI API credential; used for GPT-4o (booking intent detection) and GPT-4o Mini (outbound lead ranking) Google Gemini — connect your Google Gemini API credential; used for CRM note writing with gemini-2.0-flash Vapi — add your Vapi API key to the HTTP Request node header; set your Phone Number ID and Assistant ID in the outbound call node (Vapi Dashboard → Phone Numbers / Assistants) Supabase — connect your Supabase API credential; create the voice_call_logs table using the SQL in the setup sticky note inside the workflow Google Sheets — connect Google Sheets OAuth2; set your Spreadsheet ID and ensure a sheet named Voice Call Log exists with the columns listed in the setup sticky note Follow the sticky notes inside the workflow — each section has a one-liner setup guide 📋 Prerequisites Vapi or Retell AI account with an active phone number and assistant configured Anthropic API key (Claude API access) OpenAI API key (GPT-4o and GPT-4o Mini access) Google Gemini API key GoHighLevel account with at least one pipeline and automation workflow set up Supabase project with the voice_call_logs table created Google Sheets spreadsheet set up as your call log --- Custom Workflow Request with Personal Dashboard kumar@smartflowcraft.com https://www.smartflowcraft.com/contact More free templates https://www.smartflowcraft.com/n8n-templates