How to enable prefill for marketing forms


Check the previous posts on hosting marketing forms for more details

How to – embed marketing form on an external page

Here we will see Prefill in action.

https://learn.microsoft.com/en-us/dynamics365/marketing/form-prefill#create-a-landing-page-form-with-prefill-enabled

We have created the below marketing form (type – Landing Page) right now (currently Pre-fill is set as default false for the form/fields)

Submit the form –

We can see the contact / lead records created as part of submission.

The contact has Do not allow for Prefill marketing form field

Opening the website we don’t see any pre-fill information as expected.

Now let us enable prefill for the fields and for the form.

Enabling Prefill for form automatically adds the Remember me element to the form. It is tied to Prefill marketing form field on the contact record as we saw earlier and required for prefilling to work.

Let us submit the form, this time with Remember me as true.

We can see Prefill marketing form field set as Allow for the contact.

Load the marketing form page again and we can see the value already pre-filled or populated for the user.

We saw how we can enable prefilling for Landing Page type form, by enabling prefill as true at form and field level and adding the remember me element.

For form type – Subscription Center, pre-filling is already enabled for all the fields regardless of their prefill setting, and at the form level also it is set as true and the field is read-only.

Here we do not have to add a remember-me element.

Here we must include the Do not email element.

Prefill in the case of subscription form

Hope it helps..

Advertisements

Fixed – change the owner of the Flow or Flow client error returned with the status code “Forbidden” and ConnectionAuthorizationFailed in Power Automate


Recently while trying to change the owner of the workflow we were getting the below error 

Flow client error returned with status code “Forbidden” and details “(“error”:X [“code”: “ConnectionAuthorizationFailed”, “message”: “The caller object id is ‘ffcdd1fc-2858-4019-9a96-19d73ae124c8″. Connection ‘providers/Microsoft.PowerApps/APIs/shared_commondataserviceforapps/connections/shared-commondataser-87229e07-1003-4e05-8172-fdaf112ceb98’ to ‘shared_commondataserviceforapps cannot be used to activate this flow, either because this is not a valid connection or because it is not a connection you have access permission for. Either replace the connection with a valid connection you can access or have the connection owner activate the flow, so the connection is shared with you in the context of this flow.”}}”.

Below are the steps we were following to change the owner of the cloud flow –

https://learn.microsoft.com/en-us/power-automate/change-cloud-flow-owner

Select Edit for the flow, specify the owner and save.


In our case, the owner had left the organization and the user’s record was not available in the CRM. Finally, we managed to change the owner and fix the issue, by assigning the new owner to the corresponding modern flow record through the below steps – 

  • Open Advanced Find
  • Search for Process Type equals Modern Flow


  • Select the flow, click on the Assign Process button and specify the new owner.


This way we were able to change the owner without any error and got the flow working properly.

Hope it helps..

Advertisements

How to – add Contact Insights / Account Insights to the form – Dynamics 365 Marketing


We can see the Account Insights / Contact Insights tab added along with LinkedIn Lead Info on the default lead form (as well as contact/account) after we install Dynamics 365 Marketing.

These tabs will be added if you try creating a new form (Main).

But if we have other existing forms (Main), these tabs won’t be added and won’t be available for us to add.

In that case, we need to edit the Form XML to add these sections.

Here we will be adding the Contact Insights tab to one of the existing forms to the Lead.

Using the Form XML Manager (XrmToolBox plugin – developed by my friend Rasheed), get the Form XML of the form where we have the contact insights tab added.

Copy the below details –

Tab – Contact Insights

And the below controlDescription

Going back to Form XML Manager, select the form where we want to add the contact insight tab, get its Form XML and add the above details and publish.

We can see the Contact Insights tab added

Similarly, we can Account Insights, and the LinkedIn Lead Info tab as well.

