Dynamics CRM 2015: Social Insights & On Prem

Posted by on September 22, 2014 in   |  Microsoft Dynamics CRM,   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM 2015,   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

Microsoft recently announced new features coming out with their next version of Microsoft Dynamics CRM 2015 (previously code named Vega).  Check out the Dynamics CRM 2015 Release Preview Guide to see what features are coming with 2015.  Over the course of the next few weeks we’ll slowly reveal this functionality one by one and show some of the key highlights of these features.

Next up for our review is reviewing the changes with Social Insights from Microsoft Social Listening.  Previously only CRM Online orgs had access to embed components of Microsoft Social Listening within Dynamics CRM, but now with Dynamics CRM 2015, CRM On Prem customs will also be able to enjoy the benefits of the social data without having to leave Dynamics CRM.

Using a simple wizard based approach, Social Insights can be added to the following:

  • System Dashboards
  • User Dashboards
  • Entity Forms

In order to have both your Dynamics CRM On Premise organization and your Social Insights environment talking to one another, you need to:

  • In CRM, navigate to Settings -> Administration -> Microsoft Social Listening Configuration
  • Copy the Domain URL
  • In Social Listening, navigate to Settings -> Allowed Domains
  • Add the Domain URL copied above to the Allowed Domains
  • Copy the Social Listening URL
  • Paste the Social Listening URL back into CRM

image

image

As stated above, Social Insights can bee added to System or User Dashboards by selecting the Insert Social Insights components when on a dashboard section.

image

When you click this icon, you’ll be presented with a 3 step wizard.  You can select the specific data you want to display from Microsoft Social Listening including what search terms you want to display, what summary information you want to display (e.g., sentiment, volume, etc.), and more.

Note:  You can have one or multiple visualizations on one of the sections of the dashboard so you can see multiple pieces of social information in each section.

image

image

image

Now when you navigate to your Social Dashboard, you’ll see the social data from Microsoft Social Listening displayed to you in a summary dashboard directly from within Dynamics CRM.

image 

Similarly to adding Social Insights to a dashboard, you can add it to a CRM entity form.  From here you’ll be able to see the same social component information that you saw within a dashboard.

image

Note:  You’ll need to have a Microsoft Social Listening account and be logged into MSL or you’ll get an error when trying to view the Social Insights within Dynamics CRM.

image

A few additional pieces of information to be aware of:

  • Does not require IFD to be enabled for CRM On Prem
  • Will work with Outlook
  • Multiple CRM instances can point to the same MSL instance
  • This is not available on MoCA (as Social Insights is surfaced in CRM through an iFrame, and there is no support for iFrames in MoCA)
  • Users in CRM need a MSL license (these credentials are used to authenticate to MSL)

Server Side Synchronicity

Posted by on September 19, 2014 in   |  Microsoft Dynamics CRM,   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

Today's guest blogger is Ross Talbot, a Development Principal at Sonoma Partners

If you have been following our adventures with Server Side Synchronization in Dynamics CRM 2013, we previously detailed some of the gotchas we had encountered with upgraded orgs and some added fixes with communication between Exchange web services and CRM. Recently we found another issue related to an upgraded org, this time revolving around permissions.

After we had resolved the previous issue with the web services on the servers having some issues sending data back and forth, we found that tests for the sync were working for all but 20 users when looking at the sync for Appointments and Tasks. Of course, this was now less than 10% of the users but not all so we went looking for more information. We started by checking the sync filters, trying to determine what set these 20 users apart from the others. The error we were seeing this time around was that the mailbox user doesn't have sufficient permissions on this mailbox. We checked impersonation settings, security roles, and client information to rule out differences. That is where we found the difference, and it pointed to the security roles associated to the affected users. The difference between the affected users and those that were working involved native security roles that had been assigned prior to the production environment going live during the initial user import. With no custom roles defined at that time, all users were given a native security role. Users with higher level security needs were given one of the custom roles and the native role was removed. So why were the users with more privileges having issues?

