An XrmToolBox plugin to find Power Automate flow runs fast, jump straight to the exact loop iteration you need, and follow calls into child flow runs.
Debugging a flow in the Power Automate portal is slow:
- Finding the right run means scrolling through run history with almost no filters.
- An
Apply to eachwith hundreds of iterations won't tell you which iteration failed, or which one handled a given record. - Nested loops are worse: there is no visible path telling you that you are in iteration 3 of the inner loop inside iteration 2 of the outer one.
- When a flow calls a child flow, you have to open the child flow separately and guess the matching run by timestamp.
This plugin removes all four problems.
Loads the cloud flows of the environment and lets you filter them by name, solution and state. If you are an environment administrator you see every flow; otherwise you see your own flows and the ones shared with you, and the tool tells you clearly that the list is partial.
Search runs by date and time range and by status. The range is applied on the server, so you only download what you ask for. There is a Last hour shortcut for the usual "it broke just now" case, and a configurable maximum number of runs with a clear warning when the limit is reached and the result is incomplete.
All times are shown in your local time, in 24-hour format.
Instead of opening runs one by one, filter by the values that triggered them. The tool reads the trigger schema, shows one box per parameter (labelled with its real title and description) and lets you search by content, combining the filters with And or Or.
Because this inspects each run individually it can take a while, so the tool shows progress with an estimated time remaining and lets you cancel at any point.
Download the run as JSON in one of three modes:
| Mode | What you get |
|---|---|
| Full | Everything, exactly as the API returns it. |
| Clean | A flat list of loops with their iterations, statuses and outputs. |
| Tree ⭐ | The real hierarchy: each iteration of the outer loop carries its own item, its actions, and nested inside, the inner loop with its own iterations and items. |
Every iteration is numbered with the same number the Power Automate portal shows, so you can search a value in the file, read the iteration number, and go straight to it in the browser. Nested iterations also include the full path, for example Apply_to_each[2] > Apply_to_each_2[3].
Press Child flows on any run and you get the list of calls that run made to other flows, showing:
- the child flow name (not a GUID),
- which loop iteration the call happened in,
- the status of the call,
- and a direct link to the child flow run, so you can open or copy it.
Native Run a child flow actions are always resolved. Flows invoked over HTTP are detected too, but they don't always expose the child run identifier, so a link may not be available — the tool says so instead of failing silently.
The same information is included in the exported JSON.
Choose which installed browser and which profile links open in. Useful when your admin account lives in a different browser profile than your everyday one.
- XrmToolBox (latest version recommended)
- A Dataverse environment with Power Automate cloud flows
- Permission to read flow run history
Create the XrmToolBox connection using the Microsoft Login Control (OAuth / MFA) method.
The plugin needs the tenant and environment identifiers from the connection to sign in to the Power Automate API. Connections that don't provide them — connection strings with username and password, or older non-OAuth methods — will not work, and you will see:
Your connection does not expose the TenantId. Reconnect to Dataverse using OAuth/MFA.
The first time you press Load flows, a Microsoft sign-in window appears so you can consent to the Power Automate API. After that the token is reused silently.
- Open XrmToolBox.
- Go to Configuration → Tool Library.
- Search for Flow Execution Debugger.
- Click Install and restart XrmToolBox.
- Download the latest release from the Releases page.
- Extract the contents into your XrmToolBox plugins folder, keeping the folder structure of the package intact:
The package contains the plugin itself plus a subfolder with its dependencies. Don't flatten it — the plugin loads those dependencies from the subfolder on purpose, to avoid conflicting with the versions XrmToolBox already has loaded.
%APPDATA%\MscrmTools\XrmToolBox\Plugins - Restart XrmToolBox.
- Connect to your environment (OAuth/MFA connection).
- Open Flow Execution Debugger.
- Press Load flows and sign in when prompted.
- Filter by name, solution or status, and select a flow.
- Set the From / Until range — remember it includes time, not only date. Pick the date in the calendar and type the time (or adjust it with ↑/↓).
- Press Load runs, or use Last hour.
- (Optional) Type values in the trigger parameter boxes, choose And / Or, and press Filter by parameters.
- On each run you can:
| Button | What it does |
|---|---|
| Open | Opens the run in the browser and profile you selected. |
| Parameters | Shows the trigger values of that run. |
| Child flows | Lists the calls to other flows, with iteration and direct links. |
| Copy link | Copies the run URL to the clipboard. |
| Download JSON | Exports the run in the selected mode. |
- Load the runs for the time window where it happened.
- Download the run in Tree mode.
- Search the file for the failing value, record id or error message.
- Read the iteration number (and the path, if the loop is nested).
- Open the run in the portal, expand the loop and go directly to that iteration.
- Press Child flows on the parent run.
- Locate the call — the list tells you which iteration produced it.
- Open the child run directly from there.
The first time you do this for a run it takes a moment, because the tool has to read the whole run. After that it is instant.
- Changing the date range requires reloading. The range is applied on the server, so press Load runs again after changing it.
- Use short windows. Minutes or hours work best. Ranges longer than two days ask for confirmation.
- Filtering by parameters is the expensive operation, because each candidate run has to be inspected. Narrow the range first; above 500 candidates the tool warns you and estimates how long it will take.
- Requests are throttled and retried automatically when the service is busy, so large operations are slow but reliable.
- If the flow list shows a partial list warning, you are not an environment administrator — you only see your own and shared flows.
- If the Solution filter is unavailable, the tool could not read the solution information from Dataverse. Everything else keeps working.
| Symptom | What it means |
|---|---|
| "Your connection does not expose the TenantId" | The connection is not OAuth/MFA. Recreate it with the Microsoft Login Control. |
| "The connection's EnvironmentId was not detected" | The environment id could not be resolved; reconnect, updating XrmToolBox if needed. |
| ⚠ PARTIAL LIST | You lack environment administrator rights. |
| ⚠ LIMIT REACHED | There are more runs than the configured maximum. Narrow the time range. |
| A child flow call has no link | The flow was invoked over HTTP instead of with Run a child flow, so no child run id is exposed. |
| The plugin fails to start after a manual install | The dependency subfolder was flattened or is missing. Reinstall keeping the package structure. |
Contributions are welcome. Please open an issue to discuss significant changes before submitting a pull request.
Bug reports and feature requests: Issues
Distributed under the MIT License. See LICENSE for details.
Plugin para XrmToolBox que permite buscar y filtrar ejecuciones de flujos de Power Automate por fecha, hora, estado y parámetros del desencadenador; abrirlas directamente en el navegador (eligiendo navegador y perfil); descargar el JSON de la ejecución con los bucles Apply to each numerados —incluida la jerarquía real de bucles anidados— para saltar a una iteración concreta; y rastrear las llamadas a flujos hijos para ir directamente a la ejecución del flujo hijo.
Importante: la conexión de XrmToolBox debe crearse con el método Microsoft Login Control (OAuth / MFA).