Hope it helps..

	<tab name="contactInsights" id="{AC28F8C9-4498-47C7-8D9B-2FE028CFBDAC}" IsUserDefined="0" locklevel="0" showlabel="true" expanded="true" labelid="{6905336d-985b-4137-a106-31b1dd4e1560}">
			<labels>
				<label description="Contact insights" languagecode="1033" />
			</labels>
			<columns>
				<column width="100%">
					<sections>
						<section name="insights_section" showlabel="false" showbar="false" locklevel="0" id="{2328D81F-CA70-4A20-8B62-DA36756DA7D8}" IsUserDefined="0" layout="varwidth" columns="1" labelwidth="115" celllabelalignment="Left" celllabelposition="Left" labelid="{29474d06-89ea-41ad-a999-9d96dd95c938}">
							<labels>
								<label description="Insights" languagecode="1033" />
							</labels>
							<rows>
								<row>
									<cell rowspan="1" id="{37367a00-f45e-4ae4-a4a4-5ba1023fdc11}" colspan="1" labelid="{e971ab6b-ea22-4543-bbd5-06e50f11f9f1}">
										<labels>
											<label description="" languagecode="1033" />
										</labels>
										<control id="msdynmkt-lead-insights-banner-control" classid="{F9A8A302-114E-466A-B582-6771B2AE0D92}" disabled="false" uniqueid="{B93040CC-F97E-48D8-8166-5179C8C942CE}" isunbound="true">
											<parameters />
										</control>
									</cell>
								</row>
								<row>
									<cell id="{58B703D6-BBA5-4078-9499-1D5A1FB35932}" showlabel="false" locklevel="0" labelid="{db0b8895-c098-45e5-b95f-f85df882f96d}">
										<labels>
											<label description="Insights" languagecode="1033" />
										</labels>
										<control id="LeadContactInsightsCtrl" classid="{F9A8A302-114E-466A-B582-6771B2AE0D92}" datafieldname="msdyncrm_insights_placeholder" disabled="false" uniqueid="{ADB58B3F-E8A8-432B-BF8C-08196D8F87ED}" />
									</cell>
								</row>
							</rows>
						</section>
					</sections>
				</column>
			</columns>
		</tab>
	<controlDescription forControl="{ADB58B3F-E8A8-432B-BF8C-08196D8F87ED}">
			<customControl formFactor="0" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadContactInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="1" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadContactInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="2" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadContactInsights</configuration>
				</parameters>
			</customControl>
		</controlDescription>
		<controlDescription forControl="{48D797ED-2F85-4D89-A329-69C2A1A0E1DD}">
			<customControl formFactor="0" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadAccountInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="1" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadAccountInsights</configuration>
				</parameters>
			</customControl>
			<customControl formFactor="2" name="MscrmControls.InsightsControl.InsightsControl">
				<parameters>
					<configuration static="true" type="SingleLine.Text">LeadAccountInsights</configuration>
				</parameters>
			</customControl>
		</controlDescription>
		<controlDescription forControl="{B93040CC-F97E-48D8-8166-5179C8C942CE}">
			<customControl formFactor="0" name="CxpOrchestrationAnalytics.InsightsBannerControl.InsightsBannerControl">
				<parameters />
			</customControl>
			<customControl formFactor="1" name="CxpOrchestrationAnalytics.InsightsBannerControl.InsightsBannerControl">
				<parameters />
			</customControl>
			<customControl formFactor="2" name="CxpOrchestrationAnalytics.InsightsBannerControl.InsightsBannerControl">
				<parameters />
			</customControl>
		</controlDescription>
	</controlDescriptions>
Advertisements

How to – embed marketing form on an external page


In the previous posts, we learned about website tracking and how to authenticate the domain for external hosting of the form as well as email marketing.

Here we will explore the option of hosting the form on an external page.

Let us start by creating a simple marketing form having a first name, last name, and email fields in it.

Click on Check for errors, if everything is fine then select Go Live.

