Microsoft Dynamics Marketing Functional Overview

The Spring 14 release for Dynamics CRM sees the first release of the new Microsoft Dynamics Marketing application.  The functionality originates from the Marketing Pilot product that Microsoft acquired back in October 2012.   This current release reveals a re-skinned application that looks right at place alongside Dynamics CRM: 


It is important to understand though that Microsoft Dynamics Marketing is still very much a separate application.  It is a cloud offering that you can subscribe to by itself or as an add-on to either your monthly CRM Online subscription or your CRM On-premise license.  It has native integration to Dynamics CRM to synchronize common elements of their respective data models.

Where the Marketing functionality that we have historically known in Dynamics CRM only skims the surface this new application delivers a lot of business process automation for a Marketing Department.   Here’s a useful comparison of the two:


When I first heard of Microsoft Dynamics Marketing I envisioned it would offer functionality along the lines of Click Dimensions, providing mass email marketing and landing page type functionality.  But there is more under the hood than that.   It tackles a number of internal business processes within the Marketing Department – such as requests and approvals, planning and execution, digital asset management, event management, media buying, etc.

And what I particularly like is that it makes the most of being a cloud offering and opens up the usage scenarios to include not only the internal Marketing Team but also allows ‘internal customers’ in the organization to login into a portal experience to interact with the Marketing Department and the same for external vendors/contractors/customers.

The product is applicable to 2 different types of end customer:

  • Internal Marketing departments
  • Marketing Agencies

Microsoft Dynamics Marketing meets the requirements common to these two types of  organizations and in addition provides the pricing and invoicing functionality that only the Marketing Agency would need.

Here’s a very quick run down on the functionality provided by the new Microsoft Dynamics Marketing solution.   This will save you from having to sit through the online training…

Account and Contact Management

The ability to track profiles and record interactions with:

  • Organizations
  • Contacts (internal and external)


Work Management

The ability to break down the work your Marketing organization is performing into:

  • Programs
  • Campaigns
  • Events
  • Jobs


The ability to create and assign Tasks.   And the ability to define Templates for standardized processes (Job Templates).   There is lots of rich functionality in here, allowing you to sequence Tasks, automatically update Job status based on Task completion and a slick UI for reallocating the pre-assigned durations on Tasks when the overall Job duration needs to be compressed.

Request Management

The ability to define Job Request templates and publish those to an online catalog for internal customers to use when requesting work from the Marketing department: 


Digital Asset Management

The ability to manage folders of Video, Audio and Image and document files.  These can be digital assets that are being developed or libraries of finished products:


Configurable review and approval processes processes for digital asset development – such as the development of a Landing Page or Brochure or Promotional Video.  Includes tools to markup an image / video with highlights, callouts, notations, etc:


Supports both internal and external users so that design and review processes can be performed internally or externally – e.g. if you outsource collateral development your marketing vendor can submit draft’s via their external access to this tool and you can provide your marked up response.


Event Management

The ability to define Event Templates to standardize the definition of Events.  Includes the configuration of Event Briefs and standard Tasks. 

The ability to define Venues and Venue Facilities.  The ability to plan Events and Event Sessions.  The ability to define Speaker, Food & Beverage and AV requirements.

The ability to track invites, acceptance and attendance (simple tracking feature).  The ability to manage Registrations (more comprehensive functionality).  The ability to load a Marketing List into an Event.


Marketing Financials Management

Microsoft Dynamics Marketing includes lite ERP-style functionality to enable a Marketing company/division to process purchase orders, invoices, quotes, etc.,   Specifically:

The ability to define products, expense items, services, etc. and to associate these to GL Accounts. 

The ability to define rate cards for items / services.

The ability to execute and manage a Request for Quote (RFQ) process to seek bids from external vendors. 

The ability to build estimates and deliver quotes (relevant when MDM is used by a Marketing Agency that serves external customers). 


The ability to generate Purchase Orders and to then post expenses to the campaign based on the PO once you receive the Invoice.



A Time Card feature allows internal users to code their time to various Marketing initiatives to add those labor costs to the Campaign.   If the Marketing Department is serving external customers these time entries can feed the billing process. 

The feature can also be utilized by external contractors, providing a means for them to log their hours with you, feeding how you pay them.


Media Buying & Media Planning

Contact & Account Management around Media Vendors.   

