WRAPTORHelp & Docs
The Wraptor handbook

Online Booking — book jobs while you sleep

Your shop gets one public booking page that handles both live appointments and longer project requests. The address is wraptor.app/book/<handle> — your website slug when you have a hosted site, your shop id otherwise. Share it in an Instagram bio, a Google Business profile, an email signature, or anywhere else. A claimed directory listing shows a Book an appointment button as soon as booking is on, and a published shop website runs the same flow inside your own theme at <your domain>/book.

Online booking is open on every plan and during the 7-day free trial. If the plan is cancelled or lapses, the booking link stops taking bookings and deposits — the page reads as not found and the directory listing drops its Book an appointment button — because you couldn't get into the app to confirm or refund them. It comes back on its own when a plan is live again.

Turning it on

Open Scheduling → Services & hours (/scheduling?tab=setup); the panel is headed Services & availability. Three tiles at the top track Open days, Public services and Concurrent capacity as you edit. Everything on the tab saves together with Save scheduling at the bottom.

Public booking page Turn on Accept online bookings. Write the Booking-page note customers read above the form — drop-off instructions, what to bring, what happens next. Your booking link shows the URL with Copy link and Preview; Preview stays greyed out until the page is on. Turning the switch back off makes the link show a plain "This booking link isn't available." panel instead of your page.

Shop availability Set Shop timezone, then open or close each weekday and set its hours. Closed dates takes one-off closures — holidays, vacations, training days. Hours are read in your shop's timezone; customers still see every time in their own. Shop timezone here and the Timezone select under Settings → Communications → Customer messages → Quiet hours are the same setting, so saving either one updates the other.

Booking rules Slot interval, Minimum notice (hours), Booking horizon (how many days ahead customers can book), and Concurrent capacity — the number of exact-time appointments allowed to overlap. If you have active install bays, the smaller of the two wins.

Customer experience Auto-confirm exact times, Customer rescheduling, Customer cancellation, Change cutoff (hours before the appointment when online changes stop), and Reminder lead time (hours). Set the reminder lead time to 0 to turn booking reminders off.

Bookable services One card per service, with Add service above the list. Each card has a colour swatch, the service name, an Active switch, a Public switch (a service must be active before it can be public), reorder arrows and a remove button. Removing a service archives it instead of deleting it, so old appointments keep their history.

Inside the card:

  • Customer-facing description — shown under the service on the booking page.
  • Booking flow — Choose an exact time or Request a preferred date.
  • Where it happens — In shop, Mobile / on-site, or In shop or mobile. Exact-time services are in-shop only; choosing exact time forces In shop.
  • Duration in hours, plus Setup buffer and Cleanup buffer in minutes. Buffers apply to exact-time services only.
  • Starting price — leave it blank and no price shows.
  • Deposit — see below.
  • Category and Image URL — the category groups services; the image feeds your website's service cards.

Pick a booking flow for each public service:

  • Choose an exact time — for in-shop work that fits inside a day. Customers see live availability in their own timezone and reserve one slot. Setup and cleanup buffers shape which times are open but are never shown to the customer. Confirm each booking yourself, or turn on Auto-confirm exact times to reserve the slot immediately.
  • Request a preferred date — for multi-day, mobile, or consult-first work. The customer picks a preferred start date and you confirm the real schedule. A confirmed date request blocks one unit of capacity for the service's full duration, even before you assign a bay or crew.

Deposits

Deposits ride your connected Stripe account. Until payouts are live under Money → Payments the amounts are stored but nothing is charged, and the page runs as a free request flow.

Two places set the amount:

  • Deposit on a service card — that service's own deposit.
  • Fallback date-request deposit on Your booking link — used for any public service that has no deposit of its own. The name is narrower than the behaviour: it covers exact-time services too.

Both booking flows can take a deposit:

  • Request a preferred date — Wraptor creates the customer, an intake job and a sent deposit invoice together, then sends the customer to the pay page. The request still waits on your Confirm.
  • Choose an exact time — the slot is held as a tentative booking for 30 minutes while the customer pays. Payment confirms the appointment on its own and emails the customer "You're booked". If the 30 minutes lapse unpaid, Wraptor releases the slot and the booking stays a pending request at the time they asked for. The deposit link keeps working, but a deposit paid after the release books nothing on its own: the customer is emailed "Deposit received — <shop> will confirm your time", saying the time isn't locked in yet, and you get a Deposit paid, time not held bell. Confirm the request if the time is still free; if it was taken, refund the deposit and decline, or call them with another time. A tentative hold never gets the 24-hour appointment-reminder text.

