Booking (STAR-JSON)
The book tool creates service requests as STAR-shaped JSON
ServiceRequestAdd messages, and the companion app books appointment times through POST /book. AppointmentAdd and WarrantyClaimPreCheck are the STAR message types to emit when extending book() to a dealer DMS. Tenants that already use STAR integrate without a translation layer.
STAR-JSON payload structure
Every booking action produces a STAR-shaped envelope:
{ "messageType": "ServiceRequestAdd", "header": { "tenantId": "fleet-operator-example", "sessionId": "vsa-session-abc123", "timestamp": "2026-07-14T17:00:00Z" }, "body": { "vin": "1AAAA00A0AA000123", "criticality": "P1", "dtcCodes": ["P0420"], "recommendedAction": "Catalyst efficiency — schedule service within 48h.", "ticketId": "VSA-4821", "status": "DRAFT" } }
For legacy DMS consumers that do not accept JSON, add a per-tenant STAR XML converter.
Booking levels
| Level | Capability | Customer experience | Tenant integration required |
|---|---|---|---|
|
STAR service request |
Builds a STAR-JSON |
"I’ve created service request VSA-2026-10-08-4F2A for your service center. It’s in the Service tab of your app." |
None beyond CMS. To deliver the envelope to a dealer system, add a delivery step after the CMS write |
|
Appointment time |
In the companion app the customer picks a service, a nearby dealer and a time; |
"Tire pressure check at your dealer, Tuesday at 10 am — booked." |
A dealer list with appointment times for the app to offer |
|
DMS repair-order creation |
Agent 2 (Vehicle Health & Service) plans the service visit — component bundling, coverage application, slot and parts availability — and writes the plan to |
"Tire and brake inspection booked at Meridian Service, Tuesday 10 am — confirmation DMS-RO-12345. Status updates appear in the app." |
Agent 2 enabled; |
Escalation path
On a P0 or P1 classification the supervisor recommends speaking with an agent, and the app shows a card with Talk to an agent (plus Request roadside on P0). The supervisor does not open the handoff itself and does not describe one as done. The driver’s tap, or a request for a person at any priority, reaches /escalate, which starts a Connect chat on the tenant’s chat queue. On P0, a tenant can set escalation.autoOpenHumanChatOnP0 to open the chat without the tap.
The handoff carries the triage classification and its reason, the VIN and vehicle, the driver, and a conversation summary, in the contact attributes and the chat’s first message. See Contact Center Integration.