The ability to define the Media Vendors, Outlets (advertising channels), Markets and Segments (geographic/demographic groups served by each Outlet) that you interact with.

The ability to maintain Rate Cards for the pricing you have negotiated with the Media Vendors you purchase from.  Including the definition of Day Parts to represent advertising windows such as “Weekday Mornings”, relevant to Television and Radio advertising.


The ability to create Media Orders (think Purchase Order) and then expense those.  Optional ability to invoice Media Orders (if you are an Agency with external customers).

The ability to define a Media Plan – i.e. the specification of individual advertising spots across channels, across a period of time, that cumulatively represents your multi-channel advertising plan for a particular campaign.   This can be used to forecast the cost and to generate the purchase orders.   There are useful wizards and bulk data entry tools to ensure you do not need to key each individual spot.


List Management

The ability to define Marketing Contacts (specific end customers/prospects that you wish to send bulk communications to) and Marketing Lists.

Support for Static and Dynamic Lists as well as List synchronization with Microsoft CRM. 

The ability to define black lists / opt out lists.

The ability to publish lists to a Subscription page for self service subscription management.    And the ability to modify the appearance of this subscription page.  Includes the ability to enable self service update of contact details.

Email Marketing

The ability to define Email Templates including support for manual creation, creation via copy and paste of HTML, support for embedded images and for embedded contact fields.

The ability to send bulk email as part of a campaign (select an email template, modify it for this particular message, select your marketing list, send).

The ability to view metrics and detailed information on email blasts:  opens, clicks, forwards, unsubscribes, etc.

The ability to define rules to constrain the number of emails your customers will receive per week / month (either globally, or per campaign).

The ability to define dynamic content in emails so that when mailing multiple lists each list receives personalized content – e.g. subject line, email body, images, links.


The ability to register Facebook and Twitter accounts and then post to those from within MDM.   Click-through on URLs included in posts will be automatically tracked.


The ability to define budgets at a wide range of levels:  company wide, campaign, channel, etc.

Comparison views of budget to actual, with drilldown.

Web Site Visitor Tracking

Generation of scripts for embedding into web pages to push visitor information to MDM.

Track visitors in MDM.  Tracked as anonymous or, if identified, tracked against Contacts.

Landing Pages

Configurable landing pages for Lead capture.    Able to select which fields are displayed / required. 

Able to automatically associate new Leads to a List.

Built in support for CAPTCHA. 

Lead Scoring

Configurable rules to assign scores to leads: e.g. submitting their details on a landing page = 10 points.

Add value to Lead based on fit: e.g. if they indicate they are in one of our 3 key industries add another 15 points to their lead score.    If they are already a target for a particular campaign add another 20 points.

Ability to have scores automatically depredate over time: e.g. decrease by 1 point every day (to represent their declining value as we fail to respond).

Ability to grade Leads based on the Score assigned, to place Leads into bands and give those bands an identifier – e.g. a Lead Score between 51 and 100 places the Lead in the “Hot Leads” Grade.

Integration between MDM and CRM that pushes Leads of a certain Grade into CRM.

Lead Assignment Rules

Configurable rules that will drive assignment of Leads.  Multiple conditions can be defined – e.g. Industry match, Lead Score threshold, Campaign association.  

Rules are executed in this sequence:  Lead Creation –> Lead Scoring –-> Lead Assignment.    

Multiple rules can be defined.  They are executed in top to bottom order, allowing you to define layers of assignment, implementing conditional logic.

Campaign Automation

Drag & drop designer for building out campaign automations.   Includes branching logic, wait timers, triggers and copy and paste editing capability.    Similar to building workflows in CRM but a much simpler experience. 

Example: Send an email blast to a list, if a recipient opens the email wait 5 days and then send them a second email.  If they arrive at a Landing Page register them for an Event.


Reporting & Analytics

The ability to key or import results against your Campaigns – e.g. leads, orders and invoices. 

MDM calculates conversion rates based on targets and results.   Includes Return on Marketing Investment (ROMI) reports.

Reports available on Media usage.

To do list views, in calendar format with filtering and due/overdue visual indicators.

A large number of out of the box SSRS reports are included.   Access is granted to users on a report by report basis.   MDM has its own reporting UI, with filters and export options, which surfaces SSRS reports.

Some PowerBI charts are included and can be embedded into the Home page.  They are hosted on a SharePoint server, you are essentially iframing them into MDM.

Basic Extensions

User fields are available throughout the data model that can be enabled to appear on the forms.  They reside in a User fields area but you have a little bit of control over how they are presented within that are and whether they are required or not.

Field labels of out of the box fields and user fields can be customized.

To Learn More…

There are 2 eCourses available on Microsoft’s IT Academy site

Search for these Courses:


The Functional course has over 5 hours of content broken up into 12 modules and is a mixture of videos (slides and demos presented by a trainer), test your knowledge questions  and interactive walkthroughs where you are guided where to click on a mock screen, to execute a scenario.  Overall, its fairly effective and will get you grounded on the basics:


Enabling SharePoint Integration on a CRM Online Trial

These instructions will walk you through how to enable a SharePoint Online trial to go with your CRM Online trial and how to activate the native integration between those products.

First, setup a CRM Online trial, if you don’t have one already.  

Microsoft CRM Online is part of Office 365 so a CRM Online trail actually provisions an Office 365 trial as well.   A cool byproduct of that is we can extend our trial to include the trial of other products on the Office 365 platform, including SharePoint Online.

Go to your Office 365 admin page at:    If prompted, enter the credentials you entered when you requested your CRM Online trial.


From the Admin menu navigate to the Office 365 Admin center:


Click on Purchase Services:


Scroll down until you see the option  below and then click the Trial link:


Click through the next couple of screens to activate the Trial:


You will land back on the Office 365 Admin Center Dashboard where you can see the health/status of the O365 services that you have provisioned.   Note your SharePoint instance has a status of “provisioning…”.   We need to wait for that to complete:


Give it 5 minutes and then refresh your browser and you should see:


We now have a trial instance of SharePoint Online.  Next step is to enable the SharePoint integration over in CRM.    The first thing we will need in CRM is the SharePoint URL.   To locate that launch SharePoint from the Admin menu:


You will be taken to the Site Collections page in SharePoint.   Copy your URL that resembles the below:


Next, head over to CRM by clicking the CRM link from the Admin menu…


… and click OPEN on the next page:


CRM will launch.  If you have not previously dismissed the “Enable Server-Based SharePoint Integration” notification in the CRM header you can click the Enable Now button to pop the configuration wizard.  


Otherwise, from the SETTINGS menu select Document Management and then “Enable server-based SharePoint integration”:


Either way, you will end up on the screen below, where you need to paste in that SharePoint URL you grabbed earlier, and then click Next:


On the next screen, give CRM a few moments to run some validations, and then click Next:


On the final screen, click Finish:


As that last screen told us, we have now linked our CRM Online and SharePoint Online servers but we have a few more steps to complete to guide CRM on how it should auto-create Document folders for us.   If you are not there already go to SETTINGS –> Document Management and then click on the link below:


On the next screen we need to select the CRM Entities that we wish to enable for Document Management / SharePoint Integration:


You will notice some entities are selected for you.  These are the entities where Document Management is enabled by default on the entity definition.  You can toggle this setting from either place.  

Make your selections, paste that SharePoint URL in again, and then click Next:


On the final screen you need to choose how you want your SharePoint folders to be structured.   If you leave the Based on entity option unchecked you will end up with individual folders in SharePoint for each entity and then each instance of that entity – e.g.:


If instead, you prefer to have say an Account-centric hierarchical folder structure like the below…


.. you can enable that by configuring the SharePoint-CRM integration as per below:


Click Next on the above screen and a message will pop informing you that Document Libraries are being created for each Entity:


Click Ok and the next screen will indicate the status of the provisioning:


Once the Status column in that indicates success for all selected entities click Finish – and you are done.

To test this out, pick one of the entities you enabled for SharePoint integration and either pop an existing record or create and save a new record.   I am going to open an existing Account record:


With a CRM record open in front of you, access the Related Records menu (the little down arrow after the record name in the blue navigation bar) and click DOCUMENTS:


Up until this point a Document folder does not yet exist on the SharePoint server for this record.  A Document Library exists for the entity (e.g. there will be an “Accounts” library) but that library is initially empty.   Individual folders for each instance of an Entity are created on demand.  A message box will prompt you to confirm you want a folder created, click Confirm:


A few moments will pass and then the Documents View will appear displaying the contents of the Document Folder that was created on SharePoint:


This server-based CRM-SharePoint integration is a new feature introduced in the Spring 14 release for Dynamics CRM 2013.   As of today (7-20-14) it only supports integration between CRM Online and SharePoint Online.   If you want to use an on-premise version of either you need to go with the older integration architecture (i.e. iframe in the special list component).  

The new server-based integration represents each SharePoint document as a record in CRM, allowing the use of a normal Associated view rather than an iframe.   More importantly, it allows you to map metadata from the CRM entity to the SharePoint document record, improving search within SharePoint – but I won’t go into that here.

To test the integration, use the UPLOAD button to save some documents into SharePoint.   They will be stored in SharePoint, linked to your CRM record and then from that point on they will be directly accessibly from CRM:


I spoke earlier about the SharePoint document folder structure.  If you plan to access all documents via CRM and never use the SharePoint user interface then the folder structure is irrelevant.     If you are curious you can click the OPEN SHAREPOINT button and see how things look there:


Once I upload documents to my Account and also to one of the Account’s Opportunities, I end up with this folder structure in SharePoint, within the Account Document Library:


The files listed are linked at the Account level.  Within that opportunity folder I have a sub-folder per Opportunity (in my case there is only one):


And within that folder, I have that Opportunity’s documents:


You will notice that the folder that was created for the Opportunity was named using the concatenation of the Opportunity’s name and its unique GUID.  The same approach was used for the Account folder and for every folder the CRM-SharePoint integration creates:


Back in CRM, on that Opportunity record, if I go the Documents view under Related Records and click the EDIT LOCATION button you will see where CRM stores the Site details and folder name for this record:


This is important to understand.  CRM is not dynamically calculating the folder name each time it goes off to SharePoint to retrieve the documents.   It stores the folder name in the CRM database when it originally creates it.  This allows for the Opportunity to get renamed in CRM without causing the CRM-SharePoint integration to break.   In that instance, the worst that happens is the folder name in SharePoint becomes out of date and anyone browsing directly in SharePoint will see the original name.   And that can be updated, you would just need to edit the folder name both in SharePoint and also in CRM via this Edit Location screen.

Hope this helps someone. 

Microsoft CRM Form Load Performance Analyzer

My colleague William Phillips educated me on a feature  in CRM 2013 that I hadn’t heard of before:   CTRL+SHIFT+Q

Log into CRM and hit CTRL+SHIFT+Q to reveal the Performance Center:


It won’t look very exciting initially as you need to Enable it:


Do that, and then click the Close button.

Next, navigate to a CRM form whose performance you wish to analyze.  Load the form and then click CTRL+SHIFT+Q to see the results:


A variety of form load milestones are captured for you.  

Optionally, click the Select Major button and you will get the details provide in Text  format:

Form Load Start (-> 0 ms)
Read-Ready (-> 595 ms)
Initialize Controls – ViewportInlineEditControlInitializer (-> 1297 ms)
Initialize Controls – NonViewportFormBodyInlineEditInitializer (-> 1345 ms)
Initialize Controls – DeferredQuickFormInlineEditInitializer (-> 1497 ms)
Form Full Controls Init (-> 1749 ms)

A pretty nifty feature.  I’m somewhat surprised I hadn’t heard of it before.  But a quick Google  search didn’t return much mention of this.  Hopefully this helps spread the word.

[UPDATE] – check the comments below for information on where this works and doesn’t work.   It definitely works on CRM Online with Internet Explorer.   Mixed reports regarding On Premise.

New in CRM Online Spring ‘14: Insights

Customers licensed for the Professional edition of CRM Online now receive for free a new integration to Insights for Microsoft Dynamics CRM.    In this post I will walkthrough the functionality and explains what’s available for on-premise customers.

What is Insights for Microsoft Dynamics CRM?

Insights is a Microsoft-licensed variation of the InsideView product that is now bundled into the CRM Online Professional license.  It is not deployed by default, but it only takes a few simple steps to add this functionality to your instance.  Once deployed, you receive a new HTML widget on your Contact, Account, Lead and Opportunity forms that pulls market data for that person / organization from InsideView’s data aggregation engine and embeds this into your CRM UI.   If you are familiar with the historic integration between InsideView and Dynamics CRM it is similar, but re-skinned and now free for CRM Online Professional customers.  Here’s how Insights looks in CRM 2013 on the Account form:


Here’s what you get with Insights for Microsoft Dynamics CRM…

Data Enrichment