When creating custom security roles, a good habit or best practice is to make a copy of a native CRM security role and modify only the permissions you need to. That is the approach we take on Sonoma projects, to ensure you don’t have to change every single privilege as you might need to if you started from scratch. When you upgrade your CRM org, whether it is a product version update, a service pack, or a UR being applied, the native security roles are updated with security access to new entities and features. Not the custom roles though.

Here is a custom security role, highlighting a section of the Business Management tab in CRM 2011.

image

Now, here is a similar look at a role in CRM 2013

image 

There are now a few new entries, and in fact there is a new Privacy Related Privileges section just below these privileges. With all the new features in CRM, including Server Side Sync, Mobile Client Apps (MoCA), Business Process Flows, not to mention adding more with every release, it is becoming more and more important to review the privileges in your custom security roles when testing a new release and especially the features that come with it.

For the sake of future me and all the others that need to search for the privilege names related to these new to 2013 entries shown above, they are listed below.

Mailbox privileges: prvReadMailbox, prvShareMailbox, prvAssignMailbox, prvWriteMailbox, prvDeleteMailbox, prvCreateMailbox, prvAppendToMailbox, prvAppendMailbox

Email Server Profile privileges: prvWriteEmailServerProfile, prvAppendToEmailServerProfile, prvDeleteEmailServerProfile, prvCreateEmailServerProfile, prvReadEmailServerProfile, prvShareEmailServerProfile, prvAppendEmailServerProfile, prvAssignEmailServerProfile

Got your own issue involving server side synchronicity? Don’t rely on a message in a bottle. Contact us instead.

Dynamics CRM 2015 Enhanced Business Rules

Posted by on September 18, 2014 in   |  Microsoft Dynamics CRM,   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM 2015,   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

Microsoft has just announced a slew of new features that are coming out with their next version of Microsoft Dynamics CRM 2015 (previously code named Vega).  Check out the Dynamics CRM 2015 Release Preview Guide to see what features are coming with 2015.  Over the course of the next few weeks we’ll slowly reveal this functionality one by one and show some of the key highlights of these features.

Next up for our review is reviewing the changes and enhancements that Microsoft has made with Business Rules (new for CRM 2013).  The following high level enhancements have been made for this next major release of Dynamics CRM:

  • Business Rules can now be executed on the server (previously client side only)
    • Business Rule Scope should be set to Entity when building the rule
    • Ensures your rule will fire when no matter how records are updated and not only via the form
    • Synchronous and would be visible real time
  • Set default values on record creation (e.g., all your Leads are generated in the United States so you can default the country on the Lead record when records are created)
  • Added If.. Else If.. Else support
  • Ability to combine expressions using And/Or

Here’s an example where you can see:

  • The new option “Entity” in the top right corner for the Scope which would make this a server side business rule. 
  • An example of If/Then/Else support. 
  • How you can use “and” or “or” in conditions to make more complex conditions. 
  • The new “Set Default Value” action that’s been introduced.

image

With these enhancements, there are a set of limitations that everyone should be aware of:

  • Cannot support nested if.. else
  • No grouping of expressions in a condition
  • Expressions can be combined either using And, or using Or, but not both
  • Still single entity only (no ability to reach out to related records)

We’re excited to see the continued investment to make Dynamics CRM a more configurable application putting more power in the hands of System Administrators, and decreasing the requirement to hire application developers to extend the application.

Dynamics CRM 2015 Multi Entity Search

Posted by on September 17, 2014 in   |  Microsoft Dynamics CRM,   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM 2015,   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

Microsoft has just announced a slew of new features that are coming out with their next version of Microsoft Dynamics CRM 2015 (previously code named Vega).  Check out the Dynamics CRM 2015 Release Preview Guide to see what features are coming with 2015.  Over the course of the next few weeks we’ll slowly reveal this functionality one by one and show some of the key highlights of these features.

