Four list steps change a list as a workflow runs. Choose the one that matches what should happen:

Step What it does
Add a row Writes. Always a new row
Add or update a row Writes. One row either way, and two runs at once cannot both add it — matched on the list's unique column
Update rows Writes. Every matching row, not just the first
Delete rows Writes. Everything that matches goes

Who can do this

Workspace Admins and Editors build workflows. Writing works on every plan, up to the plan's row limit.

Before you start

Steps

  1. Open the workflow in the designer.
  2. Select + where the step should go (Add a step). In Search steps, type the step's name, and choose it.
  3. In List, choose the list.
  4. Set the step up:
    • Add a row: under A value for each column, type a value, or type {{ to use a value from an earlier step, beside each column. Columns marked * are Required; the rest can be left empty.
    • Add or update a row: Matched on shows the list's unique column — Not a choice — it is whichever column the list marks unique. Give a value for it and for the other columns. A row with that invoice_no takes these values. If there is none, one is added with them.
    • Update rows: under Change rows where, select + Add condition for each condition a row must match. Under Set, give a value for each column to change. Columns left empty here are left as they are.
    • Delete rows: under Delete rows where, add the conditions a row must match. Then tick I understand this deletes every matching row.
  5. Select Run this step, or Test run at the top of the designer, and check the list.
  6. Publish the workflow.

What happens next

  • Each step runs once per item that reaches it, so a write after Find rows writes once for each row found.
  • The step's output has the row's values under its column names — {{ steps.add_invoice.invoice_no }} — for Add a row and Add or update a row; changed (how many rows) for Update rows; and deleted for Delete rows.
  • The run keeps a record of each row before and after the write, so you can see exactly what changed. See See what a list step did in a run.
  • The list shows the change at once, and the Lists page shows the workflow's name and a run under Last changed.

Good to know

  • Test runs write to the list for real. There is one list, not one per environment; the designer says so on every step that writes. Use a separate list for testing if that matters.
  • A column you leave blank in the step is not touched: in Add a row it stays empty; in Update rows and Add or update a row it keeps the value it had. A value from an earlier step that comes out empty when the run gets there does empty the cell.
  • With no conditions, Update rows changes every row in the list (No conditions: every row in the list is changed.) and Delete rows deletes every row (No conditions: every row in the list matches.).
  • Delete rows deletes every row that matches, not the first one. Deleted rows do not come back. Until the box is ticked, the step reads Needs setup and Publish lists it.
  • Add or update a row is safe when runs overlap. Two runs at the same moment cannot both add the same row. Without a unique column you can do it in two steps — Find one row, then a condition, then Add a row or Update rows — but without that guarantee.
  • Dates in a step's values are read in UTC unless they carry their own offset; {{ $now }} and ISO dates do.
  • When the company's lists are full, every write step fails with the reason, and its If this step fails setting decides whether the run carries on. Reading steps keep working. See List limits, and what happens when lists are full.

If something goes wrong

What you see Why What to do
Processed invoices refused the row: amount takes a number. A value is not of the column's type. Check the value the earlier step gives; open the run to see it.
Processed invoices refused the row: customer is required. A Required column got no value. Give it a value, or check the earlier step gives one.
Processed invoices refused the row: INV-20260814 is already in invoice_no. Add a row tried to add a unique value that is already there. Use Add or update a row instead.
This would give more than one row the same invoice_no, and invoice_no is the unique column. Update rows would set the same unique value on several rows. Narrow the conditions so one row matches, or do not set the unique column.
Processed invoices has no unique column on Add or update a row There is nothing to match a row on. Select Set a unique column (Admins), or ask an Admin.
Processed invoices refused the row: invoice_no is required — it is what the row is matched on. Add or update a row got no value for the unique column. Give it a value.
Tick that you understand this deletes every matching row before it runs. Delete rows has not been confirmed. Tick I understand this deletes every matching row.
The list is full — writes have stopped. Your company is at 25,000 of 25,000 rows, so nothing was added. Steps that only read a list are unaffected. The company's lists are at the plan's row limit. Delete rows, or ask the Owner to move to a bigger plan.
The list is gone — Processed invoices is not in this workspace. It was deleted, or this workflow came from somewhere else. The list no longer exists here. Choose another list in the step, or create one.
That row is over 256 KB. Nothing was saved. The values together are too big for one row. Write less into the row.