Another big Microsoft conference can only mean another swathe of new announcements relating to Dynamics CRM/Dynamics 365 ūüôā . Admittedly, compared to the bombshells that dropped before and during WPC 2016, there is relatively little this time around that can match the scale and excitement of Dynamics 365. Nevertheless, there are still a number of things that CRM professionals need to keenly take note of and prepare themselves for in the future. I’ve gone through all of the major announcements during Ignite, and below is my pick of the most significant and major ones. If anyone thinks I’ve missed anything, then please let me know in the comments below!

A new Personal Assistant for your Sales Team: The Relationship Assistant

As reported by VentureBeat, Satya Nadella’s keynote speech made a brief reference to a new “relationship assistant”, that will be incorporated as part of Dynamics CRM/365’s mobile experience. Interestingly, it will initially only be offered as part of the Dynamics 365 Sales “module” only; Microsoft no doubt understand the challenges that organisations can sometimes face when colleagues in the Sales team do not always update their CRM records correctly, so targeting this demographic first will provide an excellent proving ground to determine whether artificial intelligence can overcome this hurdle.

The announcement lacks some of the detail you would expect and, as highlighted by Jordan on VentureBeat, the timing is not just mere coincidence:

The news is notable because it comes just one week after Salesforce, the biggest player in the CRM business,¬†announced that it was bringing artificial intelligence capability ‚ÄĒ called Einstein ‚ÄĒ into its Sales Cloud. Einstein recommendations in Sales Cloud are similar to the cards that appear in Dynamics CRM‚Äôs ‚Äúrelationship assistant.‚ÄĚ

One wonders whether the above was casually slipped into Satya’s keynote speech as a warning shot across to Salesforce. It is also unclear whether or not this tool will be released in tandem with Dynamics 365’s launch later this year, adding further weight to the argument that this was a last minute addition to the speech. Fingers crossed that we will see something more fleshed out sooner rather than later.

Adobe/Microsoft Partnership & the future of Microsoft Dynamics Marketing (MDM)

On first glance, the announcement concerning closer collaboration between Adobe & Microsoft seems rather innocuous, as it mostly concerns Adobe offering some of its more high-profile cloud offerings as part of the Azure/Office 365 “family” of products. However, this announcement comes with the following bombshell that organisations who use¬†Dynamics Marketing, or are contemplating adopting it in the near future, need to urgently take note of:

Microsoft will make Adobe Marketing Cloud its preferred marketing service for Dynamics 365 Enterprise edition, giving customers a powerful, comprehensive marketing service for Microsoft’s next generation of intelligent business applications.

Now I preface this by saying that there is no explicit statement as part of the above that proclaims “Dynamics Marketing will no longer be available to buy as an Office 365 subscription”, but the writing is clearly on the wall for Dynamics Marketing. This being the case, there are few worthwhile things to point out:

  • Clearly, not all Microsoft acquisitions are destined for instant or long-term success. Microsoft has clearly weighed up their options and decided that Adobe Marketing Cloud is a safer bet long term compared to Dynamics Marketing. I have taken a look previously at the history behind the MDM product, and the main thing I would highlight from this is that, from the outside, Dynamics Marketing definitely looks similar to CRM; but underneath the hood, there are a number of key and jarring differences that can make it difficult to become a Dynamics Marketing master in a short space of time.
  • Adobe already look to have a Microsoft Dynamics CRM Connector that can be used to link across Marketing Cloud with CRM¬†– having not used the tool myself, I cannot comment on its usability, but the key litmus test for the above announcement is how well this tool operates compared to the existing Dynamics Marketing CRM Connector. This tool I have found to be relatively straightforward and simple to configure and maintain. The success of how Adobe Cloud Marketing integrates with CRM/Dynamics 365 will be pivotal in determining whether this new partnership blossoms or wilts.
  • Adobe presents an interesting choice for partnering, with some of the commentary surrounding the announcement pitching this as an epic battle between Microsoft/Adobe on one side versus Salesforce/Oracle on the other. If asked what Adobe is best known for, generally you would mention one of its many design or productivity products, not their solutions for Marketing. The areas where Adobe Marketing Cloud can win over Dynamics Marketing¬†will be crucial, particularly in terms of campaign automation, email design and lead generation. If Marketing Cloud can take the best of these features from Dynamics Marketing, sprinkled with some of the design & productivity elements that are well-known from their other products, then the product could succeed significantly compared with Dynamics Marketing.

