English
Table — insert a row
Inserts a row. If the table has a unique key that is already taken, the step fails — use “insert or update” instead.
Adds a row to a Table. Use it for logs and registers where each run adds an entry. When the row may already exist and should be updated rather than refused, use Table — insert or update.
At a glance
- Type:
table.insert· version 1 - Category: Actions
- Kind: Step — one stage of a run
- Effect: Writes outside (
external_write) — writes outside Mankomail; described instead of performed during a test run - Needs a carrier email: No
- Connection: None
- Inputs:
main - Outputs:
main
Parameters
table
Table — Picked from the list, or by its short identifier (its “slug”), which may come from a template.
- Type: Remote resource (
resourceLocator) - Required: Yes
- Ways to choose: pick from a list, type an ID (
table)
values
Row values — One entry per column to fill. Columns left out stay empty.
- Type: List of items (
collection) - Required: No
- Default:
[] - At most 60 items
- Each item has:
column— Column- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 60 characters at most
- Expressions:
{{ }}not accepted
- Type: Text (
value— Value. Converted into the column type: “1,234.50” becomes a number, “yes” a boolean, “2026-04-03” a date. Anything it cannot read is refused, never blanked.- Type: Text (
string) - Required: No
- Default:
""(empty) - 10000 characters at most
- Type: Text (
Outputs
main
Data produced
What this node adds to the run data, and how to read it in an expression. <step> stands for the step key: the node name turned into an identifier (see Data and expressions).
{{ data.<step>.rowId }}—string. The identifier of the new row. In a test run:simulated:<table identifier>.{{ data.<step>.row.<column> }}—object. The row as written, cells converted to their column type, by column machine key. Empty cells are absent.{{ data.<step>.created }}—boolean. true: the node created a row.{{ data.<step>.reused }}—boolean. true when the step was replayed after an incident and the row written by the first attempt was returned, without writing again.{{ data.<step>.simulated }}—boolean. true in a test run: nothing was written.{{ data.<step>.summary }}—string. A one-line summary:Row added.,Would have added a row.orAlready written on an earlier attempt: nothing was rewritten.
Example
Each signed quote is recorded in a table signed_quotes. The node is named "Record quote".
text
table signed_quotes
values client = {{ email.from.email }}
amount = {{ data.read_quote.amount }}
signed_on = {{ data.read_quote.date }}amount is a Number column: "1 234,50" or "1,234.50" are both stored as the number 1234.5. signed_on is a Date column: "03/04/2026" and "2026-04-03" are both stored as 2026-04-03. The next node reads {{ data.record_quote.rowId }}.
Tips
- Columns are named by their machine key, not their heading. A column that does not exist fails the step with
table.unknown_column. Columns left out stay empty; an empty value also gives an empty cell. - Values are converted to the column type — Number, True or false (yes/no, oui/non, x, 1/0…), Date (ISO or day/month/year), Date and time, Email address, Choice list (matched to an allowed value ignoring case and accents). A value that cannot be converted is refused, never emptied: the step fails with
table.invalid_valueand names the column. A Required cell left empty fails the same way. - Duplicate keys. If the table refuses two rows with the same key and the key is already taken, the step fails. Use Table — insert or update instead.
- Limits. A cell holds at most 4,000 characters by default, and a table at most 50,000 rows (
table.limit_reached); both are set by the instance administrator. - Replays are safe. The write is recorded with the step's idempotency key in the same transaction: a replay after an incident returns the row already written (
reused: true) instead of adding a second one. - Authorship. A row written by a workflow is attributed to the workflow, not to the member who triggered the run.
- Test runs. Nothing is written. The step returns the row it would have written, values converted, with
simulated: true. See Test runs.