runbookify
← All plans
Order Management & Fulfillment / Returns & Exchanges

RMA Request Portal with Approval

A self-serve portal where customers request a return against their original order, the system auto-checks return-window and eligibility rules, and a returns agent approves before an RMA number and instructions are issued - no more returns by phone and email.

IntermediateA weekendBuilds onNext.js (App Router) on VercelSupabase (Postgres + Storage + Auth with RLS)Resend (email)
What you'll build

Customers request returns through a structured portal; the system enforces your return-window and eligibility rules; a returns agent reviews and approves each request; and only then is an RMA number plus return instructions emailed and logged.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A list of original orders (CSV or Google Sheet export is fine)
  • Your return-reason codes and policy rules (return windows, what's eligible)
  • Free accounts for Vercel, Supabase, and Resend

The problem this kills

Returns are arriving by phone, email, and the occasional sticky note. Every one is a little different: no order number, a part that's clearly past the return window, a quantity that doesn't match what shipped, or a reason that isn't actually covered by policy. Your CSRs become human rule-checkers, copying details into a spreadsheet, looking up the original order, and arguing about whether something qualifies. RMA numbers get handed out inconsistently - or twice for the same line. Nobody can answer "where is that return request from last Tuesday?"

The result is slow responses, returns that should have been denied, denied returns that should have been approved, and zero audit trail when a customer disputes it later.

What you'll build

A clean web portal with two sides:

  • For customers: a simple form to request a return. They enter their order number, the system pulls up the matching lines, and they pick what they're returning, how many, and why. The moment they submit, your policy rules run - return window, per-product eligibility, per-reason rules - and the request is either flagged as in-policy or out-of-policy, with the reason shown.
  • For your returns team: a review queue. Every request lands here with the policy check already done. An agent confirms eligibility, reason, and quantity, then approves or denies. Only on approval does the system mint an RMA number and email the customer their RMA and return instructions.

Everything is logged: who requested, what the rules said, who approved, and when.

What's inside the Implementation Plan

The plan is a single file you paste into an AI coding agent (Claude Code), and it builds the tool with you step by step. A few things that make it work:

  • It starts by interviewing you about your business. Before writing any code, the plan has the agent ask you about your current returns process, the systems and spreadsheets you use, exactly how your order data is shaped (field names, SKU conventions, line numbering), your typical and peak return volumes, your real return-window and eligibility rules, and your messy edge cases. It reads a short tailored spec back to you and waits for your thumbs-up - so you get a tool shaped to your business, not a generic template.
  • Copy-paste prompts at every step, so you never have to know how to code.
  • A "No API yet?" fallback that lets you load orders and policy rules from a Google Sheet or CSV and export a clean RMA file in the exact columns your system of record expects - so you can ship this today, even with no integration.
  • A verification checklist so you know it actually works before you hand it to a customer.

The governance it includes (this is the point)

This isn't a toy form. The plan builds in the controls that make a tool safe to run a real returns process on:

  • Login so only your team can reach the review queue.
  • Row-level security so each organization only ever sees its own orders, requests, and RMAs.
  • A complete audit trail - who requested, what the automatic policy check decided, who approved or denied, and the exact timestamps.
  • A hard human-in-the-loop approval gate: the system drafts the eligibility decision, but no RMA number is ever issued until a returns agent reviews and approves it.
  • Duplicate guards keyed on order + line + RMA, so the same return line can't be processed twice.

Who it's for

CSRs and returns teams who are drowning in unstructured return requests, and the customers who just want a clear, fast answer. If you run returns and exchanges and you've ever wished requests came in one consistent shape with the rules already checked, this is for you. No developer required.

You've got this - paste the first prompt and let the agent interview you.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.