Pushback: a refund-escalation agent that learns from outcomes with TigerGraph

The problem In India, a stuck refund for a cancelled flight, a missing order or a failed UPI payment usually ends with "your request is in process". The law gives consumers clear escalation steps and deadlines. Under the E-Commerce Rules 2020, Grievance Officers must acknowledge complaints within 48 hours. Above them sit nodal officers and regulators like AirSewa, the National Consumer Helpline (NCH) and the RBI Ombudsman. Almost nobody knows that path. What we built You describe your problem in English, Hindi or Hinglish. Pushback checks the published rules and tells you what you're owed and by when. Then it climbs the ladder: Support → Grievance / Nodal Officer → Regulator It drafts each letter, and you approve the exact text. The letter is sent from your own Gmail. It reads replies and follows ticket numbers into new threads. It tells you when the next step is due. Architecture Layer Tech App, auth, cases, steps Next.js on Vercel + Sup

Pushback: a refund-escalation agent that learns from outcomes with TigerGraph

The problem

In India, a stuck refund for a cancelled flight, a missing order or a failed UPI payment usually ends with "your request is in process".

The law gives consumers clear escalation steps and deadlines. Under the E-Commerce Rules 2020, Grievance Officers must acknowledge complaints within 48 hours. Above them sit nodal officers and regulators like AirSewa, the National Consumer Helpline (NCH) and the RBI Ombudsman. Almost nobody knows that path.

What we built

You describe your problem in English, Hindi or Hinglish. Pushback checks the published rules and tells you what you're owed and by when.

Then it climbs the ladder:

Support → Grievance / Nodal Officer → Regulator

  • It drafts each letter, and you approve the exact text.
  • The letter is sent from your own Gmail.
  • It reads replies and follows ticket numbers into new threads.
  • It tells you when the next step is due.

Architecture

Layer Tech
App, auth, cases, steps Next.js on Vercel + Supabase
AI Claude via Factory Droid: Sonnet 5.5 writes letters; Haiku understands complaints and labels replies
Email Gmail API (sends from your address, reads replies)
Scheduler viaSocket, a 5-minute tick for timers and inbox sync
Knowledge graph TigerGraph Savanna

How we used TigerGraph

The graph

Companies link to sectors, regulators and escalation channels. REQUIRES_PRIOR edges between channels encode the legal order and the wait days. Every real case becomes:

Claim → Step → Channel → Outcome

best_path

Our main GSQL query walks Company → Claims → Steps → Channels → Outcomes. For each step it counts how often the step was tried and how often it worked. If a company has fewer than 5 claims, the query hops to peer companies in the same sector and uses their history instead.

Write-back

Every letter, reply, escalation, win or loss is upserted back into the graph, so the next user benefits right away.

Why a graph?

"Which step works for this company, and if there's no data, for its sector?" is a multi-hop question.

  • In SQL that's a pile of joins plus a fallback query.
  • In GSQL it's one traversal (about 1–2 s on Savanna).

Shared regulators are single nodes that many companies connect to, so the outcome of one company's case helps people dealing with other companies.

Results

It's live at pushback-goa.vercel.app with three ladders: flights, orders and failed payments. It tracks real Zomato and airline tickets end to end, and the graph queries answer in under 2 seconds.

Share