Records
Records are the structured data your agent collects and keeps: leads, appointments, orders, support requests, or your own items like products or available slots. Each kind lives in a table with fields you define. The agent saves what customers tell it, Functions and automations can read and write too, and your team works with the data on the Records page.
Use records when you want more than answers: a list of people to call back, bookings to confirm, orders to follow up.
An agent without tables gets no record tools and no conversation fill. It behaves exactly as before.
Where to find it
Open an agent and click Records in the sidebar. The page shows one tab per table, with its record count. A table that isn't in the published version yet is marked Not published.
The page header has:
| Action | What it does | Who |
|---|---|---|
| Table settings | Opens the table's definition editor. | Everyone can open it; editors change it. |
| Import CSV | Adds or updates rows from a CSV file. | Editors and above |
| Export CSV | Downloads the table's records. | Everyone |
| Copilot | Opens the Copilot. | Everyone |
Records are workspace data. Viewers read them; editors and above add, edit and delete records and change tables; only admins and owners delete a table.
Create a table
The fastest way is to ask the Copilot. When your agent's goal involves collecting data, it proposes a table, shows you the fields on a card, and creates it once you agree. It then runs a test conversation and checks a record was saved.
To create one yourself:
- On Records, click New table (below the empty state or the grid).
- Pick a template. "Start from a template; you can change every field before saving."
- Adjust the fields in Table settings and save.
- Publish the agent. Customers' conversations use the table from then on.
| Template | Fields |
|---|---|
| Leads | Name (title, required), Phone (match), Email, Interest, Budget, Source, Status (New, Contacted, Qualified, Won, Lost) |
| Appointments | Name (title), Phone (match), Service, When (required), Notes, Status (Requested, Confirmed, Cancelled, Done) |
| Orders | Order number (title, match), Name, Phone, Items, Total, Status (New, Paid, Shipped, Delivered, Cancelled, Returned) |
| Support requests | Subject (title, required), Name, Phone, Email, Details, Priority (Low, Normal, High), Status (Open, Waiting, Resolved) |
| Blank table | One name field; add the fields you need. |
Templates hold people's data, so they start with agent Read access off (see Agent access).
Table settings are part of the agent's draft, like instructions. A change reaches customers only after you publish. Restoring an older version never deletes records: your data is never versioned. Tables the restored version didn't have stay in the draft.
Table settings
"What each table holds and how the agent may use it. Changes reach customers when you publish."
Table
| Setting | What it does |
|---|---|
| Name | Shown in the tabs, in English and Turkish. |
| Key | Used in tool names: save_<key>, find_<key>, and by Functions and the API. Lowercase letters, digits and _, starting with a letter, up to 58 characters. You can rename it later; data is kept. |
| Description | "The agent reads it to know what belongs in this table." |
Fields
Each field has a Label, a Key (lowercase letters, digits and _, up to 64 characters), a Type, a description ("What the agent should put here") and Required ("A record can't be saved without it").
| Type | Stored as | Notes |
|---|---|---|
| Text | Text | Up to 1,000 characters. |
| Long text | Text | Up to 10,000 characters. |
| Number | Number | Text like "42" is accepted. |
| Money | { "amount": 1500, "currency": "USD" } | A 3-letter currency code. A bare number or "1500" is saved as TRY; "1500 EUR" works too. |
| Date | YYYY-MM-DD | |
| Date and time | ISO 8601 | For example 2026-10-20T14:30:00+03:00, stored in UTC. |
| Yes / no | true / false | Also accepts yes/no, evet/hayır, 1/0. |
| Choice | One of the options | Up to 100 options, each up to 80 characters. Case doesn't matter when saving. |
| Tags | Several of the options | A list, or text separated by commas or semicolons. |
| Phone | + and 7 to 15 digits | Spaces, dashes and brackets are removed. 00 becomes +; a Turkish mobile like 0532… becomes +90532…. |
| Lowercase address | ||
| URL | Web address | Must start with http:// or https://. |
| Reference | A record id | Points to a record in another table (choose the table). |
| File | File references | "Photos or documents the customer sent, or that you upload." One file, or up to 5 with Several files. |
Changing a type keeps stored values. Values that no longer fit are marked Needs fixing, never deleted.
Deleting a field removes it from the table. "Its values are kept for 30 days after you publish," then purged. The title field can't be deleted until you choose another title.
Title and matching
- Title field: "Shown as each record's name."
- Same record when: up to 3 fields that identify the same record. "A save with the same phone or email updates that record instead of creating another. Don't use a name: different people share names." Only text, number, phone, email or URL fields can be used.
When two records would end up with the same matching values, the save is refused, and a record that already clashes shows Needs fixing.
Agent access
| Access | Gives the agent |
|---|---|
| Read | find_<key>: "The agent can search this table." |
| Create | save_<key>: "The agent can add records." |
| Update | "The agent can change records it finds or saved before." |
"Turn on only for your own items (cars, products, slots), never for people's data: a customer could ask about others."
Collecting
| Setting | What it does | Default |
|---|---|---|
| Fill from the conversation | "10 minutes after a conversation goes quiet, a small model fills this table from it." | Off |
| Saves need approval | "The agent's saves wait until a teammate approves them." See Approvals. | Off |
| When a save is rejected | Tell the customer or Say nothing. | Tell the customer |
Delete a table
Delete table (admins) removes the table from the draft. "Its records are deleted 30 days after a version without it is published."
How records get filled
The agent, in conversations
For each published table the agent gets tools at reply time:
-
save_<key>(with Create or Update access). Every field is optional input;nullclears a field. When saving:- If the Same record when fields match an existing record, that record is updated.
- Otherwise, if this conversation already has a record in the table, that one is updated.
- Otherwise a new record is created.
Errors come back field by field ("Use a phone number with 7 to 15 digits, e.g. +905321234567"), and the agent can correct them.
-
find_<key>(with Read access). Filters witheq,in,rangeandcontains, sorting, and at most 20 results. Each result shows the title and up to 8 fields.
Personal data stays protected: the model works with placeholders such as [PHONE_1], while the tool receives and stores the real value. Records saved in a conversation link to that conversation and its customer.
With Saves need approval, a save becomes an approval request instead and the agent tells the customer the team will confirm.
Fill from the conversation
With Fill from the conversation on, a small model reads the conversation 10 minutes after it goes quiet (personal data hidden), and creates or completes the table's records. It:
- fills only fields it is sure of, and never guesses,
- never overwrites a field a person changed by hand,
- runs again after new messages, once the conversation is quiet again,
- respects Saves need approval.
Its cost shows in Usage.
Functions and automations
Function code reads and writes tables by key:
const found = await ctx.records.find('leads', { where: [{ field: 'status', op: 'eq', value: 'New' }], limit: 10 });
await ctx.records.save('leads', { name: 'Jane Cooper', phone: '+14155550123', status: 'Contacted' });
Per run: up to 50 saves and 20 finds. In a dry run or a read-only test, saves are reported and not written. Saves from a Function or automation link to the automation run they came from. An automation task can use save_ and find_ tools when they are in its Allowed actions. See Automations.
People
Editors add and change records by hand on the record page, or import them from CSV.
Browse records
The grid shows 50 records per page, newest first.
-
Search records: searches the text, long text, email, phone and URL fields.
-
Filter: add rows of field, condition and value, then Apply. Conditions depend on the type:
Field type Conditions Text, long text, phone, email, URL is, contains Number, money, date, date and time is, between (From / To) Choice, tags is, is any of Yes / no, reference is File not filterable -
Which records: All, Needs fixing (values that don't fit their field), Deleted (the bin).
-
Show test records: records saved by test conversations and draft runs are hidden by default and marked Test.
-
Columns: choose the columns. By default you see the title and the next five fields. Reset to default brings that back. Your choice is kept in your browser.
-
Sort: click a column header; click again to reverse. File fields can't be sorted.
The record page
Click a record to open it. Click Add record below the grid to create one.
- Fields: every active field, editable by editors. Values that don't fit show Needs fixing: and the reason. Click Save.
- Source: where the record came from: From a conversation (opens it in the Inbox), From an automation, Imported from a CSV file, Added by a teammate or Filled from a conversation.
- History: every field change with who made it (Agent, Filled from the conversation, Teammate, Automation, CSV import) and when, plus deletes, restores and approval decisions.
- Approval requests: requests about this record, with their status.
If someone changed the record after you opened it, saving shows "This record changed since you opened it. Reload to see the latest, then make your change again."
Delete moves the record to Deleted. "It moves to Deleted and can be restored for 30 days." Open it from the Deleted view and click Restore. After 30 days it is purged.
The Inbox also shows Records from this conversation on each conversation that saved records.
Import CSV
- Click Import CSV and Choose a CSV file. "Up to 2 MB and 5,000 rows; the first row holds the column names."
- Map each Column in the file to a Field, or Skip it. Check First rows.
- Click Import.
Rows with the same Same record when values update the existing record. The result shows "N created, N updated, N failed" with the errors of each failed row. File columns are not imported. Empty rows are skipped.
Export CSV
Export CSV downloads <key>.csv with every live record of the current table (not deleted, not test). Columns are the field keys, then id and createdAt. Tags and multiple values are joined with ; , money is written as 1500 USD, and file fields show the file names.
Limits
| Limit | Value |
|---|---|
| Tables per agent | 20 |
| Fields per table | 50 active (100 including deleted ones) |
| Size of one record | 32 KB |
| Records per agent | 100,000 |
| Matching fields | 3 |
| Options per choice or tags field | 100 |
| Files per file field | 5 |
find_ results | 20 |
ctx.records per run | 50 saves, 20 finds |
| Deleted records and fields kept | 30 days |
| CSV import | 2 MB, 5,000 rows |