A paid deposit is the shop's to unwind. Decline refuses with "This booking has a paid deposit. Refund or reschedule it before declining." An unpaid deposit invoice is voided automatically when you decline.

What the customer sees

  1. An instant ballpark (optional) — above the form, "Curious what it'll cost?" invites a photo. Wraptor identifies the vehicle and shows Full wrap and ¾ wrap ranges with square footage. Book this carries the vehicle and the exact range they saw into the request's notes. The photo is never stored and the ballpark is never binding.
  2. Choose a service — cards show your description, the duration (or Date request), where the work happens, and the starting price when you set one.
  3. Pick an available time or Choose a preferred date — exact-time services show live slots in the customer's own timezone; date-request services take a Preferred start date.
  4. Your details — Your name is required, and at least one of Email or Phone. Vehicle is required when everything you sell is vehicle work — wraps or PPF, with or without tint (Money → Quote Settings → What you sell, or your shop type if you never chose). When you also sell print and signs, other work or a line you named yourself, or tint on its own (which may be flat glass), the field reads Vehicle or project (optional) with a neutral example, so a storefront-install or home-tint customer doesn't have to invent a car; the page's intro says "tell the shop about your project" instead of "your vehicle", and on your own website at <your domain>/book it says "tell us about your project". A booking without one shows the service alone where the vehicle would be: your bells (new, Booking moved, Booking cancelled and Deposit paid, time not held), the alert emails, the intake job's title, the Booking requests row, and every email the customer gets — confirmation, deposit, reminder, moved and cancelled — plus their manage page. A Vehicle line in an alert email or in Rex's confirm-or-decline card reads Not given. Anything else? takes notes.
  5. Submit — the button reads Continue with this time, Send date request, or Continue to secure deposit when a deposit applies. A deposit line above it names the amount and, on exact times, the 30-minute hold. "Nothing is charged until the next step" shows under the button only when the chosen service takes a deposit — a booking with no deposit is never charged, so it doesn't promise a charge later.

Without an email address there is no confirmation email and no management link — the customer's only record is the shop's follow-up. The form says so: the details step reads "Email gets you a confirmation and a link to reschedule; a phone number lets the shop text you," and a note under Email repeats what it unlocks. Neither field is validated any differently.

When a service has no open online times, the picker says so and, if your shop has a phone number on file, offers a Call button for it. A shop with no phone gets the message alone. The page shows your logo at its natural proportions (a wide wordmark is not cropped to a square), on a dark plate if you chose that style for white artwork.

The page wears your accent color — the one that themes your app, set in Settings → Shop Settings → Appearance — instead of Wraptor's lime: the chosen service and time, the main button, the Call button, the deposit note and the outline around the field being typed in all take it. The page itself always stays light, whatever theme the customer's device uses. A pale accent (yellow, light cyan) still fills the buttons as itself, but accent-colored text and check marks are darkened just enough to stay readable on white. If no valid color is saved, the page falls back to Wraptor's lime. On your own website at <your domain>/book the form takes your site theme's accent instead, so it matches the header and buttons around it.

What you see

Requests and confirmed appointments land in Scheduling → Online bookings (/scheduling?tab=bookings) with a bell notification, an email to your shop address (the owner's, or a manager's, when the shop has none), and a push to the lock screen of anyone who has turned on Push on this device under Settings → Communications → Team notifications.

