Text messaging
BayDocket texts customers from a dedicated phone number that belongs to your shop, set up with BayDocket during onboarding. Every conversation lives in Messages — one thread per customer — and each repair order carries its own slice of the same conversation, so a reply lands where the work is.
Role note: texting is front-desk work. Owners and Advisors see Messages and the repair order’s Messages panel; Technicians do not have Messages in their sidebar.
The inbox
Open Messages from the sidebar. The left pane lists one thread per customer, newest activity first; click a row to open the conversation on the right.

The inbox. ① The thread list — one row per customer, newest first. ② A repair order divider — the conversation is grouped by the job it was about. ③ The composer, with the reply-target chip above it.
Each row shows the customer’s name, the last message, and — when the shop was texting about a specific job — the repair order it relates to. A thread is unread when the last message came from the customer: the row gets a dot and a bold name, the page header counts how many threads need a reply, and the sidebar’s Messages entry carries the same count so you see waiting texts from anywhere in the app. Replying clears the unread mark for the whole shop.
Inside a thread, messages sit under small repair order dividers. A divider for an open repair order shows its status and total and an Open ↗ link straight to it; older, closed repair orders show when they happened. The Customer ↗ button in the thread header jumps to the customer record. The inbox refreshes itself every few seconds — an incoming text appears without a reload.
Replying
- Click the customer’s thread.
- Check the Reply attaches to chip above the message box. Every text is filed against a repair order; the chip defaults to the customer’s most recent open repair order (or their most recent one if none is open). Click the chip to pick a different repair order.
- Type your message and press Enter, or click the send button.
Note: if the customer has no repair order at all, the composer is disabled — there is nothing to attach the text to. Create a repair order first (see Your first repair order).
A customer’s reply threads itself automatically — no matching or lookup on your part. Texts you send from elsewhere in the app land in the same thread too: approval requests carry an Approval request tag (see Customer approvals), and pay links sent from an invoice appear as ordinary outbound messages (see Getting paid online).
Delivery status and retries
Under your latest outbound message, a small mark shows where it stands: Queued, Sending, Sent, or Delivered. You never have to guess whether a customer actually got the text.
A failure is louder, wherever it sits in the thread:
- The message carries a Failed mark and a Retry button. Hover the mark to see the carrier’s reason. Retry sends the same text again, against the same repair order.
- The thread’s row shows a Failed to send badge, and a red alert appears above the thread list with a View button that jumps you to the failed message.
- A message stuck in Sending for more than five minutes is treated the same way as a failure, so a silently wedged text still surfaces.
Texting from a repair order
You do not need to leave a repair order to text its customer. Every repair order has a Messages panel showing the conversation for that job, with the same bubbles and delivery marks as the inbox.

The Messages panel on a repair order. The approval request lives in the header — Send approval request, or Resend approval request once one has gone out — next to Open in Messages ↗, which opens the customer’s full thread in the inbox.
The composer here has no target chip: replies attach to the repair order you are looking at. The customer record and the vehicle record can open a thread too — the vehicle’s Message owner button lands you in the inbox on the owner’s conversation (see Customers and vehicles).
Unknown numbers
A text from a number that matches no customer is not dropped — it appears at the top of the thread list tagged Unknown number. The same happens when a number matches more than one customer: BayDocket holds the text rather than guessing.

An unknown number. The text is held until you decide: Link to customer files it on the right person; Dismiss clears it.
To claim one:
- Click the unknown-number row.
- Click Link to customer, search, and pick the right person. The text moves into their thread — and if it was a STOP or START, that takes effect for the linked customer.
- Or click Dismiss if it is a wrong number or spam.
You cannot reply to an unknown number until it is linked — a reply needs a repair order to attach to.
STOP, HELP, and opting out
Opt-out is handled for you. When a customer replies STOP (or another standard opt-out word — STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT, REVOKE, OPTOUT), BayDocket marks them opted out immediately. From then on the composer is disabled for that customer, with the reason shown, and approval requests and pay links to them are blocked too.
Note: only the customer can restart texting, by replying START (or UNSTOP or YES) from the same number. There is no switch on your side — that is how text-messaging consent works, and it protects your shop.
A HELP reply gets an automatic response. A keyword only counts when it is the customer’s entire message — “please stop by tomorrow” is treated as a normal reply, not an opt-out.
Tip: if a customer says they never got a text, check the thread before resending — the delivery mark or a Failed reason usually answers it faster than the customer can.