🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

HubSpot + Google Sheets: churn risk alerts by email

Lisa Granqvist Partner Workflow Automation Expert

Churn usually doesn’t surprise you. It sneaks up in the gaps between tools: one “angry” support ticket in one place, a usage drop in another, and a deal that’s been stuck forever in HubSpot.

Customer Success Managers feel this when renewals suddenly get tense. Account Managers get pulled into “save the account” calls with zero context. And founders running lean? They just want churn risk alerts that show up in email, on time, with a clear next step.

This workflow ties HubSpot + Google Sheets into a simple churn signal system. You’ll see how it pulls deal context, scores ticket sentiment, checks usage trends, and emails a clean, data-driven alert when risk crosses your threshold.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: HubSpot + Google Sheets: churn risk alerts by email

The Challenge: Spotting churn risk before it’s obvious

Most churn prevention fails for a boring reason: the signals are scattered. HubSpot knows the commercial story (deal age, owner, stage). Your product usage spreadsheet knows what the customer is actually doing. Support tickets capture the mood, but reading them one-by-one takes forever, and you never read all of them anyway. So you end up reacting late, with half the picture, while someone asks “How did we not see this coming?” Honestly, you probably did see it. You just didn’t have it in one place, at the right moment.

It adds up fast. Here’s where it breaks down in real teams.

  • Support ticket sentiment lives in threads and inboxes, so “they sound unhappy” never turns into a tracked signal.
  • Usage drops get noticed late because someone has to open a sheet, filter it, and remember what “normal” looks like.
  • Deal context exists in HubSpot, but connecting it to product reality usually means manual detective work.
  • Even when someone flags risk, the handoff is messy and the next step is unclear, so outreach slips another day.

The Fix: Automated churn risk scoring with email alerts

This automation continuously monitors customer health by combining what your CRM knows with what your customers are doing and saying. It starts by pulling deals from HubSpot, then enriches each deal with two extra layers of truth: support-ticket sentiment and feature usage trends stored in Google Sheets. An AI sentiment step reviews ticket text and converts it into a consistent score, so “this feels bad” becomes a number you can compare week to week. Next, an AI agent evaluates the full picture (deal age, sentiment score, and usage direction) against thresholds you define. If it detects churn risk, it generates a clear email alert with context and next-step recommendations, then sends it to the right owner automatically.

The workflow kicks off with a churn scan and iterates through HubSpot deals in batches. It pulls in usage signals from Google Sheets and ticket sentiment via a webhook-based scoring tool. Finally, an AI review composes an email that’s actually usable, then your SMTP email node sends it out without you touching anything.

What Changes: Before vs. After

Real-World Impact

Say you manage 40 active deals. A basic churn check often means 3 manual steps per deal (HubSpot review, usage lookup in Sheets, skim recent tickets), and even at maybe 5 minutes per step, that’s about 10 hours of weekly “health checks.” With this workflow, you trigger a scan, let it process in the background, and only handle the handful of accounts that generate churn risk alerts by email. For many teams, that turns a long weekly ritual into a short daily inbox habit.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • HubSpot to fetch deals and ownership context.
  • Google Sheets to pull feature usage signals.
  • LLM provider API key (get it from your provider dashboard, such as OpenAI).

Skill level: Intermediate. You’ll mostly connect accounts and paste URLs/IDs, plus minor prompt or scoring tweaks if you want custom logic.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A churn scan kicks things off. You manually launch the workflow when you want a check (daily, weekly, or right before renewals). n8n immediately pulls your current deals from HubSpot and starts iterating through them in manageable batches.

Tickets get scored for sentiment. A webhook receives ticket payloads for scoring, the workflow transforms the text, then an AI sentiment step reviews each ticket and returns a structured result. That result is converted into a single score so you can compare accounts consistently.

Usage signals are pulled from Google Sheets. For each deal/account, the workflow looks up usage (and then groups it) so the later risk review sees a trend, not a raw spreadsheet row.