The Booking requests card counts open requests, hides handled ones behind Show handled, and gives each row the vehicle and service (just the service when the customer gave no vehicle), the customer's name, phone and email, their notes, the requested date or exact time, and a status chip — Confirmed, Confirming, Declined, Cancelled or Expired — plus Deposit sent or Deposit paid where one applies.

  • Confirm puts the booking on the calendar, creates or links the intake job, and emails the customer. On an exact-time request Wraptor re-checks that a bay (or your concurrent capacity) is still free for the requested time and assigns a free install bay when you have one; if the slot went while the request was waiting, or the time has already passed, it refuses with "That time is no longer available." Changes you made since the request — a new duration, slot interval, hours or booking window, or turning the service off for online booking — don't block it: the booking keeps the length the customer asked for. A booking with no bay is filed at your default location (or the bay's location when one is assigned).
  • Decline emails "About your booking request" with a short "that date doesn't work" note pointing the customer back to you.
  • Open job jumps to the job the booking created. That job is titled <vehicle> — <service> (just <service> when the customer gave no vehicle) and starts on your board's default stage; the customer is matched by exact email address (letter case ignored) and only created when there is no match. See Jobs.
  • Retry confirmation appears when a confirmation was interrupted partway.

Customer changes

When Customer rescheduling or Customer cancellation is on, the confirmation email carries a Manage appointment button to a private link. The page shows the shop's own logo and name, what is Currently booked, and the deadline for changes. Like the booking page it wears your accent color — on the new time they pick, Confirm new time, and the side panel's heading and contact icons, which are lightened where needed so a navy or black accent still reads on the dark panel. The Need help? panel lists your phone and email; the email is left out when it is Wraptor's no-reply address. When no other times are open, the reschedule step offers your phone (or email) to contact the shop instead.

  • Reschedule lists other open exact times and confirms the swap with Confirm new time. It is offered only on confirmed exact-time bookings, before the Change cutoff, and only while the work has not started.
  • Cancel appointment asks once, then releases the slot. A paid deposit removes this button — a refund can never be bypassed online — but it never blocks Reschedule. When a deposit leaves the customer with neither button, the page tells them cancellations go through the shop directly.

Either change updates the calendar, emails the customer, and reaches you as both a bell notification — Booking moved or Booking cancelled, followed by <vehicle> — <service> — and an email headed "<customer> rescheduled" or "<customer> cancelled" with the same. Installers assigned to the visit get the same push the calendar sends — Schedule changed with the new time, or Cancelled. A confirmed date request's cancellation email names its days ("Wednesday, October 14 – Friday, October 16"), never a time. If the customer's connection drops mid-change, the page says "Couldn't reach the shop. Check your connection and try again." instead of spinning; the booking form does the same, keeping what they typed.

Emails and reminders

Every booking email a customer gets is a row on Settings → Communications → Customer messages, and Activity on that page shows what actually sent. See Settings.

  • Booking confirmed, declined or changed is an Always row — it is part of the action and has no switch.
  • Appointment reminder is one switch (on by default) covering both online-booking reminders and the reminder before a scheduled install. The lead time for bookings is Reminder lead time on Services & hours; each confirmed booking gets at most one, and 0 hours turns them off. It is the one booking email that waits for Quiet hours.
  • New booking alert is the email that reaches you. It sits under Settings → Communications → Team notifications → What your team gets as the Bookings switch (on by default), which also covers the bell and push for new, rescheduled and cancelled bookings. Off means the booking still lands in Scheduling → Online bookings, you just aren't told about it.
  • Confirmations, declines and change notices never wait for quiet hours — they go out with the action.
  • Booking mail sends on every plan. It goes out from noreply@wraptor.app under your shop's name, with replies pointed at your contact address, until you are on a paid plan with a mailbox connected under Settings → Communications → Email accounts.

Notes

  • The photo ballpark only runs on booking-enabled shops, and the photo is never stored.
  • The helper line under Fallback date-request deposit still says exact-time deposits are off. They are not — an exact-time service with a deposit holds the slot while the customer pays.
  • The Online bookings tab, Confirm and Decline need the calendar permission; Services & hours needs the settings permission. See Team.
  • Exact-time booking is in-shop only. A mobile or on-site service has to run as a date request until crew and route scheduling ship.
  • The booking page at wraptor.app/book/<handle> and the customer's manage-your-appointment link follow the same rule as the tracking, quote and pay pages: every current plan and the trial drop the Powered by Wraptor line, and only a shop with no plan shows it. The footer on your own website keeps its line on every plan. Neither booking page shows Wraptor's cookie notice.
  • Deposit invoices behave like any other invoice once they exist: see Invoicing & Billing.

Calendar for the schedule the bookings land on, Jobs for the intake job, Customers for the record a booking creates, Website Builder and Directory for where the link lives, Settings for customer messages and quiet hours.