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.

Beta

Fillers is a Beta feature. It is visible to every organisation, and its screens may still change.

Filling itself is deterministic

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

  1. 1Open Fillers, click “New Filler” and name it after the form it fills (at least 3 characters). A description is optional.
  2. 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.
  3. 3Under Template PDFs, click Add PDF and upload each fillable form this Filler completes. Tavnit reports how many fillable fields it detected.
  4. 4Under Field mappings, click Edit mappings on each template and connect its fields to the inputs (see below), then Save mappings.
  5. 5Click Save in the header. When the checklist shows Ready to fill, start Fills from the Fills tab.
Input settingEffect
RequiredThe fill waits for this input before filling the form.
OptionalIf 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 inWhat happens
Upload & route in the New fill dialog, or Add documents on the FillDrop 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 slotYou name the slot, so nothing is routed. The file starts a run of the slot's flow.
Attach run on a slotReuse 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:

SettingBehaviour
AutomaticFills as soon as every required input has a completed run.
ManualKeeps 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.

A Fill keeps the setup it started with

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

StatusMeaning
CollectingWaiting for documents or runs in its slots.
Waiting for runsFired, but some assigned runs are still processing.
Queued / RunningFilling the templates.
Awaiting HITL reviewFilled and held until a reviewer approves it.
CompletedThe filled PDFs are ready and the outputs have been sent.
FailedSomething stopped it — typically a required input whose run failed. The reason is shown on the Fill.
CancelledStopped 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:

EndpointWhat it does
POST /api/fillers/<filler_id>/fillsCreate an empty Fill; returns its fill_id.
POST /api/fills/<fill_id>/route-uploadUpload a document and let Tavnit route it to a slot.
POST /api/fills/<fill_id>/inputs/<input_id>/uploadUpload a document to a named slot.
POST /api/fills/<fill_id>/inputs/<input_id>/attach-runAttach an existing completed run (run_id).
POST /api/fills/<fill_id>/fireStop 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

ProblemWhat 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 blankCheck 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 unmatchedPick 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 reviewCheck the Filler's reviewers, or open it from the Human in the Loop queue.
Change the Filler, then start a new Fill

Fixing a mapping does not change Fills that already exist, because each Fill keeps the setup it started with.