Parsli documentation

Define what to extract

Define what to extract

Fields are how you describe the data you want. Naming them well is the single biggest driver of accuracy.


A Field definition is the list of things you want pulled out of every document. In the app it is Fields & Tables.

The Fields & Tables page showing a field list with types and a table field expanded

The one thing that matters most

Name fields for what you mean, not for what is printed.

Parsli works from meaning, so the name of a field is not a label — it is an instruction. This is where nearly all accuracy problems begin and end.

Instead ofUseWhy
amounttotal_including_taxAn invoice has a subtotal, a tax line, and a total
datedue_dateThere are usually three dates on an invoice
numberinvoice_numberThere is also a PO number and an account number
namevendor_nameThe customer name is on there too

If a colleague could misread the field name, so can the engine. Every minute spent here saves ten spent debugging results.

Adding fields

Open Fields & Tables and add a field with:

  1. A name — precise, as above
  2. A Field type — picked from the dropdown beside the name
  3. Extraction instructions (optional) — the box labelled AI instructions beneath each field, for anything the name cannot carry on its own

You can also let Parsli propose a starting set with AI detect fields: upload one sample and edit what it suggests. Faster than starting from an empty list, and it shows you how the engine reads your document.

Field types

Pick the type that matches the data, not the type that always works. A currency amount typed as text comes back as text — currency symbol, thousands separators and all — and you will be parsing strings downstream forever.

The dropdown shows friendly names; the API returns the value in the right-hand column. They are the same thing.

In the appIn the APIUse for
Text, Rich textstring, richtextNames, descriptions, notes
Email, URL, Phone, Addressemail, url, phone, addressContact details
Number, Decimalnumber, decimalQuantities, amounts, prices
Date, Booleandate, booleanDates, yes/no
Single select, Multi selectsingle_select, multi_selectCategories that must be one of a known set
Object, List, Tableobject, list, tableGrouped, repeating, or nested data

Two worth knowing about specifically:

decimal for money. number is for counts. Using decimal for amounts gets you a JSON number you can total, not a string you have to clean.

Select fields for categories. If a field should only ever be Hardware, Software, or Services, constrain it. You get consistent values instead of a long tail of near-synonyms that break every grouping downstream.

Repeating and nested data

Line items, transactions, anything that appears more than once per document — that is a Table field, not five numbered fields.

Grouped data — a vendor with a name, an address, and a tax number — is an Object field.

This is the most common structural mistake. Full detail: tables and nested data.

When the name is not enough

Some things cannot be expressed in a field name. That is what descriptions and Extraction instructions are for — "use the total after any early-payment discount", "if no PO number is printed, use the invoice number".

Full detail: extraction instructions.

Fields cost nothing

Fields are not metered. A definition with forty fields costs exactly the same as one with four — you are billed by Page, never by field.

So there is no reason to be sparing. If a value might be useful later, extract it now; adding it in six months means reprocessing everything.

Tip: Change one thing at a time and re-run the same document. Changing four things at once tells you nothing about which one worked.

Next

Something here wrong or missing? Tell us — we treat it as a bug.