First up for our review is functionality that Microsoft added to their MoCA product when it was released which is multi-entity search.  This feature has been something our customers have been requesting for some time now and to bridge the gap in the previous product, Sonoma Partners built their own Universal Search solution that we make available on our community site for both 2011 and 2013.  If you look at the Sonoma Universal Search, you’ll see some similarities to the one now available in CRM 2015.

In order to setup multi entity search, navigate to Settings –> Administration –> System Settings.  In the General tab, you’ll see the section “Set up Quick Find”.

image

This section has two settings:

  • Enable Quick Find record limits:  This setting was introduced in CRM 2011 and it uses an organizational database setting to limit quick find search results to 10,000 records to improve performance.
  • Select entities for search:  If you click on the Select button, you’ll be presented the window below where you’re able to select up to 10 entities at a time to enable for multi-entity search.

image

Entities that are selected here will be used in the multi-entity search results and be displayed in the order that you see them in this list. 

Users will be able to use the multi-entity search using the magnifying glass in the global navigation bar.

image

Clicking on that magnifying glass will bring you to a page where you can enter any search criteria (no minimum number of characters needed meaning you can type in a single letter), and click search do see your results.

image

On this search results page, one could:

  • Filter the results to a particular entity using the “Filter with:” drop down on the top right.
  • Create a new record using the + icon next to the entity name
  • Navigate to the record by clicking on the tile

A few things to note about multi-entity search:

  • Uses quick find views to determine the fields to search across
  • Can search activities and notes as well
  • First 3 fields in the Quick Find View are what are displayed in the tiles that are displayed
  • Search from anywhere in CRM using the search icon on the global navigation bar
  • The search results are displayed in the Modern UI

There are currently a few limitations of multi-entity search:

  • Doesn’t work with USD
  • Maximum of 10 entities can be configured for search
  • No hit highlighting and MRU (most recently used) suggestions
  • Only action available on each search result is the ability to open the record

Even though there are a few limitations to multi-entity search, as we expected once the MoCA app was introduced with this functionality, it’s nice to see this much requested feature make its way into the web app. As it stands currently, this is a very powerful tool and key addition to Dynamics CRM.

CRM 2013 - Refresh Web Resources on Activate and Deactivate

Posted by on August 18, 2014 in   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

If you are building an editable custom Web Resource in CRM that will be embedded into a record form, typically you would want to make the Web Resource read-only when the record is deactivated.  To do this, you would have your Web Resource check the form type and toggle between editable and read-only mode appropriately.  In CRM 2011 this works great but in CRM 2013 you will notice that the form does not refresh after “Activate” or “Deactivate” in the Command Bar is used.  Therefore your Web Resource doesn’t refresh and is still in the same mode that it was before.

Luckily with only a handful of JavaScript, we can trigger our Web Resources to refresh on Activate or Deactivate.  First, in the OnLoad of the form, register an OnChange event for the statecode attribute.  Whenever the record is Activated or Deactivated from the form, this event will trigger.  Then you can refresh any Web Resources from your OnChange event.

Enjoy!

XRM Tooling – Web Resource Utility

Posted by on July 28, 2014 in   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

A couple weeks ago I posted a video on the new Login Control that comes with the XRM Tooling library in the latest CRM 2013 SDK.  Today I will show off another handy feature in the XRM Tooling library, the Web Resource Utility.  The Web Resource Utility provides an easy way to retrieve an Image or XML web resource. 

First you will need to download the latest SDK here.  Then you can add the following namespaces:

using Microsoft.Xrm.Tooling.Connector;
using Microsoft.Xrm.Tooling.WebResourceUtility;

 

Next you can either use the new Login control to get an instance of a CrmServiceClient or manually set it up yourself.

var crmSvc = new CrmServiceClient(
                CredentialCache.DefaultNetworkCredentials, 
                AuthenticationType.AD, 
                "server", 
                "port", 
                "org");
 

Then use the following code to retrieve an XML resource which will return a string of the XML content:

var xmlResources = new XmlResources(crmSvc);
xmlResources.GetXmlFromCRMWebResource("myxmlresource.xml");
 
 

