Tip #149: If you are missing the “Service Management” link after upgrading to SP1

After your Dynamics CRM 2013 organization is upgraded to SP1/Spring ’14 update, and you install product updates in the Settings–>Administration area, you should see a new link called “Service Management” in the Settings area.

svcmgt

If you don’t see this link after you install the product updates, clear your browser cache or click CTRL+F5

If after that you still don’t see it, you can manually add the link to the settings area by exporting the sitemap and adding the following subarea to the settings area:

<SubArea Id="nav_servicemanagement"
 ResourceId="Homepage_ServiceManagement"
 DescriptionResourceId="ServiceManagement_SubArea_Description"
 Url="/tools/servicemanagement/servicemanagement.aspx"
 AvailableOffline="false" />

If you are missing other links that are new in CRM 2013, you can learn how to add these areas here.

Tip #148: Simplify the customer lookup

In Dynamics CRM 2013 when you create a record such as a contact or opportunity that include the “Customer” lookup field that can resolve to an Account or Contact, and you type a company name in the customer field, you may get more results than expected.

customer lookup

This is because when you type in the customer lookup field, it searches both accounts and contacts. Since the contacts related to the account includes the account name in the Parent Customer field. When you search by company name, you will get the company and all of the contacts related to the company.

If you don’t want this to happen, go to Settings–>Customization and open the entity customization for the Contact entity. Open the View definition for the Quick Find view and click “Add Find Columns.”

Uncheck the box for parentcustomerid,  hit OK, save and close the view, then publish the contact entity.

With this change, typing a company name in a “Customer” field will only return company records. Searching contacts by account name will no longer work, but most users don’t search for contacts by account name. You can easily see an account’s related contact by navigating to the account record.

 

 

Tip #147: If it’s something weird and it don’t look good

Technology is a temperamental mistress and, from time to time, things may not go quite as planned, and that includes CRM Online. Good news that even basic CRM Online subscription includes reasonable level of support. What is the quickest way to reach for help when you need it? To start with, download Microsoft Dynamics CRM Online: How to work with Microsoft Support – it’s a good and concise guide where to find support online. Here is abridged summary of some important numbers and URLs:

Thanks, Aaron!

Tip #146: Geo-restrictions for your CRM

One of our customers challenged us with a very specific requirement to limit access to their CRM to the users located in Australia. It’s always good to remember that CRM application server is a very sophisticated but a web site nevertheless and for a web site, we can use ipSecurity element in web.config that defines IP-based restrictions.

Step 1. Download list of IP addresses for your country (select web.config allow format)

Step 2. Find your CRM web.config file. By default it’s located in %ProgramFiles%\Microsoft Dynamics CRM\CRMWeb

Step 3. Insert <ipSecurity> element and add downloaded content so that part of your web.config looks like the following:

<configuration>
  ...
  <system.webServer>
    <security>
      <ipSecurity allowUnlisted="false">
        <clear />
        <add 
           ipAddress="1.0.0.0" 
           subnetMask="255.255.255.0" 
           allowed="true" />
        <add 
           ipAddress="1.0.4.0" 
           subnetMask="255.255.252.0" 
           allowed="true" />
        ...

Note 1. We found that free lists of IP country blocks are a bit stale; if being up-to-date is important for you, consider one of the data subscription services available.

Note 2. Country-level is a very superficial protection. For example, nothing stops persistent user from provisioning a VM in Aamazon EC2 in Sydney and accessing CRM from that VM. What will work much better, however, is granting access to the listed individual IP addresses.

Note 3. List of IP addresses even for Australia is about 6.5K entries. Performance impact of looking up this table on every request is probably negligible but it’d be a good idea to measure.

This is unsupported modification and the usual disclaimer applies: use at your own risk, do not swallow and keep away from the children. Not tested on hobbits.

Tip #145: Make tip 43 work again

If you have tried Tip # 43: Embed a pre-filtered report in an iframe lately, you may have found the results were not quite as advertised, at least in Internet Explorer.

This is because shortly after that post was published, an update to the CRM report viewer control for Internet Explorer broke the ability for reports to work in iframes. This issue only affected IE 9+. All other browsers were not affected.

This issue has been fixed in CRM 2011 Update Rollup 17 and CRM 2013 SP1/Spring ’14 update.

Happy iframing.

Tip #144: Restrict AD browsing when adding new users

If you are a hosting provider or a security-conscious administrator managing multiple CRM deployments then you’d like to avoid exposing entire Active Directory when user with appropriate permissions clicks New Multiple Users and then opts to browse all trusted domains and groups.

There are some unsupported methods as well as supported C# code to achieve the result. Considering that administrator’s language of choice is powershell, here is how to do it from the ps prompt:

Add-PSSnapin Microsoft.Crm.PowerShell
$ConfigurationEntityName = "Organization"
$SettingName = "UserRootPath"

$SettingValue = 
  "LDAP://contoso.local/OU=AlphineSkiHouse"+
  "OU=Customers;DC=contoso;DC=local"

# Easiest way to get ID is to run SQL
# select o.Id, FriendlyName from Organization o
#
# 9FF2BD5D-D741-E311-922F-02BF0A033E06	Alpine Ski House
#

$Id = New-Object `
   Guid("9FF2BD5D-D741-E311-922F-02BF0A033E06")

$setting = New-Object `
   "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity"
$setting.LogicalName = $ConfigurationEntityName
$setting.Id = $Id

$setting.Attributes = New-Object `
   "Microsoft.Xrm.Sdk.Deployment.AttributeCollection"

$kvo = 
"System.Collections.Generic.KeyValuePair[String, Object]"
$keypair = New-Object $kvo ($SettingName, $SettingValue)

$setting.Attributes.Add($keypair)

Set-CrmAdvancedSetting -Entity $setting

When new users are added in bulk to the Alphine Ski House organization, browsing will be restricted to the relevant OU only. CRM is smart enough to figure out who’s already in and displays only new users. Nice and clean.

Tip #143: 10 Ways to Free Storage Space in Microsoft Dynamics CRM Online

If you get the eerie email warning you that you have reached 80% of the storage available for your CRM Online instance don’t panic.

CRM Online Storage Space Warning

CRM Online Storage Space Warning

You have several options.

One way to go is to buy an additional 1GB of storage for $9/month. The other alternative is to trim some of your existing use of the storage you now have.

There are 10 documented ways to reduce the amount of storage space used by removing or deleting different types of of information from Microsoft Dynamics CRM Online. Use one or more of these methods to control your total data storage usage with Microsoft Dynamics CRM Online. You can delete certain categories of data as the need arises, or you can set up bulk deletion jobs to reoccur at set intervals.

Use the following link to get to the CRM Team authored 10 methods to reduce existing storage:

  • Method 1: Delete bulk e-mail and workflow instances using a bulk deletion job
  • Method 2: Evaluate and delete suspended workflows
  • Method 3: Remove e-mail attachments using Advanced Find
  • Method 4: Remove e-mail messages with attachments using a bulk deletion job
  • Method 5: Remove notes with attachments using Advanced Find
  • Method 6: Remove notes with attachments using a bulk deletion job
  • Method 7: Remove bulk duplicate detection jobs and associated copies of duplicate records
  • Method 8: Delete bulk import instances using a bulk deletion job
  • Method 9: Delete bulk deletion job instances using a bulk deletion job
  • Method 10: Delete audit logs

Tip #142: Piggyback customer’s CRM for support

If you are a solution provider, CRM consultant or ISV, most likely you provide support to end-users in some shape or form. That includes collecting bug reports and feedback from the users. Extend your solution and include one or two additional entities, starting, for example, with Product Feedback and Bug Report, so that users do not have to leave their environment to create a suggestion to improve your solution.

Don’t forget to create a workflow or two emailing that feedback over to the support queue in your CRM.

Other possible elements include dialogs if feedback needs to be a bit more structured than a simple title + description form (though there is always a danger of making feedback forms so complicated that no one will ever fill them in). Dialogs can also provide some data context not available in a simple entity.

This tip was gifted to us long, long time ago, like really long time ago, like when CRM 3 was around, by none other than
Guy “One tweet is ought to be enough for anyone” Riddle

.

Tip #141: Why do some fields not appear on the mobile form?

You configure a mobile form for a Dynamics CRM entity and add a new field to it. But when you pull up a record on your phone, you don’t see the field.

But when you go to edit mode, there is the field. Why does it do that?

The answer is that CRM for Phones forms only display fields that contain data in read mode. This saves space on the smaller mobile screens. When you switch to edit mode, the field is available, and after you add data to the field, you will see it in read mode.

 

Tip #140: Working with Dynamics CRM on iPad as System Admin or Customiser

As reported by Andre “I’ve got 88 in my handle” Margono:

Recently I stumbled across a question in Dynamics CRM Forum regarding “How to see CRM Settings on a tablet browser”

Out of my curiousity, I tried something on my iPad. The steps that I used to achieve this is using Google Chrome on iPad (never bother to check it on Safari though, as I never use that):

  1. Open a new Tab, navigate to Dynamics CRM instance.
  2. On Google Chrome option (the three lines at the right hand side of url bar), select “Request Desktop Site”
  3. It will redirect to https://<crmserverinstance>/m/default.aspx change it to https://<crmserverinstance>/main.aspx
  4. Voila, the Settings button is there and works! It’s quite slow though.

System settings on iPad