Suppose we’re working with the Accounts table in Power Automate, and we want to handle two different scenarios within a single flow: one when an account record is created, and another when it’s modified. Instead of creating two separate flows, we can use a Switch control to manage both scenarios in one flow.
To do this, we first need to determine whether the trigger event was a creation or a modification of the record.
Let’s explore how to achieve this in the following scenario.
Create an automated cloud flow.
Specify the flow name, say “Account – identify Change Type”.
Select Microsoft Dataverse trigger “When a row is added, modified or deleted”.
Specify trigger properties, say:
Change type – Added or Modified
Table Name – Accounts
Scope – Organization
Add a “Compose” action.
In the compose properties, specify the following expression. This used to determine whether a record was just created or has been modified since its creation.
The following issue has been observed at the time this article is written and depending on when you are reading it, the issue may have been resolved by Microsoft!
The article outlines a time zone-related issue when setting up business closures in Microsoft Dynamics 365 Project Operations. Here’s a summary of the problem:
Context
Two business closures were created using:
Advanced Settings (Modern UI) – for “Public Holiday 1” on 27/05/2025
Classic Settings (Legacy UI) – for “Public Holiday 2” on 28/05/2025
Note:
System Time zone settings I (GMT+10:00) Brisbane.
The dates used in the following scenario are only for demonstration purposes.
Problem Observed
Advanced Settings (Modern UI):
In D365 Project Operations, go to advanced settings, i.e. Power Platform Environment Settings.
Click Business Management >> Business Closures
Setup a business closer, say “Public Holiday 1” with:
Start date: 27/05/2025
Duration: 1 day
The system sets the start time to 12:00 AM UTC, not adjusting for the local time zone (GMT+10:00 Brisbane).
Result: In the project calendar, the closure appears incorrectly, with spillage across days.
Classic Settings (Legacy UI):
Open classic settings page
Go to Settings >> Business Management >> Business Closures
Setup a business closer, say “Public Holiday 2” with:
Start date: 28/05/2025
Duration: 1 day
The system sets the start time to 10:00 AM, correctly adjusted to local time.
Result: The closure appears correctly in the calendar as a single-day event.
Conclusion
There is a time zone handling inconsistency between the Advanced and Classic settings pages. The modern interface does not correctly apply the local time zone, leading to incorrect calendar displays.
Workaround is to set the business closure using Classic Settings page.
In a Model-Driven App, a lookup field is a special type of field that allows you to reference records from another entity or table. Essentially, it enables linking data across different entities or tables.
Typically, lookup fields include a “+ New” option, which lets users create a new record in the related table and automatically associate it with the current record.
What happens if a user tries to create a new record from a lookup field, but they don’t have access to the related entity? In such cases, the best approach is to prevent the user from creating a new record directly from the lookup field by hiding the “+ New” button.
There are two common ways to restrict users from creating new records via lookup fields:
Remove the Create privilege for the target entity in the user’s security role.
Hide the “+ New” button in the lookup field by modifying the form XML using tools like FormXml Manager.
Removing the Create Privilege for a Target Entity
To prevent users from creating new records for a specific entity, follow these steps to remove the Create privilege:
Navigate to Advanced Settings in your environment.
Under Power Platform Environment Settings, Go to System > Security
Open Security Roles, then select the specific role you want to modify
Under the Core Records or Custom Entities tab, locate the target entity
Remove the Create privilege for that entity.
Click Save and Close to apply the changes.
Hiding the “+ New” Button Using XrmToolBox and FormXML Editor
To hide the “+ New” button in a lookup field using the XrmToolBox, follow these steps:
You can configure a custom in-product help experience in Dynamics 365 that is tailored to your organization. Use custom help panes to provide table, form, and language-specific help and guidance that includes rich text, content links, images, and video links.
Microsoft Dynamics 365 for Customer Engagement provides you with two options when it comes to help features. However, you can enable and use one of the feature at a time. These features are:
The following section focuses on how you can use Custom Help Pane and Guided Tasks.
Prerequisites
Enable Custom Help Pane
If you are using custom help panes and guided tasks, you would need to enable the feature in each environment, for example Dev, Test, Prod, etc. This has to be done once per environment.
To enable custom help panes for your environment, perform the following tasks:
Note: You can enable one feature at a time. So as a result the Custom help for customizable entities is disabled.
Privileges
There are two out-of-the-box roles available in Dynamics 365:
Help Page Author
To author help pane, you need global create, read, write, delete, append, and append to privileges on Help Page table. This is available in “Help Page Author” role.
Help Page Consumer
To view help panes in an app, users need read privilege on the Help Page table. This is available in “Help Page Consumer” role.
Note: When you author help, please note that each help pane is unique for the following contexts:
Application
Table
Form
Language
Tools
In the following example we will edit custom help pane for Case.
Once the prerequisites steps are completed, as a help author, perform the following steps:
Click Help on the navbar. This will open the help pane.
Click on ellipses and click Edit.
Use the following tools to edit the help pane:
Numbered List
Bulleted List
Link
Balloon
Coach Mark
Image
Video
Free-form text
Text can be placed anywhere within the help pane.
Enter free-form text before, in, or after sections.
Text supports bold, italic, underline, and strikeout font formats. Cut, copy, and paste can be used as well as multilevel undo.
Bullets and numbered lists
Selecting the bullet or number icon toggles the current line to become bulleted or numbered.
If you have selected multiple lines in a list, each line becomes bulleted or numbered.
Tabbing and indenting sub numbers align within the list.
Sections
A section is a collapsible text box. A section can be either open or collapsed by default.
You can put links or free-form text in it.
Use a section to group similar items.
Video and static images
You can insert videos and static images into your help pane.
Videos and images are links to content on the internet. Custom help panes do not store the video and image files in your help pane.
When the help pane is opened, custom help panes bring the content in from the link to display it. You can use a link to a Microsoft Stream video if you want to reference corporate private content.
Note: Custom help panes support the following video sources: Microsoft Stream, YouTube, Facebook and Vimeo.
Links
Links can be to websites and open in the same window (the default) or open in a separate window.
Note: The ability to link to an existing help page is not yet enabled.
Balloons and coach marks
Balloons and coach marks can be used to point to specific UI elements.
A balloon can have text in it.
Move help content via solution
Each time you create a new help pane, the system creates a Help Page record in Dynamics 365.
This can be moved to a different instance.
You can move help pages by creating a solution and adding the help pages as components to the solution.
To add a help page to a solution, open the solution and click ‘Add Existing’ and select ‘Help Pages’ from the drop down.
This will open the “Select Solution Components” window, from which you can select the help pages you want to include in your solution.
Microsoft Dynamics 365 for Customer Engagement provides you with two options when it comes to help features. However you can enable and use one of the feature at a time. These features are:
The following section focuses on how you can use Global Help URL along with Table Help URL for custom help in Dynamics 365.
Default Setting
When an environment is provisioned, global help URL or custom help panes and guided task feature is not enabled, i.e. When you open a form and click on the help icon in nav bar, it takes you to Microsoft Learn documentation.
Under Help features, enable custom help for customizable entities
Custom Help for Customizable Entities
If this option is enabled:
Enable Custom Help Panes option will be disabled.
You would need to provide a Global custom help URL. This will be the default URL when you click on the help icon in nav bar (if entity specific help URL is not provided).
Note: In this example I have used my website to be set as default global URL for demonstration, you can use your organization specific URL.
Result
In the following example, we have provided my website URL i.e., 365proz as global custom help URL.
Now, when we open any table form (say Case form) and click on Help, it will open the global URL that we have set.
Table Level Help URL
With the table help URL, we can configure different URL for different tables, by editing the properties on table level. In the following example we have provided URL specific to one of my blog page that describes Case Creation.
Note: In this example I have used my blog to be set as table level URL for demonstration, you can use your organization specific URL.
Result
Open a Case record and click on the help icon, you will notice that it opens specific blog page, as we specified for Case table.
Note: If you have not setup table specific for other entities, then the global URL will open when you click on help icon.
So in our last blog “D365 – Create Plugin Template” we saw, how we can create a plug-in template in visual studio.
Now let us see how we can move forward and write plug-in code.
So, the idea is that when create a new Contact, the plug-in should fill the Personal Notes field automatically
When we create a Contact record and provide details (such as first name , last name, etc.):
These details are captured by the ServiceProvider.
The ServiceProvider has got the Context.
In the Context we have InputParameters.
InputParameters has got Target.
We are extracting Target as an Entity.
So here the Entity is generic class, which means that it can be any Entity such as Contact, Account, Task, Case, etc.
You can access the attributes through this Entity. So add the following code in the Plug-in template code (try/catch section) and use the Contact attribute’s logical name.
Tip: You can get the logical name from the solution. If you want to save clicks you can use the following extension for chrome Level up for Dynamics 365/PowerApps.
Download required assemblies using NuGet Package Manager.
Add a reference to Microsoft.Xrm.SDK.dll. This assembly is available in SDK.
You can implement IPlugin Interface from referenced assembly.
Create a Project
Open visual Studio (2019 used in this example)
Create a new “Class Library (.NET Framework) project
Configure and create your new project.
A simple class library is created and you will notice that there is no main method, which means that you cannot directly run the code and it has to be called from other applications.
The following this are done:
Rename the Class library to “HelloWorld” and also renamed the file.
To install the assemblies, click Tools > NuGet Package Manager > Manage NuGet Package for Solution.
Browse and search for Dynamics 365 Plugin and install the following assemblies (select the Project and click Install):