Back to the build library
Automotive
Standard

Declined Work Follow-Up

Every repair a customer said no to becomes a tracked item, re-offered at the moment the reason for declining has probably changed.

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

A technician inspects a vehicle, finds four things, and the advisor presents all four. The customer approves the one they came in for and declines the other three. The advisor writes cust declined on the job card, the car leaves, and the three items cease to exist. They were real when the technician found them. They are still real a month later. Nobody will mention them again unless the same customer happens to come back and the same technician happens to look in the same place.

This is the largest and most reliably ignored revenue source in a service department, and it leaks for a structural reason rather than a sales reason. Declined work is recorded as a note, not as data. A note cannot be filtered, cannot be counted, cannot be sorted by urgency and cannot trigger anything. So the follow-up, if it happens at all, depends on an advisor remembering a conversation from six weeks ago, in between answering the phone and handing out keys. It does not happen.

The second failure is that the few shops which do follow up treat every decline identically. They send the same “just checking in about that work” message to the customer who said “not this month” and the customer who said “I'm selling the car in spring”, at the same interval, with the same wording. The reason for the decline is the single most important piece of information in the whole interaction and it is almost never captured. A deferral on cost needs a different timing and a different message than a deferral on time, which needs something different again from a customer who genuinely disagreed with the diagnosis. This build makes declined work a first-class record with a reason, an urgency rating and a re-offer schedule, and it re-offers each item when the reason for saying no has most likely changed.

02

What gets built

Pipeline and stages

One pipeline, Declined Work, with one opportunity per declined item, not one per visit. If a customer declines three items, three opportunities are created. This is the decision the whole build rests on: an item that cannot be counted on its own cannot be followed up on its own.

  • Logged: the item was declined at the counter and captured with a reason and an urgency.
  • Cooling Off: inside the no-contact window after the visit. Nothing is sent. Length depends on decline_reason.
  • Re-Offer Due: the window has passed and the item is queued for its next touch.
  • Re-Offered: a touch has gone out.
  • Interested: the customer replied, clicked or asked a question without booking.
  • Booked: an appointment exists covering this item; hands over to the Service Bookings pipeline.
  • Completed: the work was done. Close won, and record which touch earned it.
  • Declined Again: re-offered and declined a second time. Re-offer interval doubles, urgency is re-checked.
  • Closed: No Longer Applies: vehicle sold, work done elsewhere, or the item was superseded by other work.
  • Closed: Customer Asked Us To Stop: a terminal stage that is never re-entered. Respecting this is what keeps the whole program credible.

Calendars

  • No new calendars. Declined work books into the existing Express Service, General Service and Repair, Diagnostics and Tires and Alignment calendars from the booking build.
  • Create one booking link per urgency tier: a Safety Item Booking Page that shows the soonest available slots across all calendars, and a Deferred Work Booking Page that shows normal availability.
  • Create a Bundle Booking Page used when two or more open declined items exist for the same vehicle, with a duration set to the combined labor time so the bay is not under-booked.

Custom fields

These sit on the opportunity, one set per declined item, with the summary fields mirrored to the contact.

  • item_description: plain-language description of the work, written for the customer, not the technician. “Front brake pads are at the wear limit”, not “FR/FL pads 2mm”.
  • technician_reason: why it was recommended, in the technician's words. This is what makes the re-offer credible.
  • urgency_rating (single select: Safety (address now, Reliability) will fail soon, Maintenance: should be done, Cosmetic or Optional). This drives every timing decision in the build.
  • decline_reason (single select: Cost this visit, No time today, Wants second opinion, Disagrees with diagnosis, Selling or trading vehicle, Doing it themselves, Will use another shop, Reason not given). Mandatory field. The build does not work without it.
  • declined_date, declined_at_mileage, declining_advisor
  • reoffer_due_date, reoffer_count (number), last_reoffer_date
  • estimate_reference: the job or estimate number in the shop management system, so the advisor can pull the original quote rather than re-quoting from memory.
  • related_items: links other declined items on the same vehicle, so bundling works.
  • customer_stated_timeframe: free text when the customer volunteers one (“after the holidays”, “once the bonus lands”). If they tell you when, that beats every default interval you could design.
  • reoffer_opt_out (checkbox): set only by an explicit request to stop.

