Browse the docs
Preparation node

Record ID

Stamp each row with a sequential number or a UUID.

Category
Preparation

What it does

Adds an identifier column to every row: either a sequential counter or a time-ordered UUID. You choose the column name, where it sits, and (for the counter) what number to start at. It streams, so it costs nothing in memory no matter how many rows go through.

Inputs and outputs

InputsOne.
OutputsOne.

When to use it

  • Give rows a stable primary key before loading them somewhere
  • Number rows so you can refer back to a specific one
  • Tag records before splitting them down several branches, so you can rejoin them later

Examples

Sequential id

Sequential integer, start at 1  →  1, 2, 3, …

The simplest row number.

Start at 1000

Start at: 1000  →  1000, 1001, 1002, …

Useful when you're appending to something that already has ids.

UUID

UUID (v7)  →  01903f2e-…

Globally unique, so two runs never collide, and time-ordered, so they still sort sensibly.

Put it last

Position: Last (rightmost)

Keeps the id out of the way when you're eyeballing the data.

Tips

  • The id column name must not clash with an existing column. The run stops and names it if it does, and the check is case-exact.
  • UUID v7 is time-ordered, so the ids sort roughly by when they were made. That is the reason to prefer it over a random UUID.
  • Sequential numbering follows incoming row order. If the order matters, Sort first: an unsorted source can hand you a different numbering next run.
  • Sequential ids restart from your Start at value on every run, so they identify a row WITHIN a run, not across runs. Use UUID when the id has to be stable forever.