Fillers
What is a Filler?
A Filler completes PDF forms for you. It pairs one or more fillable PDF templates with input slots — each slot extracted by a flow — and maps every form field to a value from those slots. Each Fill produces one completed copy of every template.
Think of a customs declaration that needs data from a commercial invoice and a bill of lading. The invoice and the bill of lading are two inputs, each read by its own flow; the declaration is the template. Drop the two documents on a new Fill and Tavnit hands you the declaration, filled in.
Fillers is a Beta feature. It is visible to every organisation, and its screens may still change.
AI reads the source documents (through their flows) and can sort uploads into slots. Writing values into the form is a plain copy of the mapped values — no AI.
Setting up a Filler
- 1Open Fillers, click “New Filler” and name it after the form it fills (at least 3 characters). A description is optional.
- 2On the Setup tab, add the Inputs: one slot per source document. Click Add input, give it a name (e.g. “Commercial Invoice”) and choose its Extraction flow. Mark it Required or Optional.
- 3Under Template PDFs, click Add PDF and upload each fillable form this Filler completes. Tavnit reports how many fillable fields it detected.
- 4Under Field mappings, click Edit mappings on each template and connect its fields to the inputs (see below), then Save mappings.
- 5Click Save in the header. When the checklist shows Ready to fill, start Fills from the Fills tab.
| Input setting | Effect |
|---|---|
| Required | The fill waits for this input before filling the form. |
| Optional | If the input is missing, its fields are simply left blank. |
Mapping PDF fields
The mapping dialog lists every fillable field in the template. For each one, pick an input and a field of that input's flow. Unmapped fields stay blank.
- Single fields take the first non-empty value of the mapped field in the input's results.
- Table columns: forms often repeat a line per item (
item1_qty,item2_qty…). Tavnit detects these groups; map the column once and each row of the document's results fills its own line, in order. Choose Map each row's field individually to break a group apart. - When the input's flow is linked to a Cleaner, the dialog offers the Cleaner's output columns — including calculated and lookup fields — because that is what the flow's runs end up containing.
- Human fill marks a single field as one a person types during review, with an optional checklist label. See Human review below.
Checkboxes are ticked when the mapped value is yes, true, on, 1, x or checked.
Running a Fill
A Fill collects one completed run per input, then fills every template. You can feed it three ways, and mix them.
| Way in | What happens |
|---|---|
| Upload & route in the New fill dialog, or Add documents on the Fill | Drop all the documents at once. AI reads each first page and routes it to an open slot, then that slot's flow processes it. You watch the routing live; files with no clear match wait for you to pick a slot. |
| Upload file on a slot | You name the slot, so nothing is routed. The file starts a run of the slot's flow. |
| Attach run on a slot | Reuse a completed run of the slot's flow that already exists — nothing is extracted again. |
Uploads must be PDF or image files (PNG, JPG, JPEG). Start empty fill opens a Fill with no documents so you can feed the slots one by one.
When the Fill fires depends on the setting When does the form fill? on the Filler's Settings tab:
| Setting | Behaviour |
|---|---|
| Automatic | Fills as soon as every required input has a completed run. |
| Manual | Keeps collecting documents until someone clicks Fill now. Useful when optional inputs may still arrive. |
Fill now also works on an automatic Filler: if runs are still processing, the Fill waits for them and then fills. Cancel stops collecting; runs already attached are kept.
Inputs, templates and mappings are frozen when the Fill is created. Editing the Filler afterwards affects new Fills only — an input added later cannot receive documents on an existing Fill.
Fill statuses
| Status | Meaning |
|---|---|
| Collecting | Waiting for documents or runs in its slots. |
| Waiting for runs | Fired, but some assigned runs are still processing. |
| Queued / Running | Filling the templates. |
| Awaiting HITL review | Filled and held until a reviewer approves it. |
| Completed | The filled PDFs are ready and the outputs have been sent. |
| Failed | Something stopped it — typically a required input whose run failed. The reason is shown on the Fill. |
| Cancelled | Stopped before the form was filled. |
While collecting, a failed run just leaves its slot empty: upload a replacement or attach another run. Once the Fill is waiting for runs, a failed required input fails the Fill.
Human review
Turn on review in the Filler's Human in the Loop tab and choose the reviewers. Every Fill then pauses as Awaiting HITL review with the forms already filled, and nothing is sent until a reviewer approves.
- The reviewer sees the filled form next to the source documents, can correct any value, and types the Human fill fields — clicking a field jumps to its box on the form.
- Approving re-fills the forms with the reviewer's values and releases the outputs. Human fields left blank can still be approved; they are recorded in the Fill's audit trail.
- Mapping any Human fill field makes every Fill pause for review, even with the switch off, because a person has to type it.
Paused Fills appear in the reviewers' Human in the Loop queue.
Outputs
- On the Fill page: Download filled PDF per template, or Download all, plus a Field values table showing each PDF field, its value and where it came from.
- Email Output: the address receives every filled PDF as an attachment.
- Webhook: POSTs JSON with the fill result and field values — see webhooks.
- An in-app notification for the person who started the Fill.
A Filler can also be a step in a Pipeline, fed by the flows before it.
API
Copy the Filler ID from its tab and call the REST API with your X-API-Key:
| Endpoint | What it does |
|---|---|
POST /api/fillers/<filler_id>/fills | Create an empty Fill; returns its fill_id. |
POST /api/fills/<fill_id>/route-upload | Upload a document and let Tavnit route it to a slot. |
POST /api/fills/<fill_id>/inputs/<input_id>/upload | Upload a document to a named slot. |
POST /api/fills/<fill_id>/inputs/<input_id>/attach-run | Attach an existing completed run (run_id). |
POST /api/fills/<fill_id>/fire | Stop collecting and fill now. |
The filled PDFs reach you through the Filler's email or webhook output.
Who can do what
- Admins and Owners create Fillers. The creator of a Filler can also edit or delete it.
- Every member except HITL Only users can run Fills.
- An inactive Filler cannot start new Fills. Turn it on with the Active switch in the page header.
Template requirements and limits
- Templates must be PDFs with fillable (AcroForm) fields. A flat or scanned PDF has nothing to write into — Tavnit warns you, and fills would stay empty.
- Forms built with Adobe LiveCycle (XFA) are supported: Tavnit fills their AcroForm fields and removes the XFA layer so the values show in any viewer.
- Replacing a template's PDF keeps its mappings. Use a PDF with the same field names, or remap.
- Removing a template deletes its mappings; completed Fills keep their filled copies.
Each slot takes exactly one run. If a form needs data from two invoices, add two inputs.
Troubleshooting
| Problem | What to do |
|---|---|
| “This PDF has no fillable form fields” | The template is flat. Recreate it as a fillable PDF, or use the official fillable version of the form. |
| A field comes out blank | Check it is mapped, that the input's run completed, and that the flow actually extracted a value. Optional inputs leave their fields blank when absent. |
| “Missing required inputs” | A required slot has no run yet. Upload a document or attach a run, then fill again. |
| A routed file stays unmatched | Pick the slot by hand with Assign to slot…. Clear flow names help the router. |
| “Run belongs to a different flow” | Attach a completed run of the slot's own extraction flow. |
| The Fill is stuck on Awaiting HITL review | Check the Filler's reviewers, or open it from the Human in the Loop queue. |
Fixing a mapping does not change Fills that already exist, because each Fill keeps the setup it started with.