An AI agent makes the churn call, then the email goes out. The agent collects HubSpot context via a tool call, combines it with sentiment and usage, then an AI chain decides if the account is at risk. If it is, the workflow formats a clean HTML email and sends it through your SMTP settings to the owner or team.

You can easily modify the risk thresholds and email content to match your renewal motion. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger and Webhook Trigger

Set up the workflow entry points for manual scans and incoming ticket payloads.

  1. Add Manual Launch: Churn Scan as the manual trigger node for ad-hoc runs.
  2. Add Incoming Tickets Webhook and set Path to 9696956a-460a-4c45-aa3c-e5f83ce95e54.
  3. Set HTTP Method to POST and Response Mode to responseNode in Incoming Tickets Webhook.
  4. Connect Incoming Tickets WebhookTransform Tickets Payload.
  5. Connect Manual Launch: Churn ScanRetrieve HubSpot Deals.

Ensure your webhook payload includes body.tickets as a JSON string, since Transform Tickets Payload parses it with JSON.parse($input.first().json.body.tickets).

Step 2: Connect HubSpot and Deal Iteration

Pull deal data from HubSpot and iterate each deal for downstream AI enrichment.

  1. Configure Retrieve HubSpot Deals with Resource set to deal, Operation set to getAll, and Authentication set to oAuth2.
  2. Credential Required: Connect your HubSpot OAuth2 credentials in Retrieve HubSpot Deals (none are configured in the workflow).
  3. Connect Retrieve HubSpot DealsBatch Iterate Deals to handle deal-by-deal processing.
  4. In Map Current Deal ID, add an assignment for dealId with value {{ $json.dealId }}.
  5. Connect Batch Iterate DealsMap Current Deal IDAI Agent: Collect Client Data.

⚠️ Common Pitfall: If HubSpot credentials are missing or expired, Retrieve HubSpot Deals will return no data and the entire churn scan will stop at the first node.

Step 3: Set Up the Ticket Sentiment Scoring Pipeline

This branch converts incoming ticket payloads into sentiment scores and returns a total score via webhook response.

  1. In Transform Tickets Payload, keep the provided JavaScript to build the tickets_text array from the webhook payload.
  2. Configure Split Tickets List with Field To Split Out set to tickets_text.
  3. Set AI Sentiment Review with Input Text set to {{ $json.tickets_text }}.
  4. Set Merge Sentiment Streams to Number Inputs 3 (the node merges three outputs from AI Sentiment Review).
  5. Keep the JavaScript in Compute Sentiment Score to map sentiment categories to numeric scores.
  6. Keep the JavaScript in Aggregate Ticket Scores to sum scores into totalScore.
  7. Connect Aggregate Ticket ScoresReturn Score Response to reply to Incoming Tickets Webhook.

AI Sentiment Review is linked to LLM Config: Agent & Chains as its language model. Make sure the model node is connected before testing.

Step 4: Set Up AI Agent & Churn Risk Review

Configure the AI agent to gather deal, contact, ticket, and feature-usage data, then generate churn-risk alert content.

  1. In LLM Config: Agent & Chains, set the model to gpt-5-mini.
  2. Credential Required: Connect your OpenAI credentials in LLM Config: Agent & Chains (missing in the workflow).
  3. In AI Agent: Collect Client Data, keep the prompt text that references {{ $json.dealId }} and the tools Tool: Fetch HubSpot Data, Tool: Sentiment Scoring, and Tool: Pull Feature Usage.
  4. Ensure Parse Agent Findings is connected as the output parser for AI Agent: Collect Client Data.
  5. Configure Tool: Pull Feature Usage with Sheet Name set to gid=0 and add the correct Document ID.
  6. Keep the JavaScript in Group Feature Usage to aggregate features and output res as JSON.
  7. In AI Chain: Churn Risk Review, keep the prompt with expressions {{ $('AI Agent: Collect Client Data').item.json.output.hs_is_closed_timestamp }}, {{ $('AI Agent: Collect Client Data').item.json.output.score }}, and {{ $json.res }}.
  8. Ensure Parse Alert Email is connected as the output parser for AI Chain: Churn Risk Review.

