# 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.

- Workflow type: app
- Services: Gumroad, Gmail
- Categories: Customer Support, Operations
- Published: 2026-08-24

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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

## FAQ

### Do I need to know a customer's license key to look them up?

No. An email address is enough, and it is the usual way in. The license key search is there for when someone writes in quoting only their key and no order details, which happens a lot with software and plugin sales.

### Can I refund only part of an order?

Yes. The refund step lets you issue the full amount or type a smaller one, which is handy for partial goodwill refunds or when you are honoring a price drop. The confirmation always shows the buyer name and the amount before anything is charged back.

### What is the refund window warning?

Gumroad expects refunds to be issued within 90 days of the purchase. The app checks the order date and shows a clear warning on anything older, so nobody issues a refund that may fail or that falls outside your stated policy.

### Does looking up a license use up one of the customer's activations?

No. The app is careful to check licenses in read-only mode, so a support lookup never eats into the buyer's seat count. Freeing a seat is a separate, deliberate button for when someone has changed laptops.

### Will the reply email send automatically?

Never without you. The assistant writes the response and leaves it as a draft. You read it in the app, edit it in Gmail if you want, and only then press send.

### If my teammate opens the app, whose store do they see?

The same one. The app acts on the Gumroad account that was connected when it was set up, so everyone on your team works from the same store. That is why the activity log records who took each action.

Use this prompt in General Input: https://www.generalinput.com/prompts/gumroad-buyer-support-console-with-refunds-and-license-control