This shows up in the form hosting tab in the Marketing form.

There we need to first create a new marketing form page record.

Here while creating a new form page, we have associated it with the marketing website we had created earlier.

Just refresh the marketing form page, and it will start showing the already authenticated domains.

Open the form page record created. There we can see a few other options to be configured along with an external hosting format.

If we choose the option of iframe, the style of the form will remain isolated from the rest of the page it cannot take the styling element of the page it is hosted on, and website tracking will not work.

Let us start by hosting it as an iframe option.

Let us run it locally first before deploying the page to our authenticated domain.

Submit the form

Open the Marketing Website record or the Form , we can see the details added to the Visits and  Submissions section of Insights.

Now let us submit it once more from the authenticated domain.

We can see the details in the Form submissions.

Now let us now check the option of hosting it as a script.

Copy and paste the code

If we embed it in the unauthenticated domain, we will get the below error.

Hosting it inside the authenticated domain we get the form loaded correctly.

Submit the details.

Let us again check the Insights tab in the marketing website record or the marketing form. We can see it being tracked in Visits, Form Visits as well as Form Submissions.

Insights tab in the Marketing form – 

Get all the details here – Embed forms on external websites

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

Hope it helps..

Advertisements

Marketing forms comparison – Marketo and Dynamics 365 Marketing


Marketo

Dynamics 365 Marketing

We can create forms in Marketo to be used on the landing pages.

There are 4 types of Marketing forms – Landing page, Subscription Center, Forward to a friend, and Event Registration.

Add fields to form

Fields are mapped to the contact and/or the lead table in Dynamics 365 and can be added to the form.

 

We can define input fields that can be used in the form.

The form must be approved before being used on the landing pages.

A form must me made go live before it can be used on the marketing page or embedded on the external site.

Fields labels can be edited, fields can be made required.

Fields labels can be defined, along with default value, field requirement, error message, etc.

Forms can be previewed

Forms can be previewed as shown below.

Select a form theme/edit CSS of the form theme

Inside HTML Designer we can specify the CSS and layout of the form.

Pre-fill – Marketo forms will pre-fill fields with the web visitor information using the cookie.

Form Pre-fill doesn’t work when embedding a form on your page. It only works on the Marketo landing page.



 

Enable pre-filling for forms. Prefilling works when the form is a subscription center form or when the landing page form has a remember me option available when filling in the form.

At form level –

At field level –

Hidden form fields and auto populating the hidden form field

Hidden fields can be auto-populated with different parameter types – Default value, URL, Cookie Value and Referrer parameter

Form fields can be hidden and can provide a default value

Pass hidden data or pre-populate marketing form fields

Setup lookup fields via API

Enable Captcha in Marketo forms.


Add a Captcha element to the form.

Embed form on an external website.

Embed code can be generated for the Approved form.



Form Prefill does not work when using the form embed code on your pages or a Marketo landing page. Form Prefill is only meant to work when the form is used in a Marketo landing page via the Insert Element option.

Once the code is embedded on your website, any changes to the form in Marketo will be pushed to your site upon the form approval. You do not need to make more changes to the code.

Embed the form on an external website.

We can

  • Embed a Dynamics 365 Marketing form on an external page.
  • Use form capture to integrate Dynamics 365 Marketing with a form created externally in your (CMS)

along with the option of publishing a native marketing form on a native marketing page on the Power Apps Portal configured.

 

After designing the marketing form, save it and go live. Open the form hosting tab, and create a new Form page, where we can define additional configuration settings for the forms that will be embedded externally. We will also have to authenticate the domain where the form will be used.

Copy the embed code and paste it on your website page.

We can Enable prefilling on embedded marketing forms on an external website.

Prefilling allows fetching contact information from the dynamic’s database because of which additional security measures are in place for protecting user privacy.

