How to process refund and return requests as Solo Media and Creator Founders

Customer SupportFor Solo Media and Creator Founders3 apps10 steps~20 min to set up

Someone buys a $97 annual newsletter subscription or a $49 course bundle, decides it's not for them, and emails you. You're mid-edit on a podcast episode. The refund request sits in your Gmail for two days because you're the one person who handles editing, sponsorships, and customer support. When you finally get to it, you have to cross-reference Stripe manually to find the charge, check whether they're inside your 30-day window, issue the refund in Stripe, then reply to the email confirming it. If you run a Beehiiv paid tier or sell digital products through Gumroad or a Stripe payment link, this loop happens every week — and each instance costs you 20-40 minutes you don't have.

Customer SupportFor Solo Media and Creator Founders3 apps10 steps~20 min to set up
Outcome

What you'll set up

A refund tracker that pulls Stripe charge and subscription data on a schedule, so you always know who paid, when, and what they bought — without logging into Stripe to look it up
An inbox triage system that surfaces refund and return emails, drafts a reply with the relevant Stripe transaction context already included, and flags requests outside your policy window for your review
A lightweight CRM view showing every subscriber or customer who has ever requested a refund, so you can spot patterns (which product, which cohort, which traffic source) before they become a revenue problem
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Data sources & config

Starch syncs your Stripe data on a schedule — charges, customers, subscriptions, and invoices refresh automatically, so refund lookups don't require a manual Stripe login. Gmail is connected as a scheduled-sync provider; Starch reads your inbox on a schedule and the Email Agent surfaces and drafts against live message content. Your CRM is built on top of these two sources — no separate database to maintain. If you sell through Gumroad or a custom checkout page, Starch automates that site through your browser — no API needed.

