File categories, routing & uploads
Every file carries a category, the workspace-scoped join key that decides which templates can process it, which automation tagged it, which case it joins, and which audiences see it.
A category looks like a label but drives the workspace; get it right and the file routes automatically. Each is a workspace-scoped record with a name (Vendor Invoice, COI), a stable ID, a color, per-audience visibility (Me/admins, Workers, Clients; defaults: admin and worker on, client off), and an Extract toggle (default on; off makes it attachment-only). Files reference categories by ID, so renaming never breaks links. 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 | Per-audience toggles set who sees the file (the ceiling; per-collaborator overrides narrow, never widen) |
| 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. The case file list splits these into a Files Received section (import-glyph chips) and a Files Generated section (export-glyph chips).
Creating and editing categories
No standalone create form exists; categories exist only if a template references them. Two creation flows: type a new name into a template's Output Category field (details dropdown, opened by clicking the template name in the editor toolbar) and the category is created and linked, or pick "Create new" on the category dropdown when uploading a source via the editor's + Add → Upload new file flow.
Edit color, the three audience checkboxes (Me / Workers / Clients), and the Extract toggle from the Workspace Settings drawer (gear icon on the active workspace's sidebar row) → Case List Display section, where each category appears as a row. These per-category changes save immediately; the drawer's Save changes footer governs other workspace fields (mailbox config, list layout) only.
Renaming (two paths, same result): the pencil icon on a row in the Templates page → DOCUMENTS tab (type the new name, Enter saves, Esc cancels), or the template's Output Category field. Renaming doesn't touch the source's file; a category is also a document type holding at most one source, so swap the underlying PDF for a newer revision via Replace PDF on the source (managing document sources).
How a file gets its category
- Manual upload (static). From the dashboard click + Create New; a blank case opens instantly in edit mode, no drawer or confirmation step. Inside, use Edit Case → Upload File; files arrive uncategorized (run any template from the case's Documents section, or tag in one step via the + Category tag-icon button on a file row, without entering edit mode). To attach to an existing case, open Edit case from the case header
⋯menu, pick a file and a File Category, optionally add a description, and click Upload to Case (uploads immediately, no Save needed). 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 (or ask the assistant to attach one); the assistant copies it in and matches the document against your categories, applying a confident match, asking which category when unsure, or leaving it uncategorized. This path does use an AI guess, and you can re-tag it ("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 change a category: Edit case (from the case header ⋯ menu) → Files → category dropdown → pick the new one → Save Changes. The change preserves all source metadata, and templates resolve by ID so the autofill picker updates to whatever templates consume the new category.
Troubleshooting
Autofill picker is empty for a file. The category isn't on any template's input list. Change the file's category (Edit Case → file row → dropdown) or point a template's source tab at it (the tab's chevron popover or ⋯ menu identity section in the document bar). Also check the category's Extract toggle; off means it never appears as a target.
A file got the wrong category. Edit Case → Files → switch the dropdown. Source metadata is preserved and the new template list resolves.
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.