Back to the build library
Automotive
Standard

Service Appointment Booking

Service bay booking that captures vehicle, mileage and symptoms before the appointment, so every advisor opens the job with the car already in context.

Industry
Automotive
Build effort
Standard
Typical time to launch
2–3 weeks
On this page
The problemWhat gets builtHow it runsAutomations in detailWhat changesBefore you start
Want this built for you?

Bring your stack to a call and we will scope it against how your business actually runs.

Book a call
01

The problem

Most service departments book appointments on the phone, into a paper calendar or a shared spreadsheet, with a service advisor who is simultaneously trying to hand keys to a customer standing at the counter. The booking that results is a name, a phone number, a day and a rough description: brakes making a noise. Nobody captured the year, the engine variant, the mileage, whether a warning light is on, or whether the customer intends to wait or leave the car. The technician discovers all of it at 8:40am with the vehicle already on the lift and the bay committed.

That missing context is where the money leaks. A job quoted as a 45-minute brake inspection turns into a three-hour job because the vehicle needed a different pad set that is not on the shelf. A diagnostic that needed a two-hour bay was booked into a 30-minute express slot, so the next four customers wait. A customer who assumed they would wait is told it is an all-day job and leaves angry without authorizing anything. Parts ordering is reactive instead of pre-staged, so the shop absorbs the cost of overnight freight or loses the sale entirely when the customer takes the car elsewhere.

The second leak is the bookings that never happen. Service inquiries arrive after hours, through a web form that goes to an inbox nobody watches until Monday, or as a missed call during the lunch rush. There is no reminder ladder, so no-show rates stay high and empty bays are not backfilled. There is no record of who inquired and did not book, so the department has no idea how much demand it is turning away. This build closes both leaks: it captures full vehicle context at the moment of inquiry, routes the booking into the correct bay type with the correct duration, and runs the reminder and recovery sequences automatically.

02

What gets built

Pipeline and stages

One pipeline, Service Bookings, with nine stages. Every service inquiry lives here from first contact to invoice.

  • Inquiry Received: any inbound contact asking about service, from any channel.
  • Vehicle Details Needed: a human or BO has engaged but year, make, model, mileage or symptom is still blank.
  • Quote or Callback Pending: the job needs an advisor to speak to the customer before a slot can be held.
  • Appointment Booked: a calendar slot is held with the correct bay type and duration.
  • Confirmed: the customer has replied YES to the 24-hour reminder.
  • Vehicle In Shop: keys taken, job card opened.
  • Awaiting Authorization: inspection done, additional work found, waiting on the customer.
  • Ready for Collection: work complete, customer notified.
  • Collected and Closed: vehicle gone, invoice raised, follow-up sequence armed.

Two terminal stages sit outside the forward flow: No-Show and Lost or Declined. Both feed re-engagement automations rather than being deleted.

Calendars

Build one calendar per bay type, not one calendar per advisor. Capacity is a property of the shop, not of the person answering the phone.

  • Express Service: 30-minute slots, oil and filter, tire rotation, wipers, bulbs. Two concurrent slots if you run two express bays.
  • General Service and Repair: 90-minute slots, one per general bay.
  • Diagnostics: 120-minute slots, capped at one per day per diagnostic technician. This cap is the single most valuable constraint in the build.
  • Safety and Emissions Inspection: 45-minute slots.
  • Tires and Alignment: 60-minute slots.
  • Drop-Off Window: a 7:30am to 9:00am arrival calendar with high concurrency, used for all-day jobs where the slot is the arrival, not the bay.

Set a 60-minute minimum booking notice on every calendar except Drop-Off Window, a 14-day booking window, and buffer-after of 15 minutes on General Service and Diagnostics so advisors have write-up time.

Custom fields

