How Online Booking Requests Are Processed
Source: event_requests_controller.rb, event_request.rb
- The create endpoint skips session validation because it is a public-facing endpoint accessible without login
- The company is identified via a composite token: the last 6 characters and the remaining prefix are used together to look up the company
- Phone numbers have whitespace stripped on input; a HubSpot contact request is logged for tracking
- Mechanic schedule is validated before confirming the requested booking time slot
- The clear old requests function is NRMA dealer-specific and destroys ALL booking requests across the company and its sub-companies
- Deleting a booking request also cleans up any associated VV Garage appointment
- Vehicle body type is validated against the company's configured body groups; invalid types are rejected
- Either an email or mobile number is required; and either a company name or a full customer name (first + last) is required
- VV Garage-originated requests skip the auto-matching logic by design to avoid incorrect customer/vehicle linking
Support scenarios
- "A customer says they submitted an online booking but we don't see it" → Check that the company token in the booking URL is correct (composite of last 6 chars + prefix). Also verify the customer provided either email or mobile, and either company name or full name — missing these will cause a silent rejection.
- "All our online booking requests disappeared" → If the company is an NRMA dealer, the clear old requests function destroys ALL requests across the company and sub-companies. This is aggressive by design for NRMA workflows.
- "The customer's vehicle body type was rejected" → The body type must match one of the company's configured body groups. Check the company's body group settings and ensure the online form options align.
- "VV Garage online bookings aren't matching to existing customers" → This is by design. VV Garage requests skip auto-matching to prevent incorrect linking. The customer/vehicle must be matched manually.