Great blog below by Vidit to demonstrate how you can use ribbon buttons in Dynamics 365 Sales to send emails based on Templates.
Month: March 2024
Use Monitor to debug Model-driven apps remotely | Power Platform
Monitor is one feature that comes in super handy when end-users complain about an issue which is difficult to ask end users to send across logs from the browser.
And here’s where Monitor comes in handy!
Let’s see how this works through this simple blog post!!
Capture events from Monitor in Model Driven Apps
Here’s how you can Monitor in Model-driven apps’ Monitor to capture issues on an End User
- You can go to Power Apps Maker Portal (https://make.powerapps.com/) and make sure you are switched to the intended environment.
- Then, select Apps on the left hand pane and expose all the Apps. Select the Model-Driven app you want to enable Monitor for. Once you select, you can then drop down from Details flyout menu and click on Monitor.

- Once you click on Monitor, it opens the Monitor application itself where all the logs you work on will be captured. And you can also notice that there’s a Play model-driven app button as well to enter in Debug mode.

- It opens the Model-driven app in a new tab and asks you to confirm if you want to join the debug session.

- Once you click on Join, it’ll run the app in debug mode and you can see the Monitor tab and notice that it has started capturing the logs based on your operations in the Model-driven app session you are running in parallel.

- And when you go about working in the model-driven app, it’ll keep capturing the traffic just like on a browser’s Network in Dev Tools

- Now I deliberately added an erroneous code in my custom JS so that I could capture an exception in the monitor.

- And if you look at the monitor, you’ll see that this has been captured.

- And this is the wrong script I entered so that my code wouldn’t find the incorrect field name and throw an error when I try to retrieve value from an attribute that doesn’t exist (without null checking if the attribute exists or not)

- However, best use case is when you ask end-users to join your session. Let’s see in the next session on how you can achieve this.
Invite Users to your Debug session
In the Model-driven apps monitor, here’s how you can invite other users to join your session –
- In the Monitor, you’ll see Invite or Connect to a User. For this example, I’ll choose Connect user option.

- Then, I can simply search for the User whom I want to generate a join link for.

- Now, once this user is added, you’ll see a copy link option to copy the link and pass it on to the user who needs to join.

- Once the end user has this link, then can join the session and they’ll see this message on their Dynamics model-driven app

- And similarly, once they start reproducing the issue, you can start capturing the traffic on your end.

Hope this was useful! In order to fully understand the capabilities of Monitor for model-driven apps, here’s Microsoft’s official documentation – https://learn.microsoft.com/en-us/power-apps/maker/monitor-collaborative-debugging?WT.mc_id=DX-MVP-5003911
Hope this was useful!
Here are some Power Automate posts you want to check out –
- Select the item based on a key value using Filter Array in Power Automate
- Select values from an array using Select action in a Power Automate Flow
- Blocking Attachment Extensions in Dynamics 365 CRM
- Upgrade Dataverse for Teams Environment to Dataverse Environment
- Showing Sandbox or Non Production Apps in Power App mobile app
- Create a Power Apps Per User Plan Trial | Dataverse environment
- Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
- Co-presence in Power Automate | Multiple users working on a Flow
- Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
- Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
- Call a Flow from Canvas Power App and get back response | Power Platform
- FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
- Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
- Asynchronous HTTP Response from a Flow | Power Automate
- Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
- Converting JSON to XML and XML to JSON in a Flow | Power Automate
Thank you!
Why Environment Variables don’t appear in Flows? | [Quick Tip]
At times, if you are new to working with Environment Variables and you’re looking to use them in your Flows but don’t see them?
Here’s why!
Flows Outside Solutions
If you are creating Flows from the My Flows section, let’s see if you can access Environment Variables or not –
- If you use My Flows way to create your Flows as shown below –

- You won’t be able to access Environment Variables in that Flow

Flows in Solutions [Default and other Solutions]
So, you’ll need to have your Flows inside a Solution – even if you are creating a Flow in Default Solution, you’ll be able to access Environment Variables from another solution –
- If you are in a Default Solution as shown below and you create a Flow there, you’ll be able to access Environment Variables.

- And you create a Flow there, you’ll be able to access Environment Variables.

Hope this was useful!
Here are some Power Automate posts you want to check out –
- Select the item based on a key value using Filter Array in Power Automate
- Select values from an array using Select action in a Power Automate Flow
- Blocking Attachment Extensions in Dynamics 365 CRM
- Upgrade Dataverse for Teams Environment to Dataverse Environment
- Showing Sandbox or Non Production Apps in Power App mobile app
- Create a Power Apps Per User Plan Trial | Dataverse environment
- Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
- Co-presence in Power Automate | Multiple users working on a Flow
- Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
- Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
- Call a Flow from Canvas Power App and get back response | Power Platform
- FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
- Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
- Asynchronous HTTP Response from a Flow | Power Automate
- Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
- Converting JSON to XML and XML to JSON in a Flow | Power Automate
Thank you!
Pre-Export Step Required setting in Deployment Pipeline | Power Platform Pipelines
Now that you must’ve already setup your basic Power Platform Pipeline as yet and are looking to explore how to extend the Power Platform Pipeline to do more advanced operations, this post is for you!
In case you are still looking to first setup your Power Platform Pipeline, you can check this Blog Series which this very post too, is a part of – Power Platform Pipelines | Blog Series
What is Pre-Export Step Required Setting?
This is the ability to have a trigger before an Export operation from the Development Environment is initiated in order to run the pipeline – only available for the first stage in the pipeline.
This is provided so that you may want to run some external operations before this is taken through the pipeline for deployment.
Use Case is – that you want to first seek an approval from the Admin before the Solution is deployed to Production (or rather, sent through the pipeline for deployment). Once approved, the pipeline should automatically proceed towards executing the rest of the deployment stages.
Pre-Export Step Required
While setting up your Pipeline, in case you were wondering what Pre-Export Step Required setting was, see below –
- Once you mark this field as checked/Required, save the record and it’ll appear like this on the record.

- What this does is, it runs the trigger action ‘OnDeploymentRequested’

- And once this Flow is trigger based on this Action, you can perform custom logic to be carried out and be successful before the deployment is carried forward.
In this example, I’m setting a simple Approval process to be in place so that the Admin is aware and approves all the Deployment requests.
- Now, once an Approval is received, you need to check the status of the request and if it’s Approved, you need to run Perform an unbound action to initiate the Action ‘UpdatePreExportStepStatus‘
You’ll need to pass the StageRunId – You’ll get this in the Dynamics Content Properties of the Flow itself from the trigger.
Then, you need to set the Status of 20 – this means Approved.
For rejection, the status to set is 30.
- Now, once this Flow is in place, every time a Pipeline is Run to deploy the solution, it’ll first wait for the Approval process to complete and the pipeline itself will show the below message.

- This status can also be seen in the Deployment Stages in the ‘Deployment Pipeline Configuration‘ app as well.

- Now, the Admin on the other hand, will receive a Power Automate Approval like this (based on whatever you have configured). This is received on both Approvals in Teams and in Power Automate as well.

- Once the Approver approves, I’ll enter some notes while approving.

- The pipeline will then proceed to deploy to production.

- And this will also proceed on the UI in Pipelines as well.

- Once deployed, you’ll see that this is completed Successfully if there are no issues.

- You can also see the History. The End Time will represent when it was completed as opposed to Start Time representing when the Deployment Request was initiated.

- And also in the ‘Deployment Pipeline Configuration‘ app.

Here’s official Microsoft documentation on how you have Gated Extensions like these to be in place in Power Platform Pipelines – https://learn.microsoft.com/en-us/power-platform/alm/extend-pipelines#gated-extensions-available?WT.mc_id=DX-MVP-5003911
Hope this was useful!
Here are some Power Automate posts you want to check out –
- Select the item based on a key value using Filter Array in Power Automate
- Select values from an array using Select action in a Power Automate Flow
- Blocking Attachment Extensions in Dynamics 365 CRM
- Upgrade Dataverse for Teams Environment to Dataverse Environment
- Showing Sandbox or Non Production Apps in Power App mobile app
- Create a Power Apps Per User Plan Trial | Dataverse environment
- Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
- Co-presence in Power Automate | Multiple users working on a Flow
- Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
- Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
- Call a Flow from Canvas Power App and get back response | Power Platform
- FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
- Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
- Asynchronous HTTP Response from a Flow | Power Automate
- Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
- Converting JSON to XML and XML to JSON in a Flow | Power Automate
Thank you!
Power Platform Pipelines | Blog Series
Here’s a blog series to get you up to speed on Power Platform Pipelines!
Setting up and Running Power Platform Pipelines
Here is what you need to get done in order to setup Power Platform Pipelines –
Advanced Settings
| Scenario | Blog |
|---|---|
| Once request for deployment is submitted. | Pre-Export Step Required setting in Deployment Pipeline | Power Platform Pipelines |
Here’s official Microsoft Documentation on Power Platform Pipelines – https://learn.microsoft.com/en-us/power-platform/alm/pipelines?WT.mc_id=DX-MVP-5003911
Hope this was useful!
Here are some Power Automate posts you want to check out –
- Select the item based on a key value using Filter Array in Power Automate
- Select values from an array using Select action in a Power Automate Flow
- Blocking Attachment Extensions in Dynamics 365 CRM
- Upgrade Dataverse for Teams Environment to Dataverse Environment
- Showing Sandbox or Non Production Apps in Power App mobile app
- Create a Power Apps Per User Plan Trial | Dataverse environment
- Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
- Co-presence in Power Automate | Multiple users working on a Flow
- Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
- Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
- Call a Flow from Canvas Power App and get back response | Power Platform
- FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
- Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
- Asynchronous HTTP Response from a Flow | Power Automate
- Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
- Converting JSON to XML and XML to JSON in a Flow | Power Automate
Thank you!
Run a Power Platform Pipeline
In case you setup your first Power Platform Pipeline and looking to test it out? This post is for you.
Or if you haven’t yet configured your Power Platform Pipelines first, refer this post – Setup Power Platform Pipelines
Now that you have your basic Power Platform Pipeline set in place, let’s run a created Pipeline!
Run Power Platform Pipeline
Here’s what you need to do in order to Run your pipeline –
- Go to the Dev environment on which you have Hosted your pipeline (or which is supposed to be your first environment from where all the customization/configuration should move over).
Go to the Solution which you want to Run through the Pipeline.
For the simplicity of this example, this Solution has just 1 custom column on the Account table.
- Now, click on Pipelines and look for the Deployed Pipeline which is ready to be used.

- Now, once you get to see the stages which you have set in the blog post – Setup Power Platform Pipelines, those stages will appear here.
Then, verify the environment details mentioned and then click on Deploy here once you are sure.
- Now, once you click on Deploy here, you’ll be given option to choose when you want to deploy – whether now or later.

- For this example, I’m choosing Now instead of scheduling it for later. Then, I click Next and it’ll go into Validating Stage.

- Once it all looks good, you’ll get AI generated notes already if you are in the US Region (at the time of writing this post). Then, click Deploy once everything looks good.

- Once this is in progress in the background, you’ll see that the pipeline is deploying your solution.

- Once this is completed, you’ll see that this is deployed successfully.

- And this will be successfully deployed to the Target environment like so in the Managed Solutions section.

Hope this short tutorial was helpful!
Hope this was useful!
Here are some Power Automate posts you want to check out –
- Select the item based on a key value using Filter Array in Power Automate
- Select values from an array using Select action in a Power Automate Flow
- Blocking Attachment Extensions in Dynamics 365 CRM
- Upgrade Dataverse for Teams Environment to Dataverse Environment
- Showing Sandbox or Non Production Apps in Power App mobile app
- Create a Power Apps Per User Plan Trial | Dataverse environment
- Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
- Co-presence in Power Automate | Multiple users working on a Flow
- Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
- Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
- Call a Flow from Canvas Power App and get back response | Power Platform
- FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
- Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
- Asynchronous HTTP Response from a Flow | Power Automate
- Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
- Converting JSON to XML and XML to JSON in a Flow | Power Automate
Thank you!
Setup Power Platform Pipelines
Given that you need to setup Power Platform Pipelines, here’s a post for you!
This post will walk you through on how you can setup Power Platform Pipelines.
Pre-Requisites
Here’s what you need to setup in order to enable Power Platform Pipelines –
- You need to enable Managed Environments for the environments which need to participate in Power Platform Pipelines. Here’s a post on Managed Environment which I’ve written in the past – Enable Managed Environments in Power Platform Admin Center
Given that all participating environments have been enabled with Managed Environments, select an Environment which is supposed to a “Host” environment where all the Pipelines master data will house and then go to it’s Dynamics 365 Apps section from Resources to install Power Platform Pipelines into that environment.
- Once you are in, click on Install app and then search for Power Platform Pipelines.

- Confirm that you are about to install this Solution.

- Once installed, go to Power Apps Maker Portal (https://make.powerapps.com/) and then select the Host environment in which you have installed Power Platform Pipelines on.
Then go to Apps and you’ll see Deployment Pipeline Configuration app. Play that app!
Let’s see how you can set the environments up first!
Setting up Environments
Here’s how you can setup your Environments in the –
- Once you are in the Deployment Pipeline Configuration App, go to Environments and create a New record.

- Then, enter all the details. Also, mention if the Environment type is Development Environment or Target Environment.

- Once you save the record, this the configuration will be validated.


- In case you are wondering how to you find the Environment ID, here’s where you’ll find the Environment ID in Power Platform Admin Center (https://admin.powerplatform.microsoft.com/environments), select the environment and you’ll see the details as below –

- Once all the Environments are set in the Deployment Manager, here’s how it should look

Configure Deployment Pipelines
Now that your environments are set, let’s also configure the Deployment Pipelines –
- Go to Pipelines and create a New record.

- Now, fill in all the relevant information and save the record.

- Now, link your Managed Environments in the Linked Deployment Environment grid below. Then click on Add Existing Environments button.

- And once you add, they’ll appear like this while selecting them in lookups. Then click Add.

- Once added the Development Environments, go ahead and create new Pipeline Stages too.

- In the new Deployment Stage, I’ll simply tag the Production Environment and save the record to keep this example simple.

At this point, your Pipeline is all set to Run.
Shortly, I’ll share another post on how you can Run a Pipeline in Power Platform!
Hope this was useful!
Here are some Power Automate posts you want to check out –
- Select the item based on a key value using Filter Array in Power Automate
- Select values from an array using Select action in a Power Automate Flow
- Blocking Attachment Extensions in Dynamics 365 CRM
- Upgrade Dataverse for Teams Environment to Dataverse Environment
- Showing Sandbox or Non Production Apps in Power App mobile app
- Create a Power Apps Per User Plan Trial | Dataverse environment
- Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
- Co-presence in Power Automate | Multiple users working on a Flow
- Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
- Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
- Call a Flow from Canvas Power App and get back response | Power Platform
- FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
- Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
- Asynchronous HTTP Response from a Flow | Power Automate
- Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
- Converting JSON to XML and XML to JSON in a Flow | Power Automate
Thank you!
Pass Entity parameter from Power Automate Flow to an Action
Let’s say that you want to run a Power Automate Flow on a set of Dataverse records and those records will be referenced in your C# Plugins.
And the next steps is you’ll create an Action for this and register it in the Plugin Registration Tool.
In case you are new to plugins in CRM, you can refer this series – Plugins Development in Dynamics 365 CRM for Beginners | [Blog Series]
Bound Action in CRM
Let’s suppose you are aware on how to create Actions in Dynamics 365 CRM. This is an old concept since many years and I’m also assuming you know how to profile a plugin (which is registered as an Action in CRM) –
- When you open an Action, let’s suppose you are passing Account as well as a Contact Entity to the Action itself.
Notice that the Action is registered as a Bound Action on the Account entity already.
- Also, assuming that you have Activated this Action and then registered this Action as a Step on the Plugin in the Plugin Registration Tool.

Now, let’s see how we can pass the parameters to the plugin itself from the Flow
Power Automate Flow – Bound Action
You must’ve used the Dataverse connector a lot, so here’s how you can call the Bound Action and pass the Entity parameters to the Action itself –
- You’ll need to use a Perform a bound action action in Power Automate which is offered by Dataverse connector.

- Then, select the Table which you have registered the Action on in CRM and you’ll then see the Action’s backend name appear for selected, then pass the primary key of the record.

- Now, since there are 2 Entity parameters to be passed for the Action, here’s you’ll see all the fields from those Entity itself!

- For each of these Entity parameters, you have to look for the Primary Key field of those tables and then pass the GUIDs of the Entity records you presumably have.
- But wait! There’s a limitation here. You can only have 1024 parameters saved for the step selected. Hence, only 1 lookup will suffice.
You’ll get the below error when trying to set both the Lookups that I’m passing to the action above.
The error says “The dynamic schema response from API ‘commondataserviceforapps‘ operation ‘GetMetadataForBoundActionInput‘ is too large, only schemas with at most 1024 properties are supported.“
- Hence, I’ll go back and remove 1 Entity parameters just for this example to work!
- And then, I’ll simply profile the Plugin Action to see what is passed in the InputParameters.

Plugin Context
Now, given that you might have already Profiled the plugin and attached it to the Plugin Registration Tool process, let’s examine the context’s Input Parameters –
- the InputParameters in the plugin’s execution context will contain the following parameters, which we’ll see in later section of this blog post.
Target [EntityReference, in a CRUD operation registered plugin step – Target is an Entity in the plugin context]
AccountRecord [Entity]
Considerations
Here are some considerations if you want to make design decisions for your implementation –
- Cannot have 2 or more Entities as parameters as the Perform a bound action step itself has limitations of 1024 properties at the Power Automate level.
- Pass some other Entity than the Action you have registered on since you’ll get the registered Entity as EntityReference itself in the “Target” parameter.
Hope this was useful!
Here are some Power Automate posts you want to check out –
- Select the item based on a key value using Filter Array in Power Automate
- Select values from an array using Select action in a Power Automate Flow
- Blocking Attachment Extensions in Dynamics 365 CRM
- Upgrade Dataverse for Teams Environment to Dataverse Environment
- Showing Sandbox or Non Production Apps in Power App mobile app
- Create a Power Apps Per User Plan Trial | Dataverse environment
- Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
- Co-presence in Power Automate | Multiple users working on a Flow
- Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
- Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
- Call a Flow from Canvas Power App and get back response | Power Platform
- FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
- Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
- Asynchronous HTTP Response from a Flow | Power Automate
- Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
- Converting JSON to XML and XML to JSON in a Flow | Power Automate
Thank you!