Dynamics 365 for Marketing: Customer Journey and Preview Features

MDM is dead, long live Dynamics 365 for Marketing! Well, sort of. The preview edition of the latest D365 app is available now – so I had a nosy around…

After Microsoft announced they wouldn’t be selling MDM (Microsoft Dynamics Marketing) to new customers in late 2016 they moved to partner with Adobe for a blend of Dynamics 365 and Adobe Marketing Cloud functionality. With the MDM product due to be discontinued as of May 2018, I (and a lot of clients) have been curious to see what made the cut for the new app.

At a glance many of the functions available in MDM have been promised for D365 for Marketing with the omission of; Project Management, Budget Management and Asset an Media Management – SMS Marketing is still possible but requires 3rd party involvement. Project Management has been represented in Project Service Automation too, so it makes sense that there is no replication there.

Organizations with truly enterprise level marketing requirements at advised to consider Adobe Marketing Cloud, but for those who don’t there is Dynamics 365 for Marketing.

**Warning – this is preview content and is subject to change.**

So, what kind of functionality does Dynamics 365 for Marketing contain?

Core Marketing

Email marketing, customer journeys, behaviour tracking, lead scoring and marketing pages are all listed among the core functions. You are able to define segments; dynamic, compound or static by which you can group your customers for communications and marketing activity.

Event Management 

Manage activity and promote in-person or webinar events – which can be linked to a Dynamics Portal to allow attendees/potential attendees to review the event details and register for the event.

Voice of the Customer

Create online surveys using the preferred solution and analyze the resulting data, leveraging a great piece of the existing D365 suite.

Dynamics 365 Portals

The marketing app uses Dynamics Portals to allow your marketers to publish event, marketing pages and online surveys to the web. This is slated to be available with the Marketing App and as an add-in for Dynamics 365, further enhancing the portal product.

Customer Journey

Simple or even complex customer journeys can be established in the app based on a drag and drop graphical journey modeler. These can be used for short, sharp interactions or full nurture processes allowing the automation of communications for your particular campaign, event or nurture activity.  I’m going to focus in on this aspect a little further as it is topical for me right now.

Additionally there are Customer Insights charts, widgets and indicators to allow you to target segments for customer journeys and lead scoring and import leads from LinkedIn using lead tools.

What does it look like?

Well, the UI is indicative of the Dynamics 365 unified interface discussed in my last post very clean and easy to navigate. The default landing page is as expected a dashboard with your choice of default from those available.

The “charms” style menu down the left hand side of the window enables the user to easily hop between entities applicable to marketing activity. It all feels very much like the Apps for Dynamics 365 – which is great for continuity.

The Customer Journey modeler behaves very much in the same way as the interface for creating a business process flow – which I’ll attempt to describe in the next section.


The Customer Journey

Creating a Customer Journey as mentioned earlier is possible using the graphical modeler/designer interface. Just click on the charm and edit or add a journey. There are some pre-defined templates in the preview such as Announcement, Customer Onboarding and Event Marketing – which is pretty helpful.


Choosing “Event Marketing” or nay other template launches the modeler with some pre-defined actions. Using the modeler we can amend actions, set targets, add content and flow controls.

Properties allow the configuration of timeouts (days or hours) and rules that are applied to each journey. The general tab is where we can input data (such as; status reason, time zone, purpose) and view related leads in the time honoured Dynamics way.

You can also define if the journey is recurring (yes or no) and the start date and time. Users can drag items using their tiles into the flow, with connectors to the previous tile(s).


Flow Control options such as; Scheduler, Triggers, Splitters and Splitter Branches allow us to map the Journey between actions or content delivery.

You can validate your work using the “Check for Errors” button in the ribbon with the results displayed in the designer.

Adding content such as Marketing Emails to your Journey is easy enough, either select an existing email, or create a new one – which can be created using an email template from those pre-loaded into the App’s library.


Once selected you can edit your images within the grid and personalize the content…


The email is associated with a sender and you can add a “reply to email”, when you a ready click “Go Live” to activate the template.

How can I register?

You can register for the preview here; https://www.microsoft.com/en-us/dynamics365/marketing-preview and there are some small steps to jump through. I created a new instance in which to provision the preview functionality. There is also help and training here; https://docs.microsoft.com/en-nz/dynamics365/customer-engagement/marketing/help-hub

