Ending sessions
Every session has to end. Usually that's when the customer pays and walks away with their order, but sometimes it's because they got confused and gave up, or the kiosk lost connection. This page explains the different ways a session can end, what happens behind the scenes for each, and how it affects your metrics.
The happy path
The default flow is: customer orders → agent builds cart → customer pays → agent clicks End session. When you click the End button in the top-right of the session panel:
- The cart is marked
paidand locked in the database. - The video connection is torn down on both sides.
- The kiosk shows a "Thanks for your order, please wait at the pickup window" screen with the order number.
- Your dashboard returns to the queue view.
- Your status auto-flips back from Busy to Available, and you're eligible for the next call.
This entire teardown takes about 500ms. A chime plays to signal the handoff is clean.
Customer abandonment
If the customer walks away from the kiosk mid-session (which happens — maybe they got a call, maybe they changed their mind), you should end the session with the Customer abandoned option instead of the regular End button. Click the caret next to End session to see the menu:
- Customer abandoned — marks the session as abandoned. No order is saved, no payment is attempted.
- Technical issue — marks the session as failed due to our side. Not held against your metrics.
- Refused service — rare; used when the customer becomes abusive or refuses to leave despite repeated warnings. Requires a short note.
Choosing the right exit code matters because it drives your reports. Abandoned calls don't count against your completion rate; technical issues don't count against your accept latency on the next call.
Kiosk-initiated end
Occasionally a session ends because the kiosk side crashed — a tablet rebooted, Wi-Fi dropped, the customer pulled the plug. In that case the server notices the heartbeat stop and ends the session automatically with status dropped. You'll see a red banner saying "Kiosk disconnected". These are tracked but don't affect your metrics.
Refunds and corrections
If a customer paid but you need to refund — wrong order, allergy concern, food not available — you cannot trigger a refund from the agent dashboard. Instead:
- End the session normally with a note explaining what happened.
- Tell the customer you'll issue a refund and get the manager involved.
- Your team manager runs the refund from the owner panel (Operations → Orders → [order] → Refund). This hits Stripe directly.
This separation of concerns is intentional — agents can build orders but not move money back out. It's a guardrail against mistakes and fraud.
Session receipts
At the end of a paid session, the customer is asked on the kiosk screen: "Want a receipt? Email / SMS / No thanks". If they opt for email or SMS, the receipt is sent from our system, not from you. You don't need to do anything. The receipt includes itemized order, payment method, and a link to a digital copy.
Recovering from a bad end
If you accidentally clicked End session too early — before the customer paid, say — the session is already locked. You can't un-end it. Apologize, start a fresh session (the customer taps Start Order again on the kiosk), and ask the team manager to waive the abandoned call from your metrics for the day. Mistakes happen; just flag them openly.