Insights will automatically attempt to match your CRM Accounts against InsideView’s database (they have millions of company and contact profiles from around the world).  If the match is good, you can enrich your CRM record from InsideView’s data via the SYNC button:


This will pop a mapping screen allowing you to selectively choose which of your CRM fields you would like to overwrite with InsideView’s data:


Note, this is a one-time update only.  A copy and paste if you like, you are not establishing a 1-way integration.  A lot of this data will be fairly static though, so I don’t think this is a limitation and you can repeat this process on demand whenever you like.

The experience is identical on the Contact form.   If your CRM Contact can be matched to InsideView’s database you can enrich your data set via the SYNC button there:


Another data enrichment option back on the CRM Account form is you can search InsideView’s database of Contacts for that Account and easily insert any of those into your CRM.   Going back to my DELL example:  I go to my CRM Account record for DELL.  I click on Insights’ PEOPLE link.  I search for “North America Sales”, I find a key contact I want to connect with, so I click the SYNC button:


Insights attempts to match to an existing CRM record for me but this Contact is net new for my CRM, so I go ahead and take up Insights’ offer to create a new Contact for me:


And just like that I now have a key sales contact added to my CRM, along with the details I need to reach out to them.  This sort of thing demoes very well:



The next cool thing we get with Insights is help with actually getting introduced to folks like this.   The Connections feature will aggregate all the connections you and your colleagues have stored out there in LinkedIn and in Facebook and also the Contacts residing in their Outlook and it will tell you if someone within your circle of acquaintances has a connection to your CRM Contact.

There is an opt in process to this of course.  You and your colleagues will need to go into the Connections setup and follow some simple instruction to add each of your Contacts into the mix:




The Facebook import simply required authorization.  The LinkedIn import required an export/import process but InsideView have done a great job of streamlining that, it took only a a few clicks.   The Outlook import is similar, requiring you do an export to CSV from Outlook manually.  There is no mapping required, once the data is exported you just select the file and click Go.

Something to think about here is the value of these Contacts.  LinkedIn has increasingly become non-personal.  I wouldn’t know 90% of my Connections in LinkedIn,  However, the Contacts in my Facebook and in my Outlook I do know and yet those connections may not be common knowledge for others in my Organization and I in turn may not know which Organizations my colleagues are trying to connect with.   Aggregating everyone’s circle of acquaintances and then sharing this out within the Organization to identify connections and enable introductions is a very powerful tool.

Stalk (Without Stalking)

The third major feature in Insights is the ability to have the latest news related to your prospects,, customers and competitors funneled directly into your Inbox each week.   In Insights this feature is called Watchlists.   Usage is simple enough, if you want to be kept up to date simply locate the record in CRM, go to the Insights widget and then select Watchlist from the FOLLOW menu:


Any news, posts, etc. that Insights catches will be accumulated into a daily or weekly digest and emailed directly to your inbox, keeping you nice and informed.   They monitor a pretty good range of online media and social networks for you (30,000 sources!).  Here’s an example from my inbox:


Options for On-premise Customers

If the CRM Online Professional license isn’t for you then InsideView have their classic offering for Dynamics CRM.  

The skinning lacks the CRM look and feel, but the functionality is the same:


And there is also an Enterprise edition available that allows you to build lists from their database and then pull those into Dynamics CRM via a simple export/import process:


Getting Hands On / Demoing Insights

To get your hands dirty with Insights simply spin up a CRM Online Trial and then follow InsideView’s instructions to enable Insights.

To try it out on an on-premise installation you can request a 30-day trial here.  You CRM Org does not need to be IFD enabled, except to enable the SYNC feature (as that feature has Inside View writing into your CRM).

I think its awesome that Microsoft have bundled this into CRM Online.   And in many cases this must be a no brainer for On-premise customers too.

Creating a Dynamics CRM VM on Azure

If you would like a standalone instance of Microsoft CRM for development / testing /demoing  consider using Azure.   Your MSDN subscription includes a monthly credit that can pay for it.  This overcomes the short life span of Online Trials and the performance and hard drive space issues associated with local VMs.   You can start with a template instance that includes Windows and SQL and you just need to add a few server roles and install CRM.

Jukka Niiranen wrote an awesome article and provide step by steps here:


Thanks Jukka!

Posting here so I can come back and  find this in the future. 🙂

New in CRM Online Spring ‘14 / Service Pack 1 / Leo: Entitlements