Tags

  • declined-open, declined-safety, declined-reliability, declined-maintenance, declined-cosmetic
  • reason-cost, reason-time, reason-second-opinion, reason-disagrees, reason-selling, reason-diy, reason-other-shop, reason-unknown
  • declined-multiple: two or more open items on the same vehicle; switches messaging to bundled.
  • reoffer-1, reoffer-2, reoffer-3: which touch the item is on, so reporting can attribute wins to a specific touch.
  • declined-twice, declined-recovered
  • no-reoffer: the hard stop. Checked as a suppression condition on every single send in this build.
  • sms-opted-out, email-unsubscribed

Forms

  • Declined Item Capture: the internal form the advisor completes at the counter the moment a customer says no. Fields: item description, technician reason, urgency rating, decline reason, customer stated timeframe, estimate reference. It must be fast enough to complete while the customer is still standing there: target four taps and one short sentence. If this form is slow, nothing else in the build will ever have data to work with.
  • Still Interested?: the customer-facing response form on every re-offer. Four options: Book me in, Send me the details again, Not yet: remind me in 3 months, Stop asking about this. The last option writes reoffer_opt_out and applies no-reoffer.
  • Already Done Elsewhere: one question: have you had this work done? Yes closes the item as No Longer Applies and suppresses future offers for that item without affecting the others.
  • Second Opinion Request: for the disagrees-with-diagnosis path: offers a free re-inspection with a different technician, with the photos or readings from the original inspection attached.

BO's role and guardrails

BO runs the re-offer conversations, which are the most delicate messages the shop sends. BO may restate the item in the customer's own prior framing, confirm the technician's reason, offer slots, bundle two items into one visit, process a snooze, record that work was done elsewhere, and route a disagreement to a human.

Hard guardrails. BO must never quote or re-quote a figure, never say the estimate still stands, and never imply a figure has or has not changed. Every pricing question routes to the advisor with the estimate reference attached. BO must never use urgency language on anything rated Maintenance or Cosmetic, and must never escalate the stated risk of an item beyond what technician_reason says. On a Safety item BO states the technician's finding plainly once and offers the soonest slot; it does not repeat the warning across messages, and it does not describe consequences the technician did not write down. If the customer pushes back, disputes the diagnosis, expresses annoyance at being contacted, or mentions another shop's opinion, BO hands off to a human on that message and stops. BO must honor “stop asking” on first mention, in any wording, without asking for confirmation.

Numbers and channels

  • Send from the dedicated service number, in the existing thread, so a re-offer reads as continuity rather than a campaign.
  • Email does the explaining: the item, the technician's reason, what happens if it waits, a photo of the finding where the shop captures them, and the booking link. Photos matter more here than anywhere else in the build. An image of the worn component converts where a sentence does not.
  • SMS does the asking: one item, one sentence, one link. Never list three items in a text.
  • Phone is the primary channel for Safety items and for anything where decline_reason is Disagrees with diagnosis. Those create tasks, not messages.
  • Build one deferred-work landing page per common item type (brakes, tires, suspension, fluids, diagnostics) explaining the symptom, the risk and the work, used as the destination for every re-offer link.
03

How it runs, step by step

