Gumroad buyer support console with refunds and license control
Paste a customer email or license key and see every purchase, license, and membership in one place, then refund or reset a key right from the row.
Build me a Gumroad buyer support console: one screen where I paste a customer email address or a license key and immediately see that person's entire history with my store, with every fix I might need to make available right there in the row.
The top of the app is a single search box that accepts either an email address or a license key. If the input looks like an email, resolve it with Gumroad List Sales filtered by that email address, paging through results so a repeat buyer's full history comes back rather than just the first page. If the input looks like a license key, resolve it by calling Gumroad List Products once to get the product ids, then Gumroad Verify License against each product until one matches, and cache the product list so repeated lookups stay fast. Important: pass the option that stops Verify License from incrementing the uses counter, because a support lookup must never burn one of the buyer's activations. Once a sale is identified, use Gumroad Get Sale for the full detail record.
Show the results as a customer profile. A header with the buyer name and email plus quick totals: number of purchases, lifetime spend, and how many orders have already been refunded. Under that, a purchases table with one row per order showing the product name, order date, amount paid, order status including whether it was refunded or disputed, and the license key if the product issues one. Selecting a row expands the full Get Sale detail, including any custom fields, variants, and the shipping address for physical goods.
Next to the purchases, a license panel driven by Gumroad Verify License showing whether the key is currently enabled or disabled, how many uses it has consumed against its limit, and the date it was first activated. Below that, a membership panel: sweep Gumroad List Product Subscribers across the account's membership products to find any subscription tied to this buyer's email, and use Gumroad Get Subscriber for the detail, showing plan, status, current period end, and cancellation date if one is set.
Every action I need lives on the row so I never leave the app. Refund the order in full or for a partial amount with Gumroad Refund Sale. Kill a compromised or abused key with Gumroad Disable License and restore it with Gumroad Enable License. Free up a seat for someone who reinstalled or changed machines with Gumroad Decrement License Uses Count. Mark a physical order as dispatched with Gumroad Mark Sale as Shipped, with optional tracking number and carrier URL fields in the dialog.
Put every one of those actions behind a confirmation step that spells out exactly what is about to happen, naming the buyer and the formatted amount, for example "Refund $49.00 to Dana Silva for Pro Plugin License?". Gumroad returns all amounts in cents, so format them as proper currency everywhere in the interface and convert back to cents when submitting a partial refund. If a refund fails, surface Gumroad's own error message in the dialog rather than a generic failure.
Gumroad only permits discretionary refunds within 90 days of purchase, so compare each order date against that window and show an unmistakable warning badge on any order that falls outside it, plus an extra line in the confirmation dialog, so nobody clicks refund blind on a year-old sale and gets a confusing error.
Add a "Draft the reply" button to the profile that kicks off a background agent. The agent reads the buyer's full purchase and license history from the app, works out the situation it is dealing with, and writes an appropriate response: a refund confirmation, a license reset with the freed seat explained, a duplicate charge explanation when it sees two near-identical orders close together, a shipping update, or a plain answer about what the person actually owns. It creates the message with the Gmail Create a Draft operation addressed to the buyer, then writes the draft id and the full body back into the app so the drafted reply appears in a panel on the profile. I read it there, and a Send button calls the Gmail Send a Draft operation. Nothing is ever sent without me pressing that button.
Keep a running activity log stored inside the app. Every refund, disable, enable, seat decrement, shipping mark, and sent reply gets a row recording which team member did it, which buyer and order it touched, the amount where relevant, and the timestamp. Show the buyer's own history inline on their profile, and give the log its own page with search and a filter by action type so I can answer questions like who refunded this order last Tuesday.
One thing to be explicit about in the interface: the handlers act as the connected Gumroad account owner, so any teammate who opens this app is operating on the same store with the same permissions. That is exactly why the activity log records the acting user on every row. Also handle the empty and unhappy paths properly: an email with no matching sales, a license key that belongs to no product, a buyer with purchases but no license, and an order that has already been refunded should each show a clear explanation rather than an empty table, and already-refunded orders should have their refund button disabled rather than hidden.
What does this prompt do?
- Look up any buyer by email address or license key and instantly see their full history: every order, what they paid, whether their license is active, and any membership they hold.
- Handle the request without leaving the screen. Refund in full or in part, turn a license key off or back on, free up a seat when someone reinstalls, and mark a physical order as shipped.
- Every action asks you to confirm first, showing the buyer name and the exact amount, and flags any order that is past the usual 90 day refund window before you click.
- Hit Draft the reply and a background assistant reads the buyer's whole history, writes the right response for the situation, and puts it in your Gmail drafts so you can read it and send it from the app.
- Keeps a running log inside the app of who refunded or disabled what and when, so a support team always has the receipts.
What do I need to use this?
- A Gumroad account, connected with permission to view sales, issue refunds, and mark orders as shipped
- A Gmail account for drafting and sending the replies
- Products already selling on Gumroad, ideally some with license keys or memberships so the license and membership panels have something to show
How can I customize it?
- Change the refund window warning from 90 days to whatever your own policy promises
- Adjust the tone and house style of the drafted replies, or add your own situations beyond refunds, license resets, and duplicate charges
- Choose whether the reply drafts go out from your personal Gmail or a shared support address
- Decide how far back the purchase history loads by default, and whether refunded orders stay visible in the list
FAQs
Do I need to know a customer's license key to look them up?
Can I refund only part of an order?
What is the refund window warning?
Does looking up a license use up one of the customer's activations?
Will the reply email send automatically?
If my teammate opens the app, whose store do they see?
Related templates
See who is due, build a week of dinners on demand, swap anything you do not like, then send the recipe and grocery links yourself.
See every install this week day by day, with the crew, the homeowner, whether materials were ordered, and the latest jobsite photos.
Search live job postings, save the good ones to a pipeline board, and see what each role really pays before you apply.
An accounts receivable board that sorts every overdue Jobber invoice by age, then helps you draft, approve, and log every collection email you send.
A calibration board that lines up every candidate's answer to the same question, hides names until your panel has scored, and writes the agreed rating back.
Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.
Stop hunting through Gumroad order pages to answer one email.
Give your support inbox a single screen that shows a buyer's whole story and lets you fix it on the spot.