by Fahmi Fahreza
TikTok Trend Analyzer with Apify + Gemini + Airtable Automatically scrape trending TikTok videos, analyze their virality using Gemini AI, and store insights directly into Airtable for creative research or content planning. Who’s it for? Marketing analysts, creators, and creative agencies looking to understand why videos go viral and how to replicate successful hooks and formats. How it works A scheduled trigger runs the Apify TikTok Trends Scraper weekly. The scraper collects trending video metadata. Data is stored in Airtable (views, likes, captions, sounds, etc.). When a specific video is submitted via webhook, the workflow fetches it from Airtable. Gemini AI analyzes the video and extracts structured insights: summary, visual hook, audio, and subtitle analysis. The workflow updates the Airtable record with these AI insights. How to set up Connect Apify and Airtable credentials, link Gemini or OpenAI keys, and adjust the schedule frequency. Add your Airtable base and table IDs. You can trigger analysis manually via the webhook endpoint.
by Ms. Phuong Nguyen (phuongntn)
An AI Recruiter that screens, scores, and ranks candidates in minutes — directly inside n8n. 🧠 Overview An AI-powered recruiter workflow that compares multiple candidate CVs with a single Job Description (JD). It analyzes text content, calculates fit scores, identifies strengths and weaknesses, and provides automated recommendations. ⚙️ How it works 🔹 Webhook Trigger – Upload one Job Description (JD) and multiple CVs (PDF or text) 🔹 File Detector – Auto-identifies JD vs CV 🔹 Extract & Merge – Reads text and builds candidate dataset 🔹 🤖 AI Recruiter Agent – Compares JD & CVs → returns Fit Score, Strengths, Weaknesses, and Recommendation 🔹 📤 Output Node – Sends structured JSON or summary table for HR dashboards or Chat UI Example: Upload JD.pdf + 3 candidate CVs → get instant JSON report with top match and recommendations. 🧩 Requirements OpenAI or compatible AI Agent connection (no hardcoded API keys). Input files in PDF or text format (English or Vietnamese supported). n8n Cloud or Self-Hosted v1.50+ with AI Agent nodes enabled. 🔸 “OpenAI API Key or n8n AI Agent credential required” 🧱 Customizing this workflow Swap the AI model with Gemini, Claude, or another LLM. Add a Google Sheets export node to save results. Connect to SAP HR or internal employee APIs. Adjust scoring logic or include additional attributes (experience, skills, etc.). 👩💼 Author https://www.linkedin.com/in/nguyen-phuong-17a71a147/ Empowering HR through intelligent, data-driven recruitment.
by David Olusola
🧹 Auto-Clean CSV Uploads Before Import This workflow automatically cleans, validates, and standardizes any CSV file you upload. Perfect for preparing customer lists, sales leads, product catalogs, or any messy datasets before pushing them into Google Sheets, Google Drive, or other systems. ⚙️ How It Works CSV Upload (Webhook) Upload your CSV via webhook (supports form-data, base64, or binary file upload). Handles files up to ~10MB comfortably. Extract & Parse Reads raw CSV content. Validates file structure and headers. Detects and normalizes column names (e.g. First Name → first_name). Clean & Standardize Data Removes duplicate rows (based on email or all fields). Deletes empty rows. Standardizes fields: Emails → lowercased, validated format. Phone numbers → normalized (xxx) xxx-xxxx or +1 format. Names → capitalized (John Smith). Text → trims spaces & fixes inconsistent spacing. Assigns each row a data quality score so you know how “clean” it is. Generate Cleaned CSV Produces a cleaned CSV file with the same headers. Saves to Google Drive (optional). Ready for immediate import into Sheets or any app. Google Sheets Integration (Optional) Clears out an existing sheet. Re-imports the cleaned rows. Perfect for always keeping your “master sheet” clean. Final Report Logs processing summary: Rows before & after cleaning. Duplicates removed. Low-quality rows removed. Average data quality score. Outputs a neat summary for auditing. 🛠️ Setup Steps Upload Method Use the webhook endpoint generated by the CSV Upload Webhook node. Send CSV via binary upload, base64 encoding, or JSON payload with csv_content. Google Drive (Optional) Connect your Drive OAuth credentials. Replace YOUR_DRIVE_FOLDER_ID with your target folder. Google Sheets (Optional) Connect Google Sheets OAuth. Replace YOUR_GOOGLE_SHEET_ID with your target sheet ID. Customize Cleaning Rules Adjust the Clean & Standardize Data code node if you want different cleaning thresholds (default = 30% minimum data quality). 📊 Example Cleaning Report Input file: raw_leads.csv Rows before: 2,450 Rows after cleaning: 1,982 Duplicates removed: 210 Low-quality rows removed: 258 Avg. data quality: 87% ✅ Clean CSV saved to Drive ✅ Clean data imported into Google Sheets ✅ Full processing report generated 🎯 Why Use This? Stop wasting time manually cleaning CSVs. Ensure high-quality, import-ready data every time. Works with any dataset: leads, contacts, e-commerce exports, logs, surveys. Completely free — a must-have utility in your automation toolbox. ⚡ Upload dirty CSV → Get clean, validated, standardized data instantly!
by Khairul Muhtadin
The Prompt converter workflow tackles the challenge of turning your natural language video ideas into perfectly formatted JSON prompts tailored for Veo 3 video generation. By leveraging Langchain AI nodes and Google Gemini, this workflow automates and refines your input to help you create high-quality videos faster and with more precision—think of it as your personal video prompt translator that speaks fluent cinematic! 💡 Why Use Prompt Converter? Save time: Automate converting complex video prompts into structured JSON, cutting manual formatting headaches and boosting productivity. Avoid guesswork: Eliminate unclear video prompt details by generating detailed, cinematic descriptions that align perfectly with Veo 3 specs. Improve output quality: Optimize every parameter for Veo 3's video generation model to get realistic and stunning results every time. Gain a creative edge: Turn vague ideas into vivid video concepts with AI-powered enhancement—your video project's secret weapon. ⚡ Perfect For Video creators: Content developers wanting quick, precise video prompt formatting without coding hassles. AI enthusiasts: Developers and hobbyists exploring Langchain and Google Gemini for media generation. Marketing teams: Professionals creating video ads or visuals who need consistent prompt structuring that saves time. 🔧 How It Works ⏱ Trigger: User submits a free text prompt via message or webhook. 📎 Process: The text goes through an AI model that understands and reworks it into detailed JSON parameters tailored for Veo 3. 🤖 Smart Logic: Langchain nodes parse and optimize the prompt with cinematic details, set reasonable defaults, and structure the data precisely. 💌 Output: The refined JSON prompt is sent to Google Gemini for video generation with optimized settings. 🔐 Quick Setup Import the JSON file to your n8n instances Add credentials: Azure OpenAI, Gemini API, OpenRouter API Customize: Adjust prompt templates or default parameters in the Prompt converter node Test: Run your workflow with sample text prompts to see videos come to life 🧩 You'll Need Active n8n instances Azure OpenAI API Gemini API Key OpenRouter API (alternative AI option) 🛠️ Level Up Ideas Add integration with video hosting platforms to auto-upload generated videos 🧠 Nodes Used Prompt Input** (Chat Trigger) OpenAI** (Azure OpenAI GPT model) Alternative** (OpenRouter API) Prompt converter** (Langchain chain LLM for JSON conversion) JSON parser** (structured output extraction) Generate a video** (Google Gemini video generation) Made by: Khaisa Studio Tags: video generation, AI, Langchain, automation, Google Gemini Category: Video Production Need custom work? Contact me
by Meak
Firecrawl Web Search Agent → Google Sheets Logger with OpenRouter + n8n Most teams craft search operators by hand and copy results into spreadsheets. This workflow automates query generation, multi-operator searches, scraping, and logging — from a single webhook call. Benefits Auto-generate Firecrawl queries from natural language (OpenRouter Agent) Use pro operators: site:, inurl:, intitle:, exclusions, related Run parallel searches (site match, in-URL, exclusions, YouTube/intitle) Append titles/URLs/results to Google Sheets automatically Return results to the caller via webhook response Optional scraping of markdown + full-page screenshots How It Works Webhook receives a natural-language search request OpenRouter-powered Agent converts it to a Firecrawl query (+ limit) Firecrawl Search runs with scrapeOptions (markdown, screenshot) Parallel queries: site:, inurl:, negative filters, YouTube intitle:automation Collect results (title, url, data fields) from each call Append rows to Google Sheets (one per result) Respond to the webhook with the aggregated payload Ready to chain into alerts, enrichment, or CRM sync Who Is This For Researchers and content teams building source lists Growth/SEO teams needing precise operator queries Agencies automating discovery, monitoring, and logging Setup Connect OpenRouter (select your LLM; e.g., GPT-4.1-mini) Add Firecrawl API key and endpoint (/v1/search) Connect Google Sheets (Document ID + Sheet/Tab) Set webhook path and allow POST from your app Define default limit (fallback = 5) and scrapeOptions ROI & Monetization Save 3–6 hours/week on manual searching & copy/paste Offer as a $500–$2k/month research automation for clients Upsell alerts (cron/webhook) and data enrichment for premium retainers Strategy Insights In the full walkthrough, I show how to: Prompt the Agent to produce flawless site:/inurl/intitle/-exclusions Map Firecrawl data fields cleanly into Sheets Handle rate limits, empty results, and retries Extend with dedupe, domain filtering, and Slack/Telegram alerts Check Out My Channel For more advanced AI automation systems that generate real business results, check out my YouTube channel where I share the exact strategies I use to build automation agencies, sell high-value services, and scale to $20k+ monthly revenue.
by Md Sagor Khan
⚡ How it works This workflow automates first responses to new Zendesk tickets with the help of AI and your internal knowledge base. Webhook trigger fires whenever a new ticket is created in Zendesk. Ticket details (subject, description, requester info) are extracted. Knowledge base retrieval – the workflow searches a Supabase vector store (with OpenAI embeddings) for the most relevant KB articles. AI assistant (RAG agent) drafts a professional reply using the retrieved KB and conversation memory stored in Postgres. Decision logic: If no relevant KB info is found (or if it’s a sensitive query like KYC, refunds, or account deletion), the workflow sends a fallback response and tags the ticket for human review. Otherwise, it posts the AI-generated reply and tags the ticket with ai_reply. Logging & context memory ensure future ticket updates are aware of past interactions. 🔧 Set up steps This workflow takes about 15–30 minutes to set up. Connect credentials for Zendesk, OpenAI, Supabase, and Postgres. Prepare your knowledge base: store support content in Supabase (documents table) and embed it using the provided Embeddings node. Set up Postgres memory table (zendesk_ticket_histories) to store conversation history. Update your Zendesk domain in the HTTP Request nodes (<YOUR_ZENDESK_DOMAIN>). Deploy the webhook URL in Zendesk triggers so new tickets flow into n8n. Test by creating a sample ticket and verifying: AI replies appear in Zendesk Correct tags (ai_reply or human_requested) are applied Logs are written to Postgres
by Jitesh Dugar
Who's it for This template is designed for anyone who wants to use WhatsApp as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolidates everything into one seamless AI-powered agent accessible right from your most-used messaging app. What it does Jarvis listens to your WhatsApp messages (text or audio) and processes them with OpenAI. Based on your request, it can: ✅ Manage tasks (create, complete, or delete) 📅 Handle calendar events (schedule, reschedule, or check availability) 📧 Send, draft, or fetch emails with Gmail 👥 Retrieve Google Contacts 💵 Log and track expenses 🎤 Process voice notes and respond intelligently All responses are returned directly to WhatsApp, giving you a unified command center that works on any device. How to set up Clone this template into your n8n workspace. Set up a WhatsApp Business API account (via Meta Business Suite or providers like Twilio, 360dialog, or MessageBird). Configure the WhatsApp webhook to connect to your n8n instance. Connect your Google accounts (Gmail, Calendar, Contacts, etc.). Add your OpenAI API key in the Credentials section. Test by sending a WhatsApp message like: "Create a meeting tomorrow at 3pm" "Add expense $50 for lunch" "Draft a reply to that email from Steve" "What's on my calendar this week?" Requirements n8n instance** (cloud or self-hosted with public webhook URL) WhatsApp Business API** credentials (not regular WhatsApp) Gmail, Google Calendar, and Google Contacts** credentials (optional based on features) OpenAI API key** ElevenLabs API Key** (optional, for advanced audio note processing) How to customize Swap email providers** by replacing the Gmail MCP node with Outlook, Exchange, or IMAP/SMTP. Add more integrations** like Notion, Slack, Todoist, or your CRM. Adjust AI personality** by modifying the system prompt in the OpenAI node. Control context memory** to determine how much conversation history Jarvis remembers. Add automation rules** like auto-categorizing expenses or auto-scheduling recurring meetings. Multi-language support** by configuring OpenAI to respond in different languages. Key advantages of WhatsApp version 🌍 Universal access - WhatsApp works everywhere, including international numbers 📱 Cross-platform - Seamlessly works on mobile, web, and desktop 🔒 End-to-end encryption for sensitive task and email data 👥 Familiar interface - No need to learn a new app ✅ Read receipts - Know when Jarvis has processed your request With this template, you can transform WhatsApp into your all-in-one AI productivity assistant, simplifying workflows and saving hours every week—all from the app you're already using daily.
by Robert Breen
This n8n workflow automates bulk AI video generation using Freepik's Image-to-Video API powered by Minimax Hailuo-02-768p. It reads video prompts from a Google Sheet, generates multiple variations of each video using Freepik's AI, handles asynchronous video processing with intelligent polling, and automatically uploads completed videos to Google Drive with organized file names. This is perfect for content creators, marketers, or video producers who need to generate multiple AI videos in bulk and store them systematically. Key Features: Bulk video generation from Google Sheets prompts Multiple variations per prompt (configurable duplicates) Asynchronous processing with smart status polling Automatic retry mechanism for processing delays Direct upload to Google Drive with organized naming Freepik Minimax Hailuo-02 AI-powered video generation (768p quality) Intelligent wait/retry system for video rendering Step-by-Step Implementation Guide Prerequisites Before setting up this workflow, you'll need: n8n instance (cloud or self-hosted) Freepik API account with Video Generation access Google account with access to Sheets and Drive Google Sheet with your video prompts Step 1: Set Up Freepik API Credentials Go to Freepik API Developer Portal Create an account or sign in Navigate to your API dashboard Generate an API key with Video Generation permissions Copy the API key and save it securely In n8n, go to Credentials → Add Credential → HTTP Header Auth Configure as follows: Name: "Header Auth account" Header Name: x-freepik-api-key Header Value: Your Freepik API key Step 2: Set Up Google Credentials Google Sheets Access: Go to Google Cloud Console Create a new project or select existing one Enable Google Sheets API Create OAuth2 credentials In n8n, go to Credentials → Add Credential → Google Sheets OAuth2 API Enter your OAuth2 credentials and authorize with spreadsheets.readonly scope Google Drive Access: In Google Cloud Console, enable Google Drive API In n8n, go to Credentials → Add Credential → Google Drive OAuth2 API Enter your OAuth2 credentials and authorize Step 3: Create Your Google Sheet Create a new Google Sheet: sheets.google.com Set up your sheet with these columns: Column A: Prompt (your video generation prompts) Column B: Name (identifier for file naming) Example data: | Prompt | Name | |-------------------------------------------------|---------------| | A butterfly landing on a flower in slow motion | butterfly-01 | | Ocean waves crashing on rocky coastline | ocean-waves | | Time-lapse of clouds moving across blue sky | clouds-timelapse | Copy the Sheet ID from the URL (the long string between /d/ and /edit) Step 4: Set Up Google Drive Folder Create a folder in Google Drive for your generated videos Copy the Folder ID from the URL when viewing the folder Note: The workflow is configured to use a folder called "n8n workflows" Step 5: Import and Configure the Workflow Copy the provided workflow JSON In n8n, click Import from File or Import from Clipboard Paste the workflow JSON Configure each node as detailed below: Node Configuration Details: Get prompt from google sheet (Google Sheets) Document ID**: Your Google Sheet ID (from Step 3) Sheet Name**: Sheet1 (or your sheet name) Operation**: Read Credentials**: Select your "Google Sheets account" Duplicate Rows2 (Code Node) Purpose**: Creates multiple variations of each prompt JavaScript Code**: const original = items[0].json; return [ { json: { ...original, run: 1 } }, { json: { ...original, run: 2 } }, ]; Customization**: Add more runs for additional variations Loop Over Items (Split in Batches) Processes items in batches to manage API rate limits Options**: Keep default settings Reset**: false Create Video (HTTP Request) Method**: POST URL**: https://api.freepik.com/v1/ai/image-to-video/minimax-hailuo-02-768p Authentication**: Generic → HTTP Header Auth Credentials**: Select your "Header Auth account" Send Body**: true Body Parameters**: Name: prompt Value: ={{ $json.Prompt }} Get Video URL (HTTP Request) Method**: GET URL**: https://api.freepik.com/v1/ai/image-to-video/minimax-hailuo-02-768p/{{ $json.data.task_id }} Authentication**: Generic → HTTP Header Auth Credentials**: Select your "Header Auth account" Timeout**: 120000 (2 minutes) Purpose**: Polls the API for video completion status Switch (Switch Node) Purpose**: Routes workflow based on video generation status Conditions**: Completed: {{ $json.data.status }} equals COMPLETED Failed: {{ $json.data.status }} equals FAILED Created: {{ $json.data.status }} equals CREATED In Progress: {{ $json.data.status }} equals IN_PROGRESS Wait (Wait Node) Amount**: 30 seconds Purpose**: Waits before re-checking video status Webhook ID**: Auto-generated for resume functionality Download Video as Base64 (HTTP Request) Method**: GET URL**: ={{ $json.data.generated[0] }} Purpose**: Downloads completed video file Upload to Google Drive1 (Google Drive) Operation**: Upload Name**: =video - {{ $('Get prompt from google sheet').item.json.Name }} - {{ $('Duplicate Rows2').item.json.run }} Drive ID**: My Drive Folder ID**: Your Google Drive folder ID (from Step 4) Credentials**: Select your "Google Drive account" Step 6: Customize for Your Use Case Modify Duplicate Count: Edit the "Duplicate Rows2" code to create more variations Update File Naming: Change the naming pattern in the Google Drive upload node Adjust Wait Time: Modify the Wait node duration based on typical processing times Add Video Parameters: Enhance the Create Video request with additional Freepik parameters Step 7: Test the Workflow Ensure your Google Sheet has test data Click Execute Workflow on the manual trigger (if present) Monitor the execution flow - note that video generation takes time Watch the Switch node handle different status responses Verify videos are uploaded to Google Drive when completed Step 8: Production Deployment Set up error handling for API failures and timeouts Configure appropriate batch sizes based on your Freepik API limits Add logging for successful uploads and failed generations Consider webhook triggers for automated execution Set up monitoring for stuck or failed video generations Freepik Video API Details Video Generation Process: Submit Request: Send prompt to generate video Get Task ID: Receive task_id for tracking Poll Status: Check generation status periodically Download: Retrieve completed video URL Status Types: CREATED: Video generation task created IN_PROGRESS: Video is being generated COMPLETED: Video ready for download FAILED: Generation failed Model Specifications: Model**: minimax-hailuo-02-768p Resolution**: 768p Duration**: Typically 5-10 seconds Format**: MP4 Example Enhanced Parameters: { "prompt": "{{ $json.Prompt }}", "duration": 5, "aspect_ratio": "16:9", "fps": 24 } Workflow Flow Summary Start → Read prompts from Google Sheets Duplicate → Create multiple runs for variations Loop → Process items in batches Generate → Submit video generation request to Freepik Poll → Check video generation status Switch → Route based on status: Completed → Download video Processing/Created → Wait and retry Failed → Handle error Download → Retrieve completed video file Upload → Save to Google Drive with organized naming Continue → Process next batch Troubleshooting Tips Common Issues: Long Processing Times**: Video generation can take 2-5 minutes per video Timeout Errors**: Increase timeout in "Get Video URL" node Rate Limits**: Reduce batch size and add longer waits between requests Failed Generations**: Check prompt complexity and API limits Upload Failures**: Verify Google Drive folder permissions Error Handling: Add Try/Catch nodes around API calls Implement exponential backoff for retries Log failed generations to Google Sheets Set up email notifications for critical failures Performance Optimization: Adjust wait times based on typical generation duration Use smaller batch sizes for more reliable processing Monitor API usage and costs in Freepik dashboard Cost Considerations Freepik API: Video generation typically costs more than image generation Check your plan's video generation limits Monitor usage through Freepik dashboard Consider upgrading for higher volume needs Processing Time: Each video can take 2-5 minutes to generate Plan workflow execution time accordingly Consider running during off-peak hours for large batches Contact Information Robert A Ynteractive For support, customization, or questions about this workflow: 📧 Email: rbreen@ynteractive.com 🌐 Website: https://ynteractive.com/ 💼 LinkedIn: https://www.linkedin.com/in/robert-breen-29429625/ Need help implementing this workflow or want custom automation solutions? Get in touch for professional n8n consulting and workflow development services.
by Juan de Dios Estrella Sáez
✨ About this Template This n8n template automates the process of writing SEO guest post content using OpenAI, based on rules and topics provided in a Google Sheet. The generated articles are saved into a separate sheet for outreach or publishing. Use cases include: SEO guest post generation Content marketing automation for agencies Outreach planning and editorial automation 💡 Good to Know OpenAI API usage costs apply based on the selected model (e.g., GPT-4). This automation uses Google Sheets and OpenAI; credentials are required to connect your accounts. Status filtering ensures only content marked as “Start” is processed — making it safe to use in multi-user workflows. ⚙️ How It Works Trigger the workflow manually (can be changed to schedule/cron or webhook). Reads from a Google Sheet with guest post planning data. Merges the writing prompt, brand guidelines, and posting rules. Sends the merged data to OpenAI (via the AI Agent node) to generate a guest post in German. Saves the result into another Google Sheet. Updates the original row's status from “Start” to “Finished” to prevent duplicates. ▶️ How to Use You must connect your Google Sheets and OpenAI accounts. Customize the AI prompt, tone, or language by editing the input structure. You can modify the filter to run only on certain months or categories. The Gmail node is optional and only used to notify when no action was taken. 🧰 Requirements OpenAI account (API key for GPT-4 or GPT-3.5) Google account with access to the configured Sheets Basic knowledge of how n8n expressions work (optional) 🛠️ Customising This Workflow This guest post writer workflow can easily be adapted to other use cases: Write social media content from a spreadsheet Generate product descriptions from catalog data Automatically translate or rewrite articles in different tones/languages Create personalized outreach emails using AI 🎁 The workflow includes built-in explanations (sticky notes) to guide you through each part of the process.
by AppUnits AI
Generate Invoices and Send Reminders for Customers with Jotform, QuickBooks and Gmail This workflow automates the entire process of receiving a product/service order, checking or creating a customer in QuickBooks Online (QBO), generating an invoice, emailing it — all triggered by a form submission (via Jotform), and sending invoice reminders. How It Works Receive Submission Triggered when a user submits a form. Collects data like customer details, selected product/service, etc. Check If Customer Exists Searches QBO to determine if the customer already exists. If Customer Exists:* *Update** customer details (e.g., billing address). If Customer Doesn’t Exist:* *Create** a new customer in QBO. Get The Item Retrieves the selected product or service from QBO. Create The Invoice Generates a new invoice for the customer using the item selected. Send The Invoice Automatically sends the invoice via email to the customer. Store The Invoice In DB Stores the needed invoice details in the DB. Send Reminders Every day at 8 AM, the automation checks each invoice to decide whether to: send a reminder email, skip and send it later, or delete the invoice from the DB (if it's paid or all reminders have been sent). Who Can Benefit from This Workflow? Freelancers** Service Providers** Consultants & Coaches** Small Businesses** E-commerce or Custom Product Sellers** Requirements Jotform webhook setup, more info here QuickBooks Online credentials, more info here Email setup, update email nodes (Send reminder email & Send reminders sent summary), more info about Gmail setup here Create data table with the following columns: invoiceId (string) remainingAmount (number) currency (string) remindersSent (number) lastSentAt (date time) Update Add reminders config node so update the data table id and intervals in days (default is after 2 days, then after 3 days and finally after 5 days ) LLM model credentials
by PollupAI
Who it’s for Built for Customer Success and Account Management teams focused on proactive retention. This workflow helps you automatically identify at-risk customers – before they churn – by combining CRM, usage, and sentiment data into one actionable alert. What it does This end-to-end workflow continuously monitors customer health by consolidating data from HubSpot and Google Sheets. Here’s how it works: Fetch deals from HubSpot. Collect context — linked support tickets and feature usage from a Google Sheet. Run sentiment analysis on the tickets to generate a customer health score. Evaluate risk — an AI agent reviews deal age, sentiment score, and usage trends against predefined thresholds. Send alerts — if churn risk is detected, it automatically sends a clear, data-driven email to the responsible team member with next-step recommendations. How to set it up To get started, configure your credentials and parameters in the following nodes: Credentials: HubSpot: Connect your account (HubSpot: Get All Deals). LLM Model: Add credentials for your preferred provider (Config: Set LLM for Agent & Chains). Google Sheets: Connect your account (Tool: Get Feature Usage from Sheets). Email: Set up your SMTP credentials (Email: Send Churn Alert). Tool URLs: In Tool: Calculate Sentiment Score, enter the Webhook URL from the Trigger: Receive Tickets for Scoring node within this same workflow. In Tool: Get HubSpot Data, enter the Endpoint URL for your MCP HubSpot data workflow. (Note: This tool *does call an external workflow)*. Google Sheet: In Tool: Get Feature Usage from Sheets, enter the Document ID for your own Google Sheet. Email Details: In Email: Send Churn Alert, change the From and To email addresses. Requirements HubSpot account with Deals API access LLM provider account (e.g. OpenAI) Google Sheets tracking customer feature usage n8n with LangChain community nodes enabled A separate n8n workflow set up to act as an MCP endpoint for fetching HubSpot data (called by Tool: Get HubSpot Data). How to customize it Tailor this workflow to match your business logic: Scoring logic:** Adjust the JavaScript in the Code: Convert Sentiment to Score node to redefine how customer scores are calculated. Alert thresholds:** Update the prompt in the AI Chain: Analyze for Churn Risk node to fine-tune when alerts trigger (e.g. deal age, score cutoff, or usage drop). Data sources:** Swap HubSpot or Google Sheets for your CRM or database of choice — like Salesforce or Airtable. ✅ Outcome: A proactive customer health monitoring system that surfaces risks before it’s too late — keeping your team focused on prevention, not firefighting.
by CentralStationCRM
Overview This template benefits anyone who wants to: automate web research on a prospect company compile that research into an easily readable note and save the note into CentralStationCRM Tools in this workflow CentralStationCRM, the easy and intuitive CRM Software for small teams. Here is our API Documentation if you want to customize the workflow. ChatGPT, the well-known ai chatbot Tavily, a web search service for large language models Disclaimer Tavily Web Search is (as of yet) a community node. You have to activate the use of community nodes inside your n8n account to use this workflow. Workflow Screenshot Workflow Description The workflow consists of: a webhook trigger an ai agent node an http request node The Webhook Trigger The Webhook is set up in CentralStationCRM to trigger when a new company is created inside the CRM. The Webhook Trigger Node in n8n then fetches the company data from the CRM. The AI Agent Node The node uses ChatGPT as ai chat model and two Tavily Web Search operations ('search for information' and 'extract URLs') as tools. Additionally, it uses a simple prompt as tool, telling the ai model to re-iterate on the research data if applicable. The AI Agent Node takes the Company Name and prompts ChatGPT to "do a deep research" on this company on the web. "The research shall help sales people get a good overview about the company and allow to identify potential opportunities." The AI Agent then formats the results into markdown format and passes them to the next node. The CentralStationCRM protocol node This is an HTTP Request to the CentralStationCRM API. It creates a 'protocol' (the API's name for notes in the CRM) with the markdown data it received from the previous node. This protocol is saved in CentralStationCRM, where it can easily be accessed as a note when clicking on the new company entry. Customization ideas Even though this workflow is pretty simple, it poses interesting possibilities for customization. For example, you can alter the Webhook trigger (in CentralstationCRM and n8n) to fire when a person is created. You have to alter the AI prompt as well and make sure the third node adds the research note to the person, not a company, via the CentralStationCRM API. You could also swap the AI model used here for another one, comparing the resulting research data and get a deeper understanding of ai chat models. Then of course there is the prompt itself. You can definitely double down on the information you are most interested in and refine your prompt to make the ai bot focus on these areas of search. Start experimenting a bit! Preconditions For this workflow to work, you need a CentralStationCRM account with API Access an n8n account with API Access an Open AI account with API Access Have fun with our workflow!