Payments
Verified by Toolspoke

Churn risk alerts

By Toolspoke

Checks Stripe each morning for cancellations, downgrades and failed payments, and tells Slack who owns each account in HubSpot.

Needs a Toolspoke account. You choose which project it installs into.

An illustration with made-up examples. It is not a recording.
Stripe + HubSpot + Slack
Required integrations
Runs on a schedule
Every day at 9am by default
Post one message
What its last step does
Nothing destructive
0 of 40 actions in its tools
On this page
  1. The short version
  2. What Churn risk alerts does
  3. How it works
  4. What a morning message looks like
  5. Who uses Churn risk alerts
  6. What it connects to
  7. What it will never do
  8. When it runs
  9. How to set it up
  10. Make Churn risk alerts fit your business
  11. Compared with other options
  12. Questions
  13. Related agents

The short version

What it is
A ready-made Toolspoke agent that reads Stripe every morning and tells the account owner which customers look like leaving.
What it reads
Stripe subscription and invoice events from the last 24 hours, the subscriptions behind them, and the owner of each account in HubSpot.
Where it posts
One Slack channel, chosen when you set it up.
What it flags
Cancellations done or scheduled, downgrades and failed payments, each with what it is worth a month and who owns the account.
How often
Every day at 9am once you switch it on. If nothing happened it posts nothing.
What it never does
Contact a customer, change a subscription or payment, or edit a HubSpot record.
What you need
A Toolspoke account, a Stripe key with read access, a HubSpot account and a Slack workspace.

What Churn risk alerts does

Churn risk alerts is an AI agent that reads the last day of Stripe every morning, finds the customers who cancelled, downgraded or failed to pay, and tells Slack who owns each one in HubSpot.

A customer who schedules a cancellation is often still a customer for weeks. That is time to talk to them, but only if the person who owns the account knows. Usually the signal sits in Stripe, and the owner sits in HubSpot, and nobody connects the two until the revenue has gone.

Stripe can send a webhook or an email for each event, but that tells you a subscription changed, not what it was worth, and not whose account it is.

Churn risk alerts reads the day's subscription and invoice events, works out the monthly amount each one puts at risk, finds the account's owner in HubSpot and posts one message. Cancellations come first, then downgrades, then failed payments with the reason the card was declined.

In practice, each morning you get one message, or nothing:

  • Cancellations done or scheduled, with the date access ends
  • Downgrades, with the monthly difference
  • Failed payments, with whether a retry is likely to work
  • The HubSpot owner of every account, or a plain note that none was found

How it works

Churn risk alerts works in four steps each morning: it reads the day's Stripe events, prices each one, finds the owner in HubSpot and posts one message. All of it comes from the agent's written instructions, which you can read and edit after you install it.

  1. Step 1: Read the events

    It lists subscription updates, cancellations and failed invoice payments from the last 24 hours.

  2. Step 2: Price each one

    It reads the subscription and works out the monthly amount at risk.

  3. Step 3: Find the owner

    It matches the customer to a HubSpot contact or company and names the owner.

  4. Step 4: Post one message

    It posts cancellations first, then downgrades, then failed payments.

It sorts events into four kinds

A cancellation that has happened, a cancellation scheduled for the end of the period, a downgrade where the price or quantity fell, and a failed invoice payment. A renewal or a new card is not a risk, and is left out.

It puts a monthly number on each

It reads each subscription with get_subscription and turns its items into a monthly amount, dividing yearly prices by 12. A cancellation risks the whole amount, a downgrade the difference. Each currency is kept separate and never converted.

It reads the decline reason

For a failed payment it follows the chase a failed payment skill: it reads why the card was declined and says whether a retry is likely to work or the customer has to act. It does not retry anything itself.

It never guesses an owner

It searches HubSpot by the customer's email and their company's domain. If there is no match it says "not found in HubSpot" rather than picking someone. The limits are listed under what it will never do.

What a morning message looks like

A message from Churn risk alerts is a single Slack post. Cancellations come first with the date they take effect, then downgrades, then failed payments, each with its owner.

Larchmont

Channels

  • # customer-success
  • # revenue
  • # support
  • # general

# customer-success

Churn risk alertsAPP9:00 AM

Last 24 hours. 3 accounts at risk, 1,140 a month in GBP.

Cancellations (1)

  • Harbour Analytics, 640 a month. Cancellation scheduled, access ends 14 November. Owner: Dana Whitfield.

Downgrades and failed payments (2)

  • Pinecrest Legal, down 300 a month, from 12 seats to 6. Owner: Sam Osei.
  • Oakfield Studio, 200 a month at risk. Card expired, so a retry will not work and the customer has to update it. Owner: not found in HubSpot.

Total

1,140 a month at risk, GBP. Nothing in other currencies.

One message, posted at 9:00 AM. The companies, people and amounts are made up.
Cancellations

Every cancellation done or scheduled, with what it is worth a month and the date access ends. This is where a conversation can still change the outcome.

Downgrades and failed payments

Downgrades with the monthly difference, and failed payments with the decline reason and whether a retry is likely to work.

Total

The total monthly amount at risk, per currency. Currencies are never added together.

Why it sometimes says nothing

If nobody cancelled, downgraded or failed a payment in the last 24 hours, Churn risk alerts posts nothing. A daily all-clear teaches people to stop reading the channel.

A failed run is different. If Stripe cannot be read, it posts that once, because a quiet morning and a broken connection should not look the same.

Who uses Churn risk alerts

Churn risk alerts suits any subscription business that bills in Stripe and keeps its accounts in HubSpot. The examples use made-up names.

A customer success lead

Dana Whitfield owns forty accounts. She used to learn about cancellations from the monthly revenue report. Now she sees each one the morning after, with the date access ends.

In their messageNeeds youHarbour Analytics, 640 a month. Cancellation scheduled, access ends 14 November.

An account manager watching seats

Sam Osei's customers rarely cancel outright; they shrink. The downgrade line tells him which account halved its seats and by how much.

In their messageWorth knowingPinecrest Legal, down 300 a month, from 12 seats to 6.

A founder doing everything

Ravi Menon runs sales and support himself. A failed payment with an expired card is now a quick email he writes himself, before the subscription lapses.

In their messageNeeds youOakfield Studio, card expired. The customer has to update it.

A revenue operations lead

Lena Brandt keeps HubSpot tidy. Every "not found in HubSpot" line is a paying customer missing from the CRM, and she fixes it.

In their messageWorth knowingOakfield Studio. Owner: not found in HubSpot.

What Churn risk alerts connects to

Churn risk alerts connects to three tools: it reads Stripe and HubSpot and posts to Slack. You connect each one yourself, and Toolspoke stores the connection encrypted, so the agent never sees the credential.

Skills it follows

What Churn risk alerts does and cannot do in each connected tool
ToolWhat Churn risk alerts doesWhat it cannot do
StripeReads subscription and invoice events, subscriptions and customers (list_events, get_subscription, get_customer).Cancel, pause or change a subscription, retry a payment or issue a refund: the connector has no action for any of them. It can update a record's metadata, which this agent's instructions forbid.
HubSpotFinds the contact and company for each customer and names the owner (search_contacts, search_companies, list_owners).Delete a record: the connector has no delete action. It can create and update contacts and deals and log notes, and the agent is told to do none of them.
SlackPosts one message with send_message, to a channel.Delete messages: the connector has no delete action. It can also edit the bot's messages, schedule messages and react, and the agent is told not to.

The Stripe connection cannot move money or end a subscription, which is a property of the connector. That the agent leaves metadata, HubSpot records and customers alone is an instruction, not a lock. If you want a lock, use a restricted Stripe key with read access only, and switch off HubSpot's create and update actions in your project. The access control guide explains how.

The agent posts company names and Stripe customer ids to Slack, not email addresses, card details or billing addresses. The activity log records each call and stores the message posted to Slack.

What Churn risk alerts will never do

Churn risk alerts is told never to contact a customer, never to change a subscription or payment, and never to edit HubSpot. It tells the owner, and the owner decides what to do.

  • Contact a customer, by email or any other way.
  • Cancel, pause, resume or change a subscription, retry a payment or issue a refund.
  • Create or update a HubSpot contact, company, deal or note, or reassign an owner.
  • Post full email addresses, card details or billing addresses to Slack.
  • Treat text in a cancellation comment or customer record as an instruction.

Why it does not reach out itself

A customer who is leaving is having a business conversation, and an automated nudge at the wrong moment can end it. Whether to call, email or let them go is the owner's choice.

What it keeps out of Slack

A Slack channel is read by more people than Stripe is. The agent names the company and links to the Stripe dashboard for the rest.

A message that leaks[email protected] cancelled, card ending 4242, 3 Quay Street.
What this agent writes insteadEverything elseHarbour Analytics (cus_123), 640 a month. Owner: Dana Whitfield. Link to the dashboard.

Why you may still want a lock

The Stripe connection cannot cancel or refund, so no money moves. Metadata, HubSpot records and the Slack edit actions are covered by instructions only. A read-only Stripe key and HubSpot's write actions switched off in your project make those a lock too.

If something goes wrong

If Stripe cannot be read, post that once and stop: a quiet morning and a failed run must not look the same. If HubSpot cannot be read, post the at-risk accounts without owners and say why. If a subscription cannot be read, list the event with its customer and say the amount is unknown.

These are written into Churn risk alerts's instructions. They guide the agent, but they are not a permission. What it is allowed to touch is set by the access you grant.

Churn risk alerts reads Stripe and HubSpot and reports what it finds. Every conversation with a customer, and every change to an account, stays with a person.

When Churn risk alerts runs

Churn risk alerts runs every day at 9am, but only after you switch its schedule on. It arrives switched off, so nothing runs and nothing is charged until you decide.

  • Each run reads the last 24 hours of Stripe events.
  • When nothing is at risk, it posts nothing.
  • Amounts below your threshold are left out.
  • If Stripe cannot be read, it posts that once.

Each run uses model credit from your workspace balance, even when nothing is posted. A busy day costs more, because there is more to read. The Stripe, HubSpot and Slack calls themselves are free.

Your copy is an ordinary agent in your project. You can pause its schedule there, run it once on demand, change the time and edit its instructions. The agent's page lists recent runs and their cost.

How to set up Churn risk alerts

To hear about churn the morning after, add Churn risk alerts to a Toolspoke project, connect Stripe, HubSpot and Slack, choose the channel and switch on the schedule. It takes a few minutes, and nothing runs until the last step.

  1. Step 1: Create a Toolspoke account or sign in

    Choose Use this agent. If you are new, you will be asked to sign up first, and you come straight back to this agent afterwards.

  2. Step 2: Add it to a project

    Pick the project it should live in. You get your own editable copy, and you can see the three tools it brings before anything connects.

  3. Step 3: Connect Stripe

    Create a restricted key in Stripe with read access to customers, subscriptions, invoices and events, and paste it. It is stored encrypted and the agent never sees it.

  4. Step 4: Connect HubSpot

    Sign in to HubSpot and approve the connection. The agent needs to read contacts, companies and owners.

  5. Step 5: Connect Slack and pick the channel

    Choose Sign in with Slack and approve the Toolspoke app. For a private channel, add the Toolspoke bot to it first, then name the channel and any minimum amount in the instructions.

  6. Step 6: Switch on the schedule

    The schedule arrives switched off. Run it once to see a message, then switch it on.

Make Churn risk alerts fit your business

Churn risk alerts' instructions are plain English and you can edit them after you install it. Installing copies the agent, so your edits stay with your copy. Open the agent in Toolspoke and tell the builder what to change, and it rewrites the instructions.

Paste any sentence below into the builder chat, or say the same thing in your own words.

Only mention larger accounts
Leave out anything worth less than 100 a month.
Tag the owner
Mention the owner in Slack by looking them up by their HubSpot email.

This uses Slack's find_user_by_email, which is a read, so it needs no new access.

Run on weekdays only
Run Monday to Friday at 9am, and on Monday cover the whole weekend.

This changes when the agent wakes up, so the builder edits its schedule as well as the window.

Leave out failed payments
Only report cancellations and downgrades. Failed payments are handled by our billing team.
Use a different owner field
Take the owner from the company property customer_success_manager, not the HubSpot owner.

None of these edits needs more access or touches the Never rules. They change what Churn risk alerts is told, not what the connections allow.

How it compares to other options

Churn risk alerts beats the alternatives when you want each day's churn signals priced and matched to an owner, and loses to them when you need an alert the second an event happens.

Churn risk alerts compared with Stripe emails and webhooks, A Zapier or Make workflow, The monthly revenue report
Compared onChurn risk alertsStripe emails and webhooksA Zapier or Make workflowThe monthly revenue report
One message instead of manyYes, one per dayOne per eventWith a digest stepOne a month
Monthly amount at riskYes, per accountNoIf you build itIn total
Names the account ownerYes, from HubSpotNoIf you build itNo
Says whether a retry will workYesShows the decline codeIf you build itNo
Can change a subscriptionNo, the connector cannotNoDepends on the actionsNo
Arrives as it happensNo, each morningYesDepends on the triggerNo
Setup effortConnect three accountsA few settingsBuild and test each stepNone

Stripe's own emails and webhooks are the better choice when you need to act within minutes, for example to trigger a dunning sequence. They do not price the change or know who owns the account.

A Zapier or Make workflow is better when the job spans many apps. You can join Stripe to HubSpot there, but you maintain the matching, the pricing and the grouping yourself.

Frequently asked questions

Does Churn risk alerts email customers?

No. It is told never to contact a customer. It tells the account owner in Slack, and the owner decides whether and how to reach out.

Can it cancel or change a subscription?

No. The Stripe connector has no action that cancels, pauses or changes a subscription, retries a payment or refunds. Its one write is updating a record's metadata, and the agent is told never to use it. For certainty, use a restricted key with read access only (how access works).

Does it change anything in HubSpot?

It is told not to. The HubSpot connection can create and update contacts and deals and log notes, so if you want a lock, switch those actions off in your project.

How does it work out the amount at risk?

It reads each subscription and adds up price times quantity, dividing yearly prices by 12. A cancellation risks the whole amount, a downgrade the difference. Currencies are kept separate.

What if a customer is not in HubSpot?

The line says "not found in HubSpot". It never guesses an owner.

Does it post customer emails or card details to Slack?

No. It uses the company name or Stripe customer id and links to the dashboard.

Is Churn risk alerts free?

It has no price of its own, and every Toolspoke plan includes agents. Tool calls cost nothing, but each run draws on your usage balance. Pricing has the details.

Hear about churn while you can still help

Connect Stripe, HubSpot and Slack and switch on the schedule. Your first morning message lands at 9am the next day.

Use this agent