How to – quickly find Tenant Id https://www.whatismytenantid.com/


Recently we had to find the tenant id, usually, we will log in to Azure Portal and within Azure Active Directory we will get the tenant id.

However, in this case, we only had the user’s email address.

So we had https://www.whatismytenantid.com/ to help us here.

Just enter the domain name, and click on Find my tenant ID.

The result –

The corresponding PowerShell script – https://craigporteous.com/azure-tenant-id-powershell/

Hope it helps..

Advertisements

Key points – Copying environment in Dynamics 365 Marketing


Few key points for quick reference, if we plan to copy Dynamics 365 Marketing environment.

You could find all the details here –

https://learn.microsoft.com/en-us/dynamics365/marketing/manage-marketing-environments

Copy procedure will –

  • Delete the target environment
  • Uninstall the Dynamics 365 Marketing on the target environment (if the target environment already has the marketing license it will take over the same license).
  • Delete all the interactions records – email clicks, website visits, etc. and images used in Email and Marketing Pages (they need to be backed up in separate storage, the marketing environment backup will not have that data as it is managed separately / differently by Marketing Service including Marketing Insight Service).

After Copy

  • We need to re-run the Marketing Setup as the email sending and insights services will not work.
  • The marketing setup will create a new set of marketing services, therefore new interaction data will be created.
  • We need to again Authenticate Domain and update the DNS records.
  • Images used in Email and Marketing pages in Source Environment will have to be uploaded again in the Target Environment, else they will keep referring to the images hosted in the source environment.
  • All the emails, customer journeys, lead-score records, and more will be in the draft stage after copy, they need to be updated to the go-live status in the target environment.
  • All real-time journeys will be in the stopped stage, to restart them the journey must be duplicated before it can be executed.
  • In case Power App portals are being used, they need to reset first in the target environment to release the license and need to be configured again after copy

Also,

We can use the Configuration Migration Utility to move data between environments – marketing pages, journeys, emails, etc.

Interaction data cannot be to transferred to the target environment.

Solution export and import procedure can be used to move the customizations between different environments.

For extracting marketing interactions – https://community.dynamics.com/365/dynamics-365-fasttrack/b/dynamics-365-fasttrack-blog/posts/extracting-marketing-interactions-in-dynamics-365-marketing

Below is our marketing app showing configured before copy –

and after copying the environment, as expected, shows Not configured.

On trying to re-run the marketing setup we got the below error –

Click on Retry starts the uninstall process

We had to raise the Microsoft Support which eventually fixed the issue at their end with the help of Product Group team.

Hope it helps..

Advertisements

Few key points – Dynamics 365 Marketing Licensing / Apps


Below are a few key points and links for quick reference –

Core Marketing License

Dynamics 365 Marketing – For organizations without any other Dynamics 365 Application.

Dynamics 365 Marketing Attach – For organizations with qualifying Dynamics 365 Applications (minimum 10 users of the following apps – Dynamics 365 Sales, Customer Service, Field Service, Supply Chain Management, Finance or Commerce)

Additional Marketing Licenses – that can be purchased apart from the core license –

Production License – Used for the production environment. Fully functional and includes both solutions and services. It is licensed per tenant and includes a default capacity allotment of 10K Marketing contacts (contact, lead, account, customer insights B2C profile, etc) and 100K marketing interactions (email, SMS, push notifications) per month.

Non-Production License – Used for the test environment to try out new features or customizations. Fully functional and includes both solutions and services but has strict quotas and cannot be used to run production campaigns.

Solution Only License – Used for development or test environment for customizations, importing or exporting solutions, non-functional testing, other development, etc. Only includes solutions and entities and doesn’t include any services. Included with Paid Licenses. To convert a solution-only environment to production or non-production, we will need to purchase either production or non-production license and do the configuration using the marketing setup wizard.


Another Tenant example –

Picture1

A configured Marketing Application app will have the unique id of the organization / env. appended to it, on which it has been configured as shown above.

Dynamics 365 Marketing Application App: This is a fully functional Dynamics 365 Marketing application, including both solutions and services. Mainly for production but can be used for another environment for testing the functionalities.

Dynamics 365 Marketing Solution Only App: This application includes all the marketing solutions/entities but doesn’t include any services. It can be installed on as many test or development environments as needed for no additional charge.

Other points –

We can only have one Dynamics 365 marketing app per environment i.e. each Dynamics 365 Marketing App can be tied to only one environment.

To add more marketing apps to the tenant, we need to purchase an additional license. On purchase of the license, we can see an unconfigured Dynamics 365 Marketing app added in the tenant.

We can have n number of marketing apps available in the tenant, which can be assigned to any of the Dynamics 365 environments not being used for marketing earlier.

We can also set up a marketing trial – https://learn.microsoft.com/en-us/dynamics365/marketing/trial-signup which can be later purchased – https://learn.microsoft.com/en-us/dynamics365/marketing/direct-purchase#purchase-a-license-within-a-trial

Adding Marketing capacities – We can buy additional marketing contacts and interactions as below

Dynamics 365 Marketing Pricinghttps://dynamics.microsoft.com/en-us/marketing/pricing/

Step by step – Configure Dynamics 365 Marketing in a Dataverse Environment

Hope it helps..

Advertisements

Personalization Comparison –Marketo and Dynamics 365 Marketing


Marketo

Dynamics 365 Marketing

In Marketo, a token is a variable that can be used in email, landing pages, snippets, web campaigns.

{{lead.First Name}}

With default value: {{lead.First Name : default :earthling}}

In Dynamics 365 Marketing, we can add Dynamic or Static Content,

Dynamic Text –

e.g. {{contact.firstname}}

Different types of Tokens: –

  • Person Tokens – {{lead.Salutation}}
  • Company Tokens – {{Company.Company Name}}
  • Campaign Tokens – {{campaign.name}}
  • System Tokens – {{system.dateTime}}
  • Trigger Tokens – {{trigger.Trigger Name}}
  • Program Tokens – {{program.Name}}
  • Member Token – {{member.webinar url}}
  • My Tokens – are custom variables that users can create for adding content quickly.

 

 

 

 

 

 

 

 

 

 

 


 

Pre-defined dynamic text (Token) (Real time marketing) –

Users can create and share pre-defined dynamic text, making it easy for users to personalize emails without knowing the underlying structure required for using dynamic text.

Accessing existing pre-defined dynamics text in email –

Creating and adding a new Pre-defined dynamic text.

Content Settings – Set of standard and required values for use in marketing email messages like subscription centre link, social media links, address etc.

To use the Content Settings fields inside Email – Personalization >> Dynamic Content >> Content Settings.

Snippet – dynamics content blocks that can be used in email and landing pages.

Content Blockpremade reusable pieces of content that can be used while designing emails, forms, and pages.

Can be used for boilerplate texts – terms and conditions, introduction.

For generic sections like Headers and Footers. It can include Dynamic Text as well as code, which can be used to create reusable content, which the team can use without knowing the dynamics text or data model of CRM. Outbound marketing and Real-Time Marketing use their own content blocks.

Select Content blocks while designing email to add them.

   
Advertisements

Fixed – The reference assemblies for. NETFramework,Version=v4.6.2 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application


Recently while trying to use the Power Platform Toolshttps://learn.microsoft.com/en-us/power-apps/developer/data-platform/tools/devtools-install , got the below error in Visual Studio 2019. (not supported for VS 2022)


To fix it either you can, open Visual Studio Installer and select Modify and select the appropriate developer pack.



Or as specified in the error message, open https://aka.ms/msbuild/developerpacks, and download the appropriate Developer pack from there.


This fixed the issue –


Hope it helps..

Advertisements

Power Apps Component Life Cycle – Quick look


We can read about the architecture and the life cycle of the Power Apps component here.

Check the screencast – PowerApps Component Life Cycle

Let us see it in action using a sample project.

Launching the test harness, we can see the init executed followed by updateView.

Making any change in the component’s form factor, width, height, or Data Inputs property triggers the updateView method.

Now let us update the index.ts and add a textElement along with an event listener for its change event.

Inside the test harness, when we change the Value of the sampleProperty, if we want the value of the textElement to be updated, we need to use the updateView method to fetch the changed value from the bound sample property field and reflect this new data in the UI.

We can get the value of the sampleProperty from the context and use it to set the textElement value as shown below.

Now let us do the opposite, let us change the value inside the textElement. Here as expected none of the methods triggers.

Here we need to call the notifyOutputChanged method, to notify the host that the component’s output has changed.

On calling notifyOutputChanged, the framework runtime will first call getOutputs to get the value of the bound properties of the component, and then notifies the host.

The host will perform the validation and if the output received is valid it will call the updateView.

But before we do that let us first try setting the value of the sampleProperty in the change event handler of the textElement. Here on changing the value inside the text box, we can see only the change event handler is triggered. No other methods are triggered here as expected.

There is no update in the value of the bound sampleProperty.

This is because we need to call the notifyOutputChanged method to let the host know about the changes made in the value inside the text box.

On calling the notifyOutputChanged and changing the text value this time, we can see the getOutputs being called.

The value remains the same for the bound property and updateView method is not called as our getOutputs method was not returning anything.

Let us update the getOutputs method to return the sampleProperty having the text value.

On changing the textElement value this time getOutputs is called, followed by updateView.

To summarize,

  • To notify the host, about the user changes in the UI                                                ècall notifyOutputChanged
    è the framework will call the getOutputs
    è followed by èupdateView
  • Host changes the data/properties                                                               èupdateView will be called è context passed è we can update the UI as per our requirements

Check the following links to understand more about the life cycle –

https://dianabirkelbach.wordpress.com/2020/03/29/pcf-when-is-updateview-called/

https://dianabirkelbach.wordpress.com/2022/02/28/async-requests-inside-pcf-init-and-updateview/

To learn about PCF –

Getting started with PCF Custom Controls by Danish Naglekar

https://www.youtube.com/watch?v=ZYOHaHUf83Y

https://www.youtube.com/watch?v=o3OW6UW-RMI&list=PLqJfvq4Fy1P5TgPGm8Ny_legkZUk5BfyV&index=2

PCF Academy by Andrew Butenkohttps://www.youtube.com/watch?v=YJ9hrKxAhTU&list=PL0WiRFWRFGlQr5tGZdUGUlyTl7Gi1Wb_K

https://bgx.blob.core.windows.net/files/powerplatform/PCFControlGuide.pdf

Hope it helps..

Advertisements