One visit, three declined items, followed through to two of the three being completed.

  1. At the counter. A customer comes in for an oil service. The inspection finds three additional items: rear brake pads near the limit, a weeping rear shock absorber, and a cabin filter overdue. She approves the oil service only.
  2. Capture, while she is still there. The advisor opens Declined Item Capture three times: once per item. Each gets item_description in plain language, technician_reason, urgency_rating and decline_reason. Brake pads: Reliability, Cost this visit. Shock: Reliability, Cost this visit. Cabin filter: Maintenance, No time today. On the shock she volunteers “maybe after Christmas”, which goes into customer_stated_timeframe.
  3. Three opportunities created in Logged, each with declined_date, declined_at_mileage 62,400 and declining_advisor. All three are linked through related_items, so declined-multiple is applied to the contact.
  4. Cooling off. All three move to Cooling Off. Because decline_reason is Cost this visit on two of them, those get a 30-day window; the cabin filter, declined on time rather than cost, gets 14 days. Nothing is sent during these windows. A re-offer four days after a customer said no on cost reads as pressure, not service.
  5. Day 14. The cabin filter's window expires first. Because it is a small Maintenance item and another item will be due soon, the bundling rule holds it rather than sending alone, and it waits to ride along with the next touch.
  6. Day 30. The brake pads reach Re-Offer Due. The bundling rule now has two eligible items, so one message covers both: SMS “Hi Nadia: Tom took a look at the rear brakes and the cabin filter when the Golf was in last month. Both are still worth doing and we could cover them in one visit. Want me to send the details? {{reoffer_link}}” She taps through to the deferred-work page, reads it, and does not book. The items move to Interested and reoffer-1 is applied.
  7. Day 33. Because she clicked without booking, an advisor task is created rather than another automated message: “Call Nadia. Rear brakes plus cabin filter, estimate ref 41882.” The advisor calls, she asks for the figure, the advisor gives it from the original estimate. She says the brakes are doable but not yet.
  8. The advisor updates the record rather than closing it: customer_stated_timeframe becomes “mid-January”. reoffer_due_date is overwritten to the 10th of January. A stated timeframe always beats the default interval.
  9. The shock follows its own clock. Its customer_stated_timeframe was “after Christmas”, so its re-offer sits in early January independently. Three items, three schedules, one vehicle.
  10. 10 January. The brake and filter re-offer fires on schedule, referencing the conversation rather than starting fresh: “Morning Nadia. You mentioned mid-January for the rear brakes. I've got Thursday 8:30 or Friday 2:00, and we'd do the cabin filter at the same time. {{bundle_link}}” She books Friday.
  11. Booking handover. Both opportunities move to Booked, and the Service Bookings pipeline takes over with the combined labor duration on the Bundle Booking Page, so the bay is reserved for the real length of the job.
  12. At the visit the technician also confirms the shock. She declines it again. Its opportunity moves to Declined Again, declined-twice is applied, the re-offer interval doubles to 90 days, and its urgency is re-checked. If the technician had upgraded it to Safety, the path would have switched to a call task instead of a message.
  13. Work completed. Brakes and filter move to Completed, closed won, each tagged with the touch that earned it. Both attribute to the second re-offer plus the advisor call, which is what the reporting will show.
  14. Ninety days later the shock re-offers once more. She replies “we sold the Golf”. BO records it, closes the item as Closed: No Longer Applies, sets vehicle_status to Sold on the contact, and stops every open declined-work sequence for that vehicle in one action.
04

Automations in detail

Eight workflows. Every send in every one of them carries the same suppression set: not no-reoffer, not sms-opted-out for SMS, not email-unsubscribed for email, inside quiet hours, and inside the 30-day re-offer frequency cap. Re-check these immediately before each send, not only at enrollment.

1. Declined Item Capture and Classification

Trigger: Declined Item Capture form submitted, or an Authorization Response of Decline or Approve Selected arrives from the booking build.

Actions in order:

  • Create one opportunity per declined item in Logged, named “{{plate_number}}, {{item_description_short}}”. Never bundle items into one opportunity at capture.
  • Write item_description, technician_reason, urgency_rating, decline_reason, customer_stated_timeframe, estimate_reference, declined_date, declined_at_mileage and declining_advisor.
  • Apply declined-open, the matching urgency tag, and the matching reason tag.
  • Branch on count. If the contact now has two or more open items, apply declined-multiple and cross-link every open item through related_items.
  • Branch on urgency. Safety routes to workflow 4 immediately and skips cooling off entirely. Everything else moves to Cooling Off and hands to workflow 2.
  • Branch on reason. Disagrees with diagnosis routes to workflow 5 and skips cooling off. Selling or trading sets reoffer_due_date to 120 days out and suppresses all but one touch.
  • Validation. If urgency_rating or decline_reason is blank, create an immediate task for the declining advisor to complete it and hold the item in Logged. Never let an unclassified item enter a sequence. It will get the wrong copy at the wrong time.