Credential Required: Add credentials for AI tools via the parent node AI Agent: Collect Client Data (do not add them to Tool: Fetch HubSpot Data, Tool: Sentiment Scoring, or Tool: Pull Feature Usage directly).

Step 5: Configure the Output Email Delivery

Convert the AI-generated alert into HTML and send it to your Customer Success team.

  1. In Format Alert to HTML, set Mode to markdownToHtml, Markdown to {{ $json.output.message }}, and Destination Key to message.
  2. Configure Send Churn Email with HTML set to {{ $json.message }} and Subject set to {{ $json.output.subject }}.
  3. Credential Required: Connect your SMTP credentials in Send Churn Email.
  4. Confirm the loopback flow: Format Alert to HTMLSend Churn EmailBatch Iterate Deals to continue scanning the next deal.

Step 6: Test and Activate Your Workflow

Validate both the manual scan and webhook-based ticket scoring before going live.

  1. Click Execute Workflow on Manual Launch: Churn Scan to test the deal scan path.
  2. Send a POST request to the Incoming Tickets Webhook URL with a body.tickets JSON string to test sentiment scoring.
  3. Confirm a successful run: Return Score Response should return a totalScore, and Send Churn Email should dispatch a formatted alert when thresholds are triggered.
  4. When results look correct, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • HubSpot credentials can expire or need specific permissions. If things break, check your HubSpot private app scopes and reconnect the “Retrieve HubSpot Deals” node first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this churn risk alerts automation?

Usually about an hour once your accounts and keys are ready.

Can non-technical teams implement this churn risk alerts setup?

Yes, but someone should be comfortable pasting IDs/URLs and testing a few runs. No coding is required unless you want custom scoring logic.

Is n8n free to use for this churn risk alerts workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in LLM API costs (often a few cents per batch of accounts, depending on volume).

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this churn risk alerts solution to my specific challenges?

You can change the scoring in “Compute Sentiment Score” and “Aggregate Ticket Scores” to match how your team defines “bad signals.” Most teams also edit the prompt in “AI Chain: Churn Risk Review” to weight deal age vs. usage drop differently, then adjust the email structure in “Parse Alert Email” so it matches your internal playbook. If your usage data isn’t in Google Sheets, swap “Tool: Pull Feature Usage” for Airtable, a database, or a product analytics API. The core pattern stays the same: enrich → score → decide → alert.

Why is my HubSpot connection failing in this workflow?

Most of the time it’s expired credentials or missing scopes on the HubSpot private app. Reconnect HubSpot in n8n, then confirm the Deals API permissions are allowed for the account you’re using. Also check if the external MCP endpoint used by “Tool: Fetch HubSpot Data” is reachable, because that tool call can fail even when the basic HubSpot node works.

What’s the capacity of this churn risk alerts solution?

It depends on your n8n plan and your AI usage, but most small teams can scan dozens of deals per run comfortably.

Is this churn risk alerts automation better than using Zapier or Make?

Often, yes, because this kind of workflow needs branching logic, batching, and AI steps that get clunky (and expensive) in simpler tools. n8n also lets you self-host for unlimited executions, which matters if you run frequent scans. Zapier or Make can still be fine for a lightweight “if usage drops, send email” rule. But once you want sentiment scoring, deal context, and a structured alert email, you’ll appreciate the flexibility here. If you’re torn, Talk to an automation expert and we’ll sanity-check your use case.

Churn doesn’t become “urgent” overnight. This workflow helps you catch it earlier, with clear churn risk alerts that land in email with enough context to act.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal