Create a Custom Connector For Power Automate & Power Apps

One of the most important qualities of extending capabilities of any platform is being able to add Custom code and make it available to wider use cases.

In this case, it’s a custom code that is encompassed in a Custom Connector in Power Platform and made available to Power Automate or Power Platform.

Use Case

The purpose of my custom connector is to call my hosted custom code in Power Automate or Power Apps.

For this example, I’ve created a simple Azure Function that just returns a value – just to test the working of the Custom Connector. Of course, your use case is to be able to connect to the hosted app, expect it to process the business logic which you intend to do and return back the results.
So, in my case – my Azure Function will simply greet the name passed to it.


See the Postman test below –

Now, let’s make a Custom Connector that will execute this Azure Function in your Power Automate.

Create Custom Connector in Power Apps / Power Automate

You can either make the Custom Connector from the Power Automate portal or the Power Apps Maker portal, both are the same things. Let’s see this example from Power Apps portal –

  1. In this use case, I’m in a Solution in Power Apps / Power Automate. Open the one in your case since you can’t create a Custom Connector from outside a Solution any longer.

  2. Now you can drop down from New and see in Automation menu that you can create a Custom Connector

  3. Now, you’ll be required to enter the name of the Connector itself and other details like a PNG icon for it, Description etc.

  4. Now, below is the info that I filled in. I’m calling it Data Transporter and have selected an Icon which should make me easy to recognize my connector in Power Automate and Power Apps and enter enter the details of my hosted Azure Function which is authenticated using an API Key.
    So, here’s what my info looks like –

  5. Now, when I click on Security after filling all the info, the type of Authentication I used in this case if API Key, yours could be different depending on what your custom application is configured to work with –

  6. It’ll ask you to fill in the information so that it appears as parameters to fill in for the Custom Connector when the end user will work on their Flows/Apps.

  7. The info I’m choosing to fill is this – I’m giving a name to the parameter to indicate what info is required. The actual parameter name required by the Azure Function, in this case – it’s ‘code’ and since I need to pass the API key in Query string, I’ve selected Query instead of Header.

  8. When you go to the next part, i.e. Definition, make sure you also give a Name to the Custom Connector already. Before your lose the info you’ve already entered. Make sure you also click on Create Connector


    Once you click on Create connector, it’ll create it in a few moments.

  9. Now, since you are aware of Triggers and Actions from using Power Automate – in this use case, my Custom Connector is designed to be an Action i.e. when called/used in Power Automate, it’ll simply perform the operation it’s designed to do.
    Hence, I’m selecting an Action here.
    When I select New Action from the left hand pane, it’ll open up information for me to fill out to describe the Action.

  10. Now, since this will appear as a listed item in Actions in my Power Automate connector, I’m filling in this info (and we can check later how it appears).


    Next, I’ll click on + Import from sample as it’ll give me a place to enter a sample for the request to call my hosted Azure Function.



  11. Next, I’ll pass these values as I did in Postman to create the sample. Once done, I can click on Import.

  12. When I import, I’ll the request parameters set in the Custom Connector based on the sample I entered.

  13. Next, I’ll scroll down to ensure that all validations are perfect and I needn’t fix anything.

  14. Next, I’ll skip AI Plugins step and also the Code step since I want to keep this example concise and to the scope of the hosted Azure Function only.


    And this is skipped too –

  15. Now, the final step is to Test the Custom Connector. The Editor will ask you to Update connector before you can Test. Then, in order to begin testing – you’ll need to first create a Connection using New Connection button as shown below.


  16. When you click on New Connection, you’ll be taken to a new tab to enter the API key which you created as parameter in the initial setup of this Connector. See #7 above. Enter the API key you have which works for this hosted app and then click Create connection.


  17. Next, in case the Connection doesn’t appear, click Refresh button once.

  18. Once you refresh, you should see your Connection come up and selected.

  19. Now, next step is to test the Custom Connector itself. Enter the values that you wish to test for and click Test operation.

  20. You’ll see the test results based on what the hosted code is supposed to perform.
    In my case, it was easy as it just greets the name entered.


    And your Custom Connector is now ready to be used!

Consuming Custom Connector

Now, let’s see how you can use the Customer Connector in Power Automate in order to perform the operation in your Flows –

  1. Once in Power Automate, look for the Custom tab in the Action selector.

  2. Then, you can see the Action you defined in your Connector Definition steps above.

  3. Since you need to authenticate using the API key you have, the create Connection step will ask you this info and you can give the name of the Connection.

  4. Pass the value you want to pass as data.

  5. Finally, you can just save and test the Flow itself and look for your Outputs.


    And that’s how you can have a Custom Connector for your custom app/service your have created. I’ll soon write about other aspects of Custom Connector which I wasn’t able to cover in this blog.

Hope this was useful!

Thank you!

HTTP Trigger Azure Function Authorization Types simplified

Now, many of you must be wondering how the Authorization types for Azure Functions using HTTP Triggers work and where to look for information while using these different types. Hopefully, this post helps simplify each of those for you.

Now, when you create a new Azure Function from Visual Studio or from the Azure Portal, you’ll be asked about Authorization where you’ll find the selection to either be 1 of the below –

  1. Anonymous
  2. Function
  3. Admin
  4. System

Anonymous

This type of Authotization let’s you use the Azure Function without needing for any key and anyone with the URL alone can access it. Of course, this is not recommended for any production use –

  1. Now, if you notice your Visual Studio, when you write your first Azure Function, it comes with pre-defined method ready for you to continue to write your own code. But right away, you’ll see that the Authorization method is pre-defined considering you must’ve selected Anonymous while starting the Project.

  2. Also, since the Azure Function is understood to be Published already on the Azure Portal, you’ll see in the Function’s settings that the same has been reflected as well.

  3. Now, if you test this using Postman, the code will be able to run directly just using the URL without any API key. Either you pass in the body – and you’ll get a 200 OK with the result that the Azure Function is supposed to result.


    Or using query parameters – the result will be the same.


    This simply explains Anonymous authorization. Without any check on who’s supposed to access the Azure Function.

Function

In this type of Authentication, only the Function and resources associated to it will be accessible. This needs the caller to have a key [or code] to be passed while calling Azure Function –

  1. Let’s look at the code, and see that the type is not set to Function for Authorization.

  2. And when you Publish the code, the same will be reflected in the Settings too.


  3. And when you want to access the Azure Function from Postman, you’ll need the Function Keys defined in the Function Keys area of the Function itself – a Default Key is given already but you can choose to add your own keys and using any of them would do.

  4. Now, here’s what the Key looks like when you click on Show [there’s a button on the far right to expose the key’s value]

  5. Now, when you go to Postman, you need to can pass this as a query parameter –


    Now, let’s look at the Admin Type of Authorization.

Admin

In this type of Authorization, you get access to Functions’ Runtime APIs. The way to use the Admin key is similar to the Function Keys, just that they are available from the Function App itself than the Function –

  1. Now, when the Authorization is set to Admin

  2. You’ll see this reflected in the portal once Published.

  3. Now, in the Function App itself – you can navigate to the App keys under Functions [as of the portal’s layout in mid-2024]

  4. You can expose to see this value and share it to the clients who are going to consume this Function App. They key required here is the _master

  5. Now, you can test this using Postman


    Remember, this type of Authorization is to be used when the calling client needs to also access Functions Runtime API.
    Finally, Let’s look at the System type.

System

This type of key is managed by Function runtime and is used when the calling client when there’s a need for granular access to function runtime features.

  1. Now, you can set this from the code and publish it.


  2. And it’ll appear in the settings of the Function [In case when the Function wants to access granular function runtime features].

  3. And this is present in the App keys area under System Keys section.

  4. And when you test the same, they work just like any other key from the Function app when called.

Hope this was useful!

Permanently Delete a User in Entra ID

In case you are managing Users in Microsoft 365, a Deleted User still exists in Soft Delete state for 30 days.
Here’s how you can immediately delete the user permanently!
Please do this when you are entirely sure that you want to delete the User as this a permanent step and won’t get back the User once deleted.

Azure Admin Portal