**Update April 18; the preview is closed, you can however register for a trial of Dynamics 365 for Marketing, to find out how see this post; https://blogs.technet.microsoft.com/lystavlen/2018/02/07/how-to-create-a-dynamics-365-for-marketing-trial/ **

At the moment I have just skimmed the surface, so I’ll aim to update the blog as I go. It appears at first glance that Dynamics 365 for Marketing might be the addition the product has been looking for, though the functionality isn’t as comprehensive as ClickDimensions in the small to medium enterprise space.

But I recommend registering and having a go so you can share any insight with your team and your clients.

Have fun! 🙂




Dynamics 365 Portals: A brief introduction to a brave new world

With the advent of Dynamics 365 and the acquisition of ADX Portals, Microsoft have introduced Dynamics Portals to the already bulging feature set, but what can you currently achieve using the release version?

Firstly, a very Happy New Year to you. As we enter the new year the world of Dynamics 365 has begun to open up new opportunities and also a whole stack of new questions for clients and partners alike as to what the new capabilities can bring to the table, one of which is Dynamics 365 Portals.

Dynamics 365 Portals allows external users access to CRM/Dynamics 365 content via a contact record and allows specific content to be accessed based on their web role(s). The solution enables the CRM Administrator to use CMS style functionality from with the Dynamics application.

In the course of investigating the suitability of the solution for a proposed client delivery I have collated some information on a number of key areas, which I have detailed below;

Supported Deployments

Dynamics 365 Portals should be available for organisations with subscriptions to Dynamics 365 (Fall Wave) and MS Dynamics CRM 2016 Online Update 1 (Spring Wave).

Dynamics 365 Portals is not compatible with MS Dynamics CRM 2013 or 2015 (on premise or online) or Microsoft Dynamics CRM 2016 (on premise and online).

Though it should be possible to add Dynamics 365 Portals as a subscription for MS Dynamics CRM 2016 Online Update 1, you may have a little difficulty – i.e. the solution is not displayed as a preferred solution, especially when working with a licensing provider/enterprise licensing. If so contact your CSP or MS Support.

For more information on preferred solutions see; https://technet.microsoft.com/library/dn878909.aspx

Dynamics 365 comes with 1 portal and you can purchase more portals as an when needed.

What Can I Achieve Using a Trial?

If you have not upgraded to the latest release (Dynamics 365) and still want to check out the Dynamics 365 Portal solution then you can add the preferred solution to a D365 Trial with access to the full product suite. I added this to a non-customised version so I was able to work with configuration items easily.

By default your portal is made available against the “microsoftcrmportals.com” domain.

Authentication for Dynamics 365 Portals

D365 Portals provides authentication built on the ASP.Net Identity API. Users will require a username and password to sign-in and it is possible to have two-factor authentication using email or SMS. Non-D365 users are associated with a Contact and it is possible to send an invitation to contacts previously created in the system to allow them to register.


Tiered Access for Customer Users

Not all users are created equal, and nor should they be. As part of the security access configuration for Dynamics 365 Portals you can set up different web roles. These web roles are applied to a Contact (the primary record for your portal user) and can allow them to perform specific actions or access restricted content. Default web roles can be created. You can get more details on web roles in the link; https://community.adxstudio.com/products/adxstudio-portals/documentation/configuration-guide/content-authorization/web-roles/

A Rose by Any Other Name; Differences in Features

It is important to remember that as things stand Dynamics 365 Portals is not ADXstudio Portals, though they are built on a similar framework there are differences in the features and deployment methods.

This means we cannot assume that because a feature was supported using ADX v7 that it will be supported by Dynamics 365 Portals (v8.x). Adoxio Business Solutions (which continues to function after the Microsoft purchase of ADXstudio) published a feature comparison table here; https://www.adoxio.com/crm-portals-and-crm-portals-feature-comparison/

Some of the notable omissions from Dynamics 365 Portals are; Issues from the “Communities” feature set, Conference/Events management from the “Marketing” features and E-commerce – when compared to ADX v7. Which leads me on to the next point…

SharePoint Integration

The comparison table provided by Adoxio includes the item “SharePoint Integration” under integrations, and then supplements this with “leverage SharePoint’s secure document management”.