We are still another month or so away from the official release of Dynamics 365, so I am eagerly awaiting further detail on this key announcement – and in hopefully being able to set up a self-managed trial of Adobe Marketing Cloud and see what it can do in tandem with CRM.

And the rest…

Here’s my pick of other interesting announcements made during Ignite, that may have some bearing on CRM/Dynamics 365 in the near future:

  • Windows Server 2016 finally has a somewhat definitive release date of “mid-October 2016”, and it is great to finally see that this will be released before the year is out. I have always found Windows Server 2012 to be somewhat strange to use, thanks in part to Windows 8 inspired Start Menu. Having a desktop experience that is virtually identical to Windows 10 will be¬†a breath of fresh air. A new Server operating system will therefore likely mean that the next major version of On-Premise Dynamics CRM/365 will support this operating system, so getting up to speed with the new Server OS will be essential for those who intend to adopt the next, major version in the near future. There has been no news or confirmation from Microsoft whether existing or previous versions of On-Premise CRM will be updated to support Windows Server 2016, so those looking for a quick upgrade of their Server 2012’s should hold off until (and if) this becomes apparent.
  • There was some interesting news and developments relating to SharePoint/OneDrive, that I am really looking forward to. For example, the ability to sync SharePoint libraries as part of the new next-generation client, push notifications to mobile devices and the ability to download multiple files to a .zip file. Because SharePoint, and now OneDrive, can be integrated closely within CRM, any developments that improve the experience and usability of working with your CRM documents will hopefully drive organisations towards utilising these services for their CRM document management, as opposed to just using the “out of the box” solution.
  • The rebranding of Enterprise Mobility Suite, and the introduction of the new EMS E5 plan, can only mean good things for Microsoft’s cloud services generally, and in particular CRM Online; organisations can very quickly and confidently set up advanced and highly secure environments for their online identities, and in the process take full advantage of the full suite of Microsoft’s cloud offerings within Office 365 and, eventually, Dynamics 365.

Whenever you create a new Entity within CRM, you generally find yourself going through the same rhythm each time, both in terms of the general approach from a planning perspective and then the setup involved just after you hit ‘Save’ when creating the new Entity. Whilst often somewhat laborious, these steps are essential in ensuring that your Entity is configured in a professional and clear way. Anyone who works often within the Customizations area within CRM should have a well-defined “checklist” of items that are worked through as a minimum after an Entity is created. In this week’s blog post, we will focus on what I think are the most important things you have to look at doing once a new Entity has been created. Note that the below checklist should not be taken as “gospel” for what you should be doing, and there are a few things below that are more personal preference based as opposed to being absolutely required. I would be interested to hear if anyone has their own checklist items they follow when creating new Entities in the comments below, so please feel free to share ūüôā

Decide Options for Entity

You have a number of different options you can specify on Entity creation, which facilitates additional functionality such as duplicate detection, support for Business process flows etc:


Since a lot of these options are irreversible once you select them, it is generally better not to add them in when your Entity is first created, unless you are absolutely sure you need them. Enabling them from the outset will potentially add a number of additional attributes, which may impact on performance long-term. As a minimum, however, I would suggest that the Duplicate detection option is always selected. This is because you will almost always want to configure some kind of duplicate detection rules on your data, in order to ensure your CRM does not get clogged up with useless or unnecessary data.

Give everything within your Entity a clear and meaningful description

Regardless of whether it’s a form, attribute or a view, you should always ensure that a Description field is supplied with an appropriate 1 or 2 lines of text that describes what it is and what it is doing. You should never assume that it is obvious what a particular field is doing, and you are potentially doing a disservice to yourself, colleagues and your end-users by not taking the time to complete this step. My preference is always to be borderline obsessional in this regard, as past experience has taught me the invaluable nature of clear documentation and how my extra effort at the outset can potentially save hours for someone down the line.

The Curious Case of the Name field

Every custom Entity needs to have a Name, or Primary, field, which is specified on creation. You are limited in how this is customised, which can lead to trouble deciding how best to utilise it:


Where possible, you should customise the Name field so that is storing some required value on your new Entity. For example, if you have a new¬†Event¬†Entity, then you can use the Name field as the¬†Event Name field. If it’s the case that you decide not to use the Name field at all or are unable to find a suitable use for it, then you will still need to ensure that this is populated with a value of some kind. The reason? On the record page itself, CRM will populate the field with a rather undescriptive and generic value:


Now you could just force it so that end users populate this field with a value, but this in my view creates unnecessary data inputting steps and could lead to significant discrepancies within the database on how this data looks. It is better to create a workflow that populates this with a consistent value, that references other fields that will always contain data of some kind. The benefit of this route is that, if these fields are ever changed on the record, you can configure your workflow to run again to update the Name field accordingly.

