Automatically Track All Incoming and Outgoing Email Messages in Dynamics 365 with Exchange Online Rules (Abridged Version)

Originally posted on: https://crmtipoftheday.com/1187/automatically-track-all-emails

This post is an abridged / summarised version of my original post about the same subject. To read the full detailed 10 pages long step by step guide, please check the original post on my blog here

Sometimes organisations want to track all incoming and outgoing emails for a number of users at Server Side without having the user to do anything manually and across all devices. The requirement here is to save the user time from clicking on “Track” emails when they are sending them or having to manually move incoming emails into a tracked folder to be tracked. They also want this to work on every email sent from any device and every email received even if Outlook is not open. This what I call “pure Server Side Synchronisation”.

As the name gives it away, Dynamics 365 Server Side Synchronisation and Dynamics 365 App for Outlook can help us achieve this requirement with some help from Exchange Mail Flow Rules that uses the transportation layer directly. Just to re-iterate, we are here using Dynamics 365 App for Outlook (not the client). If you are not sure what is the difference between Dynamics 365 App for Outlook and the Dynamics 365 for Outlook (also known as the Outlook Client), you can refer to this comparison.

My approach is using Server Side Synchronisation between Dynamics 365 Online Cloud and Exchange Online but the same approach may work with other setups to achieve the same requirement: Track all incoming and outgoing emails automatically from any device. I’m also applying all of this on 1 single “test user” but you can apply this on as many users as you want. My test user is called “sales test”.

  1. Configure server-side synchronization
  2. Set up tracked folder
  3. Create the following email flow rules
    1. Outlook rule to copy all incoming email messages to the tracked crm folder except if the message has “crmtrack” in the message header.
    2. Exchange Online Mail Flow rule that works at the transportation layer to “Bcc” every single email sent from the user to themselves and adds the “crmtrack” header value to the sent email message header
      image
    3. Outlook Rule to move all incoming email messages that has the “crmtrack” header to the tracked folder.
      clip_image023

The result of all of the above complicated approach is that ALL incoming emails are tracked in Dynamics 365 automatically as “Received” emails and ALL outgoing emails are tracked in Dynamics 365 CRM automatically as “Sent” emails. As this approach is using Exchange Online transportation layer, this is a pure Server Side Synchronisation of Email messages with Dynamics 365 which means it will work with “ALL Emails” sent from ANY Device and any app as the synchronisation happens at the server side and not on the client side. So if you sent an email from the Outlook for the Web (Web Mail), sent it from an Android device email client, iPhone Mail app, Outlook app on iPhone, Office Outlook or any other medium, all emails sent and received are tracked in Dynamics 365.

This is how it looks like in Dynamics 365: Tracked emails sent from any device and emails received while Outlook is closed:

clip_image025

 

Disappearing Record Level Team Access security permissions and Manual Record Shares Dynamics 365 v9

Our team at TechLabs London have recently faced a fairly complex and bewildering issue on Dynamics 365 v9. We have setup access team templates against the Contact entity to manage access to Contact records individually. If you haven’t used Access Teams before, you can read more here, but in essence it is a way to control which user can see which contact at a record level.

