← Field notes

From document to system record

PDFs, scans and vendor documents contain the data the business already needs. Turning them into verifiable records — with exceptions routed to a person — is often the whole project.

A document is often the last unstructured step before a structured business process.

A supplier sends a PDF. A technician uploads a service report. A customer emails a purchase order. A carrier provides a delivery document. A manufacturer requires a warranty packet. Someone opens the file, finds the relevant fields, checks them against another system and types the result into a record.

The tempting description of this problem is “extract data from PDFs.”

That is only the first step.

The actual operational problem is:

Turn evidence contained in a document into a verified system record without losing the ability to explain where the record came from.

That is a much more useful product boundary.

Extraction is not the workflow

Suppose an invoice arrives with:

  • vendor name;
  • invoice number;
  • PO number;
  • line items;
  • quantities;
  • prices;
  • tax;
  • total.

Extracting those values is useful, but the invoice is not ready to post simply because the fields were read correctly.

The business may still need to determine:

  • whether the vendor exists;
  • which internal vendor ID applies;
  • whether the PO is open;
  • whether the line items match;
  • whether the goods were received;
  • whether the amount is within tolerance;
  • whether this invoice was already processed;
  • which exception owner should receive a mismatch.

The meaningful pipeline therefore looks more like:

source → capture → extraction → normalization → matching → validation → exception or approved record → destination

The document is just the source payload.

The operational system begins when the extracted information is interpreted in the context of the business.

Keep the original evidence

A document-driven system should never force the operator to trust a transformed record without access to the source.

For every captured document, retain a stable reference to the original payload or to an approved stored representation of it.

Then preserve provenance for the important fields:

  • which source asserted the value;
  • when it was captured;
  • which parser or adapter produced it;
  • what normalized value was created;
  • which rule accepted or rejected it;
  • whether a person reviewed the result.

For example:

Supplier document says promised date = August 29.
Adapter normalized it to 2026-08-29.
PO 48172 currently contains September 3.
Rule supplierdatechanged_v2 classified the record as an exception.

The person reviewing the exception should be able to see both dates and the source document.

That is much safer than a workflow that silently overwrites the ERP.

Normalize before you compare

Documents use business language, not database schemas.

One supplier writes PO #0048172. Another writes Customer Ref: 48172. A third puts the identifier in an email subject.

Dates appear in different formats. Product identifiers contain spaces or dashes. Company names have suffixes. Quantities may be expressed in cases in one document and units in another.

A document-to-system layer should normalize values before it applies business rules.

Typical normalization includes:

  • canonical identifiers;
  • dates and time zones;
  • currency and decimal formats;
  • units of measure;
  • vendor/customer identity;
  • part-number formatting;
  • whitespace and punctuation;
  • known aliases.

The normalized record is not a replacement for the original.

It is the comparable representation the workflow needs.

Matching is often harder than extraction

A document can be read perfectly and still fail to match the correct internal record.

This is one of the most common reasons document automation works well in a demo and poorly in operations.

The system needs an explicit matching strategy.

A strong identifier such as a PO number may be enough.

When no single identifier exists, the system may combine signals:

  • vendor;
  • amount;
  • date range;
  • customer reference;
  • part number;
  • location;
  • open-record status.

The important design choice is to treat ambiguous matching as an exception rather than pretending the best candidate is certainly correct.

A false positive write into an ERP can be more expensive than a manual review.

The system should know when it does not know.

Validation should be business-specific

Generic document extraction tells you what appears to be on the page.

Operational validation tells you whether the resulting record is allowed to move.

For a warranty claim, validation might ask:

  • Is the serial number present?
  • Does the repair date fall within the coverage period?
  • Are the required photos attached?
  • Is the labor code allowed for this manufacturer?
  • Was the failed part returned when required?

For a purchase order acknowledgement:

  • Does the PO exist?
  • Did the supplier change quantity?
  • Did the promised date move?
  • Did the price change?
  • Is a new part mapping required?

For a service closeout:

  • Is a customer PO required?
  • Did the technician sign the report?
  • Are labor hours present?
  • Are vendor costs attached?
  • Is the job ready for billing?

These rules are the operational value of the system.

They turn extracted text into a business decision.

Confidence belongs at the field and decision level

A document system should not have one vague confidence score for the whole file.

Different fields have different risk.

An invoice total may be clear while the PO number is ambiguous. A serial number may be partially obscured. A date may be readable but inconsistent with the related work order.

The system should distinguish between:

  • extraction certainty;
  • identity/matching certainty;
  • rule validity;
  • business approval.

A low-confidence, low-impact field might be acceptable.

A low-confidence identifier used to select the record being updated usually is not.

This is where routing exceptions to humans becomes part of the architecture rather than an afterthought.

A review screen should show the reason, not just the document

Sending the entire document to a person with the message “please review” gives back very little of the automation benefit.

A useful exception screen should explain:

What the system found

PO 48172

What it expected

Promised date: September 3

What changed

Supplier acknowledgement: August 29

Why this needs review

Delivery date differs from current ERP value by 5 days.

What can happen next

Accept new date / keep current date / mark supplier response ambiguous

The source document should remain one click away.

The reviewer is deciding the exception, not re-performing the whole extraction process.

Email is often part of the document interface

In many businesses, the integration endpoint is not an API.

It is an inbox.

Purchase orders, certificates, service reports, warranty documents and supplier confirmations arrive as attachments. The message itself may contain information not present in the file.

A small operational system can treat email as an intake channel:

  1. identify the message and attachments;
  2. associate them with a known customer/vendor/workflow;
  3. capture the original evidence;
  4. parse relevant content;
  5. create or update the workflow state;
  6. request human review when the mapping is uncertain.

This is not an argument for moving the whole email process into a new product.

It is a way to turn one recurring class of inbound messages into structured work.

Do not write directly into a core system too early

The safest first version of document automation often stops before the final write.

It can produce a verified staging record and a review queue.

That gives the team a period to compare:

  • extracted values;
  • matched records;
  • validation results;
  • human decisions.

Once the process is reliable, the system can write approved routine cases directly and reserve human review for exceptions.

This staged rollout is especially useful when financial, warranty, inventory or compliance records are involved.

The cost of one incorrect automated write can outweigh hundreds of successful ones.

The system should learn from resolutions without hiding rule changes

When a reviewer resolves an exception, capture the resolution.

Over time, repeated resolutions may reveal a missing deterministic rule:

Vendor ABC-UK and ABC LIMITED are the same supplier.
Customer X permits a 2% quantity variance.
Manufacturer Y requires photo type Z only for this claim category.

Those observations can become explicit rules.

But the system should not silently change production behavior because a model inferred a pattern.

Rule changes should be versioned and reviewable.

The audit trail should be able to answer why a record was accepted under the rules in effect at that time.

A document workflow can be the whole project

Document automation is often discussed as if the goal were a general document platform.

It does not need to be.

A very valuable small system might support exactly one document-driven workflow:

supplier acknowledgements for open purchase orders;
warranty claim packages for three manufacturers;
service closeout documents before invoicing;
customer POs before order entry.

That narrow scope makes matching, validation and exception handling much more reliable.

It also fits naturally into the gap between existing systems: the document is often the missing bridge between two tools that cannot exchange the information directly.

The objective is not to make documents disappear.

It is to stop making a person repeatedly translate the same evidence into the same record.

← All field notes
See working exampleShow us the manual step →