For pre-filling to work below are the requirements –

  1. Domain authentication for the external domain of the website, where the form will be hosted.

  1. The contact record inside Dynamics should have an allow-prefill flag as allow.

The core functionality of the Marketo web form can be extended using Form 2.0 JavaScript API

We can extend marketing form capability using JavaScript API

 

We can also use Form capture to integrate a form created externally.

Select Capture form in Marketing forms, in the dialog specify the URL of the web page, where the tracking script is set up and the form is available for mapping.

Next, it will check for the script / or script can be generated and can be copied to the external webpage.

Followed by selecting the external form on the web page and providing mapping for each of the fields.

Select Go live for the marketing form and it can begin to accept data from the external form.

Prefilling doesn’t work in the case of the form capture option.

 

Additionally – Marketing provides Personalized Page Content

Specify the fields to be used for personalization and select Go Live to generate the JavaScript code.

Copy/Use the JavaScript code in the external web page to access the fields specified.

 

Prerequisite –

  1. The external domain (website) needs to be authenticated.
  2. The page should have the marketing form with a remember-me design element in it. This element is mapped to prefill marketing form field on the contact table.

Hope it helps..

Advertisements

How to – configure Outbound Calling – Dynamics 365 Omnichannel for Customer Service


For setting up Outbound calling we need to first set up a phone number that will be used for outbound calling.

This would help – https://nishantrana.me/2022/10/17/how-to-set-up-omnichannel-voice-using-azure-communication-service-acs/

In a nutshell below are the steps we are going to perform –

  1. Configure Phone Number for outbound calling.
  2. Define a queue of type voice for outbound calling or use an existing queue.
  3. Configure outbound capacity profile and add users.
  4. Create an outbound profile using the phone number, queue, and outbound capacity profile.

Next click on Edit for the phone number added.

Select Make calls for the phone number and save the changes (if not already done) for enabling outbound calling.

Next select Setup for the phone number.

Select Create a profile to create an outbound profile. For agents to make an outbound call they must be assigned or added to an outbound capacity profile.

https://learn.microsoft.com/en-gb/dynamics365/customer-service/configure-outbound-inbound-profiles

For each phone number, we need to define an outbound profile.

Clicking on Create profile will take us to the page for creating the new outbound profile. We can also navigate there directly through – Advanced Settings >> Agent Experience >> Outbound and Inbound Profile >> Manage


Before we can create a
new outbound profile, we need to have Queue and Capacity Profile in place.

Here we have a Queue named Default Voice Queue of type Voice created and a user added to it.


For creating a Capacity profile, navigate to User Attributes >> Capacity Profile >> Manage


Here we have a capacity profile named – Default voice outbound with the users added to it.



With the Phone Number, Voice Type – Queue, and Capacity Profile defined, let us now create the new outbound profile.

Navigate to – Advanced Settings >> Agent Experience >> Outbound and Inbound Profile >> Manage

Select + New profile

Specify the Profile name and Profile type as Outbound.

Add the phone number and specify the Outbound
info required.

Specify Outbound behaviours

Click on Next and check the details in the summary and Save and close to create the outbound profile record.

Now with the configuration done, agents can make calls by clicking the Launch
Dialer.

Or from the Mobile Phone field, they can click on the Phone icon.

It launches the Dialer, with the phone number populated.

Lastly, we can also assign a Phone Number to a user, which allows him to make calls using that number. (toll-free numbers cannot be assigned)

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-outbound-calling?tabs=omnichanneladmincenter#assign-personal-phone-numbers-to-agents

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-outbound-calling?tabs=omnichanneladmincenter

With all the proper configurations in place, we were able to make an outbound call using the phone number configured as shown below.

Please check – https://neilparkhurst.com/2022/04/05/omnichannel-for-customer-service-outbound-voice-calling/

https://learn.microsoft.com/en-us/dynamics365/customer-service/voice-channel-outbound-calling?tabs=customerserviceadmincenter

Hope it helps..

Advertisements