An HVAC wholesale distributor running 3,400 emailed POs a month into Prophet 21, with a 48-hour posting SLA the order desk kept missing on Fridays. We rebuilt the order-entry path as a pipeline: LlamaParse on the intake, Prophet 21 as the system of record, a review queue the order desk now runs without us.
| Order # | Contractor | Lines | Posted | Source PDF | Status |
|---|---|---|---|---|---|
| SO-481207 | Midland Mechanical Services | 14 | 09:42 | po-44218.pdf | posted |
| SO-481208 | Cornerstone Refrigeration | 6 | 09:51 | cornerstone-q3-9821.pdf | posted |
| SO-481209 | Allied Climate Control | 22 | 10:08 | allied-po-7714.pdf | posted |
| SO-481210 | Riverside HVAC & Plumbing | 9 | (pending) | riverside-3308.pdf | new account |
| SO-481211 | Summit Heating & Air | 11 | 10:23 | summit-po-2204.pdf | posted |
| SO-481212 | Brookline Commercial HVAC | 38 | (pending) |
| brookline-po-0912.pdf |
| part substitution |
| SO-481213 | Northgate Service Co. | 5 | 10:41 | northgate-44910.pdf | posted |
| SO-481214 | Heartland Refrigeration | 17 | 10:55 | heartland-po-6601.pdf | posted |
At a glance
One order desk, one system of record, one posting SLA. Everything else was implementation detail.
The engagement
The stack
ISO 27001 · ISO 9001 · DPA and NDA signed at kickoff.
Before, the order desk
The desk worked. It worked the way order desks work in distribution when a team has keyed POs for a decade and the account managers know every contractor by voice. These were the patterns we found in discovery.
The order desk opened the PO PDF in one tab, the Prophet 21 order entry screen in another, and keyed header and line items by eye. On a clean PO with five lines, 7 minutes. On a 40-line PO from a larger contractor, 25 minutes and the risk of skipping a line grew with every scroll.
Pre-build baseline: 7 to 25 minutes per PO depending on line count.
POs landed across the week, but contractors sent the week's leftovers on Friday afternoon. Monday morning arrived with a backlog the desk worked down through Wednesday. The 48-hour posting SLA was a Monday-to-Thursday SLA in practice, and the account managers knew it.
Pre-build baseline: approximately 22% of Friday POs posted beyond the 48-hour SLA.
Wrong quantity, wrong part number, wrong unit of measure. The desk caught some at entry, the warehouse caught the rest at pick. Either the order went out short, or the contractor got a call back asking to confirm. Both cost trust on accounts Hexaa was brought in to protect.
Pre-build baseline: approximately 4% line-level error rate, measured against pick exceptions.
What we built
The pipeline follows the same five stages we run on every distribution engagement. The details below are the ones we actually implemented for this desk, not a generic template.
Shared mailbox polled on a 5-minute cadence. Contractor portals polled on a 15-minute cadence. Fax-to-email gateway routed to the same inbox. All normalised to a single order ID before extraction.
Document type tagged on ingest. New POs, amendments to an open order, and unrelated mail (statements, invoices) routed to separate queues. Classification confidence below 0.90 holds the document for a human tag.
Contractor account, ship-to, requested date, and line-level part number, quantity, unit of measure. LlamaParse primary, Google Document AI fallback for scanned or faxed POs LlamaParse cannot parse inside the SLA.
Part numbers resolved against the Prophet 21 product master. Stock checked against the branch handling the order. Credit hold flagged before post. Below 0.90 confidence, the order holds for desk review.
Clean POs posted to Prophet 21 via the Order API. Source PDF attached to the order record. Exceptions routed to a named desk queue with the flag in plain English.
After, the numbers the desk signs off
Same desk, same contractors, same branches, same Prophet 21 configuration. The pipeline keyed the PO and handed the desk a clean draft. What changed was the cycle, not the team.
The desk still owns the exception queue. They still sign off every PO with a superseded part or a credit flag. The difference is that on a clean Monday, the pipeline posts half the morning's POs before the desk logs in. On a heavy Friday, the desk sees a queue of 30 flagged lines instead of 180 untouched PDFs.
From the desk
Friday used to cost us Monday. Now Friday just costs us Friday, and we can staff around that.
Operations directorHVAC distributor, Kansas City
Handover
The engagement ends at a clean handover. The order desk runs the pipeline; Hexaa stays on call for a fixed retention period, then steps back.
Related cases
Each links to a named client, a named document, and the system the clean data lands in. We publish only what the client signed off to publish.
Faxed POs routed across three operating entities, keyed into Infor SX.e with entity resolution at capture. Built on LlamaParse and LandingAI.
→Distribution · 2024Food service distributor · Contract pricing verified pre-postContract pricing checked against the customer's schedule before the order posts. 1,100 contract customers, credit-memo queue down 82%.
→Construction · 2026Shared-service AP · three-way match against the ERPPO, receipt, and invoice reconciled inside the AP queue. Clean matches posted to the ledger; exceptions routed to a named A/P analyst.
→Free 30-minute call
You'll leave with a clear next step.
The PO says one part number, the product master says the part has been superseded, and the branch has none of the old stock anyway. The pipeline compares the PO line to the master, flags the mismatch, and holds the line until the desk clears it. The desk sees one flagged line, not a whole order queue.