by Avkash Kakdiya
How it works This workflow captures new subscribers from a Mailchimp list and extracts their key details. It then enriches the subscriber data using AI, predicting professional attributes and assigning a lead score. Based on the score, high-value leads are identified, and all leads are synced into HubSpot and Pipedrive. For top-priority leads, the workflow automatically creates new deals in Pipedrive for sales follow-up. Step-by-step Step-by-step 1. Capture subscriber data Mailchimp Subscriber Trigger** – Detects new signups in a Mailchimp list. Extract Subscriber Data** – Normalizes payload into clean fields like name, email, and timestamp. 2. Enrich with AI Lead Enrichment AI** – Uses AI to infer company, role, industry, intent, LinkedIn, and lead score. Parse & Merge Enrichment** – Merges AI output with subscriber info and sets defaults if parsing fails. 3. Qualify leads High-Value Lead Check** – Filters leads with a score ≥70 to flag them as priority. Create High-Value Deal** – Opens a new deal in Pipedrive for high-value leads. 4. Sync to CRMs HubSpot Contact Sync** – Updates enriched lead data in HubSpot CRM. Pipedrive Person Create** – Adds lead as a person in Pipedrive. Why use this? Automatically enrich raw Mailchimp subscribers with valuable professional insights. Score and qualify leads instantly for prioritization. Keep HubSpot and Pipedrive updated with enriched lead records. Automate deal creation for high-value opportunities, saving sales team effort. Build a seamless pipeline from marketing signups to CRM-ready opportunities.
by n8n Team
This workflow turns a light red when an update is made to a GitHub repository. By default, updates include pull requests, issues, pushes just to name a few. Prerequisites GitHub credentials. Home Assistant credentials. How it works Triggers off on the On any update in repository node. Uses Home Assistant to turn on a light and then configure the light to turn red.
by Rahi
🛠️ Workflow: Jotform → HubSpot Company + Task Automation Automatically create or update HubSpot companies and generate follow-up tasks whenever a Jotform is submitted. All logs are stored to Google Sheets for traceability, transparency, and debugging. ✅ Use Cases Capture marketing queries from your website’s Jotform form and immediately create tasks for your sales or SDR team. Enrich HubSpot companies with submitted domains, company names, and contact data. Automatically assign tasks to owners and keep all form submissions logged and auditable. Avoid manual handoffs — full automation from form submission → CRM. 🔍 How It Works (Step-by-Step) 1. Jotform Trigger The workflow starts when a new submission is received via the Jotform webhook. Captured fields include: name, email, LinkedIn profile, company name, marketing budget, domain, and any specific query. 2. Create or Update Company in HubSpot + Format Data The “Create Company” node ensures the submitted company is either created in HubSpot or updated if it already exists. A Formatter (Function) node standardizes the data — names, email, LinkedIn URL, domain, marketing budget, and query text. It composes a task title, generates a follow-up timestamp, and dynamically assigns an owner. 3. Loop & HTTP Request – Create HubSpot Task The workflow loops through each formatted item. A Wait node prevents rate limit issues. It then sends an HTTP POST request to HubSpot’s Tasks API, creating a task with: Subject and body including the submission details Task status, priority, and type Assigned owner and associated company 4. Loop & HTTP Request – Set Company Domain After tasks are created, another loop updates each HubSpot company record with the submitted domain. This ensures all HubSpot companies have proper website data for future enrichment. 5. Storing Logs (Google Sheets) All processed submissions, responses, errors, and metadata are appended or updated in a Google Sheets document. This provides a complete audit trail — ideal for debugging, reporting, and performance monitoring. 🧩 Node Structure Overview | Step | Node | Description | |------|------|--------------| | 1️⃣ | Jotform Trigger | Receives form submission data | | 2️⃣ | HubSpot Create Company | Ensures company record exists | | 3️⃣ | Formatter / Function Node | Cleans & structures data, assigns owner, generates task fields | | 4️⃣ | Wait / Delay Node | Controls API call frequency | | 5️⃣ | HTTP Request (Create Task) | Pushes task to HubSpot | | 6️⃣ | HTTP Request (Update Domain) | Updates company domain in HubSpot | | 7️⃣ | Google Sheets Node | Logs inputs, outputs, and status | 📋 Requirements & Setup 🔑 HubSpot Private App Token with permissions to create companies, tasks, and update records 🌐 Jotform Webhook URL pointing to this workflow 📗 Google Sheets Credentials (OAuth or service account) with write access ✅ HubSpot app must have crm.objects.companies.write and crm.objects.tasks.write scopes ⚠️ Add retry or error-handling branches for failed API calls ⚙️ Customization Tips & Variations Add contact association:** Modify the payload to also link the task with a HubSpot Contact (via email) so it appears in both company and contact timelines. Use fallback values:** In the Formatter node, provide defaults like “Unknown Company” or “No query provided.” Dynamic owner assignment:** Replace hash-based assignment with round-robin or territory logic. Conditional task creation:** Add logic to only create tasks when certain conditions are met (e.g., budget > 0). Error branches:** Capture failed HTTP responses and send Slack/Email alerts. Extended logs:** Add response codes, errors, and retry counts to your Google Sheet for more transparency. 🎯 Benefits & Why You’d Use This ⚡ Speed & Automation — eliminate manual data entry into HubSpot 📊 Data Consistency — submissions are clean, enriched, and traceable 👀 Transparency — every action logged for full visibility 🌍 Scalability — handle hundreds of submissions effortlessly 🔄 Flexibility — adaptable for other use cases (support tickets, surveys, partnerships, etc.) ✨ Example Use Case A marketing form on your website captures partnership or franchise inquiries. This workflow instantly creates a HubSpot company, logs the inquiry as a task, assigns it to a regional manager, and saves a record in Google Sheets — all within seconds. Tags: HubSpot Jotform CRM GoogleSheets Automation LeadManagement
by Abdul Matheen
Automated Invoice-Processing AI Agent for n8n Overview The Automated Invoice-Processing AI Agent in n8n is designed to streamline and optimize invoice management for finance teams and accounts payable (AP) professionals. This solution addresses the common challenge of verifying invoice data manually, cross-checking it against purchase orders (POs), and ensuring compliance before releasing payments. By intelligently fetching invoices from Google Drive, extracting key details, validating them against PO records from Google Sheets, and automating the next actions, this system reduces human intervention, minimizes errors, and accelerates the payment process. Target Audience This automation primarily serves finance and AP teams responsible for managing large volumes of vendor invoices. It also supports finance managers, procurement departments, and auditors who require accuracy in payment reconciliation, ensuring that invoices align with approved POs before processing. Business Problem Addressed Organizations frequently struggle with time-consuming manual invoice verification and data entry. Discrepancies between invoices and purchase orders can lead to payment delays, compliance risks, or duplicate payments. This n8n-based AI agent automates that process—ensuring that every invoice is validated, exceptions are flagged to the finance team promptly, and payments of smaller value (under defined thresholds) are processed automatically. Prerequisites Active n8n account or self-hosted instance Google Drive and Google Sheets connected via n8n credentials LLM (AI node) configured for document extraction (optional but recommended) A Google Sheet set up with existing PO data (including PO Number, Amount, and Date fields) Setup Instructions Connect Google Drive and Google Sheets integrations within n8n. Configure the workflow trigger to monitor a designated "Invoices" folder. Add a document-parsing node to extract invoice details such as PO Number, Invoice Date, and Amount. Implement conditional logic: If the invoice amount > 5000, the agent cross-references PO details from the Google Sheet. If it matches, it updates the PO sheet status to “Process Payment.” If not, an automated email notifies the finance team. If the amount ≤ 5000, the workflow marks it for direct payment. Test the workflow with sample invoices before full deployment. Customization Options Adjust the payment threshold value (e.g., 10,000 instead of 5,000). Customize the email notification template and recipient list. Integrate with accounting systems such as QuickBooks or SAP for end-to-end automation. Add audit logging nodes to create traceability for every action taken. This AI-driven automation brings speed, accuracy, and scalability to invoice verification—empowering finance professionals to focus on analytical and strategic tasks rather than repetitive manual work.
by Bao Duy Nguyen
Who is this for? If you hate SPAM emails or don't want to clean them up frequently. What problem is this workflow solving? It automatically deletes SPAM emails for you, so you don't have to. Save a bit of your time. What this workflow does You can specify when to execute the workflow: daily, weekly, or monthly. Setup Select the preferred execution time Configure credentials for Gmail OAuth2 How to customize this workflow to your needs There's no need. It just works!
by Olivier
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This template generates structured synthetic company content using live web data from the Bedrijfsdata.nl API combined with an LLM. Provide a company domain (directly or via a Bedrijfsdata.nl ID) and the workflow retrieves relevant website and search engine content, then produces ready-to-use descriptions of the company, its offerings, and its target audience. ✨ Features Create high-quality Dutch-language company descriptions on demand Automatically pull live web content via Bedrijfsdata.nl RAG Domain & RAG Search Structured JSON output for consistent downstream use (e.g., CRM updates, lead qualification) Flexible trigger: run from ProspectPro ID, domain input, or another workflow Secure, modular, and extendable structure (error handling included) 🏢 Example Output The workflow produces structured content fields you can directly use in your sales, marketing, or enrichment flows: company_description** – 1-2 paragraph summary of the company products_and_services** – detailed overview of offerings target_audience** – specific characteristics of ideal customers (e.g., industry, location, company size, software usage) Example: { "company_description": "Bedrijfsdata.nl B.V. is een Nederlands bedrijf dat uitgebreide data levert over meer dan 3,7 miljoen bedrijven in Nederland...", "products_and_services": "Het bedrijf biedt API-toegang tot bedrijfsprofielen, sectoranalyses, en SEO-gegevens...", "target_audience": "Nederlandse MKB's die behoefte hebben aan actuele bedrijfsinformatie voor marketing- of salesdoeleinden..." } ⚙ Requirements n8n instance or cloud workspace Install the Bedrijfsdata.nl n8n Verified Community Node OpenAI API credentials (tested with gpt-4.1-mini and gpt-3.5-turbo) Bedrijfsdata.nl developer account (14-day free trial, 500 credits) 🔧 Setup Instructions 1. Trigger configuration Use Bedrijfsdata.nl ID (default) or provide a domain directly Can be called from another workflow using “Execute Workflow” 2. Configure API credentials Bedrijfsdata.nl API key OpenAI API key 3. Customize Output (Optional) Adjust prompt in the LLM node to create other types of synthetic content Extend structured output schema for your use case 4. Integrate with Your Stack Example node included to update HubSpot descriptions Replace or extend to match your CRM, database, or messaging tools 🔐 Security Notes Input validation for required domain Dedicated error branches for invalid input, API errors, LLM errors, and downstream integration errors RAG content checks before running the LLM 🧪 Testing Run workflow with a Bedrijfsdata.nl ID linked to a company with a known website Review generated JSON output Verify content accuracy before production use 📌 About Bedrijfsdata.nl Bedrijfsdata.nl operates the most comprehensive company database in the Netherlands. With real-time data on 3.7M+ businesses and AI-ready APIs, we help Dutch SMEs enrich their CRM, workflows, and marketing automation. Built on 25+ years of experience in data collection and enrichment, our technology brings corporate-grade data quality to every organisation. Website: https://www.bedrijfsdata.nl Developers: https://developers.bedrijfsdata.nl API docs: https://docs.bedrijfsdata.nl 📞 Support Email: klantenservice@bedrijfsdata.nl Phone: +31 20 789 50 50 Support hours: Monday–Friday, 09:00–17:00 CET
by Rahi
Workflow: Track Email Campaign Engagement Analytics with Smartlead and Google Sheets Automatically fetch lead-level email engagement analytics (opens, clicks, replies, unsubscribes, bounces) from Smartlead and update them in Google Sheets. Use this to keep a single, always-fresh source of truth for campaign performance and sequence effectiveness. Summary Pull Smartlead campaign analytics on a schedule and write them to a Google Sheet (append or update). Works with pagination, avoids duplicates via a stable key, and is ready for dashboards, pivots, or BI tools. What This Workflow Does Collects campaign stats from Smartlead (per-lead, per-sequence). Handles pagination safely (offset/limit). Writes to Google Sheets using appendOrUpdate with a matching column to prevent duplicates. Can run on a schedule for near real-time analytics. Node Structure Overview | Step | Node | Purpose | |---|---|---| | 1️⃣ | Schedule Trigger | Starts the workflow on a cadence (e.g., hourly) | | 2️⃣ | Code (Pagination Generator) | Emits {offset, limit} pairs (e.g., 0..9900, step 100) | | 3️⃣ | Split in Batches | Sends each pagination pair to the API sequentially | | 4️⃣ | HTTP Request (Smartlead) | GET /campaigns/{campaign_id}/statistics with offset/limit | | 5️⃣ | Split Out | Turns the API data[] array into one item per lead record | | 6️⃣ | Google Sheets (appendOrUpdate) | Upserts rows by stats_id into EngagedLeads tab | | 7️⃣ | Loop Back | Continues until all batches have been processed | Step-by-Step Setup Prerequisites Smartlead account + API key with access to campaign statistics. Google account + Google Sheets OAuth connected in n8n. Create the Google Sheet Spreadsheet name: Email Analytics (can be anything). Tab name: EngagedLeads. Add these exact headers (first row): lead_name, lead_email, lead_category, sequence_number, stats_id, email_subject, sent_time, open_time, click_time, reply_time, open_count, click_count, is_unsubscribed, is_bounced Configure the Schedule Trigger Choose a frequency (e.g., every 2 hours). If you’re testing, set a single run or a short cadence. Configure the Code Node (Pagination) Emit N items like: { "offset": 0, "limit": 100 } { "offset": 100, "limit": 100 } ... 100 is a good default limit. For up to 10,000 records, generate 100 offsets. Configure the Smartlead API Node Method: GET URL: https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/statistics Query parameters: api_key = <YOUR_SMARTLEAD_API_KEY> offset = {{ $json.offset }} limit = {{ $json.limit }} Map response to JSON. Split Out the Response Use a Split Out (or similar) to iterate over data[] so each lead record is one item. Google Sheets Node (Append or Update) Operation: appendOrUpdate. Document: Your Email Analytics sheet. Sheet/Tab: EngagedLeads. Matching Column: stats_id. Map fields from Smartlead response to sheet columns: lead_name ← lead name (or composed from first/last if provided) lead_email ← email lead_category ← category/type if available sequence_number ← sequence step number stats_id ← stable identifier (e.g., Smartlead stats_id or message id) email_subject ← subject sent_time, open_time, click_time, reply_time ← timestamps open_count, click_count ← integers is_unsubscribed, is_bounced ← booleans If the same stats_id arrives again, the row is updated, not appended. Test and Activate Run once manually to verify API and sheet mapping. Check the sheet for new/updated rows. Activate the workflow to run automatically. Smartlead API Reference (Used by This Workflow) Endpoint** GET https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/statistics Required query parameters** api_key (string) offset (number) limit (number) Typical response (trimmed example)** { "data": [ { "lead_name": "Jane Doe", "lead_email": "jane@example.com", "sequence_number": 2, "stats_id": "15b6ff3a-...-b2b9f343c2e1", "email_subject": "Quick intro", "sent_time": "2025-10-08T10:18:55.496Z", "open_time": "2025-10-08T10:20:10.000Z", "click_time": null, "reply_time": null, "open_count": 1, "click_count": 0, "is_unsubscribed": false, "is_bounced": false } ], "total": 1234 } Google Sheets Structure (Recommended) Spreadsheet: Email Analytics Tab: EngagedLeads Columns:lead_name, lead_email, lead_category, sequence_number, stats_id, email_subject, sent_time, open_time, click_time, reply_time, open_count, click_count, is_unsubscribed, is_bounced Matching Column: stats_id (prevents duplicates and allows updates) Customization Tips Multiple Campaigns** Duplicate the workflow and set a different {campaign_id} and/or write results to a separate tab in your Google Sheet. Batch Size** Increase or decrease the limit value (e.g., 200) in your Code node if you want fewer or more API calls. Filtering** Add a Code or IF node to skip rows where is_bounced = true or is_unsubscribed = true. Dashboards** Create a new tab named Dashboard in Google Sheets and visualize your data using built-in charts or connect it to Looker Studio for advanced visualization. Enrichment** Join this dataset with your CRM data (e.g., HubSpot or Salesforce) using lead_email as a key to gain deeper customer insights. Security and Publishing Notes Do not hardcode** your Smartlead API key in the workflow export. Use n8n credentials or environment variables instead. When sharing the template publicly, replace sensitive values with placeholders like: <YOUR_SMARTLEAD_API_KEY> and <YOUR_GOOGLE_SHEET_ID>. Keep your Google Sheet private unless you intentionally want to share it publicly. Troubleshooting No rows in Sheets** Verify that the API response includes data[], confirm that the Split Out node is configured correctly, and check field mappings. Duplicates** Ensure the Google Sheets node has its matching column set to stats_id. Rate Limits** Increase the schedule interval, add a short Wait node between batches, or reduce the limit size. Mapping Errors** Ensure that column names in Sheets exactly match your field mappings — they are case-sensitive. Timezone Differences** Smartlead timestamps are in UTC. Convert them downstream if your local timezone is different. Example Use Case Run this workflow hourly to maintain a live, company-wide Email Engagement Sheet. Sales teams** can monitor replies and active leads. Marketing teams** can track open and click rates by sequence. Operations** can export monthly summaries — no Smartlead login required. Tags Smartlead EmailMarketing Automation GoogleSheets Analytics CRM MarketingOps
by Elay Guez
Enrich Monday.com leads with AI-powered company research and personalized email drafts using Explorium MCP and GPT-4.1 AI-Powered Lead Enrichment & Email Writer for Monday.com 🚀 Overview Stop losing deals to slow response times! Transform your inbound leads into qualified opportunities with this intelligent workflow that automates lead enrichment and personalized outreach. When a new lead drops into your Monday.com board, magic happens: 🔍 Deep-dives into company data using Explorium MCP's advanced intelligence engine 🧠 Analyzes business priorities, pain points, and growth opportunities 💡 Identifies specific AI automation use cases tailored to each company ✉️ Crafts hyper-personalized email drafts with GPT-4.1 (under 120 words!) 📊 Enriches your CRM with actionable insights and AI solution recommendations 📧 Saves draft emails directly to Gmail for your review 🔄 Updates Monday.com automatically with all the juicy insights Perfect for sales teams, growth marketers, and BizDev pros who want to turn every lead into a conversation starter that actually converts! 👥 Who's it for? B2B sales teams drowning in inbound leads Growth teams needing lightning-fast lead qualification BizDev professionals seeking that personal touch at scale Companies rocking Monday.com as their CRM ⚡ How it works Webhook triggers when fresh lead hits Monday.com Company Researcher agent unleashes Explorium MCP for company intel Email Writer agent crafts personalized outreach that doesn't sound like a robot CRM Enrichment agent adds golden nuggets of AI recommendations Gmail integration parks the draft in your inbox Monday.com updates with all the enriched goodness 🛠️ Setup Instructions Time to magic: 20 minutes You'll need: OpenAI API Key (for GPT-4.1) Explorium MCP API Key Monday.com API Token Gmail OAuth credentials Monday.com webhook setup Step-by-step: Import this template into your n8n instance Hook up Monday.com webhook via "Respond to Webhook" node Deactivate that "Respond to Webhook" node (important!) Plug in your API credentials Customize agent prompts with YOUR company's secret sauce Match your Monday.com columns to the workflow Test drive with a dummy lead Hit activate and watch the magic! ✨ 📋 Requirements Monday.com board with these columns: Company Name, Contact Name, Email, Comments Explorium MCP access (for that company intelligence gold) OpenAI API (GPT-4.1 model ready) Gmail account (where drafts go to shine) 🎨 Make it yours Tweak email tone - formal, casual, or somewhere in between Adjust research depth in Company Researcher Add your unique value props to agent prompts Connect more data sources for extra enrichment Hook up other CRMs (HubSpot, Salesforce, Pipedrive) Add Slack alerts for hot leads 🔥 💪 Why this rocks Real talk: Manual lead research is SO 2023. While your competitors are still googling companies, you're already in their inbox with an email that mentions their latest funding round, understands their tech stack, and offers solutions to problems they didn't even know you could solve. This isn't just another "Hi {{first_name}}" template. It's AI that actually gets context, writes like a human, and makes your prospects think "How did they know exactly what we need?" Results you can expect: Faster lead response time Higher email open rates Actually useful CRM data (not just "interested in our product") Your sales team thanking you (seriously) Built with ❤️ by: Elay Guez Pro tip: The more context you feed the AI agents about your business, the scarier-good the personalization gets. Don't hold back on those System Message customizations!
by Karol
Who’s it for This template is designed for small and medium businesses, startups, and agencies that want to automate customer inquiries, provide instant support, and capture leads without losing valuable conversations. It’s especially useful for teams that get many repetitive questions about products, services, or locations but don’t want to miss out on collecting contact details for follow-up. What it does / How it works The workflow creates a 24/7 AI-powered chatbot that answers company-related questions and collects customer information. It uses: • GPT-4o for natural conversations • Pinecone Vector Store for Retrieval-Augmented Generation (RAG) with your company knowledge base • Google Sheets to store structured lead data • Telegram to instantly notify your team When a customer asks about products, services, or hours, the AI answers using the Pinecone database. Afterwards, it politely asks for their name, email, phone number, and interest. The details are saved to Google Sheets and your team receives a Telegram message with a summary. How to set up Connect your OpenAI account. Create a Pinecone index with company FAQs, documents, or policies. Link your Google Sheet with columns: Name, Email, Phone, Interested in. Add your Telegram bot token and chat/group ID. Replace [INSERT_YOUR_COMPANY_NAME_HERE] in the system prompt with your company name. Requirements • OpenAI API key • Pinecone account • Google Sheets access • Telegram bot & chat ID How to customize • Change the system prompt to match your brand’s tone. • Update the Pinecone namespace and embeddings model if needed. • Add extra fields in Google Sheets (e.g., “Budget” or “Preferred product”). • Extend the flow with CRM integrations or automated email follow-ups. With this setup, you get a smart, RAG-powered chatbot that not only answers questions but also turns every conversation into a potential lead.
by Rahul Joshi
Description Automate B2B order invoicing by fetching orders from Airtable, validating paid B2B entries, creating Stripe customers and invoices, finalizing invoices, and logging structured invoice data into Google Sheets. This workflow ensures seamless B2B billing, centralized record-keeping, and reduces manual errors in financial operations. ⚡💳📊 What This Template Does Triggers hourly to check for new B2B orders. ⏱️ Fetches order data from Airtable (Orders table). 📥 Filters only paid orders with “B2B” tag. ✅ Creates a corresponding Stripe customer from order details. 👤 Processes order line items for invoicing. 📦 Creates a Stripe invoice with due date and payment terms. 🧾 Finalizes the invoice automatically. ✔️ Formats invoice details (totals, due dates, customer info, links). 🔄 Logs structured invoice data into Google Sheets for tracking. 📊 Key Benefits Fully automates B2B invoicing workflow from orders to finalized invoices. 🔄 Ensures all invoices are linked, structured, and logged in Sheets. 🧾 Reduces manual effort and eliminates data entry errors. ⚡ Maintains centralized invoice tracking for finance teams. 📂 Creates a consistent billing flow integrated with Stripe. 💳 Features Hourly Trigger – Continuously monitors Airtable for new/updated orders. Airtable Integration – Fetches order details automatically. Conditional Filter – Processes only “B2B” paid orders. Stripe Customer Creation – Automatically creates customers in Stripe. Line Item Processor – Handles Shopify/Order line items or test data. Stripe Invoice Creation – Generates draft invoices with due dates. Invoice Finalization – Auto-finalizes and prepares invoices for payment. Data Formatter – Structures invoice info (totals, links, dates, status). Google Sheets Integration – Logs all invoice data for reporting. Requirements n8n instance (cloud or self-hosted). Airtable Personal Access Token with read access to Orders table. Stripe API credentials with customer + invoice permissions. Google Sheets OAuth2 credentials with read/write access. Target Audience Finance/ops teams handling B2B customer invoicing. 💼 SaaS or eCommerce businesses with B2B order flows. 🛍️ Startups needing automated billing + centralized reporting. 🚀 Teams tracking Stripe invoices inside Google Sheets. 📊 Step-by-Step Setup Instructions Connect Airtable credentials and replace with your base/table IDs. 🔑 Configure Stripe API credentials for invoice + customer creation. 💳 Link Google Sheets credentials and update the target sheet ID. 📊 Adjust order filtering conditions (tags, payment status) as needed. ⚙️ Test with sample data to validate invoices are created + logged. ✅
by Grace Gbadamosi
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. How it works This workflow automatically synchronizes contact data from multiple CRM systems (HubSpot, Pipedrive, and Salesforce) into a unified Google Sheets database. The system runs on a daily schedule or can be triggered manually via webhook. It uses AI-powered data processing to intelligently deduplicate records, calculate data quality scores, and merge similar contacts. The workflow generates comprehensive quality reports and sends notifications via Slack, ensuring your master database stays clean and up-to-date. Who is this for This template is designed for revenue operations teams, data managers, and business analysts who need to consolidate customer data from multiple CRM platforms. It's particularly valuable for organizations using multiple sales tools simultaneously or during CRM migration projects. The workflow helps maintain data integrity while providing insights into data quality across different systems. Requirements Google Sheets Account**: For storing master database and quality reports CRM Platform Access**: API credentials for HubSpot, Pipedrive, and/or Salesforce OpenAI API Key**: For AI-powered data processing and deduplication MCP Server**: Github:marlonluo2018/pandas-mcp-server (optional - can be replaced with Code node) Slack Webhook**: For receiving sync completion and error notifications How to set up Configure Environment Variables - Set up secure credential storage for all API keys: HUBSPOT_API_KEY, PIPEDRIVE_API_KEY, SALESFORCE_ACCESS_TOKEN, OPENAI_API_KEY, and SLACK_WEBHOOK_URL Create Google Sheets Structure - Create a master Google Sheet with two tabs: "Master_CRM_Data" for the unified contact database and "Quality_Reports" for tracking sync statistics and data quality metrics Set Up MCP Server - Install and configure "marlonluo2018/pandas-mcp-server" Update Configuration Center - Modify all placeholder values in the Configuration Center node with your actual Google Sheet IDs, quality thresholds, deduplication keys, and batch processing settings
by Servify
Who is this for Sales teams and agencies using Retell AI for voice outreach who want to automatically analyze every call and push insights into their CRM. Ideal for businesses running AI voice agents that need structured post-call intelligence without manual review. How it works When a Retell AI voice call ends, the platform sends a call_analyzed webhook to this workflow. It parses the transcript, call duration, and metadata, then sends everything to OpenAI for analysis. The AI returns structured data: sentiment, lead score (1-10), key topics, buying signals, objections, action items, and a recommended next step. The enriched data is synced to HubSpot, updating the contact record. If the lead score meets your threshold, the workflow alerts your sales team on Slack and creates a priority follow-up task in HubSpot. Every call is logged to Google Sheets for tracking. How to set up Open the Set user config variables node and enter your Slack channel, lead score threshold (default: 7), Google Sheet ID, and sheet name. Connect your OpenAI, HubSpot, Slack, and Google Sheets credentials in each respective node. Copy the production webhook URL from the trigger node and add it to your Retell AI dashboard under Webhook Settings for the call_analyzed event. Create a Google Sheet with columns: Date, Call ID, From Number, Duration, Sentiment, Lead Score, Summary, Action Items, Qualified. Activate the workflow and make a test call to verify the full pipeline. Requirements Retell AI account with an active voice agent OpenAI API key (GPT-4o-mini or GPT-4o) HubSpot CRM account Slack workspace with a bot token Google Sheets How to customize Adjust the lead score threshold in the config node to control when hot lead alerts fire. Modify the AI analysis prompt to extract industry-specific fields (e.g., appointment booked, insurance type, budget range). Add a Twilio SMS branch for instant text follow-ups to hot leads. Connect additional CRM nodes if you use Pipedrive, Salesforce, or another platform instead of HubSpot.