Route cancelled Recharge subscribers into Klaviyo win-back lists

When a Recharge subscription is cancelled, sort the customer into the right Klaviyo win-back audience and flag big spenders for a personal call.

Agentic Task
RechargeKlaviyoSlack BotMarketingData SyncNotifications & Alerts
PromptCreate

Trigger this workflow with a webhook from Recharge subscribed to the subscription/cancelled topic on API version 2021-11. Every time a subscriber cancels, the payload gives me the cancelled subscription, including the customer id, the product that was cancelled, and the cancellation reason. Recharge sends both a free text reason and a reason code, so read both.

Start by building a picture of who just churned. Use Recharge Get Customer with the customer id from the payload to get their email, their name, and the date they became a customer. Use Recharge List Subscriptions filtered to that customer to confirm which product was cancelled and whether they still have any other active subscriptions. Use Recharge List Orders filtered to that customer to count how many orders they have received and to sum their lifetime spend. Recharge returns money as decimal strings in the store currency, so convert before adding. From the customer creation date and the cancellation date, work out tenure in whole months.

Now pick the win-back audience from the cancellation reason. Reasons are loosely worded free text plus a reason code, so interpret the meaning rather than matching exact strings. Price objections such as "too expensive", "costs too much", or "cannot afford it right now" go to the discount win-back list. Volume and pacing complaints such as "too much product", "still have plenty left", or "shipments come too often" go to the lower frequency list, because the fix there is a longer interval and not a discount. Quality, fit, and experience complaints such as "did not like the taste", "it did not work for me", or delivery and service problems go to the feedback list, where a human should hear the detail before any offer goes out. If the reason is blank or genuinely unclear, use the general win-back list and say so in the summary rather than guessing.

Write what you learned onto the customer's Klaviyo profile with Klaviyo Create or Update Profile (Upsert), matching on their email. Set churn properties for the raw cancellation reason, the segment you chose, tenure in months, order count, lifetime value, the cancelled product name, and the cancellation date. Then place them on the chosen audience with Klaviyo Add Profiles to List.

Only segment and tag in Klaviyo. Do not send any email from this workflow. The merchant already owns their win-back flows in Klaviyo and those flows trigger off list membership, so this workflow is done once the profile is enriched and sitting on the right list.

Finally, post a short summary to the retention channel with the Slack Bot Send a Message operation. Include the customer name and email, the product they cancelled, the reason in their own words, tenure in months, order count, lifetime value, and which audience they landed on. If lifetime value is above the high value threshold, lead the message with a clear flag saying a human should reach out personally before the automated sequence runs, so the team has a chance to save the relationship with a real conversation. If the customer still has other active subscriptions, label it as a partial cancellation so nobody sends a win-back offer to a current subscriber.

Let me configure the Klaviyo list ids for the discount, lower frequency, feedback, and general win-back segments, the Slack channel to post retention summaries into, and the lifetime value threshold that counts as high value.

What does this prompt do?

  • Picks up every subscription cancellation the moment it happens and reads the reason the customer gave.
  • Builds a quick picture of that customer: how long they subscribed, how many orders they placed, how much they spent in total, and which product they dropped.
  • Sends them to the win-back audience that matches their reason, so price objections, too much product, and quality complaints each get their own follow-up instead of one blanket discount.
  • Posts a short summary to your retention channel and calls out high value cancellations so someone can reach out personally before the automated emails start.

What do I need to use this?

  • A Recharge store where you manage your subscriptions
  • A Klaviyo account with the win-back audiences already created, for example one for price, one for frequency, and one for feedback
  • A Slack workspace with a retention channel where the summaries should land
  • A rough idea of what counts as a high value customer for you, in total lifetime spend

How can I customize it?

  • Change which reason maps to which audience, or add more segments such as seasonal shoppers or customers who would rather pause than cancel
  • Set the lifetime spend threshold that marks a cancellation as high value and worth a personal call
  • Point the summary at a different Slack channel, or post only the high value cancellations if your volume makes the channel noisy

FAQs

Does this send the win-back emails itself?
No. It only sorts people into the right audience and adds the churn details to their profile. The emails stay in the Klaviyo flows you already own, so your team keeps full control of the messaging, the offer, and the timing.
What happens if the cancellation reason is vague or left blank?
Cancellation reasons are free text, so the agent reads them for meaning instead of matching exact words. Wordings like "too pricey" and "costs too much" land in the same place. If there is no usable reason at all, the customer goes to your general win-back audience and the summary says the reason was missing.
Will it work if the customer still has other active subscriptions?
Yes. It checks the rest of their subscriptions first, and if they are still an active subscriber it flags the cancellation as partial, so nobody sends a win-back offer to a current customer.
How does it decide that someone is high value?
From their real order history: how many orders they received and what they spent in total. Anything above the threshold you set gets flagged in Slack for a personal follow-up before the automated sequence runs.
Do I need to set up the lists in Klaviyo first?
Yes. Create the audiences you want to route people into, then tell the workflow which audience belongs to which reason. Three is a good start: one for price, one for frequency, and one for feedback.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Replay failed SQS messages when a bug fix is merged

When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.

Amazon SQS
GitHub
Slack Bot
Agentic Task

Stop sending every churned subscriber the same discount.

Route each cancellation to the audience that actually fits the reason, and catch your best customers before the automated sequence does.