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.

Updated 6 min read

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.

Diagram of a category tag at the center, connected by dotted routing lines to a template blueprint, an email conveyor, an extraction lens, an attachment envelope, and a visibility shutter
Fig. 01One tag, five subsystems. The category is the join key that connects templates, automations, extraction, send rules, and visibility.

What the category drives

SubsystemWhat it controls
Autofill pickerFilters templates to those whose inputs include this category
Gmail/Drive automationsTags incoming files; routes to the configured extraction template
AI extractionPicks the matching template's field schema
Send templatesAttachment rules pull files by category (Send Invoice Batch attaches every Vendor Invoice)
Case-detail visibilityPer-audience toggles set who sees the file (the ceiling; per-collaborator overrides narrow, never widen)
Extraction targetingThe 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.

1Set the AP cover sheet's output category2Add a Gmail automationSend a test invoice
  1. Open the AP cover sheet template, click its name (with the chevron) in the toolbar to open the details dropdown, and type Vendor Invoice into 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.)
  2. From the workspace sidebar, open the Automations drawer and add a Gmail automation: subject filter invoice, target category Vendor Invoice, target template AP Cover Sheet.
  3. 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.

A file's source metadata
Filenameacme-invoice-0412.pdf
CategoryVendor Invoice
SourceGmail automation (subject: invoice)
Message ID18c...f2
Ingested2026-04-07

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.

We use cookies to keep you signed in and improve the product. See our Cookie Policy.
Manage preferences