RunMacro Documentation
Create your first robot, then go further as needed.
Clear step-by-step guides to create, run, and improve robots for repetitive computer work.
Get a data row from CSV/Excel/Google Sheet in RunMacro
The Data Source - Get Row command reads a row from a data source (CSV, TXT, Excel, or Google Sheet via Apps Script) and assigns columns to variables.
Prerequisites#
- Add Data Source - Get Row to the macro.
- Prepare the data or target that Data Source - Get Row will use.
Supported modes#
- RunMacro Runner
What it does#
The Data Source - Get Row command reads a row from a data source (CSV, TXT, Excel, or Google Sheet via Apps Script) and assigns columns to variables. It can take the first, a random, or the next unprocessed row; and branch IF/ELSE on whether data exists.
Screenshots & video#

When to use it#
- Process an account/data list row by row.
- Take the next unprocessed row (by a status column) to run in order.
- Load Google Sheet data into variables.
When not to use it#
- Do not use it when multiple runners must claim one row atomically.
Configuration steps#
- Add a File › Data Source - Get Row command.
- Choose the source (CSV/TXT/Excel/Google Sheet) and the file/URL.
- Choose the mode: first / random / next unprocessed.
- (Optional) set a variable prefix, status column, IF/ELSE labels. Save.
Every option explained#
Expected result#
After execution, Data Source - Get Row completes the described action and makes its result available to the next step.
Real example#
Example: get the next unprocessed CSV row#
- Data Source Get Row, CSV source, Next-unmarked mode, status column
status. - Columns are assigned to variables (e.g.
{email}). - After processing, use "Mark Row" to write
done.
Limitations and failure cases#
- Exhaustion, unmatched filters, or source changes can return empty; reading a row does not lock it for another runner.
Tips & common mistakes#
Verification details#
commands/data_source.py