After unsuccessfully attempting to get this up an running in a trial version of Dynamics 365 and using this walk-through; https://community.dynamics.com/crm/b/microsoftdynamicscrmsolutions/archive/2016/08/17/crm-portal-and-sharepoint-integration

I encountered this alert when accessing my portal page;


So, I put the question to a Senior Partner Consultant over at Microsoft and the response I received was that the product team confirmed that the SharePoint integration does not work with CRM Portals (v8.x).

They did mention that it’s in the roadmap for a future release, but there is no confirmed release date yet. It is tentatively expected in the Spring Release in 2017, but not firmed up at this point in time.

So it would appear that for now there is no SharePoint capability, if this is important, especially for external parties such as customers or partners then you may be able to implement a custom web component to handle the display of documents in the portal.

However, for your specific deal requirements involve just uploading files, Dynamics 365 Portals also supports Azure storage, which can be a better alternate solution to SharePoint for file storage (upload etc.).


There is no need to start your portal adventure with a blank canvas, you can leverage some of the ready made templates to act as the basic structure for your portal – including pages and page templates, for instance the Customer Service Portal.

They key benefits of starting with the Customer Service Portal are that by default you can access the following features;

  • Portal Dependencies
  • Portal Base
  • Portal Workflows
  • Web Notifications
  • Microsoft Identity
  • Identity Workflows
  • Web Forms
  • Feedback
  • Blogs
  • Forums
  • Forums Workflows
  • Portal Timeline
  • Customer Service
  • Knowledge Management
  • Microsoft Get Record ID Workflow Helper
  • Bing Maps Helper

After that you can configure the additional elements you need, or disable items as you see fit by creating supplemental web roles, pages and web files. Access to elements such as “Contact Us” and “Submit a Case” are already provided.

Migrating a Portal Instance

It is possible to migrate the configuration made in sandbox instance to production instance using Configuration Migration Utility which comes with Dynamics 365 SDK.

Custom Domains

As mentioned earlier Dynamics 365 Portals can be hosted in the MS domain, however it is also possible to use a custom Domain Name for your portal, for example; “myaccount.company.com”. To do so you will need enter the domain and provide an SSL certificate for the HOSTNAME in the settings/admin area for the portal solution which is accessed via Applications associated with your D365 instance in Office 365.

On Brand; Customise the “Look and Feel”

Your D365 Portal can be tailored to meet your branding requirements using CSS/Bootstrap added as a web file.

It is pretty impressive what can be achieved with the first iteration of Dynamics 365 Portals, users of the existing ADX product may decide to wait for a future release to migrate. It is also unclear at this point how easy it will be to move to D365 Portals for existing ADX customers – if you have any information to share please enter a comment and let me know. It appears to me that these are the first steps into a brave new world. and I will keenly await the announcements for the coming releases and to see how the functionality is dove-tailed by Power Apps.

There is an intro to the configuration of D365 Portals here. Give it a read and spin up a trial, it is well worth a play.

Happy CRM’ing.







Trigger Field Updates from Roll-up Fields in MS Dynamics CRM 2015

