# Gumroad membership retention board with one-click win-backs

> See every Gumroad member split into active, cancelled, and ending soon, then start a personal win-back with one click from the row.

- Workflow type: app
- Services: Gumroad, Gmail, Mailchimp
- Categories: Sales, Marketing
- Published: 2026-08-24

## What it does

- Lists every one of your Gumroad membership products with its full roster of members underneath, grouped into active, cancelled, and ending soon
- Puts your monthly recurring total and the number of people whose subscription ends in the next 30 days at the top of the screen
- Lets you sort and filter the roster by product, how long someone has been paying, and their status, so your longest-standing members and your about-to-lapse members are both one click away
- Gives every member row a Save this member button that hands the work to a background assistant: it reads what else they bought, writes a win-back email in your voice, creates a single-use discount code for them, drafts the email in Gmail, and tags them in Mailchimp
- Shows the finished draft and the code back inside the app so you can read it, then send it yourself with one button
- Remembers who you have already tried to save, so nobody gets a second win-back by accident

## What you'll need

- A Gumroad account with at least one membership or subscription product
- A Gmail account you want the win-back emails to come from
- A Mailchimp account with the audience you send broadcasts to
- Permission for Gumroad to create discount codes on your products

## Prompt

Build me a membership retention board for my Gumroad subscriptions. This is a screen I open every Monday to see who is paying me, who is about to stop, and to start a personal save attempt on anyone I do not want to lose. Build the board first and the assistant second: the board has to be worth opening on its own, even on a week when I never press a single button.

Main board. Use the Gumroad List Products operation to get every product on my account, and keep only the membership and subscription products. One-off products have no members, so skip them entirely instead of rendering empty sections. For each remaining product, use List Product Subscribers to pull the full roster, and use Get Subscriber to fill in the detail on any member the list response leaves thin, such as their email, the recurrence, the subscription start date, and the cancellation or end dates. Render one section per product with the roster underneath it.

Split each roster into three groups: active, cancelled, and ending soon. Active means the subscription is still billing with no end date set. Cancelled means the member has cancelled or the subscription has already ended. Ending soon means there is an end date or a scheduled failure or termination date falling inside the next 30 days, whether or not the member cancelled themselves. A member who cancelled but is still inside their paid period belongs in ending soon, not cancelled, because that is the window where I can still act.

Put a summary strip at the top of the screen with two headline numbers: the monthly recurring total across all active members, and the count of people whose subscription ends in the next 30 days. Gumroad returns money in the smallest currency unit, meaning cents, so divide by 100 exactly once when you display it and never sum pre-formatted strings. Normalize the recurrence before you add anything up: convert yearly plans to a monthly figure by dividing by 12, quarterly by 3, and leave monthly as is, so the recurring total is genuinely comparable. Show the same two numbers per product section as well so I can tell which membership is carrying the revenue and which one is leaking.

Sorting and filtering. I need to sort and filter the whole roster by product, by tenure, and by status. Tenure is how long they have been paying, computed from the subscription start date, and I want to be able to sort longest-tenured first so I can see who has stuck with me the most. Filters should combine, so I can ask for ending soon members of one specific product sorted by tenure and get a short, actionable list. Show tenure on the row in plain language such as fourteen months, alongside their email, plan price, recurrence, status, and end date if there is one.

Save this member. Every member row gets a Save this member button that kicks off a background agent for that one person. The agent should: pull that person's full purchase history with the Gumroad List Sales operation, filtering by their email so it sees every product they have ever bought from me, not just the membership in question; work out how long they subscribed and what else they bought; write a win-back email matched to both, so a three-year member who owns four of my products gets a different message from someone who joined two months ago and bought nothing else; mint them a personal discount with the Gumroad Create Offer Code operation on the product they are lapsing from, capped at a single use so the code cannot be shared or reposted, with a code string unique to that person; create the message as a draft with the Gmail Create a Draft operation, addressed to that member, with the discount code written into the body; and post the draft text plus the code back into the app so I can read both without leaving the board.

The same agent should also tag the person in my email list so my broadcasts can treat lapsing members differently. Use the Mailchimp Add or Update Member (Upsert) operation so the person exists in the audience whether or not they were already on it, then use Add or Remove Member Tags to apply a lapsing-member tag with status active. Do not create a duplicate contact and do not change their subscription status if they are already subscribed.

Approval. Nothing sends by itself. When the agent finishes, the row should show the drafted email, the discount code, and the reasoning in one word or short phrase such as long-tenure or bought-three-products. I read it, and if I like it I press an approve and send button that fires the Gmail Send a Draft operation on that draft. If I do not like it I should be able to leave it alone or discard it, and the draft still sits in my Gmail where I can edit it by hand.

Memory. The board has to remember which members I already ran a save attempt on, stored inside the app so it survives a refresh and a reload. Once an attempt exists for a member, mark the row visibly, disable the Save this member button for that person, and show when the attempt ran, whether the draft was approved and sent, and the code that was issued. I never want to hit the same person twice. Give me a way to see all past attempts, sorted by date, so I can tell later which win-backs actually worked.

A few details to get right. Gumroad's List Sales operation paginates, so follow the pages rather than stopping at the first one. Member counts on a healthy membership can run into the hundreds, so the roster needs to stay readable and responsive at that size. If a product has no members at all, say so plainly on that section rather than leaving a blank space. And if Gumroad returns nothing for a member lookup, keep the row on the board with whatever data I do have rather than dropping the person silently.

## How to customize

- Change the ending soon window from 30 days to whatever matches your billing cycle
- Set the size of the win-back discount and how long the code stays valid
- Pick which Mailchimp audience gets tagged and rename the tag your broadcasts look for
- Adjust the tone and length of the win-back email, or add a rule like skipping anyone who subscribed less than a month ago

## FAQ

### Does this send emails automatically?

No. The assistant only writes the email and leaves it as a draft. Nothing goes out until you read it in the app and press send, so you stay in control of every message.

### Will it show my one-off products too?

No. Only memberships and subscriptions have members, so the board skips your one-time products instead of showing you empty sections.

### Can it accidentally email the same person twice?

No. The board records every save attempt against that member and marks the row, so you can see at a glance who has already been contacted and the button will not run again for them.

### Is the discount code shared with everyone?

No. Each code is created for that one person and capped at a single use, so it cannot be passed around or posted publicly.

### Why does it tag people in Mailchimp?

So your regular broadcasts can treat lapsing members differently. Once someone is tagged, you can exclude them from a normal newsletter or drop them into a dedicated retention sequence.

### Do I need to be technical to use this?

No. You connect Gumroad, Gmail, and Mailchimp once, then the board is a screen you open and work in like any other dashboard.

Use this prompt in General Input: https://www.generalinput.com/prompts/gumroad-membership-retention-board-with-one-click-win-backs