Skip to main content

Views and Table Columns

The transaction tables in DocAI Fabric (Playground, My Work Queue, Evaluation, and Memory) can be tailored to each team and each role. Two building blocks make this possible:

  • Custom columns add project-wide columns that show extraction field values or transaction metadata.
  • Views save a column layout together with a filter as a named tab above the table, and assign it to the roles that should see it.

Together they let a project designer or supervisor prepare focused work lists, so reviewers open their page and immediately see the right transactions with the right columns, without configuring anything themselves.

Who can do what

Creating and managing views and custom columns is controlled by the permission grant project.configure_transaction_view.

CapabilityWho
Create, edit, and delete views; assign them to roles; add or remove custom columnsUsers with the project.configure_transaction_view grant. Among the built-in roles these are Admin, Designer, and Supervisor. Custom roles can be given the grant too.
Use viewsEveryone. Each user sees the tabs whose audience includes one of their roles, plus the built-in All tab.
Adjust their own current tabEveryone. Any user can show or hide columns, reorder them, change sorting, and apply filters on top of their active tab. These tweaks are personal, affect nobody else, and the Reset action returns the tab to its saved state.

Views are a convenience, not a security boundary. Which transactions a user can see is always governed by their data visibility permissions, regardless of any view.

Views

A view is a named tab above the table that combines:

  • a column layout: which columns are visible, their order, widths, and sorting;
  • a filter: filter bar settings and/or an advanced filter expression;
  • an audience: the roles that see the tab;
  • optional defaults: the roles that land on this tab when they open the page.

Every page also has a built-in All tab that shows everything and cannot be edited.

Managing views

On any transaction table, open Views and choose Manage views (or click the + tab). From there you can create a view from the current table state, rename it, change its audience and defaults, reorder tabs, or delete a view.

Views belong to the page where you create them. The dialog shows which page you are configuring, for example "Manage Views: My Work Queue". To create views for a different page, open that page and manage views there. The role pickers only offer roles that can actually open the current page, so you cannot accidentally assign a Playground view to a role that will never see the Playground.

A useful detail for personal work lists: the filter value @me on the Assignee field always resolves to whoever is looking at the table. A single shared view filtered on Assignee = @me shows each reviewer their own work.

Every project starts with a seeded My Work view on the My Work Queue page: not-completed transactions that are assigned to the viewer or unassigned. It is a normal view and can be edited or removed.

Example: two review steps

Suppose a project has two review steps, "Data Check" and "Final Approval", handled by different people, with a supervisor overseeing both. One way to set this up:

  1. Create custom roles for the reviewers, for example "Data Check Reviewer" and "Final Approval Reviewer", each with review permissions scoped to its step. Role and review-step scoping are managed in user administration.
  2. On the My Work Queue page, create a view per step:
    • "Data Check" with filter Step = Data Check AND Assignee = @me OR unassigned, audience and default: Data Check Reviewer.
    • "Final Approval" with filter Step = Final Approval, audience and default: Final Approval Reviewer. Give each view the columns that step needs, for example amount and vendor columns for the data check, and an approval-status column for the final step.
  3. Create supervisor views on the same page:
    • one view per step (audience: Supervisor) to inspect each queue;
    • an "Urgent" view across all steps, for example Priority = high AND Status != completed, audience and default: Supervisor.

Each reviewer now opens My Work Queue and lands on their own step's tab with a tailored column set. The supervisor gets per-step tabs plus an urgent-work overview. Nobody has to build filters by hand.

Custom columns

Beyond the built-in columns (status, step, priority, and so on), users with the manage grant can add two kinds of project-wide columns. Both are available on every table page, can be sorted, and can be used in filter expressions and views.

To add one, open the column menu on any table header and choose Manage columns, or ask the AI assistant.

Field columns

A field column shows values of extraction fields, for example an invoice number or a total amount. The values are indexed from extraction results, and existing transactions are backfilled automatically when the column is created.

One column can read several fields, so a single heading covers the per-class equivalents of the same thing: a "Document Number" column can read Invoice Number on invoices and Contract Number on contracts. When more than one field has a value, the column either shows the first non-empty value or all values, depending on the combine setting you choose.

Keep field columns few

Each field column adds indexing work for every processed transaction and loading work for every table page. A handful of well-chosen columns works well; promoting a large share of your extraction fields to columns will slow the tables down. Metadata columns are much cheaper, because their values already live on the transaction record.

Metadata columns