Prompts to copy
Build me a refund tracker that shows every inbound refund or cancellation request from Gmail, matched against the Stripe charge for that customer, with columns for: customer email, product purchased, charge date, amount, days since purchase, refund eligibility (yes/no based on my 30-day policy), and current status (pending / approved / denied). Flag anything over $100 for my manual review.
Triage my Gmail inbox for refund requests. When you find one, look up the customer's Stripe charge history, draft a reply that confirms receipt and tells them whether they're inside the 30-day window, and set a follow-up reminder if I haven't replied in 24 hours. If the request is outside the window, draft a polite decline that references my stated policy.
Create a contacts view in my CRM that tracks every customer who has requested a refund in the last 12 months — their email, which product, the outcome, and a notes field where I can log why they asked. I want to be able to filter by product so I can see if one offer has a disproportionate refund rate.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect Stripe as a scheduled-sync provider. Starch will sync your charges, customers, subscriptions, and payout data on a schedule — every new payment and cancellation shows up automatically.
2 Connect Gmail as a scheduled-sync provider. Starch reads your inbox labels and message threads; the Email Agent scans for keywords like 'refund,' 'cancel,' 'return,' and 'doesn't work' to surface relevant threads.
3 Describe your refund policy in plain language when setting up the Email Agent — for example, 'I offer full refunds within 30 days of purchase; after that, I decline but offer a credit toward a future product.' Starch uses this as the source of truth for every draft reply.
4 The Email Agent drafts a response to each refund request. The draft pulls the relevant Stripe charge date and amount from your synced data, calculates days since purchase, and writes either a confirmation of refund or a polite decline based on your policy.
5 Review the draft in your inbox — one click to send, or edit if the situation is unusual (expired subscriber who's been loyal, a PR situation, etc.). You're approving, not writing from scratch.
6 For requests that meet your policy, log into Stripe and issue the refund manually, or describe an automation: 'When I mark a refund request as approved in my tracker, post a Slack message reminding me to process it in Stripe.' Starch queues the reminder so nothing slips.
7 The refund tracker CRM view updates as new Gmail threads and Stripe charges sync — you get a running log of every request without manually entering anything.
8 Once a month, ask your CRM: 'Which of my products had the highest refund request rate in the last 90 days?' Starch queries the tracker and gives you a breakdown by product — useful for figuring out if a course landing page is overselling something, or if a particular subscriber cohort converts poorly to paid.
9 If you sell digital products through a platform that doesn't have a direct integration — say, a checkout page hosted on your own domain or a third-party course platform — Starch automates the order history lookup through your browser, no API required, and brings that data into the same tracker.
10 Set a weekly digest automation: 'Every Monday at 8am, send me a Slack message with a count of open refund requests, the total dollar value at risk, and any requests older than 48 hours that I haven't responded to.' This replaces the mental overhead of remembering to check.

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

February 2026 — Annual subscription renewal wave

Sample numbers from a real run
Annual newsletter subscriptions renewed (Stripe)4,320
Refund requests received (9 emails, 8 days)-873
Refunds inside 30-day window — approved (6)-582
Refunds outside window — declined (3)0
Net retained from renewal cohort3,738

February is renewal month for your annual tier — 48 subscribers auto-renewed at $90/year. Within 8 days, 9 refund emails arrived, mostly from people who forgot they'd subscribed. Starch had already synced the Stripe renewal charges, so when each email hit Gmail, the Email Agent matched the sender to their charge record instantly. Six were inside the 30-day window: Starch drafted a confirmation reply with the refund amount and a one-line note about what they'd miss, which you sent in under 2 minutes each. Three were at day 34-41: Starch drafted a polite decline citing your stated 30-day policy and offering a discounted annual rate for next time. You reviewed and sent all nine replies in about 25 minutes total — versus the 3+ hours this would have taken you routing between Gmail, Stripe, and a mental policy checklist. The CRM tracker flagged that 4 of the 9 requesters had signed up from the same October sponsor campaign, a data point you used to renegotiate the CPM on that sponsor's next insertion order.

Measurement

How you'll know it's working

Refund request response time (target: under 24 hours, since slow replies often escalate to chargebacks)
Refund rate by product — which offer or subscription tier generates the most cancellation requests as a percentage of sales
Dollar value of open refund requests at any given moment (exposure to your monthly revenue)
Chargeback rate — the expensive version of a refund you didn't handle fast enough
Time spent per refund resolution — your goal is under 5 minutes per request once Starch is set up
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

Manual Gmail + Stripe tab-switching
Free, but every refund request costs you 20-40 minutes of context-switching; there's no audit trail and nothing flags unanswered threads.
Gorgias or Freshdesk
Purpose-built for support ticket routing, but priced for e-commerce teams and require setup overhead that doesn't make sense for a 1-2 person media business with under 20 refund requests a month.
Zapier with Gmail + Stripe zaps
Can automate the lookup, but you're stitching together individual zaps with no shared context — the zap doesn't know your policy, can't draft a reply, and breaks when Stripe's webhook format changes.
Notion refund log (manual)
Better than nothing for audit trail, but you're still manually copying charge data from Stripe and email context from Gmail; the log is always a few days behind.
On Starch RECOMMENDED

One platform — crm, email agent, customer support agent all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

Can Starch actually issue the Stripe refund automatically, or do I still have to do that part in Stripe?
Today, Starch surfaces the request, drafts the reply, and logs the decision — you process the actual refund in Stripe directly. This is intentional: refund authorization is a financial action you probably want a human approval step on, at least until you've run enough volume to trust the policy logic completely. You can set up a Slack reminder automation so the moment you mark a request 'approved' in your tracker, Starch pings you to go execute it in Stripe.
I sell through Beehiiv's paid tier, not Stripe directly. Does that work?
Beehiiv's paid subscriptions run through Stripe under the hood, so if you have access to the underlying Stripe account, Starch can sync that data. If Beehiiv doesn't give you direct Stripe access, Starch can automate your Beehiiv dashboard through your browser — no API needed — to pull subscription and payment status for the tracker.
What about the Customer Support Agent I saw mentioned — can that handle refund replies automatically?
Customer Support Agent is coming soon — it will handle common support requests like refund inquiries automatically, 24/7, using your stated policy as the source of truth. You can request beta access now to get notified when it launches. In the meantime, the Email Agent handles the inbox triage and draft-reply workflow described here.
I only get maybe 6-8 refund requests a month. Is this worth setting up?
At 6-8 requests per month, you're spending roughly 2-4 hours on a workflow that should take 30 minutes. The bigger value is the audit trail — knowing your refund rate by product, spotting if one sponsor campaign is driving a bad-fit subscriber cohort, and never letting a request sit long enough to become a chargeback. Chargebacks cost $15-25 each in fees on top of the refund itself; one prevented chargeback pays for the setup time.
Is my Stripe and Gmail data stored in Starch? What's the security situation?
Starch is not SOC 2 Type II certified yet — worth knowing if your legal setup has specific compliance requirements. Your Stripe and Gmail data syncs into Starch's database on a schedule so the tracker and email drafts can reference it. If you're handling subscriber PII at scale and need on-prem or self-hosted options, Starch doesn't offer that today.
Can I track refund requests that come in through DMs — Instagram, Twitter, or LinkedIn — not just email?
Starch can automate social platform interfaces through your browser — no API needed — so you could build a workflow that checks your Instagram or Twitter DM inbox for refund keywords and logs them to the same tracker. It's less elegant than the Gmail sync but it works, which is usually good enough when your DM volume is low.

Ready to run process refund and return requests on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.