Or use the following code to retrieve an Image resource which will return a BitmapImage object:

var resources = new ImageResources(crmSvc);
var bitmap = resources.GetImageFromCRMWebResource("myimageresource.png");

 

Now with the BitmapImage object, you could set an Image control directly within your WPF app and dynamically display images based off your web resources in CRM.

XRM Tooling – New Login Control

Posted by on July 14, 2014 in   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

With the latest CRM 2013 SDK, Microsoft has provided a new XRM Tooling library to connect to CRM.  Along with the new Tooling library comes a brand new Login control that is styled with the 2013 look and feel and can be used for custom WPF apps. 

In our new video below, I demonstrate how to easily setup the new Login control so you can be on your way with your custom CRM WPF app.

Prerequisites:

 

CRM Online Service Update 3 Rollout

Posted by on July 3, 2014 in   |  Microsoft Dynamics CRM Online  |  commentsComments (0)

CRM Online Service Update 3 is being rolled out this week.  To find out if your organization has been updated, click the gear in the top right corner and click About to check the build number.  The build number for this update is 6.1.0.1043.

This update resolves a handful of issues both performance and usability related.  Here are some of the most notable fixes:

  • Duplicate records created if Save and Save and Close is pressed multiple times
  • Unhandled exceptions in asynchronous plugin instantiation causes Async service to crash
  • Option set not selected on first click
  • SQL deadlock and performance issues after Spring Release ‘14 update was applied
  • Multiple navigation and command bars show up via associated grid navigation

It is nice to see a steady release of fixes from Microsoft.  Especially with a focus of frustrating usability issues and performance optimization.  For a full list of fixes, check the KB article which can be found here.

CRM 2013 Spring ‘14 Package Deployer Tool

Posted by on July 1, 2014 in   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM Online  |  commentsComments (6)

The Package Deployer is a new tool that was released with the CRM Spring ‘14 update and provides administrators with an easier way to deploy to CRM organizations.  The Package Deployer can deploy one or more CRM solution files as well as import data and can even be extended to execute custom code to handle any edge cases while deploying to your CRM org.

Sounds great, so how do we get started?  Well first, you will need to have Visual Studio (2012 or 2013) installed, which we be used to create a package.  Next, download the latest SDK that was released with the Spring ‘14 update which can be found here.  After the SDK is installed, browse to SDK\Templates folder and run the CRMSDKTemplates.vsix to install the necessary Visual Studio Templates.

Now that we have everything setup, we can start to build our deploy package.

  • Open Visual Studio
  • Go to File –> New –> Project
  • Select CRM SDK Templates on the left
  • Select CRM Package Deployment Template and click OK

image

This will create a structure in the Solution Explorer like shown below:

image

The PkgFolder is where you put any CRM Solution files that you would like to be deployed as well as any import data files. 

In my example I have a solution “MySolution1” and “MySolution2” as well as a contacts.csv data import file.

image

Now you can open the ImportConfig.xml and update it with your package files.  At the top of the config file you can also set if you want to install the out-of-the-box sample data as well as if you want to wait for the sample data to install before deploying your package.  There are two agent desktop settings as well that can be used when deploying Unified Service Desk.

In my example I have the package deploying sample data as well as waiting for it to finish before deploying the package.

<configdatastorage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                   installsampledata="true"
                   waitforsampledatatoinstall="true"
                   agentdesktopzipfile=""
                   agentdesktopexename=""
                   crmmigdataimportfile="">

In the solutions node you can define each of your solutions that should be deployed.

<solutions>
    <configsolutionfile solutionpackagefilename="MySolution1.zip" />
    <configsolutionfile solutionpackagefilename="MySolution2.zip" />
</solutions>
 
 

Lastly, you can define any data import files to be imported with the deploy.

<filestoimport>
    <configimportfile filename="contacts.csv" filetype="CSV" associatedmap="" importtoentity="contact" 
                      datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true"  
                      isrecordownerateam="false" owneruser="" waitforimporttocomplete="true"/>
</filestoimport>

That’s it for the ImportConfig.xml.  Here is my full config for reference.

<?xml version="1.0" encoding="utf-16"?>
<configdatastorage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                   installsampledata="true"
                   waitforsampledatatoinstall="true"
                   agentdesktopzipfile=""
                       agentdesktopexename=""
                   crmmigdataimportfile="">
  <solutions>
    <configsolutionfile solutionpackagefilename="MySolution1.zip" />
    <configsolutionfile solutionpackagefilename="MySolution2.zip" />
  </solutions>
  <filestoimport>
    <configimportfile filename="contacts.csv" filetype="CSV" associatedmap="" importtoentity="contact" 
                      datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true"  
                      isrecordownerateam="false" owneruser="" waitforimporttocomplete="true"/>
  </filestoimport>
</configdatastorage>

 

One last thing to note is that the PkgFolder contains a Content folder with a WelcomeHtml and EndHtml folder.  Within each of those folders are a Default.htm page.  These pages can be customized to your needs to provide a unique welcome and end page during the deploy process.

image

Now you can build the solution in Visual Studio (Build –> Build Solution) which will create a dll that we will use for the Package Deployer Tool.  Go to the bin\Debug folder, copy the PkgFolder as well as the dll named the same as your Visual Studio project and paste them into SDK\Tools\PackageDeployer.

Run the PackageDeployer.exe and a login screen will appear.

image

Select your organization and login.  The next screen will display an iframe showing the content from the WelcomeHtml folder.  As mentioned before, you can customize and brand the html page to suit your needs.

Click Next and you’ll see a screen that lists out the solutions and any files you have included to import.

image

Click Next again and the Package Deployer will attempt to import the included solutions and files.  Once it is finished, it will give you a status on what succeeded or failed.  You will also see another screen showing the content from the EndHtml folder which can be branded and customized as well just like the Welcome screen.

As you can see, the Package Deployer tool is a great asset for administrators and customizers.  It is now easy to make your own branded installation wizard that covers most aspects of the deploy process so you can handle it in one fell swoop. 

Dupe Detection on Create/Update Returned to Dynamics CRM 2013…with a bug

Posted by on May 28, 2014 in   |  Microsoft Dynamics CRM,   |  Microsoft Dynamics CRM 2011,   |  Microsoft Dynamics CRM 2013,   |  Microsoft Dynamics CRM Online  |  commentsComments (1)

One of the biggest features removed when Microsoft Dynamics CRM 2013 was released was Duplicate Detection firing on creates/updates.  While duplicate detection remained via scheduling system jobs, the popular feature of seeing the pop-up appear on creates/updates was removed.

Needless to say the CRM community was in uproar, prompting some users and partners to create their own solutions to backfill the gap that was left by removing this 2011 feature such as this utility by Jason Lattimer.

With the Spring 2014 release that’s started to trickle out to CRM Online orgs, Microsoft has taken this community feedback and put duplicate detection on creates/updates back in.

image

However, be aware that while Microsoft has pleased many by making this functionality available once again, they didn’t quite get it right.  If you disable duplicate detection rules from running on creates/updates within the settings, the rules still fire and your users will still see the dialog when they create or update records that match a duplicate detection rule.

image

The only way to disable duplicate detection from firing on creates / updates is to uncheck the “Enable duplicate detection” checkbox which in turn disables it across the board (on data imports, from MS Outlook, and via scheduled system jobs).  Even if you uncheck “Enable duplicate detection” and recheck it (while leaving the creates/updates unchecked), after republishing your rules, the dialog will still fire on create and update. 

Note:  If you uncheck “Enable duplicate detection” and recheck it, you’ll have to republish your rules as disabling it system wide unpublishes all rules.

Hopefully Microsoft will release a patch soon for this slight oversight so that users can take full advantage of the duplicate detection feature as they did pre-CRM 2013.


Contact Us for a Quote, or Personalized Demonstrationof Salesforce.com or Microsoft Dynamics CRM for Your Business.

Contact Us