Resolve a case with the assistant
Drive a resolution through chat or a stepper — and why both produce the same real result.
Two ways in, one result
A rep can resolve a case two ways:
- Free-form chat — ask the assistant, e.g. "start a return for order 100123, the customer received a damaged item."
- A guided stepper — click through the Return / Refund stepper in the console.
Both emit the same tool calls through the same /chat endpoint. The studio
reconstructs one state snapshot from the tool-call stream, so the stepper shows
the same state whether chat or the stepper drove it.
A typical return
Find the order
The assistant (or the stepper's first step) looks up the order via the
order(id / orderNumber) query through the BFF, and shows real order data — no
placeholders.
Check eligibility
Return eligibility is derived from the real order state, not guessed. If the order can't be returned, the assistant says so honestly.
Request approval
Starting a return is a state-changing action. The assistant emits an approval card and pauses. Nothing is written yet.
Approve and execute
The rep clicks Approve. On the next turn, the write tool runs and the return is created against the real backend.
Why this matters
Because there's only one execution path:
- What the rep sees in chat and in the stepper can never disagree.
- The AI is bound by the same ACL and approval gate as the UI.
- Every value shown is real — the platform's non-negotiable rule.
The same pattern holds for Create Order and Create Ticket. See Resolution Flow for the mechanics.