Business Process Flows (BPFs) in Dynamics 365 CE / Power Platform – Deep Dive Part 2
-
Admin Content
-
Jun 20, 2025
-
6
The Rabbit Hole
In my last newsletter - I started to write about Business Process Flow in Dynamics 365CE / Power Platform. Where I left off on the last post was with me scratching my head about if I even understood how all this alls works?
The last two week, I have been down a very deep rabbit hole and I haven't found my way out just yet. This deep dive 2 is just me taking a deep breathe while I explore further.
The last Deep Dive we ended here -- a visual editor for BPFs.
What is in this visual editor?
To better understand the visual designer than it is best to understand the data model for BPFs because the visual designer is combining multiple tables(and relationships) into it.
When we look at the Unified Process Designer above it contains the following tables from the data model.
- A Primary related Table = KYC Simple starts on a Contact
- The KYC Simple BPF is a Table Itself
- A BPF Stages belong to another table called Process Stages
- Workflows(Processes) are the table for all System Workflows where all BPFs are of Category = 4
When we look athe Unified Process Designer URL it is pointing at: id:13b7c019-ef45-f011-8779-7c1e5236ac0a which is the process ID used for the BPF WorkFlow(WorkflowID) and in the Process Stage(ProcessID_Value)
Workflows(Processes)
I think that most people that have worked with Dynamics 365 CE / Powerapps know about workflows(processes) and how this all works.
To make my life easier
I build a little model-driven app called "Process App" and I added all the tables and related items I needed to find things easily.
Back to Workflows( Processes) - It should be noted that the table schema/logical name is "Workflow" and the display name is "Processes"
This view I just filtered out the processes on category = "Business Process Flow" in the standard UI view buidler.
Using the API It is possible to see your processes via the web where workflow.category = 4 means BPF.
Other values include: 0 = Definition | 1 = Activation | 2 = Action | 3 = Business Rule | 4 = Business Process Flow
All Workflows(process)
[environment]/api/data/v9.2/workflows
Or just the active BPFs
[environment]/api/data/v9.1/EntityDefinitions?$select=SchemaName,LogicalName,DisplayName&$filter=IsBPFEntity%20eq%20true
Or a single BPF
[environment]/api/data/v9.1/[BPF Schema Name]
Now to BPF Process Stages
For each Process Stage added to the BPF in the visual editor:
A New Process Stage is created in the Process Stage Table. To find the process stages just use the api because this is hidden and can't bee added to the UI of any modeldriven app.
API
Using the API makes it easy find the Process Stages and their Stage Ids
[your env]/api/data/v9.1/processstages
Process Stages ID
Can be found in through the API and searching for the name of the Process. I used "KYC" and it returend the process stages to me :
"@odata.etag": "W/\"9236990\"",
"operationkind": null,
"parametervalue": null,
"_processid_value": "13b7c019-ef45-f011-8779-7c1e5236ac0a",
"operationtype": null,
"clientdata": "[{\"DisplayName\":\"Email\",\"DisplayLabelId\":\"47feffa6-475f-412b-86ed-3f2361f2c47e\",\"Type\":\"Field\",\"Field\":{\"AttributeName\":\"emailaddress1\",\"IsRequired\":true}},{\"DisplayName\":\"First Name\",\"DisplayLabelId\":\"2fd4dff4-f6da-4bcc-80bd-eb69ca7210d5\",\"Type\":\"Field\",\"Field\":{\"AttributeName\":\"donotbulkpostalmail\",\"IsRequired\":true}},{\"DisplayName\":\"Birthday\",\"DisplayLabelId\":\"72e0d289-d13b-4fe3-9c9e-5beeb220e8ec\",\"Type\":\"Field\",\"Field\":{\"AttributeName\":\"birthdate\",\"IsRequired\":true}}]",
"owningbusinessunit": "c0e7ee9b-5822-f011-8c4e-7c1e5276d9d7",
"stagename": "KYC STAGE 1",
"_parentprocessstageid_value": null,
"versionnumber": 9236990,
"istrigger": false,
"stagecategory": -1,
"operationid": null,
"parametername": null,
"primaryentitytypecode": "contact",
"processstageid": "e716e4e9-c2eb-475d-a379-31c63efedc80",
"_ownerid_value": "d0eeee9b-5822-f011-8c4e-7c1e5276d9d7",
"connector": null
}
The other way to get them is to add the BPF to your app and you can create a view of the BPF. See how I added the BPF called KYC SIMPLE to the UI.
The table KYC Simple can open but it is not possible to add any fields to a form or create a new form as the entity is locked down. This all one gets...
Process Stages ID in the KYC Simple View
The process stage IDs are found in the view and they are called Transversed Path. The Transversed path shows which Stages the BPF is on or has been on by listing the ID(s) and separated by a comma.
What Did I learn So Far? Is there a User Case in there somewhere?
YES!!
My user case is that I want to run simulataneosly difference Business Process Flows(BPF) on a customer. None of the BPFs have to be visual on the contact card beause I want to use the BPF to track where they are in my various important onboarding processes.
I want to be able to track where the contact is in these processes and it should be visible to the people that need to see them.
3 Business Processes
I have created - 3 BPFs - with 3 stages eacg
- Know Your Customer(KYC is shown on contact)
- Onboardning Journey
- Customer Journey
BPF Stage History Log
I have created a BPF Stage History Log to track the creation, stage changes and process finish for the BPF.
I configured the status reasons for logging BPF, Start, Active, In the Past and Finished
Added Some Simple Graphs
Duration
One sticking point is time tracking and in the current data model time on stages is overwritten and with the BPF Historical Table - I can track the duration of the BPF between stages, which gets lost in the current data model and complete time
Contacts
On the view for Contact - I added the editable grid component and show the BPF historical stages for each contact and I have added to the Contact itself in a new tab as a subgrid.
Contact View
On the Contact Itself
Deep Dive Part 2 Conclusions
Well, there is a bit more to do with BPFs because I want to drive value from a better understanding of how everything is tied together. This is important to help find any missing pieces needed to drive end user business value as well as possibly re-imagine old processes into digital ones.
In my next post I will show the follwing:
- BPF Historical Table in Detail
- Power Automate Flows to drive this
- Reporting
- Possible Canvas App to visualize all this
Source: Business Process Flows (BPFs) in Dynamics 365 CE / Power Platform – Deep Dive