Getting Started
What Tavnit does
Tavnit reads documents and gives you structured data back. You describe the fields you want once, send it invoices, receipts, purchase orders or forms, and get typed rows out — without building a template per layout or writing any parsing code.
Extraction is the starting point rather than the whole product. Once the data exists, it can be normalised, checked by a person, stored, delivered to your systems, or handed to an agent that acts on it. The rest of these docs cover those stages; this page covers the first one.
The vocabulary
Six words cover almost everything in Tavnit. Learn what each one owns and the rest of the documentation reads much faster — most confusion comes from mixing up flows, Collections and Splitters, which do three different jobs.
| Term | What it is | Read more |
|---|---|---|
| Flow | The schema for one document type: the fields you want extracted, plus the rules and outputs attached to it. Everything starts here. | Flows |
| Run | One document processed by one flow. Runs hold the extracted result and the log of what happened. | This page |
| Collection | Groups several flows so incoming documents of unknown type are classified and routed to the right one. | Collections |
| Splitter | Breaks one file that holds several documents into separate parts, then sends each part onward. | Splitters |
| Cleaner | Rules applied to extracted rows: reformat, convert, compute, look up, and trigger actions when something looks wrong. | Cleaners |
| Bucket | A structured table where results accumulate across runs, queryable and chartable inside Tavnit. | Buckets |
If each file holds one document but you do not know its type, use a Collection. If one file holds several documents, use a Splitter. If you already know what the document is, send it straight to the flow and skip both.
Step 1: create a flow
A flow is the schema for one document type. Name it after the document rather than the project — Supplier invoices, not Q1 automation — because that name and description are what a Collection later uses to route documents to it.
- 1On the Flows page, create a new flow and name it.
- 2Upload a sample document. Tavnit suggests the fields it can see, which is faster than typing them from scratch.
- 3Add, rename or delete fields until the schema is exactly what you need.
- 4Switch the flow to Active.
- 5Send one document through and check the result.
Flows walks through each of these steps properly — field kinds, data types and the hints that tell the AI where to look.
The description is optional for extraction but load-bearing for routing. A flow with a clear description can be dropped into a Collection later; one called Flow 3 with no description cannot be routed to reliably.
Step 2: metadata fields and table fields
Tavnit distinguishes values that appear once per document from values that repeat. That single distinction decides the shape of everything downstream — your webhook payload, your Bucket rows and your CSV all follow it.
| Field kind | Appears | On an invoice |
|---|---|---|
| Metadata field | Once per document | Invoice number, issue date, supplier, total |
| Table field | Once per line item | Description, quantity, unit price, amount |
Each field also has a type — text, number, date, mixed or image — and getting it right matters more than it looks: a total typed as text will not sum, compare or chart. Flows covers the full schema in depth, including extraction hints, composite fields and how to fix a field that comes back wrong.
Step 3: send documents in
Four ways in, all producing the same kind of run. Start with a manual upload to prove the flow works, then switch to whichever route matches how documents actually reach you.
| Route | Good for | Setup |
|---|---|---|
| Upload in the app | Testing, and one-off documents | Nothing |
| Documents that already arrive in an inbox | Enable the trigger, forward mail to the address | |
| REST API | Your own systems, and high volume | An API key and a POST |
| MCP connector | Ad-hoc work from an AI assistant | Generate a connector URL |

Open any run to see the extracted fields beside the source document, plus the log of what happened during processing. That log is the first place to look when a result is not what you expected.
What things cost
Tavnit bills in credits. Extraction is charged per page, so a ten-page PDF costs ten credits whether it produces one row or two hundred. The other operations have their own rates.
| Operation | Cost |
|---|---|
| Extracting a document | 1 credit per page |
| Collection routing | 1 credit per document, charged whether or not a match is found |
| Splitting a bundle | 1 credit per page of the source file |
| Cleaning a sweep | 1 credit per 500 non-empty cells, rounded up |
| Agent runtime | 3 credits per minute of browser time, rounded up, charged even if the run fails |
A document that is split, routed by a Collection and then extracted pays for all three. That is usually still worth it, but it is why sending a document straight to the flow — when you already know its type — is the cheaper habit.
Where to go next
Once extraction works, the next step depends on what is wrong with the data or what you need to do with it. These are the three most common directions.
| If you need to… | Read |
|---|---|
| Extract more fields, or fix one that comes back wrong | Flows |
| Fix formats, convert currencies, compute totals, or flag bad rows | Cleaners |
| Have a person check results before they go anywhere | Human in the Loop |
| Get the data into your own systems | Webhooks or the REST API |
| Keep results together and query them | Buckets |
| Act on the data somewhere else on the web | Agents |
| Control who can see and change what | User roles |