Create these on the contact record so they persist across visits, and mirror the visit-specific ones onto the opportunity.

  • vehicle_year, vehicle_make, vehicle_model, vehicle_trim_or_engine
  • plate_number and vin_last_8: ask for the last eight of the VIN, never the whole thing, and never store it in free-text notes.
  • current_mileage (number) and mileage_captured_date (date). The pair that makes the mileage-based reminder build possible later.
  • symptom_description (long text, customer's own words)
  • warning_light_on (single select: None, Check Engine, ABS or Brake, Airbag, Oil or Temperature, Other)
  • service_type_requested (single select, matching the six calendars)
  • wait_or_dropoff (single select: Waiting, Dropping Off, Needs Pickup)
  • loaner_requested (checkbox), shuttle_requested (checkbox)
  • preferred_advisor (single select, your advisor names)
  • last_service_date, last_service_mileage, next_service_due_mileage
  • open_declined_work (long text). The hook the declined-work build reads from.
  • parts_prestage_note (long text). What the parts counter should pull the night before.

Tags

Keep the tag list short and operational. Tags drive automation entry and exit; they are not a filing system.

  • service-inquiry, booking-held, booking-confirmed
  • vehicle-details-missing, vehicle-details-complete
  • waiter, dropoff, loaner-needed
  • safety-escalation: applied whenever warning_light_on is ABS or Brake, Airbag, or Oil or Temperature.
  • no-show, rebooked-after-no-show
  • in-shop, awaiting-auth, ready-for-collection
  • sms-opted-out: set by the platform on any STOP reply and used as a hard suppression condition on every SMS step.

Forms and intake

  • Service Booking Request: the public form, embedded on the service page and linked from every reminder. Fields in this order: name, mobile, email, plate, year, make, model, mileage, service type, symptom description, warning light select, wait or drop off, preferred day, preferred time of day, SMS consent checkbox with explicit opt-in language.
  • Quick Rebook: a three-field form (plate, preferred day, service type) sent to known customers whose vehicle details are already on file. Prefill from the contact record so a returning customer taps twice.
  • Shop Arrival Check-In: an internal form the advisor completes at the counter: mileage confirmed, keys taken, authorization limit, best contact number for today. Submitting it moves the opportunity to Vehicle In Shop.
  • Authorization Response: a one-question form sent when additional work is found, with Approve All, Approve Selected, Decline and Call Me options.

BO's role and guardrails

BO answers first on SMS, web chat and the after-hours missed-call text-back, and its job is narrow: capture vehicle context and get a slot held. BO may ask for year, make, model, plate, mileage, symptom and whether the customer waits or drops off. BO may offer available slots from the calendar that matches the stated service type, and may book them.

BO must not: quote a price, a labor rate or a parts cost; diagnose a fault or suggest what the cause is; promise a completion time for a diagnostic job; or offer a loaner without checking the loaner availability field. Configure BO to hand off to a human immediately when the customer mentions smoke, a burning smell, a brake pedal going to the floor, a temperature warning, steering or an accident: these set the safety-escalation tag and ring the service line rather than continuing the chat. BO also hands off on any pricing question with a single line and a booking link rather than a number.

Numbers and channels

  • One dedicated service number, separate from the sales number, used as the sending number for all service SMS and as the destination for the service web form's click-to-call.
  • Missed-call text-back on the service number, firing within 30 seconds during opening hours and immediately out of hours.
  • Inbound call routing: a short menu that sends service callers to the advisor queue and, if unanswered after five rings, to voicemail-plus-SMS so the inquiry is captured as a contact rather than a voicemail nobody plays back.
  • Email for confirmations, authorization requests with itemized work descriptions, and the collection receipt. SMS for reminders and anything time-critical.
  • Web chat on the service page, with BO answering and the same intake questions as the form.
03

How it runs, step by step

One customer, one vehicle, from a 9:40pm text to the invoice.

  1. At 9:40pm a customer texts the service number: Hi, my car is making a grinding noise when I brake. Can you look at it this week? The number is new, so the platform creates a contact, applies service-inquiry and vehicle-details-missing, and creates an opportunity in Inquiry Received.
  2. BO replies within seconds: “Thanks for reaching out: I can get that booked. What's the year, make and model, and the plate? And roughly what's the mileage?”
  3. The customer answers over three messages. BO writes vehicle_year, vehicle_make, vehicle_model, plate_number and current_mileage, sets mileage_captured_date to today, and swaps vehicle-details-missing for vehicle-details-complete.
  4. BO asks the safety question: “Any warning lights on the dash right now?” The customer says no. BO sets warning_light_on to None. Had they said the brake light was on, the safety-escalation tag would have fired and the conversation would have handed off with a call-now instruction.
  5. BO asks whether they want to wait or drop the car off, writes wait_or_dropoff, and asks the symptom in their own words into symptom_description: grinding, worse when cold, front end.
  6. Because the symptom is brake-specific and no warning light is set, the routing branch selects General Service and Repair, not Diagnostics. BO offers the next three open 90-minute slots. The customer picks Thursday 10:00am.
  7. BO books the slot. The opportunity moves to Appointment Booked, booking-held is applied, and the confirmation goes out by SMS and email. The email includes the address, what to bring, the drop-off policy and a reschedule link.
  8. Overnight, the pre-stage digest emails the parts counter a single list of tomorrow-plus-two bookings with vehicle, mileage and symptom, so brake pads for that year and model are checked against stock before the customer arrives.
  9. Wednesday 10:00am, 24 hours out, the reminder fires: “Hi Dana, you're booked Thursday 10:00am for the front brake noise on your 2019 CR-V. Reply YES to confirm or R to reschedule.” She replies YES. The opportunity moves to Confirmed and booking-confirmed is applied.
  10. Thursday 8:00am the day-of reminder lands with the advisor's name and the direct number. At 10:04am the advisor opens the Shop Arrival Check-In form, confirms mileage, records the authorization limit and takes the keys. The opportunity moves to Vehicle In Shop.
  11. At 10:50am the technician finds the front pads at the wear limit plus a seized rear caliper slide. The advisor logs the additional work and triggers the authorization request. The opportunity moves to Awaiting Authorization, and the customer receives an email with each item described plainly plus an Approve All, Approve Selected, Decline or Call Me response form.
  12. She approves the pads and declines the caliper service. The approved items return the opportunity to Vehicle In Shop; the declined caliper item is written to open_declined_work with the date and mileage, which is what the declined-work follow-up build reads later.
  13. At 2:15pm work is complete. The advisor marks it done. The opportunity moves to Ready for Collection and the customer gets: “All done, Dana: your CR-V is ready. We're open until 5:30. Reply here if you'd like us to hold it overnight.”
  14. She collects at 4:40pm. The advisor closes the job; the opportunity moves to Collected and Closed, last_service_date and last_service_mileage are written, next_service_due_mileage is set, the invoice and receipt go out by email, and the post-service follow-up sequence arms for 48 hours later.
04

Automations in detail

Eight workflows. Every SMS action in all eight carries the same two suppression conditions: contact does not have sms-opted-out, and the send falls inside quiet hours or is held until it does.

1. Inbound Service Inquiry Capture

Trigger: any of: Service Booking Request form submitted; inbound SMS to the service number from a contact with no open Service Bookings opportunity; web chat conversation started; missed call on the service number; voicemail left.

Actions in order:

  • Create or match contact on cell number. Apply service-inquiry.
  • Create opportunity in Inquiry Received, named “{{plate_number}}, {{service_type_requested}}”, falling back to the contact name when the plate is blank.
  • Branch on source. If the source is the form and year, make, model and mileage are all populated, apply vehicle-details-complete and jump to workflow 2. Otherwise apply vehicle-details-missing, move to Vehicle Details Needed and hand the conversation to BO.
  • Branch on hours. Inside opening hours: notify the advisor queue by internal notification and wait 3 minutes for a human to claim the conversation before BO replies. Outside hours: BO replies immediately with “Thanks for messaging {{shop_name}}, we're closed right now but I can get you booked. What's the year, make and model, and the plate?”
  • Branch on missed call. If the trigger was a missed call, send within 30 seconds: “Sorry we missed you. This is {{shop_name}} service. What's going on with the vehicle and what's the plate? I can check the calendar from here.”
  • Safety branch. If the first inbound message contains smoke, burning, overheat, temperature light, brake pedal, steering, airbag, accident or towed: apply safety-escalation, send “That one we should talk through now: please call us on {{service_number}}. If the vehicle isn't safe to drive, don't drive it.”, notify the service manager, and exit the workflow so no further automation fires.

Exit: opportunity reaches Appointment Booked, or safety-escalation is applied, or the opportunity moves to Lost or Declined.

2. Vehicle Detail Chase

Trigger: tag vehicle-details-missing applied.

Conditions: only runs while the opportunity sits in Inquiry Received or Vehicle Details Needed.

Actions:

  • Wait 45 minutes. If still missing, SMS: “Still here when you're ready: I just need the year, make, model and plate to hold you a slot.”
  • Wait 4 hours. Send a one-tap link to the Service Booking Request form, prefilled with whatever is already known: “Quicker option. Tap here and it's three fields: {{form_link}}”
  • Wait 1 day. Email with the same link plus the shop's hours and address.
  • Wait 2 days. Create a task for the advisor: “Call {{contact.first_name}}, service inquiry, vehicle details never supplied”, due same day.
  • Wait 3 days. Move the opportunity to Lost or Declined with loss reason “No vehicle details” and remove service-inquiry.

Exit: vehicle-details-complete applied, any inbound reply, or the opportunity leaves the two permitted stages.

3. Booking Confirmation and Routing

Trigger: appointment booked on any of the six service calendars.

Actions:

  • Write service_type_requested from the calendar booked. Move the opportunity to Appointment Booked. Apply booking-held.
  • Branch on wait_or_dropoff. Waiting → apply waiter, and if the booked calendar is Diagnostics, send “One thing to flag: diagnostics usually run two hours or more, so you may prefer to leave the car. Reply L if you'd like a lift home and we'll arrange the shuttle.” Dropping Off → apply dropoff and include the key-drop instructions in the confirmation. Needs Pickup → create a task for the shuttle driver with the address.
  • Send the SMS confirmation immediately: “Booked: {{appointment_day}} {{appointment_time}} for {{service_type_requested}} on the {{vehicle_year}} {{vehicle_make}} {{vehicle_model}}. We're at {{shop_address}}. Reply R to reschedule.”
  • Send the email confirmation: calendar invite attached, address and parking, what to bring, drop-off and collection policy, the advisor's name, and the reschedule link.
  • Branch on loaner_requested. If ticked, create a task for the loaner coordinator due the day before and send “I've put in a loaner request. We'll confirm availability by {{day_before}}.” Never promise the loaner in the confirmation itself.
  • If the booking is more than 7 days out, schedule an additional touch at T-7 days: “Just keeping this on your radar: {{appointment_day}} at {{appointment_time}}. Still good?”

Exit: appointment canceled, or opportunity reaches Collected and Closed.

4. Reminder Ladder

Trigger: appointment start time, counted backwards.

Conditions: opportunity is in Appointment Booked or Confirmed; appointment not canceled.

Actions:

  • T-48 hours, email only. Subject: “Your service appointment: {{appointment_day}}”. Restates the vehicle, the work requested and the arrival instructions.
  • T-24 hours, SMS. “Hi {{contact.first_name}}, you're booked {{appointment_day}} {{appointment_time}} for {{symptom_short}} on your {{vehicle_year}} {{vehicle_make}}. Reply YES to confirm or R to reschedule.”
  • If the reply is YES: move to Confirmed, apply booking-confirmed. If R: send the reschedule link and remove booking-held. If no reply, wait 6 hours and resend once: “Quick nudge: reply YES and we'll keep the bay held for you.”
  • T-3 hours, SMS, only if still unconfirmed. “We've still got {{appointment_time}} held. If today doesn't work, reply R and we'll move it rather than hold an empty bay.”
  • T-2 hours, SMS, confirmed bookings only. “See you at {{appointment_time}}. {{advisor_first_name}} is looking after you: direct line {{service_number}}.”
  • T-15 minutes, internal only. Notify the advisor with the full vehicle context, symptom, mileage, warning-light status and any open declined work.

Exit: appointment canceled, opportunity reaches Vehicle In Shop, or no-show is applied.

5. Parts Pre-Stage Digest

Trigger: scheduled daily at 4:00pm.

Conditions: runs on working days only; skips if no qualifying bookings exist.

Actions:

  • Collect every opportunity in Appointment Booked or Confirmed with an appointment in the next 72 hours.
  • Email the parts counter and the service manager one digest, one line per booking: time, plate, year, make, model, trim or engine, mileage, service type, symptom, parts_prestage_note, and whether the customer waits or drops off.
  • Flag any booking where vehicle_trim_or_engine is blank, since that is the field most likely to cause the wrong part to be pulled.
  • Create one task per unconfirmed booking inside 48 hours: “Confirm by phone: {{plate_number}} {{appointment_time}}”.

Exit: digest sent. This workflow is stateless and re-runs daily.

6. No-Show Recovery

Trigger: appointment start time plus 20 minutes, opportunity still in Appointment Booked or Confirmed.

Actions:

  • Internal notification to the advisor: “No arrival: {{plate_number}}, call before releasing the bay.” Wait 10 minutes for the advisor to mark arrived.
  • If still not arrived, move to No-Show, apply no-show, release the calendar slot, and SMS: “We held {{appointment_time}} for you today and didn't see the {{vehicle_make}}. Everything OK? Reply here and I'll find you another slot.”
  • Wait 1 day. Send the Quick Rebook link: “Still happy to look at the {{symptom_short}} whenever suits. Pick a time here: {{rebook_link}}”
  • Wait 4 days. Email: “We're holding your vehicle details on file: rebooking takes two taps.” Include the link.
  • Wait 14 days. One final SMS, then move to Lost or Declined with loss reason “No-show, not rebooked”.
  • If the contact rebooks at any point, apply rebooked-after-no-show and, on the new booking, suppress the T-48 email but run the T-24 and T-3 steps plus an extra T-30-minute reminder.

Exit: new appointment booked, or sms-opted-out applied, or the 14-day step completes.

7. Additional Work Authorization

Trigger: opportunity moved to Awaiting Authorization.

Actions:

  • Apply awaiting-auth. Send email immediately with each recommended item as its own line, written in plain language, with the technician's reason, plus the Authorization Response form link. No figures live in the automation; the advisor enters them on the job.
  • Send SMS at the same time: “We've finished the inspection on the {{vehicle_make}} and found a couple of things. I've emailed the details. Tap through to approve, decline or ask us to call: {{auth_link}}”
  • Wait 20 minutes. If no response, SMS: “No rush, but the car's on the lift, even a ‘call me’ reply helps us plan the bay.”
  • Wait 40 minutes. Create an urgent task for the advisor to phone, and notify the service manager.
  • Branch on response. Approve All → return to Vehicle In Shop, clear awaiting-auth. Approve Selected → return to Vehicle In Shop and append the unapproved items to open_declined_work with today's date and current_mileage. Decline → append all items to open_declined_work and return to Vehicle In Shop for the originally booked work only. Call Me → create an immediate call task and pause the ladder.

Exit: any response received, or the advisor manually closes the authorization.

8. Collection, Follow-Up and Review

Trigger: opportunity moved to Ready for Collection.

Actions:

  • Apply ready-for-collection. SMS immediately: “All done. The {{vehicle_make}} is ready. We're open until {{closing_time}} and the keys are at the service desk.”
  • Email the itemized summary of work completed, any items left on open_declined_work, and next_service_due_mileage.
  • If not collected 90 minutes before closing, SMS: “We close at {{closing_time}}, want us to keep it secure overnight? Reply H to hold.”
  • On move to Collected and Closed: write last_service_date, last_service_mileage and next_service_due_mileage; send the receipt by email.
  • Wait 2 days. SMS: “How's the {{vehicle_make}} driving since Thursday? Reply 1-5, 5 being perfect.”
  • Branch on score. 4 or 5 → wait 1 hour, send the review request: “That's great to hear. If you've got 30 seconds, a review helps a lot: {{review_link}}”. 1 to 3 → do not send the review link; create an urgent task for the service manager to call within the business day and notify them immediately.
  • Wait 21 days. Email the maintenance reminder with next_service_due_mileage and the Quick Rebook link, then hand the contact to the mileage-and-date reminder build.

Exit: sms-opted-out applied, a new Service Bookings opportunity is created for the same contact, or the 21-day step completes.

05

What changes

What is different afterwards

  • Every job card starts with context. The technician opens the morning with year, model, mileage, symptom in the customer's words and warning-light status already on the record. No discovery at the lift.
  • Bay type matches job type. Diagnostics can no longer be booked into a 30-minute express slot, because the routing branch reads service type and symptom and only offers slots from the matching calendar. The daily diagnostic cap stops one hard fault from eating the whole schedule.
  • After-hours inquiries become bookings. The text that arrived at 9:40pm is a confirmed Thursday appointment before anyone opened the shop. Nothing waits in an inbox.
  • Parts are pre-staged, not scrambled for. The overnight digest gives the counter two days of visibility into what is coming in and what it is likely to need.
  • Declined work is captured as an asset. Every item a customer says no to is written to a field with its date and mileage, so it can be re-offered rather than forgotten.
  • The advisor stops being the system. Reminders, confirmations, authorization requests and collection notices all run themselves. The advisor handles exceptions and conversations, not the calendar.

Metrics to watch

Instrument these from day one so the build can be judged on its own numbers rather than on impressions.

  • No-show rate, measured weekly, split by confirmed versus unconfirmed bookings. The gap between those two is the value of the reminder ladder.
  • Inquiry-to-booking conversion, overall and split by channel (inbound call, missed-call text-back, web form, web chat, SMS).
  • After-hours inquiry conversion as its own line. This is usually the clearest single win and the easiest to show.
  • Bay utilization by calendar: booked hours against available hours for Express, General, Diagnostics, Inspection and Tires. Watch for one calendar running at capacity while another sits idle, which means your slot durations or routing rules need adjusting.
  • Vehicle-detail completeness at arrival: the percentage of in-shop opportunities with year, make, model and mileage all populated. Target high nineties; anything lower means BO's intake script or the form order needs work.
  • Authorization turnaround: median minutes from authorization request sent to customer response. This is the metric that most directly converts into bay throughput.
  • Additional-work approval rate, and the value of items written to open_declined_work, which becomes the input to the declined-work follow-up build.
  • Reschedule rate versus cancellation rate. A build working well converts would-be cancellations into reschedules.
06

Before you start

Operational prerequisites

  • Decide your bay capacity honestly. Count physical bays by type and the technicians qualified to work each one. The calendars encode real capacity; if you overstate it the build will cheerfully overbook you.
  • Agree the service-type-to-calendar routing table with the service manager before building, and write it down. Which symptoms go to Diagnostics rather than General is a judgment call the shop must own, not a default.
  • Set opening hours, lunch cover and the drop-off window on each calendar, plus holiday closures for the next twelve months.
  • Name one owner for the pipeline. Stages only stay accurate if one person is accountable for the board reflecting the shop floor.

Integrations

  • Calendar sync: two-way sync to Google Calendar or Outlook for each advisor so personal commitments block availability.
  • Your dealer or shop management system: if it exposes an API, connect it through Zapier or Make so vehicle records and job cards do not have to be keyed twice. If it does not, keep the platform as the booking and communication layer and accept one re-key at the counter; do not build a fragile scraper.
  • Payments: Stripe for deposits on diagnostic bookings and for pay-by-link collection, if the shop wants either.
  • Accounting: QuickBooks or Xero for invoice sync.
  • Review platform: connect Google Business Profile before launch so the post-service review request has somewhere to send people.

Numbers and messaging compliance

  • Provision the dedicated service number early and complete A2P 10DLC registration (brand and campaign) before you switch any SMS automation on. Registration can take several business days and carriers filter unregistered traffic, so do this first, not last. If you send to Canadian or UK numbers, check the separate requirements for those destinations.
  • Explicit opt-in on every intake path. The booking form needs an unticked consent checkbox with plain language naming the shop and the types of message being consented to. BO's first SMS reply should carry the same disclosure. Store the consent timestamp and source on the contact.
  • Opt-out handling must be absolute. STOP, UNSUBSCRIBE, QUIT and CANCEL all set sms-opted-out. Put that tag as a suppression condition on every single SMS action in every workflow, not just the marketing ones. Include HELP handling. Appointment reminders for an already-booked job are generally treated as transactional, but if a customer opts out, stop texting them and switch them to email and phone.
  • Quiet hours. No outbound SMS before 8:00am or after 8:00pm in the recipient's local time zone, and set the platform's quiet-hours window to hold and release rather than drop messages. Honor the stricter of carrier guidance, local rules and the shop's own policy.
  • Call recording: if you record service calls, play a disclosure at the start of the call and check whether your jurisdiction requires all-party consent.

Data protection

  • Collect the minimum vehicle identifier you need. Use the plate and the last eight of the VIN; there is no operational reason to store a full VIN in a marketing platform.
  • Keep payment details out of the platform entirely. Take card payments through Stripe's hosted flows so card data never lands in a contact record or a note.
  • Set a retention policy for symptom notes and call recordings, and restrict who can export contact data.
  • If you serve customers in a jurisdiction with specific privacy requirements, the consent language, retention period and deletion process should be reviewed by someone qualified. Nothing here is legal advice: confirm the specifics with the client's own counsel before launch.

Scoping

Slot durations, the number of calendars, how deeply the shop management system integrates and whether loaner management is in scope all change the shape of this build. Book a call at bookings.appbo.io to scope it against your shop.

Field notes

Build it with us.

Every build on this page is something we configure, test and hand over with the SOPs your team needs to run it.

Book a call