Offline booking handoff

Turn a website booking into a ServiceTitan-ready sync packet.

This dry run shows the missing foundation from the product plan: structured booking data, Titan Map binding, idempotency, queued sync status, and a safe payload shape before any database or ServiceTitan API access exists.

Sync draft
st-ready:c5c33767
queued

Ready for async sync once customer authorization and approved scopes exist.

6
mapped objects
0
warnings
0
API calls

Structured booking request

Customer
Jamie Rivera
Phone
(602) 555-0199
Service
AC Repair
Urgency
Emergency - as soon as possible
Preferred date
2026-06-25
Preferred window
Afternoon (12pm-5pm)
Address
1840 E Camelback Rd, Phoenix, AZ
Source path
/ac-repair-phoenix

Titan Map binding

campaign
AC repair in Phoenix landing page
/ac-repair-phoenix
jobType: AC RepairbusinessUnit: Residential HVACcampaign: Summer AC Demandzone: Phoenix MetropricebookService: AC DiagnosticbookingProvider: PageToJob appointment request
Capacity rule
After-hours emergency HVAC

Call now / Request the next available appointment

Queue foundation

Sync type
booking_request
External target
ServiceTitan lead/form or booking endpoint
Next retry
Not scheduled in offline mode
Reason
Ready for async sync once customer authorization and approved scopes exist.
No ServiceTitan write happens here. In the API-backed version, this row becomes the durable queue item that a worker retries asynchronously.

Dry-run payload

{
  "customer": {
    "name": "Jamie Rivera",
    "email": "jamie@example.com",
    "phone": "(602) 555-0199"
  },
  "location": {
    "address": "1840 E Camelback Rd, Phoenix, AZ",
    "zone": "Phoenix Metro"
  },
  "booking": {
    "summary": "AC Repair - Emergency - as soon as possible",
    "jobType": "AC Repair",
    "businessUnit": "Residential HVAC",
    "campaign": "Summer AC Demand",
    "pricebookService": "AC Diagnostic",
    "bookingProvider": "PageToJob appointment request",
    "preferredDate": "2026-06-25",
    "preferredWindow": "Afternoon (12pm-5pm)",
    "urgency": "Emergency - as soon as possible",
    "sourcePath": "/ac-repair-phoenix",
    "utm": {
      "utm_source": "google",
      "utm_medium": "cpc",
      "utm_campaign": "summer-ac-demand"
    }
  }
}

Review gates

No mapping warnings in this offline demo. Live sync still requires customer authorization, granted scopes, approved app access, and durable storage.