If you are an experienced Dynamics 365 CRM System Admin who has built old-style workflows, and needs to get up to speed on Power Automate, this blog is specifically geared toward you.
First, if you’d like a step-by-step example of how to create your first flow that looks at the CRM, I mean CDS, I mean DataFlex, I mean DataVerse, please see my previous blog series. This 5-part blog shows how to create a simple Power Automate flow that uses the FetchXML from an advanced find query to loop through a result set and create a task for each record returned by the advanced find query.
For CRM Admins, the ability for Power Automate to loop through a result set is a game-changer, as anybody who was written a workflow will attest.
There are many things a System Admin will likely look for when creating a Power Automate flow against the database. This blog organizes them into the following sections:
Big Picture Concepts
Power Automate replaces CRM workflow, and it is much more powerful.
Power Automate has 3 main components:
- Trigger mechanism: How does the flow start?
- Connectors: What data sources are you connecting to? (Dataverse, spreadsheets, Outlook, etc.)
- Flow: The sequence of actions that accomplish the desired task(s).
The thousands of connectors and actions put the power in Power Automate. This blog series will help you translate “I’d like to do this in CRM” to the corresponding Power Automate object.
Comparison to CRM Workflow
For users of Dynamics 365 CRM workflows, this chart can help you transfer the old concepts to the new.
|Workflow Capability||Power Automate Equivalent|
|Process Name||Flow Name|
|Category||Only “Workflow” Category supported|
|Entity||Entity on a Trigger or List Rows (now List Rows) action|
|Type (Templates)||Templates don’t exist, but you can “Save As”|
|Run in the background||Always asynchronous|
|As on-demand process||Create an instant flow kicked off by a button press|
|As a child process||Cumbersome, but can use HTTP calls to nest flows.|
|Auto Delete Logs (Unchecked)||Detailed logs retained for every flow.|
|Start when: Record is created||Create Trigger|
|Record Status changes||Update Trigger with filter on statuscode field.|
|Record is assigned||Update Trigger with filter on ownerid field|
|Record fields change||Update Trigger with filter on selected fields|
|Record is Deleted||Delete Trigger|
|Check Condition||Add a “Condition” action to the flow|
|..Wait Condition||“Delay” action or “Delay until” action|
|Create Record||“Create Record” Action|
|Assign Record||“Update Record” Action|
|Send Email||“Send mail” action|
|Start Child Workflow||Use HTTP action to trigger child flow|
|Perform Action||(N/A, only available with Action type workflows, which are not supported in Power Automate)|
|Change Status||“Update Record” action|
|Stop Workflow||“Terminate” action|
Power Automate Connector to Dynamics 365 CRM
Power Automate has hundreds of connectors. Fortunately, if you want to access CR< (Dataverse) data, you have only one good choice:
Use the “Common Data Service (Current Environment)” connector if you want to access Dynamics 365 CRM Dataverse data.
This connector is the latest and greatest (do not use the other, deprecated Dynamics connectors), and the one getting the development effort. If you use this connector you only have to “reconnect“ to the new organization when you move a Power Automate flow across environments, no other changes required. (Recently, “Connection References” can be added to the solution to ease the promotion of flows. It is a ‘preview’ feature, and we’ve seen some issues.)
Power Automate Triggers using Dynamics 365 CRM
You can start a Power Automate flow in different ways.
For a CRM System Admin who wants to work with the CRM/CDS/Dataverse database, your choices primarily come down to:
- Run it on a schedule (Scheduled Cloud Flow)
- Trigger it from a CRM Create/Update/Delete action (Automated cloud flow, or instant cloud flow)
- Create a button in the D365 UI that, when clicked, launches this Power Automate flow.
To learn more about the Triggers to use to connect to Dynamic 365 Dataverse (CRM) data, please read BLOG POST 2