Read Table from JSON/Text/XML
Use the Read Table from JSON/Text/XML activities to convert source data into a table format that functions similarly to a spreadsheet.
After you have created a table, you can use a For Each loop to iterate over its rows or use the table data as variables in other activities. You can also create an empty table and add data to it with output from other activities.
Note: The following notes apply to all Read Table From X activities:
-
Each of these activities has an option to populate column headers from their source data. We do not recommend using this option because the columns will only be populated at run time. If you choose to populate headers this way, you cannot use the column headers when creating a For Each loop.
We recommend that you add columns individually in the Columns to Read section of the activity properties.
-
Each of these activities has an option to Persist Table. If you want to make changes to a table later, it must be made persistent. Otherwise, you will only be able to read from the table.
See the specific properties information for each Read Table From X activity in the sections below.
Read Table from Text
This activity allows you to create a table from plain, delimited text such as comma-separated values.
Configuration Properties
For the Read Table from Text activity, the Properties panel on the right side of the workflow editor displays the following fields:

- Populate Columns from the First Line in Text: If you select it, you cannot reference column headers when creating a For Each loop. When this option is checked, the +Add link under Columns to Read disappears, since the column names will be automatically read from the first line of your text.
- Columns to Read: Specify the column names you want to extract from your JSON data. Adding columns individually here ensures they can be referenced reliably in later activities, such as looping.
- Source Text: Specify the source of your delimited text.
- Click on the Variable Reference Icon next to Source Text.
- In the Browse Variables window, select the variable containing your text data. For example, if your text comes from an HTTP request, navigate to Activities → Get a file from a web server → Body to select the output containing the file content.
The following is an example of Source Text you could read into a table using this activity:
id,name,username,email
1,Leanne Graham,lgraham,leanne@company.com
2,Ervin Howell,ehowell,ervin@company.com
3,Clementine Bauch,wrongusername,clementine@company.com
4,Patricia Lebsack,plebsack,patricia@company.com
4. Split Options - Delimiter Text: To define how the text should be split into columns, configure the delimiter.
- Click + Add under Split Options.
- Enter a comma
,in the data field, as this is the standard delimiter for CSV files.

Read Table from JSON
This activity allows you to create a table from a list of JSON-formatted objects. To specify which objects the activity should select, you need to provide both a JSON Path and Source JSON.
Configuration Properties
For the Read Table from JSON activity, the Properties panel on the right side of the workflow editor displays three required fields:

1. JSON Path: Enter the path that targets the parent level of the elements you want to include in your table. The JSON Path should be one level above the elements listed in the Columns to Read field. If your JSON is stored as an array, the JSON path ($.*) will retrieve each user object for your table.
For example, if your JSON data is an array, as shown below, the recommended JSON Path is $.*.

The object above is an array of Meraki network object, the Array is the top level and the Network objects are the columns we want to read.
- $ refers to the root of the JSON document.
- .* selects each item in the array at the root level.
Below this field, there are two checkboxes:
- Persist Table: Select this if you want to make changes to the table later. Persisting the table allows it to be modified later. If this option is not selected, the table will be read-only.
- Populate Columns from JSON: It is not recommended to use this option, as columns will only be detected at runtime. If headers are populated this way, column headers cannot be used when creating a For Each loop. Instead, it is recommended to individually add columns in the Columns to Read section for greater control and compatibility.
2. Columns to Read: Specify the column names you want to extract from your JSON data. Adding columns individually here ensures they can be referenced reliably in later activities, such as looping.
3. Source JSON: Select the variable that contains your JSON data. Click on the Variable Reference Icon next to this field to launch the Browse Variables window, where you can navigate and choose the appropriate variable from your workflow. For more details, see the Variable Browser documentation.
Creating an Empty Table
You can use the Read Table from JSON activity to create an empty table. When you configure the properties, enter an empty list as the source data:
[]
Read Table from XML
This activity allows you to create a table from a list of XML-formatted objects. To tell the activity which objects to select, you need to provide an XML Path and Source XML. You can use the XPath Query activity to get the XML Path. An XML path to select all objects in the sample data below would be: /root/row.
version=
"1.0"
encoding=
"UTF-8" ?>
root>
<row>
<id>1</id>
<name>Leanne Graham</name>
<username>lgraham</username>
<email>leanne@company.com</email>
</row>
<row>
<id>2</id>
<name>Ervin Howell</name>
<username>ehowell</username>
<email>ervin@company.com</email>
</row>
...
</root>

