Find Table Row Step
The Find table row step checks for matching rows and sends the run through Yes or No. It is available to For dialogs and Background automations. First create or import a table if the project does not have one yet.
Select a table and sheet
Add Find table row and open it on the workflow.
In Table, select an active project table, then choose a sheet. Changing the table or sheet clears configured ranges, so review the search conditions and saved columns afterward.
For search conditions, the editor remembers both the column number and header. If a column is moved while its unique header remains unchanged, the setting follows it. If the header is renamed or the same title appears more than once, the step asks you to select the column again. This prevents an unnoticed search in the wrong field.

A table installed by an application can be searched. An automation cannot change it because these tables are read-only.
Define the data structure
In Table structure, choose one of these options:
- First row is the header uses the first sheet row for column names and starts data on the next row;
- Configure lets you select one or more header rows in the opened table and optionally limit the data area separately.
Without a limited data area, the automation uses rows after the header through the end of populated data. A limited range must be on the same sheet, below the header, and within the header columns.

Configure row search
In Where to search, add one or more conditions. For each condition, select a column, choose Equals or Contains, and enter a value. A row matches only when every condition matches.

Each value can use:
- text, a number, Yes / no, or an empty cell;
- the current date, current time, or current date and time. The value is calculated when the step runs in the time zone saved during setup and uses a format such as
2026-08-19,14:30:00, or2026-08-19 14:30:00; - system data of the current lead, including their name, phone, email, channel, external ID, and other fields. This source is available only in For dialogs automations;
- a variable from the current run, lead, dialog, or project.
Text can combine several variables with ordinary words. The insertion dialog contains run, project, lead, and dialog variables, plus system lead data in For dialogs automations. If the required variable does not exist yet, create it in the same dialog; it is inserted automatically afterward.
Types matter: for example, the number 10 and the text 10 do not match in an exact comparison. Contains compares text without case sensitivity.
A step can contain up to 20 conditions. Before publishing, test it with data that provides every referenced variable.
Find table row follows the Yes branch when at least one row matches and the No branch when none match. It does not change table data.
Save The Search Result
In Find table row, open Save result and use the result mode field to choose one option:
- Do not save: the step only follows Yes or No;
- First matching row: use the first match from top to bottom;
- All matching rows: collect every match in an array.
For the first row, the save format field offers two options:
- Selected fields in an object: choose columns, give their fields readable names, and save the object to one variable;
- Selected fields in variables: write each column to a separate compatible variable.
For Selected fields in variables, use Save selected fields: select Add, choose a column, and assign a Run, Lead, Dialog, or Project variable. The value comes from the first matching row from top to bottom. You can add up to 100 fields, and the same target variable must not be used in more than one row.

For all rows, choose fields and their names, then select an Array variable. It receives an array of objects. A field name must start with a Latin letter or _, may contain Latin letters, digits, _, and -, and cannot exceed 80 characters.
You can select up to 100 fields. Target variables must not repeat; Lead and Dialog are unavailable in a Background automation. The pencil next to a target variable lets you save the result to a nested field.
If no row matches, an object for the first row receives null, while the all-rows array receives an empty array. When separate fields are selected, their variables are left unchanged because there are no values to write. The run follows No in every one of these cases.
Continue To Updating Rows
Use the separate Update table row step to write data. Its article covers Update found rows, Append a new row, and Update or append in order, along with multiple-match handling and every value source.
Verify before publishing
Run a test with data whose search result you already know, then open the run and check the selected branch and saved variables. This step only reads the table and does not change its rows.
If the step fails, open it in the run history. Confirm that the table is active, the selected sheet still exists, the range contains the required rows, and variables in the conditions contain values of compatible types.