A metadata column shows a transaction metadata value by key, for example a customer name or an order id supplied by the system that submitted the transaction. Like field columns, one metadata column can read several keys with the same fallback-or-show-all behavior. Metadata columns need no backfill and add no processing cost.

Four email columns are ready-made. Every project already has Email Subject, Email From, Email Received At and Email Attachments Count, filled in automatically on transactions imported by an email connector. They are hidden by default, so switch them on in the column menu (or in Manage Columns) when a project works with email. Once shown, they sort, filter and save into views like any other column. If you would rather define your own column on one of these keys, for example to combine it with another key or to rename it, just add it: your column replaces the ready-made one.

You do not have to remember the key names. The key box suggests:

  • In your transactions: the keys present in the transactions currently listed, whatever put them there (an import connector, an API upload, a Data Transform step). Internal processing state, such as which step a transaction is waiting on, is left out.
  • The import connectors: the keys each connector writes, even before the first transaction arrives. Email connectors, for example, write Subject, From, To, Cc, Received, Priority, Attachments and Message ID, and every import also records which connector and source type it came from.

Picking a suggestion fills in a readable column name, such as "Received" rather than email_received_at, which you can then change. Any key can still be typed by hand.

Click a metadata column's header to sort by it, exactly like a built-in column. How it sorts is set by the column's value type, described below.

Columns fill in per transaction

A column reads whatever the transaction carries. An email column stays empty on transactions that did not come from email, so on a project with several sources it is worth keeping such columns hidden in the views where they do not apply.

Value types

Field and metadata columns hold text as it arrives, which is rarely how you want to read it: sorted alphabetically, 10 comes before 2, and a delivery date reads as a raw timestamp. Give the column a value type and it sorts, displays and filters the way the values actually mean.

Pick the type in Manage Columns, in the same dialog where you create or edit the column.

TypeSorts byYou can filter with
Auto (default)numbers when every value in the column is a number, otherwise alphabeticallyis, is not, contains, starts with, ends with, is empty
Textalways alphabetically, ignoring casethe same as Auto
Numberthe value, so 2, 9, 10 rather than 10, 2, 9greater than, less than, at least, at most, between
Date and Date and timethe point in time, whatever shape the value hasbefore, after, on or before, on or after, between
Yes / NoNo before Yesis, is not

Auto covers most columns without any setup, which is why it is the default. Set a type when you want the column to answer a range question: "invoices over 10,000", "received in the last week". Those operators only appear on Number and Date columns, because they cannot be answered for text.

Values that do not fit are never hidden. A Number column showing "n/a" keeps showing "n/a", and sorts those rows after the ones that do hold numbers, before the empty ones. The same goes for a date that cannot be read.

Dates: standard timestamps, including the ones email connectors record, are recognized on their own. If your values look like 31/07/2026, choose the matching date format in the dialog, because 03/07/2026 could be March or July and the wrong guess would silently reorder the column.

Numbers: the column can show a fixed number of decimals, and thousands grouping is off by default so a reference number stays 100704 rather than becoming 100,704. Number columns are right-aligned in the table.

Two notes on changing a type later. It applies to everyone, since columns are project-wide. And if a saved view filters the column in a way the new type cannot answer, for example "contains" on a column that is now a Number, that rule is adjusted to the closest equivalent or removed, so no tab is left with a filter that cannot run.

The email columns come ready-typed: Email Received At is a date, Email Attachments Count is a number.

Filtering on any column

The advanced filter (the funnel button next to the search box) builds filter expressions over every table column: the built-in ones, field columns, and metadata columns. Expressions support and/or groups, and work the same way in saved views. This applies to all four table pages.

The operators on offer follow the column's value type, so a Number or Date column can be compared with greater than, at most or between, while a text column gets contains and starts with. Built-in columns are typed already: dates are dates, counts and durations are numbers.

Using the AI assistant

The assistant can do everything described on this page. For example:

  • "Show me only failed transactions and hide the status column" adjusts your current tab.
  • "Create a view for reviewers with unassigned and my open work, and make it their default" creates and assigns a saved view.
  • "Add a Document Number column that reads Invoice Number on invoices and Contract Number on contracts" creates a multi-source field column.
  • "Add a column with the customer_name metadata key" creates a metadata column.
  • "Make the order total sort by amount, not alphabetically" sets that column's value type to Number.

Changes that affect other users, such as creating views or columns, still require the manage grant and are confirmed with you before they are applied.