Concepts
Tables & AI columns
A table is a list of leads: one row per person or company, one column per field. Columns appear as you add data, and an AI column is a question your agent answers for every row.
Docs menu
Rows and columns
Rows are stored as they come: any field you send becomes a column. Column keys are lowercase snake_case, so a CSV header "First Name" becomes the key first_name and keeps "First Name" as its label. Each column has a type, inferred from the values when it's created:
| Type | Values |
|---|---|
| text | Anything. Also the type of a column that's empty so far. |
| number | Numbers, e.g. headcount. |
| Email addresses. | |
| url | Links, e.g. LinkedIn profiles. |
| boolean | true or false. |
| json | Objects and lists. |
Every row also has a pipeline stage, starting at new: see Pipeline.
Importing
import_rows takes up to 10,000 rows per call; unknown keys become new columns. From the terminal, the CLI reads a CSV with a header row or a JSON array:
$ pnpm meerko tables create "Fintech CTOs Spain"$ pnpm meerko tables import <tableId> leads.csv
Or skip the CSV and search for leads straight into a table.
AI columns
An AI column has a prompt: an instruction with {{column_key}} placeholders, like Score ICP fit 1-5 for {{company}}: {{description}}. Meerko doesn't run the prompt itself. Your agent does, with its own model and reasoning, so there are no AI credits to buy:
- add_column creates the column with its prompt.
- get_pending_cells returns rows where that column is still empty (25 by default, up to 200), each with the prompt already filled in from the row.
- Your agent answers each one and writes the answers back with update_rows (up to 1,000 rows per call). It writes
N/Awhen it can't answer, so the row isn't returned again.
In Claude Code
› Add a column "opener" to the Fintech CTOs table: a one-line, specific opener for each lead. Fill it for every row.
Columns as variables
Any column can be used in a sequence as {{column_key}}, e.g. {{first_name}} or the {{opener}} your agent just wrote. Use the key, not the label. A lead whose row is missing a variable the sequence uses is skipped when you enroll, so nobody gets an email with a gap in it.
Reading rows
Filter
Exact match
e.g. {"country": "ES"}, plus a pipeline stage.
Page size
50
By default, up to 1,000 per call, with an offset to page through.
Order
As added
Rows come back in the order they were inserted.