I recently read a post from Jukka Niiranen on limitations of using roll-up fields in Microsoft Dynamics CRM 2015 (http://survivingcrm.com/2015/02/crm-2015-rollup-fields-gotchas/), which was very useful – however I have been working on a client solution that did benefit from this feature using some simple configuration and business rules.

The idea is that you can use a roll-up field in CRM based on hierarchical and/or associated records to display a cumulative currency value, such as “Total Spend” or “Total Revenue” to trigger updates to other attributes such as, “Service Level” or “Customer Type” in the associated Account or Contact without using code. In some cases, using the “keep it simple” principle then you can achieve this using;

  • Roll-up Fields
  • Roll-up Filters
  • Business Rules

The scenario I am using as an example is that a customer makes a booking that is associated with their contact, the more they spend (new_totalnetbookingspend) the higher their “Loyalty Level” (new_membershiployaltystatus), but the principles can be applied to your customisations and other situations. So let’s get started.

Please Note; Business rules run only when the form loads and when field values change. They do not run when a record is saved, unless the scope for the rule is set at an entity level. For this scenario my client works within the Contact entity – it cannot currently replace the functionality of a plug-in.

Step 1 – Create a Roll-up field Go to your solution in CRM and the entity of your choice, (in this case I am using Contact) and either the asscoiated “Fields” or the “Form” you are going to work with, (this will depend on your working preference), then create a new field. Next complete the required information for your field, such as; the “Display Name” and “Field Requirement” level and add a “Description” if you desire, (remember in this version of CRM the description appears when the user rolls-over the field label). Then choose your “Data Type” in this case the one I am using is “Currency” and then the “Field Type” as “Rollup”. Then “Save” you field.


Step 2 – Define your Roll-up Calculation Then navigate down to the “Field Type” field and click the “Edit” button that should have dynamically appeared in the field properties window. This will launch the pop-up window for your roll-up calculation. You will need to complete the following;

  • Related Entity
  • Filters (the use of filtering is optional)
  • Aggregation

For filtering you may want to filter out records assigned a certain ‘status reason’ or ‘type’ depending on the requirements, for aggregation you can choose a “SUM” of the target field (in this case a sum of the NET Booking Amount),  I have included a screen shot of my example calculation below. When you are done click “Save and Close” and then add you new field to the entity form and Publish” your changes.

rollup_calc I also have the existing field which I want to update based on the roll-up value which is an option set, you may need to create a field before continuing to the next step.

Step 3 – Create a Business Rule As Jukka explains in his post; “No standard workflow or Business Rule will allow you to initiate the roll-up field calculation based on the custom business logic you’d like to define.” However you can trigger a business rule based on the value held in the field itself. Out of the box this relies on the roll-up value being updated either using the “refresh” or the system job to calculate the roll-up being completed. The business rule will execute when the record is loaded or the roll-up field value changes. So, for this example my contact field “new_membershiployaltystatus” has three options; Gold, Silver and Bronze. The loyalty status will be set based on the following rules;

  • Bronze – If the contact has a “Total NET Booking Spend” < $2500.00
  • Silver – If the contact has a “Total NET Booking Spend” >= to $2500 and < $5000
  • Gold – If the contact has a “Total NET Booking Spend” >= to $5000

Please Note; “Bronze” is also the default value for my option set “new_membershiployaltystatus”. To create a new business rule in your CRM solution navigate to the entity (in this case Contact) and click the “Business Rules” item in the nav’ tree and then “New”. You will then need to complete the Condition statements and Action for each of the possible options, as per the example below, then “Save” and “Activate” your business rule. You can also choose a form to execute the rule against, or execute against all forms.


Additionally I locked my fields on the form, however if you want the option set to be “read only” you will need to define this in the rule, not on the form – if you do it from the form the value changes might not be committed when the record saves. Don’t forget to test to check your results!  Easy. 🙂


 Happy CRM’ing!
**UPDATE** 16/08/2015 – You can use a plug-in to force the roll-up calculation to be updated using CalculateRollupField, you can also populate another attribute such as a date field to be populated when it has and use this to trigger a standard workflow. Thus negating the need for the record to be opened in the UI for the associated attribute to change, for more information please see: https://msdn.microsoft.com/en-us/library/dn817863.aspx (MH)

Trigger OnLoad Workaround for AJAX issues in CRM 2013

I thought I’d create a quick post as I was required to use a workaround for a client today involving an OnLoad event that wasn’t being called correctly in Microsoft Dynamics CRM 2013.

The background on this is that the AJAX used to refresh the page in CRM 2013 doesn’t necessarily call the OnLoad action, in this case it was affecting the JavaScript used to switch the Account from base on the value “Account Type” option set.

I remembered that a colleague had mentioned this in the past and advised that there was indeed a workaround using configuration, namely;

  • 1 x Boolean field
  • 1 x Synchronous Workflow
  • Update to the fields OnChange event

So what do you do?

Step 1 – Create a new Boolean (Two Option) field for the entity or entities effected. In my client’s case it was Account, using the following steps; Settings > Solutions > Choose Your Solution and Open it > Entities > Account > Fields > New.

Then make sure you add a display name that will make sense to you, set the “Field Requirement” to “Optional” and set the “Type” option to “Two Options”, then click Save and Close.


Step 2 – Next add the new field to the required forms against your entity, then click “Change Properties” on your field and uncheck “Display Label on the Form” and “Visible by Default” and also check “Lock the Field on the Form” (this will endure admin’ users will have to think twice before removing the field) then click “OK” to close the box. Next click Save and then Publish your changes and close the form (still no button for Save, Publish and Close), repeat for other forms as required.


Step 3 – Create a new Synchronous Workflow (real-time) Process against the entity with “Organisation” as the scope (in this case Account) in CRM that is triggered when;

  • Record is created
  • Record status changes
  • Record fields change (check the required fields to apply this workflow to)

Add a workflow step to update the entity (in this example Account) and in the “View Properties” area select the Boolean we just added and set the field value to “Yes”. Save and Activate the workflow.

Please Note; be careful to select the right option in the “execute as” property, if the owner of the workflow is the system admin’ account then you should have no issues, if it is the user who made the changes, then you will have to consider their security role for the entity.

Step 4 – Finally add the JavaScript from your OnLoad that switches the form etc. to the OnChange event of the new Boolean field in your entity form. You can find this under the field by navigating to; Change Properties > Events > OnChange > Event Handlers > Add.

Remember to add the function in minus “()”. Then click “OK” and Save, Publish and Close. Repeat as required for other forms.

Don’t’ forget to test your changes and you are done.

In-form Analytics in Dynamics CRM 2015

Due to the updates included in Microsoft Dynamics CRM 2015 it is even easier to provide contextual data insights from within records, such as accounts and contacts based on their related records. Through some simple, yet effective configuration you can provide users with an up-to-date tailored overview of your organisations’ interactions with clients or potential customers .

In this example I will configure the Account form in CRM to display Sales Pipeline and Order data using the following functionality:

  • Roll-up Fields
  • Sub-grids
  • Charts

Prior to customising your entity form you will need to identify what content you are looking to deliver within the form and makes sure the entity relationships are in place.

Please Note: The amount of calculated data which is rendered on load for your CRM records can affect performance in the application, you will want to test the load time for your customisations to be sure it won’t impact on the overall user experience.

Step 1 – Create Roll-up fields in CRM

Roll-up fields in CRM are a new feature introduced in 2015, they enable administrators to add calculated data fields to forms without the need for development. We can use this functionality to obtain data from Opportunities associated with an Account.

Firstly, navigate to Settings > Solutions in CRM and select your solution, navigate to the Account entity and open the Account form you are going to be working with.

Once in the account form select the Insert tab at the top of the page and click to add a new Tab. Give your new tab a name, (in this case I have called mine “Sales Data” and formatted as two columns) and click OK. There are some additional fields that have been added to CRM 2015 out of the box; “Open Revenue” and “Open Deals” which you will find in  the field explorer. For this example I am going to add both to my newly created tab in a section.


You can open the field properties to view the roll-up calculation applied to each of these fields. In the field details you can see that the field type is set to “Rollup”, by clicking edit you will see the current aggregation and filters in use, those for the “Open Revenue” field are in the image below. The “Open Deals” field is a rollup that uses a count of open opportunities.


Further to these fields I am going to add one for the “Closed Revenue Sum” and “Lost Revenue Sum” using the following steps; New Field > Currency Field > Field Type = “Rollup” > Edit.

For the Sum of Closed Revenue or Closed Revenue (Sum) field I have used the following rollup query;

Source: Account
Use Hierarchy: Yes
Relationship: account_parent_account
Related Entity: Opportunities (Potential Customer)
Filters: If Status Reason equals “Won”
Aggregation: SUM of Actual Revenue

For the Lost Revenue (Sum) field I have used the following rollup query;

Source: Account
Use Hierarchy: Yes
Relationship: account_parent_account
Related Entity: Opportunities (Potential Customer)
Filters: If Status Reason equals “Cancelled, Out-Sold”
Aggregation: SUM of Est.Revenue

Place your new fields on the form in the desired order and save your changes.

Step 2 – Add Charts to the Form

Next I am going to use the sub-grid functionality to add charts to the account form. This is a useful trick that can deliver some great results with very little fuss. The key is to make sure you are using the right view for the Chart for the sub-grid.

Insert a new section in the tab created in step one and then click to insert a new “Sub-Grid”, in the Set Properties window select “Only Related Records”, the entity to “Opportunities (Potential Customer)” and the default view to as required, for this example I am going to use “Open Opportunities”. Then scroll to “Chart Options” at the bottom of the window and select the “Default Chart”, (I have used the “Sales Pipeline” chart), then select “Show Chart Only”. Finally click “Set”.


Repeat the steps for the charts that you require, I created a custom view called “All Opportunities” and used this as a filter criteria for the “Deals Won vs. Deals Lost” chart. Adjust your chart formatting until you are happy with the layout and click save.

Step 3 – Add Sub-Grids

For this example I have moved the “Recent Opportunities” sub-grid to my newly created tab in its own section. If you are surfacing related data be sure to check the box for “Only Related Records”, you can also create specific views to use for your sub-grids.

Step 4 – Complete Your Configuration & Test

Finally, choose the appropriate formatting and layout to maximise the number of components added to your tab and set if the tab should be expanded by default or not, (collapsing the tab by default means that the data will only load when it is expanded rather than each time the form loads). Once you are happy hit “Save” and “Publish” your form.


And there you go – easy, no fuss analytics that are filtered to the current record. The results for my example are displayed above, the key to this configuration is data – the more you have the better the results. You can also use JavaScript to hide or show the tab depending on parameters, such as customer type etc.

This is just a quick example of what can be done and hopefully has given you food for thought. Happy CRM’ing folks.

Some Useful Enhancements in Microsoft CRM 2015

With the latest update to the Microsoft Dynamics CRM application (first seen in the latest release for CRM Online) there are some useful enhancements that can be utilised out of the box. Some of the highlights noted whilst attending the Partner Boot-camp event are listed below:

Field Level Security is now available for OOB fields with the CRM 2015 update, there are a few fields that are still not available, however this should not affect the bulk of requirements. Previously there was a hack at the database level which could allow administrators to field level security to OOB fields, however this wasn’t available to those deploying online. Thanks to the update however this can be configured in a supported method via the customisations area of CRM.

Business Rules – can now be executed server side in CRM 2015 and there is additional functionality embedded to allow for the use of ‘if’ and ‘else’ conditions. To execute server side you need to add the business rule to run against the ‘entity’ rather than the form. The new functionality allows them to run on the CRM Apps as well as via the Outlook client. Additionally you can set default values and behaviours. Executing a business rule server-side means that imported data or offline sync’d data will be subjected to the rule. Unfortunately you still cannot hide form sections or tabs from a business rule, so you will still need JavaScript to execute these functions.

Business Process Flows – now include rule-based branching and can be used programmatically. This means that you can add up to 30 stages per BPF spanning up to 5 entities (including unrelated entities, for example the floe could move the user from a Case to an Opportunity). You can still have just one active BPF per record but you can switch processes, each stage can include up to 30 steps, there is no functionality for parallel waiting at this point.

Case Routing – Routing Rules and Case Creation Rules can be used to automatically create cases from incoming emails OOB. Conditions are used (as per the advanced find interface) to filter on particular attributes or subject strings. Workflow can still be created to route cases to queues via queue items. This functionality can be found by navigating to; Settings > Service Management.

Calculated & Roll-Up Fields – have been introduced into this version of CRM, this enables the configuration of calculated values and roll-ups without the need for development. Previously roll-ups would have been added via JavaScript or for more complex requirements via a Plug-in. A quick breakdown of what is available is as follows –

Calculated Fields

  • Read Only Fields in the UI
  • Real Time values
  • Can reference other calculated attributes but cannot be not self-referential
  • Not available currently offline
  • Calculated using system account
  • Cannot trigger workflows or be used in SLA calculations

Roll-Up Fields

  • Modified By and Modified on are not updated when a roll-up field changes
  • Formula cannot include records from a N:N relationship
  • Formula can’t reference complex calculated attributes
  • Formula cannot reference another roll-up attribute
  • Can be recalculated manually
  • Is calculated asynchronously
  • Account – Open Revenue and Account – Open Deals supplied OOB
  • Current Max. 10 per entity and 100 per org (Online) and this can be changed per Org, this allocation does not include the two OOB fields.
  • The use of Hierarchies is supported with these fields
  • Cannot trigger workflows or be used in SLA calculations

For more information on what is new in Microsoft Dynamics CRM 2015 and getting ready for the release check out the Customer Centre: http://www.microsoft.com/en-us/dynamics/crm-customer-center/get-ready-for-the-next-release.aspx