Document Automation

Automatically sort incoming documents, extract the fields you need and check them against your rules and reference data. Choose which results your team reviews, including missing information and mismatches.

Request demo
Classify & split
"files": 3
"documents": 5
"unknown": 0

See it in action

An invoice checked against its purchase order line by line, then an invoice, a contract and a receipt photo read in one run.

How your document workflow runs

Any document set

PDFs, spreadsheets, CSV, text, images and emails, up to 20 files per run. A single file holding several documents is split and each part classified.

Fields and tables you define

Define the fields and tables you need in plain language. Extracted values include page references and source text where available.

Nine kinds of checks

Required fields, exact and decimal matches, expiry dates, date coverage, table matching, name comparison, Emirates ID and UAE trade license rules.

Your reference data

Compare documents with your own JSON or CSV records, such as purchase orders or customer lists, or with another document in the same run.

People decide the exceptions

Each run ends as clear, discrepancies or incomplete. Review every run, runs with discrepancies or incomplete data, or only incomplete runs.

Email and API intake

Documents arrive over the API or by email to a scenario inbox, and results go back to your system as JSON.

Workflow templates

Start with a template and adapt it to your fields, rules and reference data. Each configured workflow is called a scenario. Runs retain the scenario version they used.

  • Invoice to purchase order, line by line
  • Invoice against your reference records
  • UAE company document package
  • Company document check

API, email and review queue

Start a run with files or an upload, or forward an email. Each run returns the extracted fields, every check result and the outcome; exceptions wait in the review queue.

REST API
Email intake
JSON fields and tables
Result for every check
Google Vision OCR
Paper OS case runs
GET /api/v1/document-automation/runs/{run_id}

# Example response (excerpt)
{
  "status": "completed",
  "machine_result": {
    "machine_outcome": "discrepancies",
    "requires_review": true,
    "facts": [{
      "id": "total",
      "value": "5056.80",
      "sources": [{ "page": 1, "quote": "Total (AED) 5,056.80" }]
    }],
    "checks": [{
      "rule_id": "line_match",
      "status": "fail"
    }]
  }
}

Frequently asked questions

Have a question that is not here?

What is a scenario?

A configured workflow: which documents to expect, which fields and tables to extract, which reference data to compare with, which checks to run and when a person should review. Scenarios are versioned, and every run records the version it used.

How do we handle values that are allowed to differ slightly?

Set a tolerance for decimal comparisons and choose the name-comparison rules for your scenario. Results show which checks passed and which need review.

What files can I send?

PDF, XLSX, CSV, TXT, PNG, JPG and EML, up to 20 files and 100 MB per run: 25 MB per file, 10 MB for CSV and TXT. A file that contains several documents is split, and each part is classified.

What happens to earlier runs when a scenario changes?

Each run records the scenario version it used. You can interpret an earlier result against the fields and rules in that version.

What happens when something does not match?

The run ends as discrepancies or incomplete, with the result of each check. Choose to review every run, runs with discrepancies or incomplete data, only incomplete runs, or none.

Can I match invoices to purchase orders?

Yes. The scenario compares the order reference, buyer, currency, subtotal, VAT, total and line items with a purchase-order document or reference data supplied as JSON or CSV.

Who sets up a scenario?

Our team configures it with you, tests it on your documents and publishes it. Files can then arrive over the API or through the scenario’s email inbox, with review routing set by your scenario.

Try it on your own documents

Request demo