Here’s how you can access the Azure Portal and then delete the User –

  1. Unlike M365, go to Azure Portal (https://portal.azure.com/#home), then look for Entra ID

  2. Then, look for Users.

  3. In Users, go to Deleted Users.

  4. There, you’ll find the Soft Deleted Users, select the User you want to delete and then click on Delete Permanently.

  5. You’ll need to refresh the page after a few moments to see that the User is not gone.


    Hope this is useful!

Thank you!

Power Platform self-service analytics Data Export to Data Lake [Preview] | Power Platform Admin Center

Now, you can also export the Analytics Data to Azure Data Lake in order to further extend the derive rich data analytics!
At the time of writing this post, this feature is in Preview (As you’ll also see from the screenshots below)

This is a great feature where you can extract this Data into Data Lake and then further enrich and derive rich Power BI reporting based on your use-case.

In case you are new to understanding Azure Data Lake and pricing, you can review this – https://azure.microsoft.com/en-gb/solutions/data-lake/?WT.mc_id=DX-MVP-5003911

Data Export (Preview)

In Power Platform Admin Center (https://admin.powerplatform.microsoft.com/), here’s how you can setup Data Export –

  1. Navigate to Data Export in Power Platform Admin Center given that you have appropriate rights –


  2. Then, you’ll get to choose amongst the Power Apps or Power Automate data to be exported to Data Lake.

  3. In this example, I’ll choose Power Automate. As I select Power Automate, you’ll see that Tenant-Level Analytics are required and hence, already considered as Yes. If not, you’ll need to Enable Tenant-Level Analytics while doing this step – Here’s another post on how to Enable and Use Tenant Level Analytics –


  4. Now, In the next section you’ll need to choose the Subscription.


  5. Further, select the Resource Group and eventually, the Storage Account as well.


    And Storage Account is selected as well.

  6. Once everything looks good, you can click on Create.

  7. In a few moments, this will appear in Data Lake section of the Data Export. It will take up to 24 hours for the data to first start showing in Data Lake.

  8. Once this is completed after about 24 hours, you’ll see the status of the Data Lake data package changed to connected.


Data Export to Data Lake

Let’s look at the Azure Storage Explorer to connect to our Data Lake and see the Power Platform data – In case you are looking to install Azure Storage Explorer, here’s a post – Microsoft Azure Storage Explorer | Getting Started

  1. Once authenticated to the correct environment in Azure Storage Explorer, here’s what you would see in the ADLS Gen 2 (In case you want to create ADLS Gen 2 storage account, you can review this post – Create ADLS Gen 2 Storage Account for Azure Data Lake)
    You’ll see powerplatform folder show up.

  2. If you open this folder, since we had chosen Power Automate, it’s folder will be created.

  3. And let’s go in Flows folder to see the data. You’ll find json files of the same. You can double click to open it and it’ll open in whatever editor you have installed.

  4. In this case, I had VS Code, so here’s what the Flow data looks like –

  5. Likewise, you can dig deeper in this data and use this further for your reporting!

Here’s Microsoft Learn Document on the same – https://learn.microsoft.com/en-us/power-platform/admin/self-service-analytics?WT.mc_id=DX-MVP-5003911

Here’s Microsoft Learn Docs for Tenant-Level Analytics – https://learn.microsoft.com/en-gb/power-platform/admin/tenant-level-analytics#how-do-i-enable-tenant-level-analytics?WT.mc_id=DX-MVP-5003911

Hope this helps!

Here are some Power Automate posts you want to check out –

  1. Select the item based on a key value using Filter Array in Power Automate
  2. Select values from an array using Select action in a Power Automate Flow
  3. Blocking Attachment Extensions in Dynamics 365 CRM
  4. Upgrade Dataverse for Teams Environment to Dataverse Environment
  5. Showing Sandbox or Non Production Apps in Power App mobile app
  6. Create a Power Apps Per User Plan Trial | Dataverse environment
  7. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  8. Co-presence in Power Automate | Multiple users working on a Flow
  9. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  10. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  11. Call a Flow from Canvas Power App and get back response | Power Platform\
  12. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  13. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  14. Asynchronous HTTP Response from a Flow | Power Automate
  15. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  16. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Microsoft Azure Storage Explorer | Getting Started

If you are wondering how to get and setup the Microsoft Azure Storage Explorer – Here’s this post!

Azure Storage Explorer

Here’s how you can download and setup Microsoft Azure Storage Explorer.

  1. Search For Azure Storage Explorer and you’ll see something as below –

  2. Once you open the azure.microsoft.com link, you’ll see the below –
    Drop down to select Windows. And the Setup will will be prompted to save on your browser (or directly download based on your browser settings)

  3. And it’ll appear that it has been downloaded to your machine.

  4. Now, click on the Setup and let it start. Accept the Terms if everything looks OK to you, then click on Install


  5. It’ll then ask you where to setup and what it should call on the system. Standard stuff.



  6. Then, installation will begin.


  7. Then, open it up when finished.

  8. Now, this will come up. You are now ready to Sign-In!

Sign In with Azure in Microsoft Storage Explorer

Now, picking up from the step above, here’s how you sign in –

  1. Click on the Sign In with Azure if that’s your case unless you are trying other options in this wizard.

  2. If your Azure is usual one to login, can you simply click on Azure and click Next.


  3. Then, you’ll be asked to authenticate. Enter your credentials and authenticate like you would for any Microsoft Account.

  4. Once successful, you’ll see this and you can close the window.

  5. Now, if you open the App, it’ll detect your Azure Subscription if you have one.
    If it looks correct, you can simply click on Open Explorer.

  6. Once opened, you can expand on the Subscription and see all your Storage Accounts.

Hope this helps!

Here are some Power Automate posts you want to check out –

  1. Smart Buttons in Ribbon Workbench | XrmToolBox
  2. Hide options from OptionSet using JavaScript in Dynamics 365 CRM
  3. Select the item based on a key value using Filter Array in Power Automate
  4. Select values from an array using Select action in a Power Automate Flow
  5. Blocking Attachment Extensions in Dynamics 365 CRM
  6. Upgrade Dataverse for Teams Environment to Dataverse Environment
  7. Showing Sandbox or Non Production Apps in Power App mobile app
  8. Create a Power Apps Per User Plan Trial | Dataverse environment
  9. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  10. Co-presence in Power Automate | Multiple users working on a Flow
  11. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  12. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  13. Call a Flow from Canvas Power App and get back response | Power Platform
  14. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  15. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  16. Asynchronous HTTP Response from a Flow | Power Automate
  17. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  18. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Setting up Billing Policy for Dataverse Environments in Power Platform for Azure Pay-As-You-Go plan | Microsoft Azure

Pay-as-you-go has been recently announced with Azure and I too wanted to explore this topic myself on my trials Dataverse/D365 Sales environment as well as my Microsoft Azure trial subscription which I started.

Disclaimer: Please note that I’m exploring this topic and sharing as I go on. Hence, I’ll continue to write further topics as I proceed. Please try on your Dataverse trial & Microsoft Azure trial subscription to identify / estimate the costs your actual implementation will incur.

I also recommend going through the below Microsoft Learn Pages for detailed information on pricing and meters of the Pay-as-you-go model –

Detailed Microsoft Docs for Pay-as-you-go: https://learn.microsoft.com/en-us/power-platform/admin/pay-as-you-go-overview?WT.mc_id=DX-MVP-5003911

Power Apps Pricing: https://powerapps.microsoft.com/en-us/pricing/

Pay-as-you-go Meters: https://learn.microsoft.com/en-us/power-platform/admin/pay-as-you-go-meters?tabs=image?WT.mc_id=DX-MVP-5003911

Let’s see how we can get started!

Setting up Billing Policy

Here’s how you create Billing Policy in Power Platform –

  1. In Power Platform Admin Center (https://admin.powerplatform.microsoft.com/), you can see Policies section. If you expand the same, you can see Billing Policies.

  2. Here, you can start by creating a new Billing Policy

  3. You can give it an appropriate name. And it doesn’t allow you to have spaces.

  4. Next, you’ll be asked to select the Subscription you wan to assign the Billing Policy under.
    Notice the error below. My Free Trial Azure Subscription doesn’t have a Resource Group created yet. Hence, this need to be present.


  5. Since at this point, I don’t have a Resource Group under the Azure Subscription I selected, I need to go to Azure Portal (https://portal.azure.com/), search for Resource Groups

  6. Since you might not have any Resource Group right away, you can create one.


  7. I’ll just give it a name which I can identify with.


  8. I’ll validate and Create the same in Azure.


  9. Resource Group will be created here.


  10. Now, when I come back to Power Platform, if I reselect the Azure Subscription, I’ll now see that the Resource Group I created is showing up.

  11. I’ll select the same and select United States as the Region.
    And click on Next.


  12. In the next steps, I can select which all Environments should be included in the Policy. Then, I can click on + Add to policy.

  13. You can see the Added to policy tab now showing your environment. Once you are satisfied with the selection, you can click on Next.

  14. Final step is to now Review and confirm the policy you are creating.

  15. It’ll take a moment to start provisioning. Then, you’ll see the status as Provisioning.

  16. Once completed, the status will show as Enabled.


  17. Now, when you go back to Azure Portal and open the Resource Group, you’ll find a Deployment show up



  18. Open it up and you’ll see a Deployment created.

  19. And if you open the Deployment, you can see the DataverseBilling which we had set up in Power Platform.


  20. And this point, you are now setup with using Pay-As-you-go plan for your Dataverse environment(s).

    Note: Further, I’ll write follow up posts as I explore Pay-as-you-go scenarios and experience myself.

Hope this helps!

Here are some Power Automate posts you want to check out –

  1. Select the item based on a key value using Filter Array in Power Automate
  2. Select values from an array using Select action in a Power Automate Flow
  3. Blocking Attachment Extensions in Dynamics 365 CRM
  4. Upgrade Dataverse for Teams Environment to Dataverse Environment
  5. Showing Sandbox or Non Production Apps in Power App mobile app
  6. Create a Power Apps Per User Plan Trial | Dataverse environment
  7. Install On-Premise Gateway from Power Automate or Power Apps | Power Platform
  8. Co-presence in Power Automate | Multiple users working on a Flow
  9. Search Rows (preview) Action in Dataverse connector in a Flow | Power Automate
  10. Suppress Workflow Header Information while sending back HTTP Response in a Flow | Power Automate
  11. Call a Flow from Canvas Power App and get back response | Power Platform\
  12. FetchXML Aggregation in a Flow using CDS (Current Environment) connector | Power Automate
  13. Parsing Outputs of a List Rows action using Parse JSON in a Flow | Common Data Service (CE) connector
  14. Asynchronous HTTP Response from a Flow | Power Automate
  15. Validate JSON Schema for HTTP Request trigger in a Flow and send Response | Power Automate
  16. Converting JSON to XML and XML to JSON in a Flow | Power Automate

Thank you!

Skip requirement to enter authentication method in M365 Login | Turn off Security Defaults

If you newly created a an M365 tenant, this is what you’ll be forced to by to enter authentication methods in this Security Defaults feature –

In most cases, even clicking on Skip for now option doesn’t help and I’m forced to enter an alternate authentication method.
Ideally, for Production purposes, you should keep this turned on. Only if you are on a trial and the tenant you are working on is for learning purposes, it is OK to turn this off.

Turn Off Security Defaults in Azure Portal

Here’s how you can turn off the Security Defaults requirement from the Azure Portal –

  1. Navigate to Azure Portal (https://portal.azure.com)

  2. Again, you’ll see this message so you can choose to skip this since we want to disable the Security Defaults.

  3. Then, go to Azure Active Directory

  4. Once in Azure Active Directory, look for the Settings in the left hand pane.

  5. In Properties, at the bottom you’ll see the Manage Security defaults button.

  6. It would be turned on by default (Yes) which you’ll need to switch to No.

  7. Once you switch to No, you’ll need to select either of the below reasons as to why you are switching it off. I just entered N/A in the Others reason, your reason could be different.

  8. Once you Save it, that’s all. Now you can just close the Window and try to Login again.

Logging in without Security Defaults

When the Security Defaults is turned off, you can see that the login screen will no longer ask you to enter an authentication method –

  1. When you enter password.

  2. And when you sign in, you’re no longer asked to enter a method for authentication and you’re already logged in past that step.

Hope this was helpful! Here are some more Dynamics 365 posts which you might be interested in –

  1. Dynamics 365 Storage Utilization | Dataverse Storage | Power Platform Admin Center
  2. Use Hierarchy in Roll Up Fields in Dynamics 365 CRM
  3. Filter records in a View owned by a Team you are a member of | Dynamics 365 CRM
  4. Get GUID of the current View in Dynamics 365 CRM JS from ribbon button | Ribbon Workbench
  5. Dynamics 365 App For Outlook missing on SiteMap in CRM? Use shortcut link [Quick Tip]
  6. Import lookup referencing records together in Dynamics 365 CRM | [Linking related entity data during Excel Import]
  7. Mailbox Alerts Hide/Show behavior in Dynamics 365 CRM
  8. Excel Importing Notes (Annotation) entity in Dynamics 365 CRM
  9. Enable/Disable the need to Approve Email for Mailboxes in Dynamics 365 CRM CE
  10. Call Azure Function from Dynamics 365 CRM using Webhooks
  11. Show Ribbon button only on record selection in Dynamics CRM
  12. Accessing multiple occurrences of a field in Business Process Flow using JS in D365 CRM

Thank you!!

Create Application Users for Dynamics 365 environment | Power Platform Admin Center

Here’s how you now set up Application Users in Dynamics 365 CRM from the Power Platform Admin Center instead from the Classic UI and let’s see how the process is eased.

Classic UI

Previously, you used to see Application Users view in the Dynamics 365 CRM under Settings > Security > Users.



But it’s not longer available. Instead, you now go to the Power Platform Admin Center.

Register App in Power Platform Admin Center [PPAC]

Now, once you are in the Power Platform Admin Center, you can go to the Environment section –

  1. First, let’s say this is your App in your Azure’s Active Directory in the App Registrations. And now you want to create an Application User in Dynamics CRM for this App.

  2. Now, you can go to the PPAC (https://admin.powerplatform.microsoft.com/) and in Environments, look for your D365 CRM/Dataverse environment.

  3. In Settings, you’ll see Users, expand the same and you’ll see Application Users which is now it’s own separate option.

  4. Now, you’ll see the Registered Apps I have already and you can add from the “+ New App User” button above.

  5. Now, select the + Add an app button

  6. And you’ll see the complete list of all the Apps that are in your Azure’s Active Directory. Select the one your just created and click Add.

  7. And then finally click Create once you Add the App you want to create Application User for.

  8. And now, you’ll see the App added as an Application User for your environment.

  9. Now, you also need to provide Security Roles based on the requirement. Select the App User, and click on Edit security roles once available.

  10. In my case, I’m giving 3 Roles which I need to give and click Save.

  11. Now, I’ll also see how many Roles have been given to the App User.

Hope this was helpful! Here are some more Dynamics 365 posts which you might be interested in –

  1. Setup Postman to connect to Dynamics 365 CRM using OAuth 2.0 | Azure App Registration
  2. Dynamics 365 Storage Utilization | Dataverse Storage | Power Platform Admin Center
  3. Use Hierarchy in Roll Up Fields in Dynamics 365 CRM
  4. Filter records in a View owned by a Team you are a member of | Dynamics 365 CRM
  5. Get GUID of the current View in Dynamics 365 CRM JS from ribbon button | Ribbon Workbench
  6. Dynamics 365 App For Outlook missing on SiteMap in CRM? Use shortcut link [Quick Tip]
  7. Import lookup referencing records together in Dynamics 365 CRM | [Linking related entity data during Excel Import]
  8. Mailbox Alerts Hide/Show behavior in Dynamics 365 CRM
  9. Excel Importing Notes (Annotation) entity in Dynamics 365 CRM
  10. Enable/Disable the need to Approve Email for Mailboxes in Dynamics 365 CRM CE
  11. Call Azure Function from Dynamics 365 CRM using Webhooks
  12. Show Ribbon button only on record selection in Dynamics CRM
  13. Accessing multiple occurrences of a field in Business Process Flow using JS in D365 CRM

Thank you!!