Skip to content

Table — update a row ​

Changes the row carrying this key. The step fails if no row matches.

Changes the row of a Table that carries a given key. Only the columns you name change; the others keep their value. If no row carries the key, the step fails — when a missing row should be created, use Table — insert or update.

At a glance ​

  • Type: table.update · 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)

key ​

Row key — The row to change, designated by the values of its “key” columns.

  • Type: List of items (collection)
  • Required: Yes
  • Default: []
  • At most 8 items
  • Each item has:
    • column — Key column
      • Type: Text (string)
      • Required: Yes
      • Default: "" (empty)
      • 60 characters at most
      • Expressions: {{ }} not accepted
    • value — Value to match
      • Type: Text (string)
      • Required: No
      • Default: "" (empty)
      • 10000 characters at most

values ​

Columns to change — Only the columns named here change. The others keep what they hold.

  • 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
    • 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

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 row updated.
  • {{ data.<step>.row.<column> }} — object. The whole row after the update, by column machine key — the columns you changed and the ones you left alone. Empty cells are absent.
  • {{ data.<step>.created }} — boolean. Always false: this node never creates 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 updated., Would have updated the row. or Already written on an earlier attempt: nothing was rewritten.

Example ​

When a client confirms an appointment, the matching case moves to "Confirmed". The table cases has the key column case_number. The node is named "Mark confirmed".

text
table   cases
key     case_number = {{ data.read_reply.case_number }}
values  status        = Confirmed
        confirmed_on  = {{ data.read_reply.date }}

The next node can read the whole updated row, for example {{ data.mark_confirmed.row.client_email }}.

Tips ​

  • The key designates the row; the values change it. The Row key lists the values of the columns ticked Part of the matching key in the table; matching ignores case, accents and punctuation. Columns to change lists the columns to write.
  • Changing the key. You may list a key column in Columns to change: the row is then filed under its new key.
  • Errors. No row carries the key: table.row_not_found. Unknown column: table.unknown_column. A value that does not fit its column type: table.invalid_value. A table with no key column: table.no_key. These failures are final.
  • Columns are named by their machine key, not their heading. Lookup by key relies on the table option Refuse two rows with the same key; keep it ticked on a table you update by key.
  • Replays are safe. A replay after an incident returns the row written by the first attempt (reused: true) without writing again.
  • Test runs. Nothing is written, but the row is really looked up: if it does not exist, the test fails just as a real run would. Otherwise the step returns the row as it would be after the update, with simulated: true. See Test runs.