AI assistant to track purchase receipts, return windows, and warranty deadlines, then generate claim emails fast.
Return & Warranty Autopilot helps users:
- Sync purchase-related emails (Gmail with demo fallback)
- Classify and extract structured order details
- Track return and warranty deadlines automatically
- Generate return/refund/warranty email drafts
- Run completely local using SQLite for demos/hackathons
- Landing page for product onboarding
- Dashboard with key deadline metrics
- Purchases table with search and pagination
- Purchase detail page with claim generator
- Gmail sync focused on purchase-like emails only
- Rule-based email classification:
purchase_confirmationshipping_updateinvoicesubscriptionpromotionother
- OpenAI extraction with safe fallback:
- mock extraction for demo/known emails
- heuristic extraction on quota/billing/auth/network failures
- Next.js 15 (App Router)
- TypeScript
- TailwindCSS
- Prisma ORM
- SQLite (
prisma/dev.db)
- Install dependencies:
npm install- Create environment file:
copy .env.example .env- Ensure SQLite path is set:
DATABASE_URL="file:./dev.db"- Run migrations:
npx prisma migrate dev- Seed demo data:
npm run seed- Start app:
npm run dev/- Landing page/dashboard- KPI dashboard + recent purchases/purchases- Purchases list/purchases/[id]- Purchase details + claim generation/connect/gmail- Gmail connection and sync view
Sync is intentionally purchase-focused, not a general inbox sync.
- Targets queries such as:
category:purchasessubject:(order OR receipt OR invoice OR shipped OR delivered)
- Tries to exclude promotions/newsletters where possible
- Non-purchase categories are not sent to purchase extraction
If OpenAI is unavailable (insufficient_quota, billing/auth/network failures):
- Sync does not fail
- Extraction falls back to mock or heuristic mode
- UI reports that fallback extraction was used
Works without Gmail credentials and without OpenAI key.
- Use Load Demo Data from dashboard
- Sync emails from
/connect/gmailin demo mode - Generate claim emails from purchase detail page
Demo dataset includes:
- Demo purchases
- Demo synced emails
- Demo extraction records
- Demo claims
GET /api/gmail/auth/startGET /api/gmail/auth/callbackPOST /api/gmail/syncGET /api/gmail/statusPOST /api/demo/loadPOST /api/purchases/[id]/recalculatePOST /api/claims/generate
npm run dev- Start dev servernpm run build- Production buildnpm run start- Start production servernpm run seed- Seed demo datanpm run db:migrate -- --name <name>- Create/apply migrationnpm run db:generate- Generate Prisma Client
- SQLite DB path:
prisma/dev.db - If build fails with
.next/tracepermission error, stop any running Next.js process and retry.
