How to use the Parse JSON action in Power Automate
Many Power Automate flows receive data in JSON format: the response from an HTTP action, the body of a webhook, or the result of an external connector. The problem is that this JSON arrives as a single text string, and Power Automate does not know, on its own, which fields live inside it. The Parse JSON action solves exactly that — it reads the text, interprets its structure, and turns each field into dynamic content ready to use in the next steps, without writing complicated code.
Prerequisites
- An account with access to Power Automate (included in most Microsoft 365 plans).
- A flow that already receives JSON data — for example, from an HTTP action or a webhook trigger.
- A sample of the JSON you will receive, to generate the schema.
Step 1: Know when to use Parse JSON
You need this action whenever a previous step returns JSON text and you want to use specific fields from it: a customer name, an order total, or a list of items. Without the Parse JSON action, the flow would only have the whole text available, with no way to pick a single field. To follow this example, imagine that your flow receives the following JSON:
{
"customer": "Ana Silva",
"email": "ana@example.com",
"order": {
"id": 1024,
"total": 89.90,
"items": ["Book", "Pen"]
}
}
Step 2: Add the Parse JSON action
In the flow editor, click New step (or the + sign between two existing steps) and type Parse JSON in the search box. The action appears inside the Data Operation connector. Select it to add it to your flow. Note that it must come after the step that produces the JSON, so it can receive that value.
Step 3: Point to the content to parse
The action has two fields to fill in. In the first one, Content, put the JSON text you want to parse. Almost always you will pick the dynamic content from the previous step here — for example, the Body of an HTTP action. Click inside the field and select that value from the dynamic content list that appears.
Step 4: Generate the schema from a sample
The second field, Schema, describes the structure of the JSON. The good news is that you do not have to write it by hand. Click Generate from sample, paste a sample JSON like the one in Step 1, and confirm. Power Automate analyzes the sample and builds the schema for you:
{
"type": "object",
"properties": {
"customer": { "type": "string" },
"email": { "type": "string" },
"order": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"total": { "type": "number" },
"items": {
"type": "array",
"items": { "type": "string" }
}
}
}
}
}
Tip: use a sample that contains every possible field. If a field can arrive empty or as null, adjust the schema to accept it and avoid validation errors.
Step 5: Use the fields in the next steps
From here on, each field of the JSON is available as dynamic content. Add, for example, an action to send an email and insert the customer or email fields directly into the message text. For a nested field, you can write an expression like this:
body('Parse_JSON')?['order']?['id']
For the items list, which is an array, Power Automate automatically adds an Apply to each when you drag that field into another action, looping through each item one by one.
Check the result
Save the flow and click Test to run it with real data. Open the run history and click the Parse JSON action: in the OUTPUTS section you should see the object already structured, with each field separated and identified. If you get the ValidationFailed error, it usually means the JSON received does not match the schema — review the sample you used in Step 4 and check the type of each field.
Conclusion
With the Parse JSON action you turned raw text into a structure of usable fields, making the rest of the flow simpler, more readable, and more reliable. The natural next step is to combine Parse JSON with an HTTP action to consume an external API and react automatically to its data. Which JSON source will you connect to your flow first?