Win back Systeme.io customers after a cancel or refund

When a Systeme.io sale is cancelled or refunded, draft a personalized win-back email, open a follow-up task for your rep, and ping the team in Slack.

Agentic Task
Systeme.ioGmailHubSpotSlackSalesCustomer SupportEmail AutomationNotifications & Alerts

Build an agent workflow that runs a save-the-customer playbook every time a Systeme.io sale is cancelled (either a refund or a cancelled subscription).

Trigger: the Systeme.io outgoing webhook for the 'Sale cancelled' event. The payload identifies the contact and the sale that was cancelled.

When the webhook fires, the agent should:

1. Call systemeio Get Contact for the buyer to pull their full profile, tags, and custom fields.

2. Call systemeio List Enrollments filtered to that contact to see which courses they had access to, plus systemeio List Subscriptions for that contact to pull their full subscription history (start dates, plans, prior cancellations).

3. From those signals (tag patterns, courses owned, length of subscription, prior cancellations, whether they were on a trial or annual plan, recency of activity), classify the most likely reason for churn. Common buckets: price, fit, completed the program, never engaged, support issue, switched tools. Pick the one best supported by the data and note your reasoning.

4. Draft a personalized win-back email in my Gmail using gmail Create a Draft. The email should:

- Be addressed to the cancelled customer by first name.

- Reference the specific course, program, or plan they were in (use the data, do not invent).

- Acknowledge what likely went wrong based on the churn classification (tactfully, without putting words in their mouth).

- Offer one clear next step appropriate to the reason (a short call, a discount, a different plan, a refund follow-up, etc.).

- Stay tactful, human, and specific. No generic 'we miss you' copy. Keep it under 150 words.

Important: leave it as a draft. Do NOT send it. I want to review and send manually.

5. Create a follow-up task in HubSpot using hubspot Create Task, assigned to the contact's owning rep (or to me if no owner is set). The task subject should be 'Save-the-customer follow-up: <customer name>'. The task body should include a one-paragraph history (what they bought, how long they stayed, which tags they had, the churn classification) and a recommended next step. Set the due date to 2 business days out and priority to high.

6. Post a brief heads-up in Slack using slack Send a Message in the channel I pick during setup (default: #customer-saves). One or two lines: customer name, what they cancelled, the churn classification, and a link to the HubSpot task. Keep it short, this is just an FYI.

Tone for everything: tactful, specific, never accusatory. The goal is a real shot at winning the customer back, not a form letter.

Additional information

What does this prompt do?
  • Fires the moment a Systeme.io sale is cancelled or refunded, so no churn slips through unnoticed.
  • Looks up the customer's tags, course enrollments, and subscription history to figure out the most likely reason they left.
  • Drafts a tactful, personalized win-back email in your Gmail (left as a draft, never auto-sent) so you can review and send it yourself.
  • Creates a follow-up task in HubSpot for the right rep with a short customer summary and a recommended next step.
  • Posts a quick heads-up in Slack so the team knows a save is in motion.
What do I need to use this?
  • A Systeme.io account with a public API key.
  • A connected Gmail account for the draft to land in.
  • A HubSpot account where the follow-up task should be created, plus the owning rep's user.
  • A Slack workspace and a channel for the team heads-up.
How can I customize it?
  • Choose which Slack channel gets the save heads-up.
  • Pick who the HubSpot follow-up task is assigned to (the contact's owner, your CS lead, or a shared queue).
  • Tune the tone of the win-back email or add a specific offer like a discount or a free month.
  • Decide whether to act on every cancellation or skip refunds under a certain dollar amount.

Frequently asked questions

Does this send the email automatically?
No. The agent only creates a draft in your Gmail. You review, edit, and send it yourself so every win-back email feels human.
What if the cancelled customer doesn't have any tags or course history?
The agent will still write the email, but it will keep the language broader and lean on whatever subscription data exists. The HubSpot task notes the thin profile so your rep knows to investigate before reaching out.
Will this work for both subscription cancellations and one-off refunds?
Yes. Systeme.io's Sale cancelled webhook fires for both refunds and cancelled recurring payments, and the agent treats them the same way.
Can I assign the HubSpot task to a specific rep instead of the contact owner?
Yes. When you customize the prompt, point the task to a fixed user, a team queue, or fall back to yourself when no contact owner is set.
What if the same customer cancels and resubscribes multiple times?
Each cancellation fires a new run. You can add a rule that skips customers who already have an open save task in HubSpot to avoid duplicate work.

Turn every refund into a second chance.

Connect Systeme.io, Gmail, HubSpot, and Slack once, and Geni runs this save-the-customer playbook every time a sale is cancelled.