Rename the Main form and update the description

I find it really annoying and strange that the default form created for new entities is called ‘Information‘ as opposed to just ‘Main‘, so I generally always rename this accordingly, updating the description of the form as well in the process.

Tidy up the default System Views

This step will generally need to be done after you have created all of your Entity attributes. When you first create your Entity, CRM will automatically create the following views for you:

  • Two default public views – one that shows all Active records and another that shows Inactive records.
  • An Advanced Find View – This is used whenever a user clicks the¬†Create Personal View button or selects [new]¬†from Advanced Find when creating a new view. Essentially, it is used as a default template to assist users when creating new views.
  • An Associated View – Shown when the user clicks on the related records button on the sitemap from a form.
  • A Lookup View – Shown when the user clicks on the ‘Look Up More Records‘ button on a lookup field
  • A Quick Find View – This view is displayed when a user performs a Quick Search function from the Entity view page. The important thing to remember with this is that only the fields that are specified under¬†Add Find Columns will be searchable via a Quick Search, so you will almost certainly need to customise this at some stage.

The views are always populated with the Name field and the Created On field. You will need to ensure that all of these views are modified so they contain the information that is most pertinent about your new Entity. If you are not using the Name field at all, then removing it from these views would be sensible, to ensure that end-users are not confused by a list of Entity records with a blank value being displayed.

Update your Security Roles accordingly

This can be sometimes easy to overlook, but unless you have configured your organisation’s security roles to include all relevant permissions, then your users won’t even be able to see, let alone use, your new Entity! So you should always ensure that your organisation’s security roles are updated to reflect the data access requirements of your business.

Conclusions or Wot I Think

Having a consistent approach when it comes to designing a CRM system is important for a number of reasons. It helps to inform and shape best practice approaches within a business, enables you to ensure a minimum level of quality as part of your solution and is essential when working as part of a team to ensure that team members are able to easily go into a solution and understand how everything operates. By combining together past experience, mixed together with well-understood best practice approaches, it can be very straightforward to put together a set of items that need to be checked-off as part of creating a new Entity, and will give everyone within a team the confidence and surety that they are customising CRM in the correct manner.

I have been really excited recently, as I began working more closely with ADXstudio & CRM Portals. This was perhaps one of the more exciting new features introduced as part of the CRM 2016 Spring Wave earlier this year and presents a major step forward for the CRM product. Now, businesses can start to leverage their CRM and its data in developing professional, accessible, customer and/or partner facing websites that integrate natively with your existing CRM system and processes.

One of the first challenges when getting to grips with portals is how you go about changing the OOB design of your site – for example, how do you modify the colour for a background or a particular button? Both products¬†utilise Bootstrap to enable portal designers to very quickly develop professional looking portals that are customised to suit particular businesses design/theming preferences. In addition to this, as outlined on ADXstudio’s website:

By using Bootstrap’s layout system, it’s possible to develop a single site that presents an appropriate interface to all devices your customers might use.

In the days where mobile responsiveness is an absolute requirement for website projects, Bootstrap provides a framework that ensures a consistent UI experience is maintained at all times for your end users. But, if you are scratching your head at just how to start working with Bootstrap (like I recently was!), it can be a major hurdle figuring out how to begin styling your portal. In this week’s blog post, I will take a closer look at what Bootstrap is, what “shortcuts” are out there that can greatly speed up developing your first Bootstrap template and how you go about applying this to your custom portal site:

What is Bootstrap?

Bootstrap was originally developed by Twitter but has since become an open-source project, on its 3rd major version. The Bootstrap website contains a nice little summary around the history of the project and its interesting journey from internal project to open-source release:

Bootstrap was created at Twitter in mid-2010 by @mdo and @fat. Prior to being an open-sourced framework, Bootstrap was known as Twitter Blueprint. A few months into development, Twitter held its first Hack Week and the project exploded as developers of all skill levels jumped in without any external guidance. It served as the style guide for internal tools development at the company for over a year before its public release, and continues to do so today.


I was actually surprised to learn about its popularity, having not had any previous exposure to it, and its status as the almost de-facto standard in website design circles.

Creating your first Bootstrap Template

Microsoft’s article on portal theming (replicated from ADXStudios original article) suggests a few different websites to try in the first instance. We’ll take a closer look at 3 of the websites mentioned here that enable you to customise a Bootstrap template from scratch, and then at an alternative route not mentioned on either website:

Official Bootstrap Customizer

Via the official Bootstrap website, you can¬†create your own custom bootstrap¬†template. As pointed out in the above articles, there is no GUI interface that lets you preview your customised template; which means you have to download and apply the Bootstrap files to your website in order to get a feel for how it looks. If you’re feeling particular masochistic, then this is definitely the route for you ūüôā


Argh, too many settings! (‚ēĮ¬į‚Ė°¬įԾȂēĮÔłĶ ‚ĒĽ‚ĒĀ‚ĒĽ


When you first start using BootSwatchr, you immediately warm to it straight away – it provides a WYSIWYG editor, enabling you to very quickly tinker around with the various settings on the default Bootstrap template, and see how they will look in a browser. VERY nice! However, I have encountered some issue using the tool on Internet Explorer/Microsoft Edge, particuarly when it comes to the most crucial bit – exporting your BootStrap template .css file using the ‘Get CSS…‘ button. This is definitely one of the tools you should check out in the first instance, but just be aware that it may not work correctly on your browser of choice.


Code editor? Check. WYSIWYG view? Check. Instant applying of changes to the preview? Check. Full marks!


What is encouraging when you first start using BootTheme is that it looks to be constructed in the same vein as BootSwatch. However, I have had real trouble figuring out how to use this tool, as it is initially quite daunting figuring out where to start. I think with some dedicated time and learning, this could be a really effective tool to use when building your Bootstrap templates, but perhaps not the best beginners tool.


So er, yeah, looks pretty good – where do I start? :S


These tools are the ones that I have used when creating Bootstrap templates, and used in tandem, are quite effective in creating a Bootstrap template that conforms to specific branding requirements. You start off by creating a ColourLovers account, which lets you then create a “colour scheme” that can be used in PaintStrap. A “colour scheme” is essentially a collection of up to 5 different colours that you want to use on your BootStrap, which can be generated very easily using the ColourLovers website. Simply go to Create -> Palette, specify your colours, give it a descriptive name and save onto your profile:

1011 12

Once you’ve saved your COLOURLovers template, you then copy across the 6 digit code for the template into the PaintStrap 3 step wizard. This can be found within the URL of your selected template:


Which is then entered onto PaintStrap:


Then, on Step 2, you can start to customise which colours will appear where on your BootStrap – the nice thing being that you are not restricted to just the colours on your template and you can get a partial and full-screen preview of your template as you build it:


When you are happy with your template, click the ‘Generate CSS!’ button to download your BootStrap .css file. You will want to grab the bootstrap.min.css file; this is exactly the same as the bootstrap.css file¬†but has been slimmed down to remove line breaks, whitespace etc.

Once you’ve got your Bootstrap, how do you apply it to your portal?

Let’s assume we are using the Basic Portal, provided as part of ADXStudio; the steps are the same for CRM Portals, rest assured:


Navigate to the home page of your portal, ensuring that you are logged in as a Contact that has the Administrators Web Role. On the ADX widget on the top right of your page, click on New -> Child file:


You’ll be greeted with the¬†Create a new child file screen. Populate the details as follows:

  • Name: bootstrap.min.css
  • Upload File: Browse and select your bootstrap.min.css file
  • Partial URL: bootstrap.min.css
  • Hidden from Sitemap: Tick the box

It should look something like this:


Press Save and then refresh your browser. Your new bootstrap will be applied to your site; and, because we have configured it on our home page, it will cascade automatically across our portal site:

4 5
Looks…err…interesting! I would not recommend or endorse creating a bootstrap that looks like this, but this example provides an excellent illustration of the versatility of Bootstrap.

Getting up to speed with Bootstrap may look quite daunting initially, but fortunately, there are lots of tools and resources available online that can get you running quickly with BootStrap. These tools can significantly ease your learning journey with ADXstudio/CRM Portals and also allows you to look like a website design whizz in the process ūüôā

One factor that anyone considering CRM Online for their business would need to address is determining the amount of data you are intending to bring across into the CRM and how you expect this to expand in the long term. CRM Online includes 5GB of database storage for all of your CRM instances on an Office 365 tenant, which is included as part of the base plan (i.e. 5 Professional Licenses). If you run out of storage, there are only two ways in which you can increase this:

  • By purchasing 20 Professional user licenses, you will be granted an additional 2.5GB storage. This is cumulative up to a maximum of 50GB (e.g. if you add an additional 20 Professional licenses to your existing 400, then your storage will not increase further)
  • Additional storage can be purchased, at a whopping ¬£6.20 per GB

Based on the above costs, a careful analysis needs to be performed to ensure that a migration does not end up costing more than expected; either in the immediate or long term. In any event, administrators will need to keep a careful eye on their database storage levels over time by frequently reviewing the CRM Online Administration Center on their deployment:


I was recently investigating why a particular CRM Online deployments storage had ballooned from a rather modest 0.75GB all the way up to nearly 4GB – all over the space of a few months! After doing some further digging, I determined that the Attachment entity was consuming the most amount of data in the CRM instance. This was not spotted readily, due to the rather strange way that this entity works within CRM, which I wanted to highlight and discuss further as part of this weeks blog post:

Why should administrators regularly check Attachment Entity records?

Every time an email is automatically synced into CRM, either with Server-Side Synchronisation or via CRM for Outlook, all the attachments are also brought into CRM. This will include your typical files (a .pdf document, an Excel worksheet etc.); but may also include images from your email signature or any other content on the email that is not stored in plain text. Over time and, in particularly large deployments, this can start to eat away at your database storage very quickly. Ignore the impact that this entity can have on your CRM deployment at your peril…

Why administrators may struggle to¬†regularly¬†check Attachment Entity records…

The attachment entity cannot be searched using Advanced Find. It’s just not there on the list of entities available to query:


Oh, Attachment, where art thou?

The only way within the CRM interface to get a rough indication of how many attachment records are stored within the database is by running an Advanced Find Query against the Email entity, filtering out only email records that have a related attachment record:


(You can then customise the File Size (Bytes) filter to search for emails where the attachment is over a certain size Рthen, drill down in the email record to see the actual Attachment records).

So, what other options are available to us? You can use FetchXML to query the data on an Online/On-Premise deployment, but you are restricted in what information is returned. Only the following fields will be returned by a FetchXML; even if you specify, for example, the activityid field, it will never be returned in your request:

  • mimetype
  • filename
  • attachmentid
  • body
  • filesize

So with these restrictions in mind, you can run the below FetchXML query to return all attachment records where the file size is over 50MB:

  <entity name="attachment" >
    <attribute name="attachmentid" />
    <attribute name="filename" />
    <attribute name="filesize" />
    <filter type="and" >
      <condition attribute="filesize" operator="gt" value="10485760" />
    <order attribute="filesize" descending="true" />

To actually delete the record, you would have to either locate the record within CRM, a potentially laborious task. Unfortunately, there is no way to navigate to the record using query parameters appended to your CRM URL or to even use a Delete request in the SDK to remove the records. If you are running On-Premise CRM, then you could always run this manual query against the CRM organisation database:



DELETE FROM dbo.ActivityMimeAttachment
WHERE AttachmentID = 'B18FBFCA-046D-E611-80CB-00155D02DD0D'

I¬†am not sure whether this a supported way of using the application, so use at your own risk ūüôā

Be Proactive: 2 Tips to reduce the Attachment Data Footprint

To avoid a situation where you are having to go through the above to delete unnecessary email attachments, there are 2 things you can do to try and avoid this entity from swelling up unexpectedly:

  1. In Settings -> Administration -> System Settings, on the General tab, you can specify the list of blocked file extensions for attachments. Out of the box, CRM automatically populates this with a list of the most harmful file types, as a semi-colon delimited list:1You are able to freely modify this list to include/remove the list of attachments that you want CRM to automatically strip out. So if for example, your organisation uses high resolution .png images as part of your email signatures, this may be a good candidate to add to this list.
  2. Staying within the System Settings area, but this time jumping across to the Email tab, you have an option where you can specify the maximum file size for all attachments saved in the system:2By default, this is set to 5.1MB РI would not recommend increasing this to any large degree, and there may be a case to reduce this further to around the 2-3MB mark.

Consider all things as well Рhow essential is it that any attachment is stored within CRM in the first place?

Certain organisations may use separate email archiving solutions, that automatically backup and store and all emails sent across an organisation into an archive that can then be accessed by end users and (most importantly) system administrators. Examples of these solutions may include Exchange Online Archiving, MailStore, Mimecast or Metalogix. If you know that your organisation has one of these solutions in place and that emails are being backed up/archived with all of their appropriate attachments, then it may be prudent to block CRM from storing any type of attachment file altogether. On the flip-side, if your organisation does not have such a solution in place, then this can work in reverse РCRM could act as an excellent way of implementing an email archiving-lite solution for your business. Although, I would expect that this is only practical for an On-Premise deployment, where your storage costs will be typically more cost-effective compared to CRM Online.