The Spring ‘14  / SP1 / Leo release for Microsoft Dynamics CRM 2013 gives us the ability to configure Service Entitlements for Customers and manage Customer Service incident volumes against those Entitlements.  Here’s exactly what you get:

Prior to the release of this new Entitlement feature we had Service Contracts.   Service Contracts allowed you to define for a customer and predetermined number of hours or number of Cases that the Customer was entitled to.   And then, by referencing this Contract against the Cases you logged against the Customer that allocation was automatically decremented.   This feature makes sense in the software industry for example where the purchase of a license or a support agreement might include a predefined amount of support that the customer can then draw down upon.   I have never heard of anyone actually deploying this feature so it is curious to see Microsoft invest in extending it. 

Entitlements offers similar functionality but now it allows you to get more specific around when the Customer is entitled to Support.  You can now define the support allocation for a particular channel (e.g. 100 hours of  email support vs. 50 hours of phone support).   You can also bind the support entitlement to a particular Product or Contact so that the Customer Service team provides support for the right things / to the right people.

Let’s step through this and see it in action.  Firstly, let’s start with the broadest possible entitlement.  

Generic Entitlements

From the Account form we will add a new Entitlement record:


The key information required here is the start and end date, the allocation type (number of cases, or hours) and the allocation:


There is also a “Restrict based on entitlement terms” field which if set to “Yes” will block  the logging of new Cases once the entitlement runs out.

Once you save the Entitlement record you need to Activate it:


You will then see it listed against the Account:


To see this Entitlement in action we jump over to the Customer record and add a new Case.  For the Case to count against the Entitlement the relevant Entitlement record must be referenced on the Case.  You would likely me this a required field in scenarios where Entitlements were utilized.   Once the Case is resolved you will then see the Entitlement balance reduced:


From the Entitlement record you can see the Original Balance (“Total Terms”) and the Balance Remaining (Remaining Terms):


And the Associated View will list all Cases that have been linked to the Entitlement:


Once a customer has used up their allotment the user will receive an error when selecting the Entitlement:


Channel-specific Entitlements

Now, let’s create an Entitlement for specific Channels.  Back on the Entitlement form simply add child records into the “Entitlement Channel” sub-grid:


A couple of interesting things to point out here… 

One, this is an editable grid (great to see more of these popping up in the CRM UI!).  

Two, the “Total Terms” field we were using before is not tied to the child records in the grid.  These won’t reconcile unless you do update them manually.  Perhaps you are meant to use one or the other and then hide the other.  Maybe this is just a deficiency in my pre-release version:


Anyway, to see this in action we Activate the Entitlement and then create a Case against the Customer and reference the Entitlement on the Case:


If a Channel is not specified on the Case then the Remaining Terms at the Entitlement level will be reduced, but the balance at the Entitlement Channel level will be unaffected.  Again, you probably need to make the Channel field mandatory on the Case if this how you intend to run Entitlements:


Coding a Case to both the Entitlement and the Channel will see the Entitlement Channel balance drop:


Contact and Product Specific Entitlements

Back on the Entitlement record we also have the ability to specify Products and/or Contacts.  You can’t enter an allocation against each Product/Contact but what this does is create a rule as to when the Entitlement applies.

Here’s an example:

Against my Entitlement record I associate Product X.   This is me saying: “this entitlement is for support incidents that relate to Product X”:


Now, when we log a Case for this Customer, if we specify Product X the Entitlement can be selected:


If a different Product that is no listed on the Entitlement is selected, we can’t select the Entitlement:


The behavior is the same for Contacts.  If you leave the Product / Contact field blank on the Case you can still select the Entitlement.  So the way to think of this is: “Once a Product/Contact is associated to an Entitlement, that Entitlement will no longer be selectable on the Case when any other Products/Contacts are specified on the Case”.  Again, if this behavior is what you are after you will probably want to make the Product / Contact field mandatory on the Case form.

New in CRM Online Spring ‘14 / Service Pack 1 / Leo: SLAs

The Spring 2013 / SP1 / Leo release for Microsoft Dynamics CRM 2013 provides new functionality for Service Level Agreements (SLAs).  The SLAs are configurable to your requirements and provide not only deadline monitoring but also automated warnings and escalations.

In this post I walk through the setup process and show the functionality in action.   Invest 5 minutes here and walk away up to speed on this new feature.

Configuration of SLAs

