Win back Gumroad customers after refunds and cancellations

The moment a buyer refunds or cancels on Gumroad, send an empathetic offer, sync HubSpot, and alert your team so nobody churns quietly.

Agentic Task
GumroadGmailHubSpotSlackSalesCustomer SupportEmail AutomationNotifications & Alerts
PromptCreate

Trigger this workflow with a Gumroad webhook subscribed to the refund, cancellation, and subscription_ended resource subscriptions so it fires the instant a buyer refunds a purchase, cancels a membership, or lets a subscription lapse.

When the webhook fires, read the payload to figure out which resource triggered it and which sale or subscription is involved. For a refund event use Gumroad Get Sale to pull the full sale record. For cancellation and subscription_ended events use Gumroad Get Subscriber to pull the subscriber. Either way also call Gumroad List Products so you have the product title, price, and description handy for a relevant, human-sounding message.

If the event is actually a chargeback or dispute (Gumroad flags the refund as such, or the underlying resource is dispute-flavored), skip the discount step entirely. Do not mint an offer code and do not send the win-back email. Go straight to the HubSpot logging and Slack alert steps below and clearly mark the note and the alert as a chargeback so a human handles it directly.

For every non-dispute event, mint a fresh single-use retention discount on Gumroad with Create Offer Code. Attach it to the same product the buyer was on, set max_purchase_count to 1 so it can only be redeemed once, and pick a discount size that matches the situation. Use a light 15 to 20 percent nudge for a clean cancellation with no stated reason, a heavier 30 to 40 percent when the buyer specifically cited price, and a smaller courtesy discount when the sale was already refunded. Give the code a memorable name tied to the product and the buyer so it is easy to trace later.

Draft a warm, personalized win-back email to the buyer and send it via Gmail Send a Message. Greet them by first name, acknowledge the specific event they just went through (refund, cancellation, or ended subscription), name the product, and offer the single-use code as a friendly second chance rather than a hard pitch. Keep it short and empathetic, sign off from a real name, and never sound pushy or defensive.

Upsert the buyer in HubSpot using Batch Upsert Contacts matched on email so they exist as a contact whether or not they were in the CRM before. Then use Create Note associated with that contact to log a churn record capturing the event type, the product, the amount involved, any cancellation reason Gumroad returned, and either the offer code you generated or the fact that this was a chargeback with no code. This is the audit trail retention needs later.

Finally, post a short alert to a Slack support channel using Slack Send a Message. Include the buyer name, the product, the event type, the amount, the offer code (or the phrase no code, chargeback), and a link back to the HubSpot contact. Keep the message compact so a teammate can scan it and decide whether to reach out personally when the buyer replies to the email.

Additional information

What does this prompt do?
  • Listens for Gumroad refunds, cancellations, and ended subscriptions the moment they happen
  • Sends a warm, personalized win-back email with a single-use retention discount tied to the exact product the buyer was on
  • Upserts the buyer in HubSpot and logs a churn note capturing the event, the product, and the discount that was offered
  • Posts a short alert to a Slack support channel so a teammate can jump in if the buyer replies
  • Skips the discount entirely for chargebacks and disputes and just logs plus alerts, so a human handles those cases directly
What do I need to use this?
  • A Gumroad account that can generate offer codes and receive webhooks
  • A Gmail address to send the win-back email from
  • A HubSpot workspace with contacts and notes enabled (works on Free)
  • A Slack workspace with a channel for support and retention alerts
How can I customize it?
  • Which events kick it off: refunds only, cancellations only, ended subscriptions, or any mix of the three
  • The tone, length, and signature of the win-back email
  • How aggressive the retention discount gets (a light nudge for fresh cancellations, a deeper offer when someone cited price)
  • Which Slack channel gets the alert and which HubSpot properties or lists get updated

Frequently asked questions

Does this run automatically or do I have to trigger it?
It runs automatically. Gumroad pings the workflow the instant a refund, cancellation, or ended subscription happens, and every downstream step (email, discount, HubSpot, Slack) runs without you having to be there.
Will the discount really only work once?
Yes. The workflow mints a fresh offer code on Gumroad for every buyer and caps it at one redemption, so even if the code gets shared, only that specific buyer can use it.
What happens on a chargeback or dispute?
It skips the discount on purpose. Chargebacks usually mean the buyer is unhappy with the charge itself, so the workflow logs the event in HubSpot and posts a Slack alert to hand it off to a human instead of trying to save the relationship with a coupon.
Do I have to use HubSpot?
The default version uses HubSpot to keep a contact and a churn note, and it works on the free tier. If your CRM is something else, ask the assistant to swap HubSpot out when you set the prompt up.
Can it handle both digital products and memberships?
Yes. Refunds on one-off sales are looked up as sales; cancellations and ended memberships are looked up as subscribers. The email, note, and alert all adapt to whichever kind of event fired.

Turn every Gumroad cancellation into a second chance.

Automate the win-back email, the single-use discount, the CRM note, and the team alert so you never let a churned buyer slip away in silence.