Tables

Customer data the agent can read without calling your API. Upload a CSV, name the column that identifies a person, and a verified visitor can ask about their own row.

When to use a table instead of an action

Use a table when the data is small, changes slowly, and you would otherwise be building an endpoint just for this. Use an Action when the data is live, large, or already behind an API you maintain.

TableAction
A CSV export of subscription tiersLive order status from your OMS
Seat allocations per accountAnything that must be current to the second
Anything you would paste into a spreadsheetAnything with a write side

Columns and types

Each column has a type — string, number, boolean or date — used for parsing on import and for formatting in the dashboard. Exactly one column is the identity key.

The identity key

The identity key is how a row is matched to a verified customer. It is almost always the email address, because that is what identity signing proves.

Matching is case-insensitive: Ada@Example.com and ada@example.com are the same person. The casing you typed is preserved for display and used in error messages, so a conflict names the value the way you wrote it.

Importing a CSV

The first row must be a header, and its names must match your column names. Import is an upsert on the identity key:

Nothing is silently dropped. The result summary tells you exactly how many of each, so re-uploading a corrected export is safe and repeatable.

orders.csv
email,plan,seats,renews_on,active
ada@example.com,Growth,12,2026-11-04,true
grace@example.com,Scale,80,2027-01-19,true
alan@example.com,Free,1,,false

Type parsing on import

TypeAcceptedRejected
number12, -4, 3.5an empty cell in a required column, 'twelve'
booleantrue / false, yes / no, 1 / 0'maybe'
dateISO 8601 — 2026-11-04ambiguous formats like 04/11/26
stringanything

What the agent can do with a table

Read the verified customer’s own row, and only that row. Tables are read-only to the agent: there is no path by which a conversation edits your data. Changes happen in the dashboard or through a re-import.

An anonymous visitor gets nothing from a table, no matter how the question is phrased — the lookup needs an identity value, and an unverified visitor has none. See Identity & signing.

Practical notes