• How to add an onload event to a list in Power Apps Portals

    In the last months, we had a few requirements targeting the entity list in Power Apps portals. Just to name an example, the request was about showing the time of a date and time field in a list on a form. This is a special case, because the date and time is always displayed in UTC. So if you need to show it in users' local time zone, it might be helpful to go through Mahender Pal's blog post first. 

    Normally, the following code snippet is being sufficient to start changing the elements on a page: $(document).ready(function () {});. We discovered that the referenced list isn't completely loaded while this part of the JavaScript logic is triggered and executed. This means that a reference to a cell in a table using [data-attribute=*] won't return anything else than null. To avoid this or the usage of timeout functions, we decided to use the .on() method to attach an on load event to our list element: $("<< listsClassName >>").on("loaded", function () {});. To sum up, this is how it looks like in our case:
    $(document).ready(function () {
        $(".entity-grid.subgrid").on("loaded", function () {
            //do something with list rows    
    This is how you get to the class name of your list (please open image in new window): 

    #PowerAppsPortal #EntityList #OnLoadEvent
  • How to design a Power Automate flow for Dynamics 365 Customer Voice to make it deployable?

    As answered in my previous post, there is no technical identifier for Customer Voice surveys which can be used to make the flow deployable. If a flow and the survey, which is used as a static value inside the flow, are created on a development environment and then copied to production, it would be necessary to switch the value used in the flow action to the survey on production. To avoid this manual step every time after deployment, there are a few options. I prefer to use environment variables or a custom configuration entity, where I save the environment variables. 

    If a dynamic value is used for project and survey, the survey specific variables are not listed in the action's parameter list. The survey specific variables can be passed using parameter field "The fields to send to WebMerge". Just pass the variables and their values as JSON object as following: 

      "locale": "fr-FR",  
      "salutation": "Chère"  

    #Dynamics365 #CustomerVoice #PowerAutomateFlow #Deployment

  • How to update survey on production using survey from another environment (Dynamics 365 Customer Voice)?

    With the last update (December 2020) of Dynamics 365 Customer Voice, Microsoft released a new capability to update projects. This feature allows us to make make all changes on any development environment and to take them over after successful tests. Before we had to make those changes manually on production. 

    There are two ways, how this feature can be used:
    1. You are going to create a new survey and want to test it before going live. Create a new project with your survey on a development environment, test it and copy it to production. Now they are linked with each other. If you click on "Update", it will show you the project from development or vice versa.
    2. You have already a project with a running survey on production, but there aren't any update options. Copy the project on production to a development environment, make your changes on the copied one and click on "Update" on production. It will show you the new copied project as source. 

    Does the copied surveys have the same GUID? No

    Step by step for option 2

    1. Copy the survey from production to development

    2. Do some changes on copied project and select Update on Production

    3. Select Development as source and click on Update

    #Dynamics365 #CustomerVoice #UpdateSurvey #Deployment
  • How to enable License Enforcement for Team Members before January 31, 2021

    Only 2 months left, until the license enforcement for Team Members will be enabled for all instances. The dedicated apps for Team Members should be already customized. The last tests should be running/open. For final tests, you could be interested in having a license enforced environment which already exists. To do so, you can set the organization setting EnableLicenseEnforcement to true. You can use Org Settings as tool from the XrmToolBox to change the value. 

    #Dynamics365CE #TeamMembers #LicenseEnforcement
  • Unsubscribe link is added as output parameter to "Create Invitation" action in Power Automate with 2020 release wave 2

    If you used the "Create Invitation" action in Power Automate, there wasn't any option to create or get an unsubscribe link for Dynamics 365 Customer Voice. With 2020 release wave 2, Microsoft added a new output parameter to it. That means that you can add a standard unsubscribe link to your custom email considering CI/CD: 

    #Dynamics365CE #CustomerVoice #dcv #Unsubscribe

  • Open main form in a modal dialog from lookup by changing field properties

    Microsoft added new field properties for lookup fields with 2020 release wave 2: 

    If you select one of these options, it will open the related record or the create form within a modal dialog by default - without any need of writing code (navigateTo):

    #Dynamics365CE #OpenRecordInModalDialog #ModalDialog #EntityForm 

    Continue reading...

  • How to modify Dynamics 365 Sales settings without Sales Hub

    If you don't have the Sales Hub installed, it doesn't mean that you cannot change the sales settings. Just call the following URL to open the setting, to change the settings for "Lead + opportunity management", "Productivity tools", "Chat and collaborate" and "LinkedIn integration": 

    https:// + [organizationUrl] + /main.aspx?pagetype=control&controlName=MscrmControls.FieldControls.CCFadminsettings

    #Dynamics365CE #SalesHub

    Continue reading...

  • How to switch the app after enabling 2020 release wave 2 for Dynamics 365

    After enabling the Dynamics 365 2020 release wave 2, I discovered that the app selector, which have been opened by clicking on logo (default Dynamics 365) is gone. The new way to switch between the model-driven apps is to click on the currently open app name.

    Additional changes are: 
    • breadcrumb navigation has been removed
    • a back button is added to the command bar
    • command button to open the record set from an entity form has a new icon

    #Dynamics365CE #AppSwitching #Navigation

    Continue reading...

  • Command Checker to debug button rules and get solution layers

    Yesterday I opened a support request, because a button marked as hidden was still visible in Unified Interface, but not in legacy Web Client (btw, the solution is to select the TABLET tab in the Ribbon Workbench as described here). The support engineer told me to open the Command Checker - never heard about it. To enable Command Checker on an entity form, it is enough to open a record and add 

    • &flags=FCB.CommandChecker=true&ribbondebug=true or
    • &ribbondebug=true
    Jesse Parsons published a great article with much more details of the new feature. 

    #Dynamics365CE #CommandChecker #DebugCommands #Dynamics365CE #SolutionLayer

  • Next Best Action using Insight Cards and Power Automate

    In one of my customer workshops, we discussed about next-best-action as conversation topic to improve the one-to-one engagement. One option, which can be implemented without writing a single line of code, is using insight cards and Power Automate. The following example is about new online services, which should be recommended to customers, who are not using them, if they called the customer service. The topic should disappear from the list of topics, if the customer is not interested or an email for registration is sent. The conversation topics can be extended with additional cards like birthday or open positions. The most significant down side is that the assistant is click-intensive for the user on phone, and it will be difficult to use it for other use cases like support of Sales People during a business day - but possible using "Show for", "Ranking" and "Security Role". 

    Action create card for assistant V2 allows custom button logic

    There are several templates in Power Automate to create standard action cards for the assistant. But if you want to create an action card with custom button logic you have to switch the newer Power Automate action to create a card for assistant. In this example, I created a custom action to send an email with details about the service and a link to the register page of the new online service. This action card will be shown to all team members (it is a static GUID, but could be changed to the customer service team or even to the contact's responsible user). The user can dismiss it or send an email by clicking on the button. What if the contact registers to the online service after the action card is created? There should be a trigger based flow which will delete the action card after the attribute for the online service usage is changed to "Yes". The unique identifiers are the card name (which should be unique) and the regarding object (in our example, it is a contact). The following screenshot shows, how the topics would be listed on the contact form: 


    #Dynamics365CE #PowerAutomate #NextBestAction #InsightCards #RelationshipAssistent #ActionCards

    Continue reading...