Tip #54: Create reminders for emails that you aren’t ready to act on yet

Sometimes I receive an email that requires some kind of action, but I don’t have time to do that action now. I want to schedule time to work on it when I’m not as busy as I am at the moment.

I track the email in Microsoft Dynamics CRM, then I drag the email from the Microsoft Outlook mail list to the calendar link. This will create a new appointment with the text and subject of the email. I can then schedule the appointment for a time that is free on my calendar. This has two benefits:

  1. It schedules time on my calendar to focus on the item (and reminds me)
  2. It makes that time show “busy” to my colleagues, so nobody bothers me while I’m working on it.

Tip #53: Prepare your SSRS reports for CRM Online

If your SSRS report works fine in BIDS and on-premises instances but fails to upload with very unhelpful message:

An error occurred while trying to add the report to Microsoft Dynamics CRM. Try adding the report again. If this problem persists, contact your system administrator.

then do the simple “1-2-3” test:

  1. Ensure that your report uses FetchXml DataSource
  2. Remove or replace all denied types and members from the report formulas
  3. Make sure that your report doesn’t use any of the custom assemblies
Tipped to the jar by

Tip #52: Open a second Outlook window

So you are using Microsoft Dynamics CRM for Outlook and you want to view CRM and your Outlook email or calendar simultaneously?

Easy. From Outlook, right click on one of the folders and select “open in new window.” This will open a second Outlook window. This makes it possible to have Outlook open to mail on one monitor and Outlook open to CRM on another monitor.

 

Outlook2

Tip #51: What to do if your Plugin won’t Trigger or Debug when Registered on SetState

If you register a plugin on SetState, most of the time you can’t get it to trigger or debug.  Register it instead on the (technically deprecated) SetStateDynamicEntity message. It should work fine.

Note: Instead of “Target”, the entity in the context for the entity being activated or deactivated, the new context input parameter will be called “EntityMonker”. This is easily cast-able to EntityReference though by this method:


EntityReference _entity =
   (EntityReference ) _context.InputParameters["EntityMoniker"];

– Don’t forget to tip your tipster!

Tip #50: Auto-enable content in exported documents

Tired of selecting the Enable Content every time you open an Excel or Word document you’ve exported from CRM, saved from a mail attachment or downloaded? Good news, it is easy to change your settings. Here are the steps:

Using Excel as an example:

  • Select File -> Options
  • Select Trust Center
  • Select the Trust Center Settings button
  • Select Protected View from the left menu
  • Uncheck the boxes and click OK

Keep in mind that unchecking the boxes does open you to greater risk when downloading office files.

Tipped to the jar by

Tip #49: How to increase marketing email open rate

What now, your marketing emails are ignored and trashed without reading? You are not alone then. If you search internets in attempt to increase open rate for your emails, you’ll find plenty of advice, typically in the form of “{Random integer between 4 and 10} tips to improve your open rates“. Tips usually revolve around subject line, A/B testing, timing, avoiding spam classification, adaptation for mobile devices, etc, etc.

Yawn.

I have much easier to muster, bulletproof solution based on the engine of achievement – curiosity. Let’s say you receive email from Joe Bloggs from Initech with the subject line “Awesome end of the {some random period} specials!!!“. Delete. Shortly afterwards you receive another email from Joe with the subject “Recall: Awesome end of the {some random period} specials!!!” and simple content of

Joe Bloggs would like to recall the message, “Awesome end of the {some random period} specials!!!”

Typical reaction? Quickly reach for the first message in recycle bin and read it because what could be the possible SNAFU that forced Joe to recall the message? Some juicy internals? Funny typos? Another cutlerygate? Who knows… Must open and read.

Dynamics CRM workflow engine is a godsend tool for this kind of marketing gymnastics. Keep reading to learn how to use it!

Tip #48: Update process flow for existing records

So you decided to follow tip 46 and use process flows instead of the sales stage field. How do you update your existing records? If you open a closed opportunity, for example, the record (and the process flow stage) will be non editable.

First, understand how the process and stage are stored on the record. if you do an advanced find of an entity enabled for Business Process Flow (BPF), you will see a field called ProcessID and another field called StageID. These fields store the ID of the Business Process Flow and the Business Process Stage associated with the record.