Our customer has converted from another vendor (a.k.a SF) to our iProperty Cloud solution (http://iProperty.Cloud) built on Dynamics 365 v9 and the new Unified Client Interface (UCI). As part of our data migration, we imported thousands of contacts to Dynamics 365 Customer Engagement and allocated a number of users for each contact record based on a predefined list and set of rules. This was a custom data migration process to create these record level access records using our own TechLabs London propriety migration solution.

Once our data migration into Dynamics 365 was complete, we checked Access Team security and everything looked absolutely fine. The next day after going live, Team access security disappeared for few thousand contacts – but NOT all contacts. Upon looking at the POA table (Principle Object Access Table) where security is set, we found that about 4K access records have disappeared. Literally disappeared!

Apologies for the long story but I want you to be aware of everything we tried to resolve this issue as one of these steps may help you fix your issue (which may or may not be similar to ours).

Basically, we spent the following few days trying lots of different resolutions to try to find out the issue.

  1. First we re-imported Access team records using our migration App – everything went back working fine until the next day in the morning – 4K access records disappeared again!
  2. We tried setting the record level security using “Share” not Access Team (manually and programmatically). While we know that Access Teams are “hidden share” and both get created in POA table, we thought this may solve the issue. It didn’t – next day, everything disappeared.
  3. One possible cause of these record level access security issues could be triggered by re-parenting. For example if contacts are associated to an account and you give ownership of this account to a team while the relationship behaviour is set to cascade all, then the child contact records will become accessible to this team. We removed any cascade relationship behaviour – but still didn’t help. Next day, all access disappeared.
  4. We then Disabled all our custom plugins that remotely affect security and access – we had few automation on security between different entities and teams. No luck.
  5. Also we disabled our own security roles synchronisation process (Azure function) which synchronises security between Dynamics 365 and SharePoint security. Nope! Not even that.
  6. We deleted and recreated the team access template then re-imported all access records. Still same issue. All 4k access records were deleted from POA table the next morning.
  7. We setup an hourly extraction routine to extract Access records from POA table to a separate Azure SQL. We monitored and tried to find out the issue or the cause – still nothing.
  8. After blaming ourselves and our code for good few days, we raised a ticket to the Dynamics 365 Support and Product Team.

Finally, the issue was found to be related to the Table: SubscriptionTrackingDeletedObject table and an associated cleanup process that runs every day in the morning (our UK time) in the Dynamics 365 Platform. Apparently this table includes a list of GUIDs for records that need to be deleted from the POA table (and other locations). This table is not exposed via API (or at least we are not aware of a way to).

Basically, it came down to the fact that we imported contacts before go live the first time with these contacts original GUIDs as they were coming from an older CRM system and we wanted to maintain the relationship between entities and records. This is normally fine, however, at one point before going live we had to make some changes to the structure so we deleted those imported contact records and re-imported them with the same GUIDs again. When we did that, apparently these records and all their related security access records were marked for deletion from the POA table. When we re-imported, these contact GUIDs and their related access records were still marked for deletion. Hence, every day in the morning the good old record deletion clean up process SubscriptionTrackingDeletedObject would delete our access records and drive us crazy.

The fix was a script created and run by the Dynamics 365 support team which permanently fixed the issue for us but not before we have learnt a few hundred ways of how to try to fix such issues!

Summary of our Dynamics 365 Saturday event with special guest James Phillips @ Microsoft London Jan 2018

We had a fantastic two days at Microsoft London Paddington Offices on Friday 26 and Saturday 27 January. It was the first time we had our event across the whole Microsoft Business Solutions platform and over 2 days, Friday afternoon and Saturday.

This time, we had a very special guest: James Phillips, Microsoft Corporate Vice President and the head of Microsoft Business Solutions (including Dynamics 365) Globally. He flew from the US to attend the event and show his support to the community.

Q&A with James Phillips

To check all the photos and a chronological report on the event, please read my LinkedIn article here:

https://www.linkedin.com/pulse/summary-report-our-dynamics-365-saturday-london-event-mohamed-mostafa/

James Phillips supporting our Dynamics 365 Saturday community

Important list of Deprecated Features and Funcationalities in Microsoft Dynamics 365

If you are currently responsible for a Microsoft Dynamics CRM system or planning / delivering a Dynamics 365 solution, then you need to be aware of this important Microsoft announcement about the deprecation of some features and functionalities.

Microsoft defines “Deprecated” as an intention to remove the feature or capability from a future major release of Dynamics 365. The feature or capability will continue to work and is fully supported until it is officially removed. This deprecation notification can span a few years. After removal, the feature or capability will no longer work.

Hence, you should start planning replacing these features from your current Dynamics systems or avoid using these capabilities in your current Dynamics 365 implementation projects.

Here is the list of features, functionalities and capabilities officially deprecated and will be removed from Microsoft Dynamics 365 CRM:

  • Dynamics 365 for Outlook (Outlook client) is deprecated
  • Service scheduling in Dynamics 365 for Customer Service is deprecated
  • Dialogs are deprecated
  • Usage of Parature knowledgebase as the Dynamics 365 knowledge management solution is deprecated
  • Project Service Finder app is deprecated
  • Contracts, Contract Line Items, and Contract Templates entities are deprecated
  • Relationship Roles are deprecated
  • Mail Merge is deprecated
  • Announcements are deprecated
  • Ready-to-use business processes available through Add Ready to Use Business Processes setting are deprecated
  • Silverlight (XAP) web resource is deprecated
  • The following client APIs are deprecated
    Xrm.Page
    Xrm.Page.context
    Xrm.Page.context.getQueryStringParameters
    Xrm.Page.context.getTimeZoneOffsetMinutes
    Xrm.Page.context.getUserId
    Xrm.Page.context.getUserLcid
    Xrm.Page.context.getUserName
    Xrm.Page.context.getUserRoles
    Xrm.Page.context.getIsAutoSaveEnabled
    Xrm.Page.context.getOrgLcid
    Xrm.Page.context.getOrgUniqueName
    Xrm.Page.data.entity.save(string)
    Xrm.Page.data.entity.getDataXml
    GridRow.getData
    GridRowData.getEntity
    Xrm.Mobile.offline
    parent.Xrm
    addOnKeyPress
    removeOnKeyPress
    showAutoComplete
    hideAutoComplete
    Xrm.Utility.alertDialog
    Xrm.Utility.confirmDialog
    Xrm.Utility.isActivityType
    Xrm.Utility.openEntityForm
    Xrm.Utility.openQuickCreate
    Xrm.Utility.openWebResource

 

For full details about these deprecations and the official Microsoft announcement, please refer to the following Microsoft Documentation:

https://docs.microsoft.com/en-us/dynamics365/get-started/whats-new/customer-engagement/important-changes-coming

Please note that deprecations described in this post and in the original Microsoft Documentation announcement, apply to Dynamics 365 Customer Engagement as of the July 2017 Update. All Dynamics professionals should use this information to prepare for future releases of Dynamics 365.

Customer Engagement refers to the applications that make up the CRM portion of Dynamics 365, which includes the Sales, Customer Service, Field Service, and Project Service Automation applications.

 

Getting help with Dynamics 365 / Dynamics CRM solution problems and issues

I have been asked few times about how to get help from Microsoft on issues and problems with Dynamics 365 CRM. I have also been asked how to get an official Microsoft support case raised and how to get an official Microsoft response to an issue. For all these questions, I strongly suggest you visit the Dynamics 365 CRM support page here:

https://mbs.microsoft.com/customersource/northamerica/CRM/support/support-lifecycle/CRMSupport

On this page, you will see the whole range of support options you have from using Dynamics 365 Community forums (https://commuinty.dynamics.com) to guidance on how to open a ticket or raise a support request. You obviously need to have some sort of support agreement with Microsoft such as a Premium support contract or Dynamics Partner support tickets. You could also get support if you have a Dynamics 365 software assurance programme.

Hope this helps!

 

Using the new Dynamics 365 Knowledge Articles functionality versus earlier Dynamics CRM Knowledge base articles (KBArticle)

This post discusses 2 Knowledge Management features in Dynamics 365, one new and one old, and the differences between each of them. The new knowledge articles entity data model (KnowledgeArticle) in Microsoft Dynamics 365 enable you to create rich knowledge articles along with versioning and translation support. On the other hand, you can continue to use the legacy / earlier Dynamics CRM Knowledge Base Articles (KBArticle) data model. While you can continue to use the legacy Knowledge Base Articles, it is a good practice and a Microsoft recommendation to use the Dynamics 365 Knowledge Articles as they provide improved capabilities and translation support. In other words, Microsoft has probably left this feature for backward compatibility only but advices new Dynamics 365 Solution Implementations to use the new Dynamics 365 Knowledge Article instead.

When you create and publish a knowledge article, it become available to users in your Dynamics 365 instance so that they read and utilised the information in these articles to deliver accurate information to customers and follow the organisation’s processes and guidelines as documented in these knowledge articles. Use the KnowledgeArticle entity to store and manage knowledge natively in Dynamics 365.

To setup the new Knowledge Article solution, you can follow the following steps:

  1. Go to Settings > Service Management.
  2. Under Knowledge Base Management, click Embedded Knowledge Search.

  3. In the Knowledge Base Management Settings wizard, in Record Types, select the record types you want to turn on knowledge management for. The list will include all entities that are available for an N:N relationship. Knowledge management is enabled for case entity by default.

  4. Under Knowledge Source, in the Knowledge Solution field, select between the Dynamics 365 native knowledge solution.

     

    For more information and full details, you can follow these links:

https://msdn.microsoft.com/en-gb/library/gg309345.aspx

https://technet.microsoft.com/en-us/library/dn946909.aspx

https://msdn.microsoft.com/en-us/library/mt593096.aspx

 

Dynamics 365 Learning Path versus Dynamics CRM customisable help

Dynamics 365 Learning Path is a new feature in Dynamics CRM that provides an improved experience over the legacy customisable help in Dynamics CRM.

Customisable help allows you to override the Default Dynamics 365 Help with its standard Microsoft CRM content. It allows you to point your CRM Organisation users to a different URL for a customised help experience. Alternatively, you could override the Microsoft CRM Help Content with your own content so you can better describe your processes.

On the other hand, Learning Path allows organisations to set targeted help for users when they open a page, click a help button or perform an action. Learning Path is more of a contextual in-app help tailored for your organisation’s business processes as opposed to Customisable help that is more of a static help non-contextual.

You could use either of them based on your business requirements but in my view Learning Path is the more modern and flexible contextual help that could deliver more benefits to your CRM organisation. However, please note that you cannot use both Learning paths and Customisable help together – you need to choose one of them to work with.

Here is an introductory video of Dynamics 365 Learning Path:

You can see more details and the source for the information in this post at the CRM Customer Centre here:

https://www.microsoft.com/en-us/dynamics/crm-customer-center/create-your-own-guided-help-learning-path-for-your-customers.aspx

Azure Machine Learning for Dynamics 365 Products recommendations

One of the new exciting features in Dynamics 365 is the intelligent product recommendation features in Microsoft Dynamics 365 CRM.

Currently, Dynamics 365 product catalog includes some basic modeling ability to link various products for cross-sell / upsell and also accessory recommendations. This is a great feature which several businesses have found extremely useful. However, the limitation here is that these links are hare coded and require someone in your organisation to constantly maintain them and update links between various products on regular basis. At some point, these hard links will expire and will need to be removed and updated, etc. The other challenge is that it is base don assumption that customers who bought product x are also interested in product y. These will be business assumptions and not intelligently calculated linkage between various products.  Maintaining these hard links require the constant overhead and complexity of analysing recommendations ranking and imagining all possible combinations of products that can be sold together.

Now Microsoft is offering a much more advanced and intelligent solution that is quite unique amongst CRM system. Microsoft Dynamics 365 can now build the product links based on recommendations which use real-world transactions as a basis for their calculations and links that can evolve over time based on current customers buying trends and without requiring any maintenance overhead.

By connecting your Dynamics 365 Solution to Microsoft Cognitive Services (called Cognitive Services recommendations services – which is based on Microsoft Azure Machine Learning), you will have recommendation modeling techniques making recommendations without any manual intervention. Using real-world transactions or interactions to find products that are sold or viewed together, Microsoft Cognitive services will push through product recommendations into your Dynamics 365 solution.

Once you add the product recommendation feature in Dynamics 365 a capability is added to the product catalog to generate automatic recommendations. You can set up the product catalog and synchronisation to build a “machine learning based recommendation model” that makes recommendations in a ranked list at various places in Dynamics 365, such as at the account, opportunity or order level.

Please note that, Microsoft Dynamics 365 product recommendations feature supports existing line item entities (OpportunityProduct, QuoteDetail, SalesOrderDetail, and InvoiceDetail) and custom line item entities, as well as standard and custom product relationships.

Source for this information and more details can be found here:

https://technet.microsoft.com/en-us/library/mt703320.aspx

and here is a step by step guide on how to enable Cognitive Services for Dynamics 365 product recommendation:

https://technet.microsoft.com/en-us/library/mt703320.aspx#BKMK_ConnectLearnRec

Hope this helps!

LinkedIn Sales Navigator Integration with Dynamics 365 for sales from the Dynamics 365 Public Roadmap

In my post yesterday, I discussed the LinkedIn Connector for LinkedIn Lead Gen Forms as highlighted in Microsoft’s public Dynamics 365 Roadmap website: http://roadmap.dynamics.com
Microsoft is presenting that the LinkedIn Sales Navigator integration with Dynamics 365 for Sales enables organisations to improve the performance of their sales processes by taking advantage of the information richness available on LinkedIn’s company and person public profiles.
As I’m sure you must have heard, LinkedIn data is the Golden Dust everyone wanted and only Microsoft managed to get (which made SalesForce really annoyed). This direct integration between Dynamics 365 and LinkedIn is surely just the first step in a number of enhancements, capabilities and features that will massively differentiate and advance Dynamics 365 over and above Saleforce and other competitors.
This capability is promising to bring LinkedIn data such as company and person public profiles across to Dynamics 365. You can imagine how many beneficial uses such feature can bring from data cleanliness to data enrichment to competitor advantage due to data and relationship knowledge that your organisation will have while integrating Dynamics 365 with LinkedIn.
Microsoft further explains the feature as follows:
  • Display Sales Navigator person and company information on every Dynamics 365 for Sales lead, contact, account and opportunity page. This is just the start but I guess everyone will agree there is a lot more expected including the ability to bring in LinkedIn information into custom Dynamics CRM entities as well.
  • Automatically perform daily updates between systems so the accounts and contacts sales reps are actively working on in Dynamics 365 for Sales are saved to Sales Navigator. In addition, sales reps can see in Sales Navigator what people and companies are already saved in Dynamics 365 for Sales, and vice-versa. Again an excellent feature that could make real difference to many organisations and sales teams.
  • With a single click, write select Sales Navigator activities (InMails, messages, notes and call logs) to Dynamics 365 for Sales providing better communication, connectivity and full 360 degree view of customers including your communication through LinkedIn messages and InMails.

Personally, I think this connector is a winner and will massively differentiate Dynamics 365 way above its competitors such as Salesforce. I have been in CRM selection meetings where clients are already finding it a “no-brainer” to choose Microsoft Dynamics 365 just for the sole reason of having LinkedIn data in their CRM system.

With that said, we expect a lot more from Microsoft when it comes into LinkedIn integration with Dynamics 365.

Full details and source can be found at the public Dynamics roadmap here: https://roadmap.dynamics.com/#area=#application=326f31ea-2992-e611-80dc-c4346bac0910

 

Digital Transformation of the Property & Housing Market using Dynamics 365: Global webinar on #MSDyn365 #PropTech #MSDynCRM

Digital Transformation of the Property & Housing Market using Dynamics 365:

Please join me in my next Microsoft CRM User Group webinar on the 19th May discussing the Digital Transformation of the Property & Housing Market using Microsoft Dynamics 365.

This is a global webinar which will cover successful digital transformations delivered through Dynamics 365 in the Property Market. The session will also discuss regulatory and compliance challenges including Housing Regulations, GDPR and Data Protection.

The session is supported by Microsoft’s Ben Sandall (TSP – Housing Sector) with a chance for questions and answers about Microsoft Dynamics 365 focus in the Property & Housing market.

CRMUG have kindly accepted to make this session Free for everyone as an exception. Please register to attend using the following link (any problems please comment below and I’ll be happy to help you register):

https://dcicrmugportal.cobaltsaas.com/Meetings/Registration/MeetingDetails.aspx?mid=afe83f69-e5eb-4486-8a30-bad5b2b6a076

Looking forward for your participation.