Exit: item classified and routed.

2. Cooling-Off and Re-Offer Scheduler

Trigger: opportunity moved to Cooling Off.

Actions:

  • Set reoffer_due_date by decline_reason: Cost this visit plus 30 days; No time today plus 14 days; Wants second opinion plus 7 days; Selling or trading plus 120 days; Doing it themselves plus 60 days; Will use another shop plus 90 days; Reason not given plus 30 days.
  • Override rule. If customer_stated_timeframe is populated and resolves to a date, use it instead. A customer who told you when always beats a default interval.
  • Urgency modifier. Reliability items shorten the window by one third; Cosmetic items double it. Maintenance items use the base figure.
  • Send nothing during the window. Not one message. The cooling-off period is the part of this build that most shops skip and it is the reason their follow-up annoys people.
  • On reoffer_due_date, move the item to Re-Offer Due and hand to workflow 3.

Exit: item reaches Re-Offer Due, or is closed.

3. Standard Re-Offer Ladder

Trigger: opportunity moved to Re-Offer Due.

Conditions: urgency is Reliability, Maintenance or Cosmetic; passes the bundling check in workflow 6 first.

Actions:

  • Touch 1, day 0: SMS, reason-aware. For reason-cost: “Hi {{contact.first_name}}, {{technician_first_name}} flagged the {{item_description_short}} when the {{vehicle_model}} was in on {{declined_date}}. Still worth doing when the timing suits. Want me to send the details? {{reoffer_link}}” For reason-time: “… it's a {{duration}} job and we've got early slots this week if that's easier. {{booking_link}}” Apply reoffer-1, increment reoffer_count, write last_reoffer_date, move to Re-Offered.
  • Day 3: email, only if no reply. Subject: “The {{item_description_short}} on your {{vehicle_model}}”. Body: the item, technician_reason verbatim, what happens if it waits (the technician's words only), the inspection photo where one exists, and the Still Interested form. No figures. The email says “we'll confirm the figure from your original estimate”.
  • On any click or reply without a booking: move to Interested, stop automated sending, and create an advisor task due same day: “Call {{contact.first_name}}, {{item_description_short}}, estimate ref {{estimate_reference}}”. Humans finish these; automation does not.
  • Touch 2, day 45: SMS. “No pressure at all: just keeping the {{item_description_short}} on your radar. It's still open on our system whenever you want it done. {{reoffer_link}}” Apply reoffer-2.
  • Day 48: the Already Done Elsewhere form by email. “Quick one: have you had this done since? One tap and we'll take it off your file.” A Yes closes the item cleanly and stops you chasing work that no longer exists.
  • Touch 3, day 120: email only, no SMS. The last automated touch. Includes the snooze option prominently. Apply reoffer-3.
  • Day 150: if still open and untouched, close as Closed: No Longer Applies with reason “No engagement”. Do not run a fourth touch; it converts almost nothing and costs opt-outs.

Exit: booked, closed, snoozed, opted out, or touch 3 completes.

4. Safety Item Escalation

Trigger: opportunity created with urgency_rating of Safety.

Conditions: no cooling-off period applies. This track uses people, not sequences.

Actions:

  • Apply declined-safety. Create an urgent task for the service manager, not the advisor, due within 4 hours: “Safety item declined, {{plate_number}} {{item_description_short}}, call today”.
  • Send one SMS, same day, stating the technician's finding once and offering the soonest slot: “Hi {{contact.first_name}}, {{technician_first_name}} noted {{technician_reason}} on the {{vehicle_model}} today. We've kept a slot open tomorrow morning if you'd like it looked at: {{safety_booking_link}}” Never repeat the warning in a later message.
  • Email the written record the same day: the finding, the technician's reason, the date it was declined, and a clear statement that the customer chose to defer. This email is the shop's record as much as it is a communication.
  • Day 3: second call task if no contact has been made. Day 7: escalate to the service manager for a decision on whether to send the finding in writing by post.
  • Day 14: one final SMS, then move to Declined Again and stop. Safety items do not get an endless ladder; they get prompt human contact and then a documented stop.
  • Keep the item visible on the board indefinitely with declined-safety so the next visit surfaces it at the counter, whatever happened to the messaging.

Exit: booked, completed, customer stops contact, or day 14 reached.

5. Disagreement and Second Opinion

Trigger: decline_reason is Disagrees with diagnosis, or Wants second opinion.

Actions:

  • Suppress all automated re-offers for this item. Apply reason-disagrees or reason-second-opinion.
  • Create a task for the service manager within one working day. The conversation that matters here is a human one, and sending an automated nudge to someone who thinks you were wrong makes it worse.
  • Send one email offering a free re-inspection with a different technician, with the original inspection photos or measurements attached: “We'd rather you were confident than take our word for it. If it helps, we'll put the {{vehicle_model}} on a different technician's ramp at no charge and you can see what they find. {{second_opinion_link}}”
  • Branch on Second Opinion Request submission: book onto the Diagnostics calendar as an inspection, and notify the service manager with both the original and new technician named.
  • If the re-inspection confirms the finding, re-create the item with the new technician_reason and route to workflow 3 with a fresh 30-day window. If it does not confirm, close as Closed: No Longer Applies with reason “Not confirmed on re-inspection” and log it for the service manager's coaching review.
  • If no response in 21 days, close the item. Do not chase a disagreement.

Exit: re-inspection completed, or 21 days with no response.

6. Bundling and Next-Visit Surfacing

Trigger: two conditions, either of which runs it: an item reaching Re-Offer Due while other open items exist, or any new appointment being booked for a contact with declined-open.

Actions:

  • Bundling check, run before every send in workflow 3. If another open item on the same vehicle has a reoffer_due_date within 21 days, hold the earlier item and send one combined message when the later one comes due. One message naming two items; never three.
  • Bundled copy: “Two things still open on the {{vehicle_model}}, the {{item_1}} and the {{item_2}}. We could do both in one visit, which saves you a trip. {{bundle_link}}”
  • Set the Bundle Booking Page duration to the combined labor time of the bundled items, so the bay is booked for the real length of the job rather than the length of one item.
  • Next-visit surfacing. When any appointment is booked for a contact with open declined items, create a task on the appointment for the advisor: “Open declined work: {{item_list}}, raise at check-in”, and include it in the T-15-minute internal notification from the booking build. The counter conversation converts better than any message, and this is how it gets prompted.
  • If the customer approves a surfaced item at the counter, move that opportunity straight to Booked and attribute the win to “advisor at check-in” rather than to a touch.

Exit: items bundled and sent, or the visit completes.

7. Declined Again, Snooze and Stop

Trigger: an item is declined a second time, a snooze is taken, or a stop request is received.

Actions:

  • Declined again: move to Declined Again, apply declined-twice, increment reoffer_count, double the base re-offer interval, and re-read urgency_rating in case the technician upgraded it. If it is now Safety, route to workflow 4. Otherwise set the next reoffer_due_date and return to Cooling Off.
  • Cap at three declines. On the third, close as Closed: No Longer Applies with reason “Declined three times” and leave it visible on the board for counter conversations only.
  • Snooze: on a “remind me in 3 months” submission, write reoffer_due_date, return to Cooling Off, and send one acknowledgement: “Done: I'll come back to you in three months and leave it alone until then.” Then actually leave it alone.
  • Stop: on any stop request, in any wording, apply no-reoffer, tick reoffer_opt_out, move every open item for that contact to Closed: Customer Asked Us To Stop, and send one short acknowledgement: “Understood: I won't bring these up again. We're here if you need us.” Never ask them to confirm, never offer an alternative frequency, and never re-enroll them, including from a future visit.
  • Vehicle sold: close every open item as Closed: No Longer Applies, set vehicle_status to Sold, apply vehicle-sold, and stop all sequences for that vehicle in one action.

Exit: terminal in every branch except snooze.

8. Weekly Board Review and Reporting

Trigger: scheduled every Monday at 7:30am.

Actions:

  • Email the service manager the open-item board: counts by urgency, counts by decline reason, items aged over 90 days, and every open declined-safety item by name. The safety list should be short; if it is not, the escalation track is not being worked.
  • List items where urgency_rating or decline_reason is still blank, grouped by declining_advisor. This is the capture-discipline report and it is the one that keeps the build alive.
  • Report recovery: items completed last week, which touch they attributed to, and the bundle rate.
  • Flag any contact who received more than one re-offer SMS in the last 30 days. That is a frequency-cap breach and a bug to fix, not a statistic.
  • Create one task for the service manager: review the five oldest open Reliability items and decide whether to call or close them.

Exit: digest sent. Stateless, re-runs weekly.

05

What changes

What is different afterwards

  • Declined work becomes a measurable inventory. The shop can open a board and see every open item, its urgency, its age, its reason and its next touch date. Before this build, that information existed only as handwriting on closed job cards.
  • The follow-up stops depending on memory. No advisor has to remember a conversation from six weeks ago. The item surfaces itself on the day it is due with the technician's own reason attached.
  • Timing fits the reason. A cost deferral waits a month; a time deferral waits two weeks; a stated timeframe overrides both. The customer who said “after Christmas” hears from you in January, which is the difference between a service and a nuisance.
  • Items get bundled, so visits get bigger. Two small items that would each have been uneconomic to come in for become one worthwhile visit, booked against a realistic combined duration.
  • Safety items get a call, not a text. Routing by urgency means the things that matter most get the channel that works, and the things that matter least never get urgency language attached to them.
  • The shop learns which recommendations do not land. Reporting by item type and decline reason shows where the presentation at the counter is failing, which is coaching information no other report in the business produces.
  • Saying stop actually stops it. One terminal stage, honoured absolutely and on first mention. That is what makes the other eighty percent of customers willing to keep reading.

Metrics to watch

  • Capture rate: declined items logged as a share of declined items that actually occurred, estimated by comparing logged items against inspections performed. This is the first metric to fix; everything downstream is bounded by it.
  • Recovery rate overall: items reaching Completed as a share of items logged, and then split by urgency_rating and by decline_reason. The split is where the insight is: Cost deferrals and Time deferrals usually recover at very different rates.
  • Days from decline to completion, median, by decline_reason. This tells you whether your cooling-off windows are set correctly. If the median is far longer than your windows, lengthen them.
  • Which touch converted. Attribute every completion to reoffer-1, reoffer-2, reoffer-3 or advisor call. If almost nothing converts on touch three, stop sending touch three.
  • Bundle rate: the share of completions that covered two or more items in one visit, and average items per recovered visit.
  • Opt-out rate on re-offers, tracked per touch number. A rising opt-out rate on touch two is the clearest signal that the interval is too short or the copy is too pushy.
  • Declined-again rate, and recovery rate on items that reached Declined Again. Some shops find the second decline is nearly terminal, which is useful. It justifies spending the effort on touch one instead.
  • Items closed as No Longer Applies, split between work done elsewhere and vehicle sold. A high “done elsewhere” figure is a competitive signal worth acting on.
  • Open item inventory by urgency, reported weekly. The count of open Safety items should be near zero at all times; if it is not, the routing is not working.
06

Before you start

Operational prerequisites

  • The capture habit is the build. Every workflow here is downstream of the advisor completing Declined Item Capture at the counter. Agree with the service manager that it is mandatory, brief the advisors on why, and make the form fast enough that doing it is easier than not doing it. If capture does not happen, you have built nothing.
  • Agree the urgency definitions in writing. What counts as Safety rather than Reliability has to be the shop's call, documented, with examples. Without a shared definition, two advisors will rate the same finding differently and the routing will be inconsistent.
  • Make decline_reason mandatory on the form, with Reason not given as an explicit option rather than a blank. A blank reason gets a conservative default interval and worse copy, so give advisors the honest option instead of letting them skip the field.
  • Decide the cooling-off windows per reason before building: a sensible starting set is Cost 30 days, Time 14 days, Second opinion 7 days, Disagrees 0 days with a call task instead of a message, Selling 120 days, DIY 60 days, Another shop 90 days, Reason not given 30 days. Review them against your own data after one quarter.
  • Set up inspection photo capture if the shop does not already have it. A photo of the worn component attached to the re-offer email is the most important single addition to this build.
  • Decide who owns the board. One person reviews open items weekly, clears stale ones and spots Safety items that have not converted.

Integrations

  • Shop management system: estimate_reference is the link back to the original quote. If the system has an API, pull the estimate number and line items automatically through Zapier or Make; if not, the advisor types the reference, which is a small price for keeping figures out of the platform entirely.
  • Digital vehicle inspection tool, if one is in use. This is where photos and measurements live, and connecting it means the technician's own evidence rides along with every re-offer.
  • Google Calendar or Outlook for the booking handover, and the existing booking calendars from the Service Appointment Booking build.
  • Accounting: QuickBooks or Xero, only to confirm completion and close the loop on recovered revenue reporting.
  • Reporting: if the shop wants recovery value rather than recovery count, push completions to a spreadsheet or BI tool where figures can live, rather than storing them in the platform.

Numbers and messaging compliance

  • A2P 10DLC registration must be complete before the first re-offer goes out, with sample messages that match the actual re-offer copy. Register this as its own campaign if your carrier setup allows it. It is recurring, it is clearly commercial, and describing it accurately reduces the chance of filtering later.
  • This is marketing, not transactional. Treat it that way even though it concerns work on the customer's own vehicle. It needs the same explicit consent, the same opt-out handling and the same frequency discipline as any promotional program. Do not route re-offers through a transactional exemption.
  • Opt-out is absolute and immediate. STOP, UNSUBSCRIBE, QUIT, CANCEL and any plain-English equivalent (“stop asking me”, “please don't contact me about this”) all set no-reoffer and move every open item for that contact to Closed: Customer Asked Us To Stop. BO honors it on first mention without asking for confirmation. Put no-reoffer as a suppression condition on every send in every workflow here, and re-check it immediately before each send, not only at enrollment.
  • Quiet hours: no SMS before 8:00am or after 8:00pm local to the recipient. Send re-offers mid-morning on weekdays; a deferred-work message on a Sunday evening lands badly.
  • Frequency cap: one re-offer SMS per contact per 30 days across all items, no exceptions, and never more than one email per 14 days. The bundling rule exists partly to make this cap easy to honor.
  • Never use fear. Keep every safety statement inside the technician's own written finding. Overstating risk to drive a booking is both a consumer-protection exposure and the fastest way to lose the customer permanently.

Data protection

  • Declined work is a record of a recommendation the customer refused. Treat it as sensitive commercial information: restrict who can export the board and do not share it outside the service department.
  • Keep figures out of the platform. Store estimate_reference and let the shop management system hold the numbers. This keeps pricing out of marketing automation and out of any export.
  • Set a retention period for open items. An item declined four years ago on a vehicle that has not been back is not a lead; it is stale data. Close items automatically after a defined period of no contact.
  • Inspection photos are personal data when attached to an identifiable customer. Store them where the shop already stores vehicle records and link to them rather than duplicating them across systems.
  • None of the above is legal advice. Consent wording, how safety recommendations may be communicated, retention periods and any consumer-protection requirements in your jurisdiction should be confirmed with the client's own counsel before launch.

Scoping

Capture discipline, whether a digital inspection tool is connected and how much history the shop wants migrated are the variables that move 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