EmailOrderPilot Coming soon

HOW IT WORKS

How purchase order
automation actually works.

Not “AI solves it”. A sequence of bounded steps, each with something to prove.

One incoming purchase order becomes a prepared sales-order draft through four stages: read the document, extract what it states, match it to your catalogue, then let validation decide whether a person needs to look before anyone approves it.

Compare this with manual rekeying

THE FOUR STEPS

What happens between
“email arrived” and “ready to approve”.

The same three names appear in the review screen itself,
so the documentation matches the software you would be looking at.

01 / RECEIVE

Start with the PO.

Bring in a purchase order document. The first version takes PDF and image uploads, with email intake on the roadmap.

02 / PREPARE

Let AI do the groundwork.

Extract the order details, suggest catalogue matches and flag what needs a closer look before anyone commits to it.

03 / APPROVE

Give it the go-ahead.

Check the source beside each value, correct anything wrong, and approve the exact revision before it exports.

STEP BY STEP IN DETAIL

Why every extracted value
comes with an address.

A number on a review screen is only useful if you can find out where it came from within two seconds.

1. What does intake accept today?

An uploaded document: PDF, PNG or JPEG. A text-bearing PDF is read page by page into stored text artifacts. A scan or photograph goes through optical recognition first. Both end up as immutable artifacts that later stages cite, which means the words a reviewer sees are always traceable back to bytes that were actually received. Reading orders directly from a mailbox is planned but not built yet — email intake stays labelled roadmap until it genuinely exists.

2. Is this OCR, or AI document extraction?

Both, in different jobs. Recognition turns pixels into candidate text; extraction decides which parts of that text are order facts and which line each fact belongs to. The pipeline prefers deterministic reading wherever page structure already answers the question, and spends model effort where layout is messy, labels differ between customers, or a table’s columns do not line up cleanly. That keeps cost down and makes behaviour predictable instead of mysterious.

3. How do I verify what it claims to have read?

Each accepted value is shown beside its source highlight: the page number plus character offsets into that page’s text artifact. Reviewing an amount becomes “open page 2, look at this span” rather than re-reading the whole PO hunting for a discrepancy. Facts with no defensible source stay empty and carry an issue code. Printed values on the customer’s document and values derived by arithmetic are kept separately, so a mismatch between your total and their printed total surfaces as a finding instead of being quietly smoothed over.

4. What happens when the file has no readable text layer?

The run stops and parks. A blurred scan, a cropped footer or recognition too unreliable to defend does not get filled in with plausible guesses; blocking issues explain which facts could not be established. Some teams dislike that because they would prefer momentum. The alternative — inventing quantities, SKUs or prices that then travel into picking and invoicing — costs considerably more than one extra look at a bad scan.

5. How does catalogue matching decide a line?

In order of trustworthiness: an exact SKU you publish, then an alias scoped to that specific customer (customers routinely use their own item codes), then a normalised identifier comparison. When two products remain equally plausible, both candidates are listed with alternatives and the method used is reported — the choice stays human. Quantity gets converted only through a conversion rule published in your catalogue, never inferred from how a description reads.

6. What if nothing matches?

The line carries an explicit unmatched flag and comes to review with its extracted wording preserved as written. Unmatched lines are ordinary events, not edge cases: customers add items, discontinue codes and typo part numbers constantly. Reporting them plainly keeps a small correction visible while it is still cheap to fix. See who this suits for the industries where unmatched lines appear most often.

THE HUMAN APPROVAL WORKFLOW

Who decides what counts
as a correct order.

A reviewer’s job here is judgement, not transcription — which is the point of automating the groundwork.

Validation before anyone sees it

Deterministic checks run against the draft built from that document: required fields present, quantities carrying units, arithmetic consistent within each line and in totals, catalogue references resolvable, currency valid. Findings get typed codes, and some of them block approval by default rather than merely warning.

Why blocking issues cannot be dismissed

The review screen offers corrections, not overrides. A patch must name a field it is permitted to correct, hold a value valid for that field, and cite text produced from this very document. Attempts to edit verdicts directly — clearing a blocker flag, rewriting findings, adjusting computed totals — are refused. The issue disappears because validation no longer reports it, not because someone said to ignore it.

What an approval actually commits

Approval binds to one exact revision plus its content hash, recorded for an authorised reviewer with no unresolved blockers. Approving does not export. Exporting is a separate deliberate action on that approved revision only, producing CSV or JSON. Save a correction later and you create a new revision; any live approval attached to the older one stops standing. It feels rigid until somebody edits a signed-off order and nobody can prove which version went out.

Who sees what across a team

Roles are separated: uploading documents, reviewing and correcting them, administering catalogue and policy. Data belongs to one tenant and separation is enforced in the database rather than by trusting application code alone. Catalogue versions and policy versions are immutable snapshots pinned per run, so a decision made last month can be replayed against exactly the rules that applied then, with an audit trail naming who changed what and why.

FAQ

Questions about extraction, matching and review

  • Does EmailOrderPilot create products that my catalogue does not have?

    No. Matching only proposes lines drawn from your published catalogue. If a line on a purchase order cannot be resolved to a product you offer, it stays unresolved and flagged for review instead of becoming an invented item. Building or editing the catalogue itself is a human job.

  • What counts as evidence for an extracted value?

    A pointer into the stored text of the page it came from: which page, which artifact, and the character offsets within it. A reviewer can open that span in the original document and compare. Where no usable source span exists, the fact is left missing with an issue code rather than filled in.

  • How are unit mismatches handled when a customer writes “6 cartons” and I sell eaches?

    Through conversion rules you publish. A carton converts to a count of eaches only if your catalogue states that rule; otherwise the quantity's unit stays unmatched and the line comes to review. Guessing pack size from wording that looks similar is one of the things this pipeline refuses to do — see the packaging-supplier section for why that matters more often than people expect.

  • Is every stage automatic, or does something ever need a person mid-way?

    Both outcomes are normal. When extraction and matching produce a complete, consistent draft, validation clears blocking issues and the run moves to awaiting approval. When facts are missing, ambiguous or contradictory, the run parks with reasons attached so a reviewer knows exactly what to look at. Parking is not treated as failure; silently guessing would be.

  • Can the AI decide on its own that an order is fine?

    No, and that separation is deliberate. Model output proposes values; application code validates them against fixed rules before anything counts as accepted. Confidence reported by a model never turns into acceptance on its own, and no check can be overridden by saying the document looked obvious.

  • What happens if I re-upload the same purchase order twice?

    Repeats are recognised rather than duplicated: intake replays idempotently, and processing attempts carry fencing so a stale or duplicate attempt cannot overwrite newer work. Approved and exported results are never overwritten — a new attempt produces a new run you can compare against the old one. That matters most when customers resend orders after "corrections", which is where manual handling usually goes wrong.

NEXT STEP

Bring your messiest PO
and walk through it.

In development

There is no signup form yet.
Talk to DevCraft about early access before deciding anything.

Talk to the team at DevCraft