Fixed – Deployment has failed with the following error: {“code”:”WebhookAadAppAccessCheckCategory”,”message”:”Access check failed for Webhook AAD App with error ‘Subscriber’s client ‘user’… while configuring the Azure Grid Event Subscription – Dynamics 365 Omnichannel Voice


While configuring Azure Grid Event Subscription for enabling Call Recording in Dynamics 365 Omnichannel Voice,

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-connect-existing-resource?tabs=customerserviceadmincenter#enable-call-recording-and-sms-services

we got the below error –

Deployment has failed with the following error: {“code”:”WebhookAadAppAccessCheckCategory”,”message”:”Access check failed for Webhook AAD App with error ‘Subscriber’s client ‘user’ with object id ‘1fc23e2e-cf5b-49c1-b942-9f2036e8c9cf’ is neither owner of this AAD application 585b1e3f-6685-4e69-a1b7-a880074f12f0 nor have this role AzureEventGridSecureWebhookSubscriber. In addition the role has to be assigned to client ‘user’ with object id ‘1fc23e2e-cf5b-49c1-b942-9f2036e8c9cf’. One of these two conditions has to be met.’. For troublehooting, visit https://aka.ms/essecurewebhook. Activity id:b179f7d4-115b-4d4d-aeee-6046f4181846, timestamp: 12/14/2022 9:52:19 AM (UTC).”}

As the error message suggests, the user who is setting up the Azure Event Grid Subscription has to be added as the owner of the Azure AD Application, with AAD Authentication as shown below.

So we added the user as the owner of that Azure AD app, which fixed the issue for us.

The result –

Success

Hope it helps..

Advertisements

Import from Excel / Import Wizard updates Record Created On (overriddencreatedon) – Dynamics 365


When we are creating new records and need the created on field to take the value provided instead of system generated, we can map it to the Record Created On field during Import from Excel option.

In fact in the Import Data Wizard also, although it doesn’t show the Record Created On field for mapping, we can map to Created On field and the behavior will be same. (and in the case of the Import from Excel in the Grid, we do not get the Created On field for mapping)

Below is the record we have created through Import Data Wizard, and we can see the values of Created on and Record Created On for it.

Read more –

https://debajmecrm.com/override-createdon-modifiedon-createdby-modifiedby-in-dynamics-365-crm-crm-tips-from-the-vault/

https://nishantrana.me/2018/10/16/using-overriddencreatedon-or-record-created-on-field-to-update-created-on-field-in-dynamics-365/

Hope it helps..

 

Advertisements

Anonymous Visitor tracking behavior in Dynamics 365 Marketing


Suppose, we have the below page opened in the browser, which has an embedded marketing form in it.

Opening the marketing website record associated with the marketing form, we can see the anonymous visit being tracked.

Here the user had opened the page a couple of times.

Form Visits also have the corresponding details.

Form submission – No records right now as the form hasn’t been submitted by the visitor on the page.

Now let us submit the form

After the successful submission of the form which created the contact record, we can now see a new record added on the website visitors

as well as all the previous anonymous records also updated with the same contact.

Same for Form Visits

And as expected a new form submission record.

Now any future visit to the page gets tracked with the Contact created for that user.

In the contact record, also all the website visits get associated.

To read more about it – https://learn.microsoft.com/en-us/dynamics365/marketing/known-issues#websites

To learn more about Dynamics 365 Marketing – https://meganvwalker.com/category/dynamics-marketing/

Hope it helps..

How to – Hide, Submit and perform validation in Dynamics 365 Marketing Form


Continuing our previous post on setting hidden field’s value using JavaScript in Embedded Marketing Form,

https://nishantrana.me/2022/11/23/how-to-use-dynamics-365-marketing-javascript-api-to-set-hidden-fields-value/

below are a few more points that could help –

  • To hide the Marketing form on the host page – we can use afterFormRender
  • To submit the Marketing form on the host page –

  • If we are setting a non-existing value for an option set field in the formSubmit event, it will be treated as blank before submission and the blank value will be passed. However if the field is Required then validation will kick in and the form will not get submitted.

Get more details – Extend marketing form using code

Also check – https://community.dynamics.com/365/marketing/f/dynamics-365-for-marketing-forum/384055/integrate-external-marketing-form

 

var xhttp = new XMLHttpRequest(); 

xhttp.open("POST", formUrl + "/formpage/” + formId + “/correlation/” + correlationId, true); 

xhttp.setRequestHeader("Content-Type", " application/x-www-form-urlencoded"); 

xhttp.send("7d58e055-d1c2-4bb3-a42f-faf6762e0acc=FirstName&3cdeebb-7c54-4cff-a1bc-772562d25c38=firstname.lastname%40sample.com&submit=");
Advertisements

Hope it helps..

How to – use Dynamics 365 Marketing JavaScript API to set hidden field’s value


Dynamics Marketing JavaScript API is only available for the marketing form hosted as Script. It is not available for forms hosted as Iframe.

More on embedding form on external page – https://nishantrana.me/2022/11/10/how-to-embed-marketing-form-on-an-external-page/

Add a reference to form-loader.js or load.js to access the API.

Below is our form with a hidden field in it.

Based on the current living situation (drop down), we want to set the value of the Financially Capable field (bool) – the hidden field’s value as either True or False.

For this, we have added the below script, in the formSubmit event.

formSubmit triggers on form submit before the form submission is sent to the server.

Check all the events here – https://learn.microsoft.com/en-us/dynamics365/marketing/developer/marketing-form-client-side-extensibility#form-events

The script – Get the id of the element through browser’s developer tools.

Hope it helps..

  // Extending Marketing form with code 
        // formSubmit - Triggers on form submit before the form submission is sent to the server.
        MsCrmMkt.MsCrmFormLoader.on('formSubmit', function (event) {
          
            // get the id of the elements through developer tools of the browser
            // based on selected current living situation (optionset)
            if (document.getElementById('deb110aa-e266-ed11-9561-000d3ae090c0') != null) {
                var selectedCurrentLivingValue = document.getElementById('deb110aa-e266-ed11-9561-000d3ae090c0').value;
                if (selectedCurrentLivingValue == 881990000) {
                    // set the value of Financially Capable field (boolean)- true / false
                    document.getElementById('dcc46e64-2867-ed11-9561-000d3ae090c0').value = "1";
                }
                else {
                    document.getElementById('dcc46e64-2867-ed11-9561-000d3ae090c0').value = "0";
                }
            }
        });
Advertisements

Fixed – Hide field option missing for dropdown (OptionSet) field in Marketing Form – Dynamics 365 Marketing


Recently while designing the marketing form, we realized the Hide field option missing for our dropdown fields.

There are 2 ways to solve this –

In the HTML designer mode for the Marketing form –

  • Add the attribute hidden=”hidden” for the field

The field will be hidden but the Hide field toggle won’t be available in the designer.

  • Change the data-editorblocktype from “Field-dropdown” to “Field-checkbox“.

This adds the Hide field toggle option in the designer.

The result –

The helpful thread – https://community.dynamics.com/365/marketing/f/dynamics-365-for-marketing-forum/391470/how-do-i-populate-lead-source-from-a-hidden-field-on-marketing-form

Hope it helps..

Advertisements