Desktop flows are part of your estate too — inventorying Power Automate for desktop from Dataverse

The finance team has eighty desktop flows running month-end. None of them are in your flow count, because the API you are counting with cannot see them. They are in Dataverse, and here is how to bring them into the inventory before they surprise a migration.

LogiSam··5 min read

Power Automate has two products under one name. Cloud flows run in Microsoft's service and are listed by the Flow admin API. Desktop flows — robotic process automation built in Power Automate for desktop — are stored as Dataverse records and run on machines. They share a portal, a licence family and a name, and nothing else; an inventory built from the Flow API alone has a desktop-flow count of zero.

Where they are

In each environment that has a Dataverse database, desktop flows are rows in the workflows table with category eq 6. Cloud flows are category eq 5 in the same table, which is convenient: one read gives both, with the same owner, state and modified-on columns. Environments without Dataverse cannot have desktop flows, so the absence there is real rather than a gap.

Reading them

  • name, statecode, modifiedon, _ownerid_value — the same shape as a cloud flow.
  • clientdata holds the definition, base64-encoded; you need it to count actions or search for a hostname.
  • workflowid is the identifier; there is no Flow API name to reconcile with, because the Flow API never sees them.

How they differ in an inventory

They have no trigger in the cloud sense — they are started by a cloud flow's *Run a flow built with Power Automate for desktop* action, by a schedule on the machine, or by hand. They have no connections; they have machine credentials, which are outside every API. And their owner is often a service account, because the machine runs unattended. Label them clearly as desktop, and do not let a filter for *Manual* or *Automated* triggers silently drop them.

How they behave in a migration

Desktop flows go into a solution as components (type 29, the same as cloud flows) and export with it. What does not export is the machine registration, the machine group and the credentials — those are re-created in the destination. And the migrateFlows operation that converts non-solution cloud flows refuses desktop flows outright; add them to the solution directly.

Sharing them

A desktop flow is shared through Dataverse GrantAccess, not through the Flow API. If your tooling shares cloud flows with the migration lead, check that it does the same for desktop flows, or the lead will be able to open eighty percent of the plan.

PowerAutomatePower Automate for desktopdesktop flows inventoryDataverse workflows category 6Power Platform governance
Desktop flows are part of your estate too — inventorying Power Automate for desktop from Dataverse · Power Insights