How files get routed
Files are routed by an invisible tag that names the document they are. You never create or pick one: a file gets tagged when an automation ingests it, when a template generates it, or when you run a template on it.
Every file that matters is routed by a tag naming the document it is. You never create, name, or choose one: the tag comes from the documents your templates are built on, so adding a document to a template is the whole setup. Files reference the tag by ID, so renaming a document never breaks links. An untagged file is normal and permanent; it just isn't an extraction target until you run a template on it. Who can see a category is no longer a property of the category itself; it's set per teammate and per client in the dashboard's Team view (see workspace roles). New to the basics? See core concepts.

What the category drives
| Subsystem | What it controls |
|---|---|
| Autofill picker | Filters templates to those whose inputs include this category |
| Gmail/Drive automations | Tags incoming files; routes to the configured extraction template |
| AI extraction | Picks the matching template's field schema |
| Send templates | Attachment rules pull files by category (Send Invoice Batch attaches every Vendor Invoice) |
| Case-detail visibility | Each teammate's and the Clients baseline in the Team view sets who sees the file (per-case overrides can narrow or widen it for one case) |
| Extraction targeting | The Extract toggle controls whether templates can run on files in it at all |
A chip also carries a direction glyph: received/input categories (uploaded or ingested) show a file-import arrow; generated/output categories (a generating template's deliverable, no uploaded sample) show a file-export arrow. In the case's Documents list every file is one row regardless of direction: the chip's glyph and the row's subline ("Added" vs "Generated via ...") tell you how it arrived.
Where the tag comes from
Nowhere you have to visit. A tag appears as a side effect of work you were doing anyway:
- You upload a document into a template. The tag takes the document's name.
- A template declares what it produces. The Output Category field in the template's details dropdown names whatever that template generates.
- An automation routes to a document. The destination step picks the document; the tag follows.
Rename or recolor by renaming the document, in the template editor's Document settings (documents in templates). Who can see what is set per teammate and per client in the dashboard's Team view.
How a file gets its category
- Manual upload (static). Add a document from the case's Documents section. It arrives untagged, which is fine: run a template on it and it takes that template's document tag. Nothing asks you to categorize it. Needs edit access and a PDF or image.
- Automation (stream). A Gmail or Drive automation watches a source and tags matches with its configured category, set directly or derived from its linked document source when the automation is saved. The category fails closed: if it can't resolve, the file is skipped and never lands in a case (no AI guess, no default fallback). The extraction template is optional; without one the file ingests with no extraction and you run a template later from the review modal.
- Chat assistant. Drop a file in chat with a case open; the assistant copies it in and applies a tag when the document confidently matches one, otherwise leaves it untagged. It will not ask you to pick. If it guesses wrong, correct it in your own words ("that's a COI, not an invoice").
Both paths converge: extraction runs against the matching template (when one is configured), the file routes to a case (existing or new) by its identifier, and it appears as a colored chip. Reserve manual upload for genuine one-offs and exceptions; anything recurring (vendor invoices via email, COIs dropping into a Drive folder, scanned permits from a mailroom) belongs on an automation (static vs stream).
Walkthrough: routing vendor invoices from Gmail
Goal: invoices arrive via Gmail, get tagged Vendor Invoice, and flow into a case in the AP workspace.
- Open the AP cover sheet template, click its name (with the chevron) in the toolbar to open the details dropdown, and type
Vendor Invoiceinto the Output Category field; the category is created and linked. (For a template that consumes a category as input, add a source tab pointing at a workspace source with that category, or set the category on an existing source tab via its chevron popover or⋯menu identity section in the document bar above the preview.) - From the workspace sidebar, open the Automations drawer and add a Gmail automation: subject filter
invoice, target categoryVendor Invoice, target templateAP Cover Sheet. - Send a test invoice. The automation ingests it, tags it
Vendor Invoice, the cover sheet runs extraction, and a case appears in the AP workspace.
One category per document type (Vendor Invoice, Permit Application, W-9, Inspection Report); every template and automation handling that type should share the one record.
Source history and retagging
Every ingested file keeps source metadata: the automation that fired, the original Gmail message ID or Drive file ID, and the timestamp. With it you can trace back to the originating email or Drive file, audit which automation processed what, correct an automation's filters after the fact, and prove provenance when downstream systems ask. To correct a tag, tell the chat assistant what the file actually is. The correction preserves all source metadata, and templates resolve by ID so the picker reorders itself.
Troubleshooting
The picker doesn't show the template I expected. It is never empty: every template is listed, with the ones reading this file's document first. If the one you want is far down, the template is probably not built on the document this file is. Open it and check the tabs above the page.
A file got the wrong tag. Tell the chat assistant what it actually is. Source metadata is preserved and the picker reorders.
An automation matched but the file never appeared. The category failed to resolve, so ingestion fail-closed-skipped it. Confirm the automation's category is set (directly or via its linked source). A missing template doesn't skip the file; it only means no extraction ran.