Jobs blocked on a part get a tracked order, a supplier chase cadence, and an automatic rebooking the day the part lands.
Bring your stack to a call and we will scope it against how your business actually runs.
Book a callA technician opens a wall, finds the failed component, and discovers it is not on the van. From that moment the job has two possible futures. In the good one, the part is identified by number, quoted, approved, ordered, tracked, received, matched back to the job, and a return visit is booked while the customer still remembers the conversation. In the bad one, the part lives in a photo on the technician's phone, the order lives in a reply-all email thread with the supplier, the ETA lives in somebody's memory, and the job quietly stops existing until the customer calls to ask what happened.
The bad future is the default in most home services businesses, because the moment a job is blocked it leaves every system that was tracking it. It is no longer on today's schedule, so the dispatch board forgets it. It is not finished, so it never reaches invoicing. It is not lost, so it never appears in a lost-deal report. It sits in a gap that no screen in the business displays. Jobs in that gap routinely age for weeks, and the business only learns about them when the customer escalates, when a part shows up and nobody knows which job it belongs to, or when a technician stumbles across a box on a warehouse shelf with a name on it and no date.
The leak has several mouths. Work already performed is never invoiced because the job is not complete, so labor and diagnostic time sit unbilled. Deposits taken against the job sit as a liability. Second trips that should be billable get absorbed as goodwill because nobody can reconstruct what was agreed. Parts get ordered twice, or ordered and then the customer cancels and the part is non-returnable. Suppliers quote an ETA, miss it, and are never challenged, so their quoted dates never improve. And the customers in this state are the angriest customers the business has, because they have already paid something, already had someone in their home, and are now being ignored. Those are the reviews that get written.
One pipeline, Parts and Backorders, which exists for exactly one purpose: no blocked job is ever invisible. Every opportunity in it represents a job that cannot be finished until something arrives.
Created on the opportunity where they describe the order, and on the contact where they describe the customer's state. Exact names, because workflows reference them directly:
BO covers one high-volume, low-judgment conversation: where is my part? BO is given read access to Supplier Promised ETA, Blocking Reason, Return Visit Date and Days Blocked, and answers from those fields only.
Trigger: Parts Request form submitted.
Branches: on Blocking Reason. Awaiting quote and Backordered take the standard path. Part discontinued skips sourcing and routes straight to a human decision task. Access issue at site is not a parts problem - route to dispatch and close the card with that reason.
Actions:
Exit: card reaches Canceled or Sourced Elsewhere, or the contact opts out of SMS - in which case the sequence continues by email only and a note is written to the record.
Trigger: opportunity stage changes to Awaiting Customer Approval.
Branches: if Customer Approval Received is already on, exit immediately. If the contact has no mobile, run the email-only leg.
Actions:
Exit: Customer Approval Received switches on, the card leaves this stage by any route, or the customer replies declining - which closes the card at once and skips the remaining steps.
Trigger: stage changes to Approved - Ready to Order.
Branches: on Supplier Name, so the task body carries the right ordering method and portal for that supplier. Suppliers marked Other get a generic task plus a note to confirm lead time in writing.
Actions:
Exit: stage reaches Confirmed ETA, Part Received, or Canceled or Sourced Elsewhere.
Trigger: daily at 07:30, over every opportunity where Supplier Promised ETA is in the past and stage is not Part Received or later.
Branches: on how many days past the promised date, and on ETA Revision Count. Anything with three or more revisions bypasses the ladder and goes directly to the operations owner as a sourcing decision rather than another chase.
Actions:
Exit: part received, card canceled, or a new ETA is set in the future - which hands the record back to workflow 6 for routine status updates.
Trigger: Parts Receiving Log submitted with matches what we ordered set to yes.
Branches: if the original technician has availability inside five working days, offer only their slots. Otherwise open the Parts Install Pool round-robin. If the receiving log is submitted outside the Receiving Window calendar, hold the customer message until the next window opens so nobody is told a part is ready by an empty warehouse.
Actions:
Exit: appointment booked, or the card is canceled and a return-to-supplier task is raised.
Trigger: every Thursday at 10:00, over every contact tagged parts-hold whose card is not yet at Part Received.
Branches: on Supplier Promised ETA. If a future date exists, send the dated message. If the field is empty, send the honest no-date message - never a guess. If the card is at Awaiting Customer Approval, suppress entirely, because workflow 2 is already messaging that contact and two sequences talking at once reads as chaos.
Actions:
Exit: parts-hold tag removed, or the contact opts out - after which status updates go by email only.
Trigger: Parts Receiving Log submitted with matches what we ordered set to no.
Branches: on whether a nameplate photograph was attached to the original request. With a photo, the task is framed as a supplier error and the photo is attached to the return claim. Without one, the task asks purchasing to re-verify the part number first, because unattributed wrong-part claims rarely go well.
Actions:
Exit: replacement ordered and the card re-enters the normal path, or the operations owner cancels and sources elsewhere.
Trigger: nightly at 02:00, recalculating Days Blocked from Original Job Date for every open card, then selecting those at 30 or more.
Branches: none on the customer side - this workflow deliberately sends the customer nothing. At thirty days the problem is no longer a communications problem and another automated apology makes it worse.
Actions:
Exit: the card is completed or closed. Cards are never re-aged into this workflow twice; the tag prevents a second entry.
Blocked jobs stop being a shadow category. Every one of them is a card on a board with an owner, an age, a promised date and a next action, which means the question how many jobs are we sitting on? has an answer available in a few seconds rather than requiring somebody to ask around.
The customer experience inverts. Instead of the customer being the chase mechanism - calling in, being told someone will look into it, calling again - the business initiates every update. Customers waiting on a part are still waiting, but they are informed, and informed customers escalate far less and leave very different reviews.
Supplier performance becomes evidence. With Supplier Promised ETA and ETA Revision Count recorded on every order, the business can see which suppliers quote dates they hit and which quote dates to win the order. That turns a procurement conversation from a feeling into a record, and it changes which supplier gets called first.
Recovered revenue shows up in two specific places: labor already performed that finally gets invoiced because the job reaches completion, and second trips that get billed because the decision was captured in writing at approval time rather than relitigated weeks later.
None of the above is legal advice. Messaging rules, recording consent and data-retention obligations differ by state and by country, and they change. Confirm the specifics - consent wording, retention periods, recording notices, and what counts as transactional rather than marketing traffic - with the client's own counsel before the first send. If any part of the scope is unclear or the compliance position needs scoping, book a call at bookings.appbo.io.
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