With CRM 2015 Microsoft added the ability to customize help content on a global level as well as an entity level. Your content will then be surfaced by clicking the question mark icon at the top right of CRM.
Depending on what entity grid or form you are on, CRM will either take you to the custom help URL specified for that specific entity or if a URL isn’t specified then it will take you to the custom help URL specified at a global level with context information passed in as a parameter. If a custom help URL isn’t specified at an entity or global level then it will display the native CRM Customer Center.
To setup custom help at a global level:
- Go to the System Settings in CRM (Settings –> System Settings)
- On the General tab, scroll down towards the bottom to find “Set custom Help URL”
- Set “Use custom Help for customizable entities” to Yes
- You can now specify a URL in the “Global custom Help URL” field
- This URL can also be a relative path to a custom web resource, for example: /WebResources/new_/help/content/global.htm
- Set “Append parameters to URL” to yes if you would like the following context information to be appended to your custom URL
- User Language Code: userlcid
- Entity Name: entity
- Entry Point: hierarchy chart or form
- Form id: formid
To setup custom help at an entity level:
- Navigate to the entity information in the solution
- Check the “Use custom Help” box
- You can now specify a URL in the “Help URL” field
- This URL can also be a relative path similar to the global custom help, for example: /WebResources/new_/help/content/account.htm
- Publish Customizations
Jones Lang LaSalle (JLL) is a financial and professional services firm that specializes in commercial real estate services and investment management. With an impressive workforce of 52,700 employees spread across 200 corporate offices worldwide, JLL turned to CRM to improve visibility into the core business of real estate availability. But with their original out of the box solution, sales reps found CRM to be cumbersome and difficult to navigate. Information about real estate availability wasn’t always accurate within CRM and too much information on each screen was a point of confusion for end users. What they needed? A customized global deployment of Microsoft Dynamics CRM.
“If we are going to remain a thought leader in commercial real estate, it’s crucial that we not only have the right data analytics tools, but also have systems that are agile and flexible.”
- Greg Adams, Managing Director of Information Technology for JLL
Today, JLL uses Microsoft Dynamics CRM, SharePoint and Office 365 to get the job done. But for JLL to grow, they needed agility and flexibility - two things the cloud could give them.
The following is an excerpt from the full customer story published by Microsoft:
JLL used Microsoft Dynamics CRM on premise for several years, but is working now to add 3,500 Microsoft Dynamics CRM online seats to their current 2,000, allowing their offices in Asia, EMEA, Australia, the US, and beyond to have access to the same data analytics tools and more seamlessly integrate across continents. They envision their Microsoft Dynamics CRM system as a hub of information for their properties, accounts, and services so their people not only have the right information, anywhere, on any device, but also can be more proactive in their discussions with customers. The company is also planning to move its full Microsoft stack to the cloud, and is considering adding Microsoft Social Listening.
“With a company our size, you have to have customizations around business processes – both for individual offices and across the entire company.” Adams says. “As we look to the future, if it can’t operate in the cloud, we will probably look elsewhere.”
The following is a list of the new API methods from this MSDN article. We are particularly most excited about the ability to dynamically hide/show the business process flow control.
Change the process when there are more than one process available for the entity.
Use Xrm.Page.data.process.getEnabledProcesses to retrieve information about enabled processes that the user can choose for the entity. Then use Xrm.Page.data.process.setActiveProcess to make one of the enabled processes the active one.
Move to the next stage when all required steps are completed to make it the current active stage.
Move to the previous stage and make it the current active stage.
Select a stage to view the status of the steps in the stage.
Use Xrm.Page.data.process.getActivePath to retrieve information about the stages that have been completed, the current active stage, and valid stages available from the current active stage. Examine the steps included in that stage and compare the corresponding form attribute values to determine whether they are completed.
Complete a step
Steps are completed when the corresponding data in the form is entered. You can determine the attribute using the step getAttribute method. This will return the logical name of the attribute. Then use Xrm.Page.getAttribute to retrieve attribute from the Xrm.Page.data.entity.attributes collection and then use the attribute setValue method to set the value.
Detect whether a step is required
Use the step isRequired method to determine if a step is required by the business process flow.
Expand or collapse the business process flow control
Hide the process control
Use Xrm.Page.ui.process.setVisible, you can control whether to display the business process flow control.
Skip to a valid completed stage.
Use Xrm.Page.data.process.setActiveStage to set one of the valid completed stages for the current entity.
Query the process definition including stages not currently visible
Use Xrm.Page.data.process.getActiveProcess to query the definition of the business process flow, including stages that might not be visible because of branching logic in the process.
Events for business process flows
You can interact any event provided by the form with business process flows, but two new events allow you to execute code based on events just for the business process flow control. You can execute code when the active stage of a business process flow changes (OnStageChange event) or when a stage is selected (OnStageSelected event).
The SDK team also provided a couple great samples for the new scripting methods. Check out this sample on how to retrieve information about the enabled processes for an entity and this sample on retrieving information about the stages and steps in the active business process flow path.
Like most users of Dynamics CRM 2013, it’s taking me awhile to get used to the new navigation. However, with any software deployment, it takes users time to get used to the new functionality and especially the new look and feel.
It’s hard to remember when CRM 2011 came out (way back almost 4 years ago now) and the introduction of the ribbon. What a crazy concept the ribbon was and how would we ever get used to it? However, after using 2011 over time (and honestly any Microsoft product), the ribbon became second nature. When Microsoft removed the ribbon in 2013, everyone complained it was missing. How would we now get used to not having a ribbon? I believe that over time Dynamics CRM 2013 and 2015 will fall into the same camp as 2011 where users will become comfortable using the new navigation and will have forgotten the ribbon ever existed.
We recently just upgraded our internal CRM deployment to 2015 and I’m forced to get used to the navigation even quicker than originally anticipated. Of course with every new release there are those learning curves and the questions you ask “why did they do it this way?” but the good news is that with Microsoft, they’re listening.
One of the biggest complaints of 2013 is the fact that the Advanced Find was buried and not readily available on the global tool bar like it was in 2011. In some areas of the application you couldn’t even initiate Advanced Find. And those areas where you could, you had to click on the ellipsis to bring down additional contextual menu items to find Advanced Find.
However, the good news is in 2015, Microsoft has listened to initial feedback from users of 2013, and have added the Advanced Find menu back in the global tool bar so that you can always initiate Advanced Find no matter where you are in the application. Enjoy!
Today's guest blogger is Chris LaBadie, a Senior Database Developer at Sonoma Partners
Whenever we work on a data project for a customer the subject of cleaning their client data is always a discussion point. The project could involve a migration from one CRM platform to another, integrating an ERP system into CRM, or even cleaning their data “in place”- but the message is usually the same, “we know we have duplicates in our data, help us clean it up!”
Anybody that has ever tried to track people or companies knows that it can be a huge challenge to avoid duplicate data. When you have multiple users maintaining data, it is very common to introduce duplicate data no matter the de-duplication safeguards your system uses.
Working with people-
• Names can be difficult to track (misspellings, maiden names, nicknames, etc).
• People move/change contact information.
• Even unique fields like address or email address can be shared amongst more than one person.
Working with companies-
• Abbreviations or acronyms in names can present a challenge.
• Companies can have multiple locations.
• Often use different addresses to track billing, shipping, etc.
In our experience, there isn’t a magic bullet to eliminate de-duplication. The best solution is usually a layered approach- use form validation to ensure quality data entry, intelligent system design to store records in an organized manner, and system de-duplication rules to search out potential duplicate data and present to a user records that might match the information they are attempting to enter.
However, a common project for Sonoma Partners is moving a client to a new CRM platform and an important part of migrating data to the new platform is to identify potential duplicate data before it ever reaches the new system. While this may sound like a large effort, it is actually pretty easy thanks to the Fuzzy Grouping functionality built into SQL Server Integration Services (SSIS).
Fuzzy Grouping allows SSIS to inspect a set of data and compare one or more fields in the dataset. Rather than comparing the field data, Fuzzy Grouping will match strings based on their sounds- giving more accurate results based on how a person would hear the string while overcoming misspellings, typos, abbreviations, nicknames, etc. Note, you will need SQL Server Enterprise or SQL Server Developer edition to use Fuzzy Grouping. This example is developed using the Business Intelligence Design Studio (BIDS) in SQL Server 2012.
In this demonstration we will process an Excel file of contacts. This file can be generated from any other system and used in a process like this to identify potential duplicate data before that data is migrated to CRM. The end result of this process is to produce a file containing potential duplicates so they can be reviewed and cleaned up in the source system before data migration.
Fuzzy Grouping evaluates the file of Contacts and compares them based on selected fields. Potentially duplicate records are grouped together and assigned a group number.
After Fuzzy Grouping, the process splits so it can sort the results based on their Fuzzy Grouping group number and count the number of records per group.
Finally, a step to check the group count determines which records are potential dupes- a group count of 1 means the record is unique, anything more than 1 means that group contains 1 or more records that should be reviewed. The potential duplicates are then exported to an Excel file for review.
Configuring Fuzzy Grouping is a pretty straight-forward process, just select the fields you want to compare and set the minimum amount of similarity (roughly a percentage of matching). This process can involve a little bit of trial and error while you fine-tune the Fuzzy Grouping to identify the records that are potential duplicates without letting through any false positives.
Typically we will start with lower minimums and go up until we are seeing the desired results.
When you run the process, you can see how many records it processes and how many records SSIS ultimately decided to export to Excel for review.
When the process is complete, you can view the results in your Excel file. Here you can see the unique record number assigned to the record (KeyIn), group number (KeyOut), overall score (percentage of match to the potential duplicate record), similarities for First Name/Last Name/City (percentage of match for each column), and the Group Count (number of potential duplicates per record group). The highlighted values in the screenshot show some of the values that were compared and demonstrate how Fuzzy Grouping can identify potential duplicates despite common misspellings, nicknames, and partial matches.
In conclusion, Fuzzy Grouping is an easy to use and powerful tool to assist in any data cleanup effort. It is simple to setup, and quickly evaluates large amounts of data. SSIS can provide you with all of the tools to make informed decisions regarding your customer data, your most valuable asset.
Microsoft recently announced new features that have come 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 came with 2015.
Next up for our review are the enhancements being made to Outlook and the Sync Process. One thing to note is that all the enhancements outlined in this blog apply to both the legacy Outlook Sync and new Server Side Sync process introduced with CRM 2013.
Below are the enhancements that are included with CRM 2015. We’ll go into a few of these enhancements in more detail later in this blog.
- Contact Phone Number and Address Sync Improvements
- Sync Outlook Assigned Task (Outlook task assigned to another user that is also in CRM). This is not enabled out of the box and a System Setting needs to be enabled to turn this on
- Sync Appointment Attachments. This is also controlled via a System Setting.
- Configurable Field Level Sync
- Outlook Client
Navigating to Settings –> Administration –> System Settings –> Synchronization will display the dialog of all the organization level settings regarding the Outlook sync process. See below.
In this dialog you have a mix of legacy pre-2015 settings, and a handful of new 2015 settings. The new configuration settings you have at your disposal are:
- Synchronized Fields: This is where an admin can modify what direction fields are synced. This is explained more below.
- Synchronize Appointment Attachments: With 2015, you can enable attachments on appointments to synchronize between Outlook and Dynamics CRM.
- Address Sync: This is explained more in the section below.
- Synchronize Assigned Tasks: An admin can enable if Outlook Tasks that are assigned to another user are tracked in CRM or not.
Contact Phone Number and Address Sync
With CRM 2015, Microsoft has changed the sync process for Contacts. 4 more phone numbers were added to the sync process for a total of 11:
- Assistant’s Phone
- Business Fax
- Business Phone
- Business Phone 2
- Callback Number
- Company Phone
- Home Phone
- Home Phone 2
- Mobile Phone
- Telephone 3
There’s also an organization level System Setting that allows you to indicate if you want to sync either A) just the Outlook Mailing Address, or B) all 3 Outlook Addresses (Business, Home, Other). This setting is available by going to Settings –> Administration –> System Settings (shown above).
Configurable Field Level Sync
One of the biggest questions we’re asked over and over with our clients is what fields are synchronized between Outlook and Dynamics CRM. There are a few sites out there that go into detail on what fields are synchronized, but nothing within the application provided by Microsoft. They also don’t easily indicate which Outlook fields synchronize to which CRM fields, the direction of the sync, and the ability to turn off that sync (in other words, all fields synchronized all the time).
Now with Dynamics CRM 2015, you can navigate to Settings –> Administration –> System Settings –> Synchronization –> Synchronized Fields. From this location, you can see the mapping between Outlook fields and CRM fields and the direction that the sync is currently configured for.
For each field you can modify the sync direction so that it syncs both ways, sync one way, or don’t sync at all. This is currently an Organization level setting that’s setup in the Settings area of CRM and one improvement that I can see here is making this a user setting so that each user can have individual unique sync experiences if for some reason they don’t want to share information about Contacts that are in their Outlook and also tracked within CRM. However, for the current release of 2015, individual users can at least view the sync directions that their administrator setup by navigating to their Personal Options –> Synchronization –> Synchronized Fields
There are a couple quick use cases that come to mind that I know most customers would be ecstatic to get their hands on:
- Private Notes: Turn off the sync process on the Outlook Notes field. Therefore users can add Notes within Outlook and they won’t flow to CRM for everyone to see. They can keep their own personal notes locally in Outlook.
- Read Only CRM Data: Set the sync direction on the desired read only fields to go from CRM to Outlook only, meaning updates in Outlook will not update CRM, and CRM will overwrite Outlook changes.
Another resource on this subject is an article that Microsoft recently published. While having this in the application is useful, this link also provides more details for administrators.
Outlook Client Enhancements
There have been changes to the Outlook Client itself in addition to the sync changes.
First off Microsoft has now added OAuth support to the Outlook Client. This enables multi-factor authorization to the Outlook client and brings consistency across CRM clients (web and Outlook).
Microsoft has also cut the clutter out of configuring the Outlook client. Users simply need to provide the Organization URL to get up and running as fast as possible. See below for what the configuration process looks in Dynamics 2013, and how much easier it is in 2015.
Also, in order to help troubleshooting issues between Client and Server, Dynamics CRM 2015 now automatically detects compatibility issues between the Client and Server. A notification is sent to the user if a compatibility issue is detected.
Finally, another troubleshooting addition made by Microsoft is when errors are detected, a “Resolve This Issue” dynamic help link will appear. This link will be dynamic and will search a server side database of articles that will route customers to the right resolution for their issue.
Upgrade Experience and Supportability
This topic isn’t really an enhancement, but goes into details on moving to the Dynamics CRM 2015 Outlook client, and what versions are supported.
In order to upgrade to the 2015 Outlook client, you must be on Outlook 2010 or higher (support for Office 2007 is being dropped). Microsoft is also dropping support for:
- IE 8, IE 9
- Windows Vista
- Windows Server 2008 Remote Desktop Services
- Windows Server 2008 R2 Remote Desktop Services
The Outlook Client must be in “Online Mode” for the upgrade to succeed, and Microsoft is allowing all 2013 Outlook Client versions to upgrade to the 2015 Outlook Client. Also, users will be able to continue to use the 2013 Outlook Client if they deploy the 2015 server. However, they’ll only be able to use it in “Online Mode” (i.e., no offline capabilities will be supported).
The recommended process for upgrading your Outlook Client is the following. This process will ensure users are able to continue to use their Outlook Clients during your server upgrade to Dynamics 2015.
- Upgrade all Outlook Clients to 2013
- Upgrade your server to 2015
- Upgrade all Outlook Clients to 2015
We hope you’ll find that these improvements will add more configurability and robust functionality to the Outlook Client. I can see some future improvements Microsoft may want to add in with the sync process (allowing administrators to add/remove/edit what Outlook fields sync to what CRM fields including the ability to sync to custom fields), but it’s good to see Microsoft is continuing to go down the path of putting more configurability options in the hands of administrators, and removing any hard coded logic.
Good luck with your 2015 upgrade, and with all upgrades, plan…test…plan…and test some more!!
Microsoft has been rolling out CRM 2015 for Online organizations (On-prem download can be found here) but before you perform the update you will want to review the new list of unsupported customizations in 2015 to see if you are currently using any of them.
Earlier in the year, in the 2013 SDK, Microsoft provided a list of things that will be changing in the next release which can also be found here in the MSDN. Only 3 functions are being removed, getServerUrl (use getClientUrl), isOutlookClient (use client.getClient) and isOutlookClientOnline (use client.getClientState). The Xrm.Page.ui.getFormType call will no longer return 5 for Quick Create and 11 for Read Optimized as those types of forms were removed/deprecated in earlier releases. Also be sure that your customizations are no longer using the old 2007 endpoint as it is removed in CRM 2015. To help detect if you are using the 2007 endpoint, you can run the Legacy Feature Check tool against your organizations.
Lastly, there have been some changes to the web application requirements for CRM 2015. Support for IE8 and IE9 has been removed with the new version. See below for a list of all the supported browsers:
- Internet Explorer 10
- Internet Explorer 11
- Mozilla Firefox (latest publicly released version) running on Windows 8.1 or Windows 8, or Windows 7
- Google Chrome (latest publicly released version) running on Windows 8.1 or Windows 8, or Windows 7, or Google Nexus 10 tablet
- Apple Safari (latest publicly released version) running on Mac OS X 10.8 (Mountain Lion), 10.9 (Mavericks), or Apple iPad
And the supported versions of Microsoft Office:
- Microsoft Office 365
- Microsoft Office 2010
- Microsoft Office 2013
As always be sure to perform the upgrade first in a development or sandbox org to verify that your customizations are still functioning post-upgrade before upgrading your production environment.
Today I am co-blogging with Blake Scarlavai, Development Principal and Microsoft Dynamics blogger at Sonoma Partners.
Recently a vulnerability in SSL 3.0 known as “Poodle” gained some significant attention, with many companies responding in various ways to ensure their customers’ data is protected. It can be confusing to keep track of what companies are doing what, and what is expected of you as a customer to ensure you are not vulnerable. Below are the summaries of the responses that Salesforce and Microsoft have taken.
Salesforce is in the process of disabling SSL 3.0 on their platform. By the end of December, you will no longer be able to use SSL 3.0 visit Salesforce’s platform. For the most part, we don’t expect this to affect our clients as the browsers which needed SSL 3.0 still enabled (IE 6 mainly) are already not supported by Salesforce. You can get the full list of the disable schedule and more information about the changes on Salesforce’s help page.
Microsoft is in the process of remediating their online services for the SSL 3.0 vulnerability. Below is a time table for each of the CRM services:
SSL v3.0 Mitigation Status
Microsoft Dynamics CRM Online
Microsoft Dynamics Marketing
Microsoft Social Listening
Parature for Microsoft Dynamics
Microsoft Dynamics Lifecycle Services
Online Services for Microsoft Dynamics
Microsoft also recommends disabling SSL 3.0 in your browser. The following resources can be used for your respective browser:
- Internet Explorer: https://technet.microsoft.com/en-us/library/security/3009008.aspx
- Firefox: https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-the-end-of-ssl-3-0/
- Chrome: http://dottech.org/166990/how-to-disable-ssl-3-0-support-in-chrome-tip/
For more information on Microsoft’s response, click here.
Curious to find out what is new in CRM 2015? Head here to the Customer Center to see a list of new features in 2015. In preparation for the release, we have also been covering the new features in detail:
- Sales Module Enhancements
- SLA Enhancements
- Tablet Client (MoCA) Enhancements
- Hierarchical Security
- Calculated and Rollup Fields
- Enhanced Business Processes
- Hierarchy Visualizations
- Social Insights & On Prem
- Enhanced Business Rules
- Multi Entity Search
Hit us up in the comments and let us know what you think of CRM 2015 as well as any topic you would like covered further!
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.
Next up for our review are the changes being made to the Sales Module. The following list of enhancements are being made with CRM 2015 and we’ll dive into a few of them a little bit deeper:
- Product Bundles
- Cross Sell / Up Sell (via relationships between products)
- Product Families
- Territory Specific Default Price List
- Import/Export Settings via the Configuration Migration Tool provided with Leo
- Families/Products/Bundles all show up in one grid
- Clone Families/Products/Bundles (field values and all current product property values – including overridden values).
- Product Form Preview (displays the product properties so you can preview how it’d look when selling the products)
- New System Settings Configuration Options
- Override default pricing engine via code/SDK
Now lets dive a bit deeper into some of these features.
If you’ve used Product Kits in the past, you’ll be familiar with Product Bundles. Bundles are an enhanced version of Product Kits (e.g., you cannot view Kit Items when selling a Kit, but you can with a Bundle – see the Opportunity screenshot below). Product Kits will not be going away with CRM 2015, but instead Bundles will be an additional option users can use along with Kits.
Within a Bundle you can specify what Products are mandatory or not when selling the Bundle. They can also be tied to Product Families (more information below) but are not required to be. Finally, Products within Bundles have Properties that can be edited (e.g., what is the default value, is the property editable when being sold, etc.).
When adding the Bundle to an Opportunity, Quote, or Order, you’ll see the Bundle with the individual Products indented underneath. You‘ll also have the availability to edit the properties of the Products in that bundle for the specific Opportunity, Quote, or Order you’re working with.
Cross Sell and Up Sell
As stated above, using a relationship between Products, you can define Cross Sell and Up Sell products. This Product Relationships area is a sub-grid directly on the Product form.
When on an Opportunity, Quote or Order selling products, there will be a Suggestions Link that when clicked, will show the Cross Sell and Up Sell products that an administrator has defined for your organization. The user can click on Pick and then Add to List to add the suggested product to their opportunity immediately.
Product Families are another way to group products and create product hierarchies. The Child Products in a Product Family inherit the properties of the Product Family when they’re added to the Product Family, but can be overridden. Then, when adding the Product to an Opportunity, some of these properties can be modified by the Sales Person, while others may not be (defined in the Settings of the Product Family setup). The properties can be Read Only, Required, or Hidden.
Product Families are similar to Bundles, but the user cannot add a Product Family to an Opportunity, Quote, or Order like they can with Bundles. Instead, Product Families are used for administration of Products themselves.
New System Settings Configuration Options:
There are a handful of new System Setting Configuration Options coming with CRM 2015 that should be called out separately. The following settings can be configured per CRM organization:
- Indicate if the Default Price List is set via an inbuilt rule. If this is set to yes, then the default price list will be selected for an opportunity based on the default price lists defined for territories.
- Max # of Products in a Bundle
- Use system pricing calculation (override default pricing) – customers can use the SDK to have a custom pricing engine built in
- Discount calculation method: Per Unit (new option) or Line Item (previous option)
- Max # of Properties for a Product/Bundle
Some great new additions are being added to 2015 as you can see from above. However, with these new enhancements, there are still a few limitations you should be aware of:
- You cannot have bundles of bundles (only products are allowed to be added to bundles)
- Only active / retired products can be imported/exported via the configuration migration tool