Nine workflows. Every SMS action in all nine is suppressed by sms-opted-out and held outside quiet hours. No workflow here contains a figure of any kind (no price, payment, rate or valuation) and every branch that reaches one routes to a named human instead.
1. Instant Lead Response and Qualification
Trigger: any of: Vehicle Inquiry form submitted; portal lead parsed in; inbound SMS to the sales number; web chat started; missed call on the sales number.
Actions in order:
- Create or match the contact. Write stock_number and vehicle fields from the source. Apply sales-inquiry plus the source tag. Create the opportunity in New Inquiry, named “{{stock_number}}, {{contact.last_name}}”.
- Assign an owner immediately by your chosen rule, and start a 10-minute claim timer. If unclaimed, reassign to the fallback owner and notify the sales manager. A lead with no owner is the failure mode this step exists to prevent.
- BO replies within 60 seconds, every hour of the day. “Hi {{contact.first_name}}, thanks for the inquiry on the {{interest_year}} {{interest_make}} {{interest_model}}. It's still available. Are you looking to drive it this week, and would you be part-exchanging anything?” One question about timing, one about trade. Nothing else.
- Qualification branch. From the replies write purchase_timeframe, payment_intent and has_trade_in, apply hot-this-week, warm-this-month or long-horizon, and move to Contacted then Qualified.
- Price-question branch. If the buyer asks about price, payment, part-exchange value or finance: BO replies “That one's {{owner_first_name}}'s call rather than mine: I'll get him to come straight back to you. Shall I hold a drive in the meantime?”, creates an urgent task for the owner, and does not answer the question.
- Out-of-hours branch. BO continues the whole conversation and books the drive. At 8:30am the owner receives the full transcript plus a brief as an internal notification.
- No-reply branch. At 30 minutes, 4 hours and 1 day send one short follow-up each, then a call task on day 2, an email on day 4, and close to Lost: No Longer Looking on day 10.
Exit: test drive booked, lead closed lost, or a human takes over.
2. Test Drive Booking, Gates and Reminders
Trigger: appointment booked on a test drive calendar.
Gates, checked before confirmation:
- license_verified must be ticked. If not, BO asks and holds the slot as provisional: “I've pencilled you in for {{slot}}, just confirm you hold a full license and bring it with you and I'll make it firm.”
- For Overnight or Weekend Loan, insurance_confirmed must also be ticked. No confirmation is sent without it, no exceptions.
Actions:
- Move to Test Drive Booked, apply drive-booked, write test_drive_date and test_drive_vehicle_stock_number.
- Send the SMS confirmation and an email with the vehicle landing page, the address, what to bring (license, and insurance details for a loan) and the reschedule link.
- If has_trade_in is ticked, send the Trade-In Details form: “If you send a few photos of the {{trade_make}} before you come in, we can have a value ready rather than keeping you waiting.”
- T-24 hours SMS: “Still good for {{slot}} tomorrow to drive the {{interest_model}}? Reply YES or R to move it.” T-2 hours SMS with the address and the owner's direct number.
- T-2 hours internal: notify the sales floor with the stock number so the vehicle is moved to the front, fuelled and clean. This one step changes the first thirty seconds of the appointment.
- No-show branch, start plus 20 minutes: apply drive-no-show, release the vehicle slot, SMS “We had the {{interest_model}} out ready for you. Everything OK? Happy to find another time.”, create a call task, and offer rebooking at day 1 and day 4 before closing.
Exit: debrief form submitted, or no-show sequence completes.
3. Debrief and Objection-Specific Follow-Up
Trigger: Test Drive Debrief form submitted.
Conditions: if the form is not submitted within 2 hours of the appointment ending, nudge the salesperson; at 24 hours escalate to the sales manager. The data in this form is the build's most valuable asset and it decays within the hour.
Actions:
- Move to Test Drive Completed, apply drive-completed, write drive_feedback and objection_noted, apply the matching objection tag.
- Branch on objection_noted: each path is a different sequence, and this is the heart of the build.
- Price: no automated message about price. Immediate task for the owner to call, and a 1-day email restating what the buyer liked, in their own words from drive_feedback, with the specification sheet. Figures only ever come from the human.
- Specification or Color: within 2 hours send up to three alternative stock items matching the stated gap, and write the best one into second_choice_stock_number. “You mentioned you'd prefer the heated seats. Here are two with that spec: {{alternatives_link}}”
- Partner needs to see it: offer a second viewing in the same message, hold the vehicle for a named period, and send an email addressed to both: “Happy to keep it off the forecourt until {{hold_date}} so you can both see it.”
- Comparing another vehicle: send the comparison content the dealership has approved (specification, warranty, history, what is included) and never a word about the rival. Day 2 a call task.
- Timing: ask for the date, write it to a follow-up field, confirm “I'll come back to you nearer {{date}} and leave you alone until then”, then do exactly that.
- Finance terms: book a Finance Consultation. No automated content about terms, ever.
- None stated: standard three-touch ladder (same-evening thank-you, day 2 SMS with one question, day 5 call task) then hand to workflow 9.
Exit: deal advances, or workflow 9 takes over at day 10.
4. Trade-In Appraisal Track
Trigger: has_trade_in ticked, or Trade-In Details form submitted.
Actions:
- Apply has-trade, write the trade fields, set trade_appraisal_status to Not started, and notify the used-car manager with the photos attached.
- If photos are missing, BO asks once for four angles plus the dash and the current mileage. Never ask twice.
- Book a Trade-In Appraisal slot alongside the test drive where possible, so the buyer makes one visit. Set status to Booked.
- After appraisal the manager sets status to Valued, then Offer made. The offer itself is never sent by automation: the workflow creates a task for the manager to communicate it in person or by phone, and only logs the status.
- If trade_outstanding_finance is ticked, create a task to obtain a settlement figure before any offer is discussed, and flag the opportunity so nobody promises a timeline.
- On Accepted, apply trade-offer-made and trade-valued. On Declined, log the reason in trade_condition_notes and continue the deal without the part-exchange.
- If status sits at Valued for more than 2 days with no offer made, escalate to the sales manager.
Exit: offer accepted or declined, or the deal is lost.
5. Finance Application Chase: Internal
Trigger: opportunity moved to Finance Application.
Design principle: this workflow chases staff and lenders, not buyers. The buyer gets one message and then silence until there is news.
Actions:
- Write finance_submitted_date and lender_name. Apply finance-submitted. Send the buyer exactly one SMS: “That's with the lender now: {{business_manager_first_name}} will come straight back to you as soon as there's a decision.”
- At 24 hours with no decision: notify the business manager. At 48 hours: notify the sales manager as well. At 72 hours: create a task to call the buyer with an honest update, because silence past three days loses deals.
- Branch on decision. Approved → move to Finance Approved, apply finance-approved, create a task for the business manager to present the terms. Conditionally approved → write finance_conditions_outstanding, apply finance-conditional, and generate a document request naming only the outstanding conditions. Declined → apply finance-declined, create an urgent task for the business manager to call, and send no automated message of any kind. A declined application is a human conversation.
- On Declined and no alternative found within 5 days, move to Lost: Finance Declined and enroll in a quarterly email-only re-engagement, no SMS.
Exit: decision received and actioned.
6. Deposit and Document Collection
Trigger: opportunity moved to Finance Approved, or a cash buyer agrees to proceed.
Actions:
- Send the Stripe deposit link by SMS and email. On payment, move to Deposit Taken, apply deposit-taken, mark the vehicle reserved on its calendars so no further test drives can be booked on it.
- Move to Documents Pending, apply docs-outstanding, and send the Document Upload link with the four items listed as a checklist.
- The chase is per item. Every 24 hours, check each checkbox and send one message naming only what is still missing: “Almost there. We just need proof of address and we're done: {{upload_link}}” Never send a generic “we still need your documents”.
- At 72 hours with anything outstanding, create a call task for the salesperson. At 5 days, escalate to the sales manager, because a deposit paid and documents stalled is the most expensive kind of stuck.
- When all checkboxes are ticked, clear docs-outstanding, notify the administrator to verify, and on verification move to Ready for Delivery.
- Send finance documents for signature through the e-signature tool and tick finance_docs_signed on completion.
Exit: all documents received and verified.
7. Delivery Prep and Handover
Trigger: opportunity moved to Ready for Delivery.
Actions:
- Offer Handover slots by SMS, book one, write handover_date, apply delivery-booked.
- Create the prep task for the workshop with stock number, accessories_ordered, plate_transfer_required and any agreed remedial work from the debrief notes. Due 24 hours before handover, not the morning of.
- Send the pre-handover email 48 hours out: what to bring, what will happen, how long it takes, and the insurance reminder. The vehicle cannot be released without cover in place.
- T-24 hours internal check: confirm prep complete, documents verified, plates ready. If any is outstanding, notify the sales manager immediately so the appointment can be moved rather than ruined.
- T-2 hours SMS: “All set for {{handover_time}}, the {{interest_model}} is ready and {{owner_first_name}} will be looking after you.”
- On Handover Confirmation submission: move to Delivered, apply delivered, record the delivery mileage into current_mileage and mileage_captured_date so the service side starts with real data.
Exit: vehicle delivered.
8. Post-Delivery, Review and Service Handover
Trigger: opportunity moved to Delivered.
Actions:
- Day 1 SMS: “How's the {{interest_model}} treating you so far? Anything you've not worked out yet, just reply here.”
- Day 3 email: the practical pack, servicing schedule, warranty summary, where to find the manual, the service number, and who to call about what.
- Day 7: satisfaction gate. SMS: “Quick one. How was the whole experience, 1 to 5?” 4 or 5 → wait 1 hour, send the review request with the direct link. 1 to 3 → no review link; urgent task for the sales manager to call that day, plus an internal notification.
- Day 30 email: one genuinely useful item (a feature most owners miss) and a referral ask. No discount language.
- Service handover: write vehicle_year, vehicle_make, vehicle_model, plate_number, current_mileage and mileage_captured_date to the service fields, set service intervals from the interval table, and enroll in the mileage-and-date reminder build. Suppress the first service reminder for 90 days so the buyer is not sold to immediately after delivery.
- Month 11: hand to the service side formally and apply repeat-buyer eligibility for future campaigns.
Exit: day 30 completes and the contact is handed to service.
9. Stall Detection and Lost-Reason Capture
Trigger: scheduled daily at 7:00am, scanning every open opportunity.
Actions:
- Flag anything in New Inquiry over 1 day, Qualified over 3 days, Test Drive Completed over 5 days, Finance Application over 2 days, Documents Pending over 3 days, or Ready for Delivery over 5 days. Each flag creates a task for the stage owner, not a message to the buyer.
- Email the sales manager a single morning digest: stalled deals by stage and owner, drives booked today with their vehicles, debrief forms outstanding, and documents outstanding on deposited deals.
- At 14 days with no buyer engagement, send one honest message: “Are you still thinking about the {{interest_model}}, or have you gone another way? Either's fine. Just helps me know whether to keep it held.” The reply is what populates the lost reason.
- Branch on reply: bought elsewhere → Lost: Bought Elsewhere, and ask the one question worth asking: which vehicle, so the sales manager learns something. No longer looking → Lost: No Longer Looking. Still interested → return to the appropriate stage and create a call task.
- All lost opportunities enter a quarterly email-only re-engagement keyed to purchase_timeframe, with no SMS and a prominent unsubscribe.
Exit: digest sent. Stateless, re-runs daily.