So if you want to update your existing records so the Business Process Flow stage matches the existing sales stage, the following is an easy approach.

  1. Create your Business Process Flow with the appropriate stages.
  2. Create one record for each stage. Give each record a different stage, and set the legacy sales stage field to the corresponding value. For example, if you have a sales stage value of “Qualified,” set the legacy sales stage to “Qualified” and move the Business Process Flow to the “Qualified” stage. Repeat for the other stages.
  3. Create a view of the records you created, being sure to display the Sales Stage, ProcessID, and StageID fields. Export to Excel. This will give you a cross-reference of legacy Sales Stage to Process Stage.
  4. Do a new advanced find for all records in the entity. Include the Sales Stage, ProcessID, and StageID fields in the column layout.
  5. Export all pages to Excel, selecting to the checkbox to allow for reimport.
  6. Update the spreadsheet using your cross reference list created in step 3. It helps if your list is sorted by sales stage. Update the ProcessID and StageID to match the appropriate value based on the sales stage.
  7. Import into CRM using Import Utility.

This will get all records Business Process Flow Stage ID values to match the legacy Sales Stage. Even existing inactive records, like closed Opportunities, can be updated using this method.

Tip #47: Simple multi-select lists in CRM 2013

There is no out of the box support for multi-select pick lists in Dynamics CRM but since the latest UI improvements in CRM2013 you can use a standard N:N Relationship with form sub-grid to get a most respectable multiple selection form field.

For example, if we wanted a ‘Languages Spoken’ pick list on a Contact Form:

  1. Create a custom entity (e.g. Language)
  2. Create a custom N:N relationship (E.g. Language->Contact)
  3. Edit the ‘Active Languages’ view and remove the created on field – leaving just the name field. This is so that we only see the language name in the inline sub-grid control.
  4. Edit the Contact form and insert a sub-grid selecting ‘Languages’ as the entity, also set ‘Show Label on form. The key is to insert it into a single column section so that it looks like it is a form field.

You will then get a nice control that allows you to add languages by typing in the inline lookup control:

Multi-select lists in CRM 2013

This beauty of this approach over other more bespoke ones is that it is fully supported and the data is searchable from within Advanced Find. Often the simplest solutions are the best!

Tipped to the jar by Scott “The Ribbon Man” Durow

Tip #46: Don’t combine multiple sales process tracking methods

In Microsoft Dynamics CRM 2013, the Business Process Flow is a great way to keep track of where you are in your sales (or any other type of) process. There are also other methods, left over from previous versions of CRM, such as the Close Probability field and Sales Stage field.

It can be tempting (especially if you are upgrading and use one of the alternate methods to track sales process stage) to try to use multiple methods–we already have sales stage set for all existing opportunities, why don’t we use sales stage and also use process stage?

This is not the recommended best practice.

  • Process stage and sales stage are not tied together–there is no relationship
  • You can update sales stage when the process stage changes, but it gets messy. If you use a workflow to update sales stage, the workflow will run every time the process stage changes. In CRM 2013, the process stage can only be moved one stage at a time. That means if someone moves the process stage from stage 1 to stage 6, the workflow will fire six times. Since CRM has infinite loop detection that prevents a workflow from running seven times on the same times on the same record in one hour, you will probably see some cases where the values will be out of sync.
  • Any place you can display the sales stage, you can also display the process stage. On the form, the current process stage is visible from the form in the business process flow. The process stage can also be displayed in views, and by extension can also be displayed in charts. Probably the only thing that you can do with sales stage that you can’t do with process stage is sort the view, because it is in a different entity.

Don’t try to combine multiple sales process tracking methods. Pick one and go with it.

Tip #45: Save Space on your entity forms

In the CRM 2011 / CRM 2013 form editor you, double-click on a form section to go to it’s properties.  Now, click on the Formatting tab, you can scroll to the bottom and find the setting called “Field Label Position”.  This setting will allow you to move the field labels to the top of the field instead of the default which is on the side.  Saving space this way will allow you to comfortably fit 3-4 columns on a form instead of 2.