Here’s the logical flow for configuring SLAs:

1 Define your Organization’s holiday schedule (the exception days when CRM should stop the clock on its SLA calculations)
2 Define your Organization’s customer service hours (e.g. it might be 9 to 5, Mon to Fri or it might be 24 x 7 x 365)
3 Create an SLA ‘agreement’ for each Customer Service Offering your Organization provides
4 Define the SLA detail for each agreement.   You can create general rules for each SLA Type (First Response, Case Resolution, Follow Up) or you might want to create specific rules for e.g. P1 vs. P2 Cases.

The sub-steps here are:
– Define which Cases / Customers this applies to
– Define when the SLA should be considered in danger of being missed and the actions that should occur when that happens
– Define when the SLA should be considered missed and the actions that should occur when that happens

5 Activate the SLA agreement
6 Associate an SLA to an Entitlement
7 Associate the Entitlement to your Customer records
8 Start referencing the Entitlement on your Customer Cases (you could do this automatically via code or workflow)
9 If Cases are created that reference the Entitlement tied to the SLA and which meet the applicability criteria defined on the SLA then you will see the SLA take effect. 
CRM will check for SLA applicability both on create and on update of the Case so if the attributes on the Case changes and the applicability criteria is suddenly met (e.g the Case was bumped from P2 to P1)  then the SLA will be triggered and the countdown initiated.

Working with SLAs as an End User

When an SLA is triggered you will see the applicable SLA due dates populated on the Case form.  In the example below I created a Case at 1pm on a Saturday for a Customer whose SLA dictates first response within 1 hour and resolution within 4 hours.   The agreed customer service hours are 8 to 5, Monday to Friday.  CRM calculate the first response as being due at 9am on Monday (1 hr after the customer service schedule commences) and puts the resolution deadline at 12pm Monday:


The default way of informing CRM that first response has been provided appears to be a new field on the Case record: “First Response Sent”.   As an end user I inform CRM that I have completed first response by updating “First Response Sent” to “Yes”.    There is no immediate alert on the Case that the SLA has been met.   But once the SLA deadline is hit CRM will see that the expected action had been completed in time and no warning or escalation will be triggered.

You could also implement a Workflow to set this field for the User, based on say the entry of an outbound phone call against the Case.

And you don’t have to use this field as your success indicator.  In the SLA definition you can define whatever you like:


Behind the Scenes – SLA Workflows

Microsoft have used CRM’s workflow engine to orchestrate the SLA monitoring.   This is transparent, you can call up the SLA workflow via the Background Processes associated view:


Here is the workflow that was executed for my earlier example.  You will see the workflow is sitting in a timeout state, waiting for the SLA deadline.  Once that time is hit it evaluates the success criteria that was defined in the SLA rule and then either exits out (if met), otherwise it performs the escalation/warning actions that were defined:


Adding Visibility to the SLA Deadline – the new Timer Control

SLAs are more effective if the end user has visibility of the deadline.   CRM provides date time fields for each  SLA type:  First Response By, Resolve By, Follow Up By.   But better still, Microsoft have released a new Timer control we can add to our forms to provide an actual countdown and success/failure indicator.

To add this control, jump into the form editor, and insert it via the INSERT tab on the ribbon:


Selecting the Timer control will pop a dialog window asking for property values for the control:


Here you connect the Timer’s properties to the fields that you are using for the SLA.    The end result is the below.  Here I have a Case that I created at 5:45pm that has a 15 minute SLA (based on 24 x 7 support) for First Response, with a warning triggered after 5 minutes:


Once the 5 minute market is hit the timer changes in appearance to the below:


And then once the SLA deadline is hit and the SLA not met, the timer becomes red and switches to counting up, giving you how long over the SLA you are:


A couple of limitations of the Timer:

  • You can’t add it the form header or footer, only the body
  • The timer is not a field so it can’t be added to CRM views.  It is only effective on the CRM form.  On views, users must leverage the date time fields instead.  Some color-coded SLA identifiers would have been useful in the views. I guess you can do that via conditional formatting rules if using the Outlook Client
  • Each Timer control is bound to a set of fields.  This means if you want a Timer that overs First Response that then switches over to Resolve By you will need 2 Timers and some JavaScript to show/hide the Timers.

In summary, a cool new feature.   I especially like the configurability offered to automate any number of actions at the warning  and again at the deadline.