An ISO 9001 industrial fabricator in the US Midwest receiving roughly 1,800 supplier Certificates of Analysis a month across 240 suppliers, every one of them attached to a PO line by hand. We rebuilt the inbound mailbox into an automated match: classify, parse on LlamaParse, match to the open PO line in Epicor Kinetic, attach the cert against the receiving record.
| Receipt | Supplier | Material | Heat / Lot | Spec | Status |
|---|---|---|---|---|---|
| RCV-48217 | Cleveland-Cliffs | HRPO coil, A1011 CS-B | H-748213 | 9 / 9 | posted |
| RCV-48218 | Hobart Brothers | ER70S-6 weld wire, .045" | L-2241877 | 6 / 6 | posted |
| RCV-48219 | Nucor Steel Gallatin | Galvanized coil, A653 SS | H-552094 | 8 / 8 | posted |
| RCV-48220 | Würth Industry | Grade 8 hex cap, 1/2-13 | L-WI-66312 | 5 / 5 | posted |
| RCV-48221 | Steel Dynamics | HR coil, A1011 CS-B | H-901447 | awaiting parse | pending |
| RCV-48222 | Lincoln Electric | Submerged-arc flux, 880M | L-LE-44827 | 4 / 4 | posted |
| RCV-48223 | NLMK Pennsylvania | HR coil, A36 | H-318662 | 7 / 8 · tensile low | QA review |
| RCV-48224 | Optimas Solutions | Stainless socket cap, A2-70 | L-OPT-71993 | cert not yet sent | pending |
| RCV-48225 | Charter Steel | Cold-finish bar, 1018 | H-625104 | 9 / 9 | posted |
At a glance
One QA team, one ERP of record, one open-PO ledger. The supplier-spec map was the piece quality asked for first, because the cert and the heat number had to land on the receiving record before the coil hit the floor.
The engagement
The stack
ISO 9001 · DPA and NDA signed at kickoff.
Before, the QA inbox
The QA admin opened the shared mailbox, picked up a CofA, and went looking for the open PO. These were the two patterns that drove the cost.
The admin opened the PDF, read the supplier name, the PO reference, and the heat or lot number, then opened Epicor and searched the open PO list. On a clean file, 6 to 9 minutes. On a CofA that arrived without a PO reference, the admin walked to the receiving dock to find the packing slip.
Pre-build baseline: 6 to 9 minutes of QA admin time per clean CofA, longer for files missing a PO reference.
When a coil reached the line before its cert was attached in Epicor, nobody on the floor could connect the heat number on the tag to the cert in the inbox. Scrap and rework rose on those runs, and the QA admin chased the cert backwards from the receiving record.
Pre-build baseline: measurable scrap and rework attributed to certs landing after the run started.
What we built
The pipeline runs the same five stages on every supplier CofA. The supplier-spec map and the heat-number matcher are the parts tuned against this fabricator's PO structure in Epicor Kinetic.
Shared QA mailbox polled on a 5-minute cadence over SFTP. Larger mills push directly to a supplier-named SFTP folder. Every inbound assigned a single document ID before classification.
Document type tagged on ingest. Invoices and packing slips routed away from the QA path. Classification confidence below 0.90 holds the document for a QA admin tag.
LlamaParse on the cert PDF. Supplier name, PO reference, line, heat or lot number, chemistry and mechanical results pulled into the supplier-spec map for that vendor.
Custom matcher resolves the cert against the open PO line in Epicor. Test results checked against the incoming spec on the PO. Below 0.85 match confidence, the cert holds in the QA queue for review.
Cert posted as an attachment on the receiving record in Epicor Kinetic. Test results threaded onto the line. Exceptions routed to a named QA queue with the flag in plain English.
After, the numbers QA signs off
Same QA team, same suppliers, same ERP. The pipeline parsed the cert, matched it to the open PO line, and attached it on the receiving record the same shift it arrived. QA admin time per cert changed shape.
QA still owns the cert. They still stamp pass or fail and they still walk every exception. The difference is that 88 of every 100 inbound CofAs land on the right receiving record without an admin opening Epicor, and the cert reaches the floor in the same shift the coil does.
Handover
The engagement ends at a clean handover. The QA team 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.
PPAP element completeness checked at submission, with a generated missing-items list routed back to the supplier before customer review.
→Manufacturing · 2025Contract manufacturer · NCR routing on the floorNon-conformance reports parsed at the source, routed to disposition with the part history and supplier record threaded in.
→Construction · 2026Mid-market AP · three-way match against the PO and receiptInvoice, PO, and receiving record matched line by line, with exceptions held in a named AP queue against the supplier and PO line.
→Free 30-minute call
You'll leave with a clear next step.