Gumroad membership retention board with one-click win-backs

By General Input

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

Integrations

  • Gumroad
  • Gmail
  • Mailchimp

Type

App

Categories

  • Sales
  • Marketing

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.

Related prompts

Explore more prompts
Win back LiveChat visitors whose chats went unansweredChase the paperwork every new client and vendor still owesFile Gmail attachments into storage with names you can findCandidate rediscovery desk for your archived Lever applicantsLaytime and demurrage claim workspace for chartering opsKajabi customer support console for member access fixesRun your application review round on Jotform submissionsRun your nutrition clients' weekly meal plans from one consoleReplace the dispatch whiteboard with a live production boardJob search command center with a self-filling pipeline board