Excel Surveys powered by OneDrive – very cool

Did you know you could create surveys using Excel Online? If not you are like me until I recently clicked a link and was amazed!

They look like this:

Example survey

Do you like it, I did.

So how do you create one?

Its really simple, follow these steps:

  1. Log into your OneDrive account
  2. Select Create and Select Excel SurveyExcel survey 1
  3. Now follow the simple instructions to create the survey
  4. Adding fields is really easy Excel Survey 2
  5. See my example here https://onedrive.live.com/survey?resid=FA929C41F6566E6E!5277&authkey=!ADGnRwlwFB-gg5o
  6. Once you have completed the survey you view the results in excel! Create some nice charts and even import into your CRM!
  7. Survey Results

 

So let your imaginations fly, birthday party invites, work events, internal work events, anything really. Plus what is really cool is that you could load the data into your CRM via the simple import feature and create campaign responses against your event.

Enabling Quick Create forms for Sub-grids – reduce key clicks

Problem Statement

I have an entity that has an associated sub-grid, the user always has to create a new record in the sub-grid each time, how can I utilise the quick create form? In my example lets say I have a projects entity and a milestone entity. New milestones are created for each project and existing milestones should not be selected.

Overview of problem

Have you ever noticed that when you click the ‘+’ symbol on a sub-grid, the inline editor is enabled for a lookup, you can then search by typing a value in or by clicking the “magnifying glass”, now if you want to create a new record you have to first search and then click the new button that opens a new window. So to create my new milestone it would take at least 3 clicks.

Image

What I want to happen is that I select the ‘+’ and the quick create form is displayed immediately. So how do I enable this?

Solution

Steps to enforce the quick create form to be displayed:

  1. Enable Quick Create on the selected entity, in this case MilestoneSUBGRIDCREATE2
  2. Create a new Quick Create Form from the Forms, new menuSUBGRIDCREATE3
  3. Ensure to add the Projects Lookup in this case on to the form
  4. Now for the trick to ensure that on selecting of the ‘+’ the quick create form is displayed, make the Projects entity requiredSUBGRIDCREATE4
  5. Publish the change
  6. Now when I select the ‘+’ button the quick create form is displayed.SUBGRIDCREATE5
  7. Note 1: If had not had a quick create form then the selection of the ‘+’ would open a new window for my new milestone.
  8. Note 2: If I did not have a quick create form and I had not made the field required then the selection of the ‘new’ button in the lookup would of opened the quick create form – so 3 clicks to get to the same place

I hope this has saved you some clicks!

Charting on a related entity field

Problem: I want to create a chart that presents a view of my Opportunity pipeline value by the industry associated to the Account?

Solution Options:

2 options are available:

  1. Export to excel including my releated field from the account entity
  2. Utilise standard charts in CRM to create the report

I am going to focus on option 2 and how you can create a chart on the opportunity that pulls in data from a related entity being the account on the opportunity, its quite simple.

  1. Open up your opportunities
  2. Click on Advanced Find
  3. Click on Edit Columns
  4. Click on Add Column and change field list to Account and select the Industry field
  5. Position the field in the view and save
  6. Save the new view as a new view “Opportunity Industry View”
  7. Close Advanced find
  8. Refresh your Opportunity view and select the new personal view created in step 6
  9. Open the Chart panel and select new
  10. You will now be able to select the Account Industry field in the drop selection of fields for the X and Y (note the field will appear above the dotted line that shows the column names included in the view)
  11. So for my chart I set the vertical axis as Estimated Value and for the Horizontal axis I use the Account Industry field
  12. Save my chart and I am done

So basically you can chart on any related field if you add it to your view you base your chart off. Once you have done that and created the chart the chart will work on any of your views regardless if the related field exists on the view or not.

Happy Charting!

 

How can I import Marketing List Members into Dynamics CRM?

Problem: I utilise an external Data Warehouse to identify marketing list members for a mail out, how can I load these into CRM to utilise the campaign functionality?

Initially when posed with this question, I thought development as you can not use the standard import tool to do this, but when stood back and looked at Marketing Lists, I realised there was a simple solution. The solution hinges around the fact that Manage Members utilises advanced find to perform a search to identify members, so we just need to be able to have something to search on, without needing to update the existing record.

In fact their are 2 options, as follows:

  1. Create a new entity named “External List”
  2. Create a relationship (lookup) to Contact, Account and Lead if you are creating marketing lists for all 3 types.
  3. Create a second relationship to Marketing list entity as a n:1
  4. Save and publish
  5. Now from the external source export your list, that must contain a unique attribute for each record that matches what is stored in CRM
  6. Create a marketing list in CRM or copy the name of an existing one for which you want to import members into
  7. Add to the export you did in step 5 a new “Name” and “Marketing List Name”column
  8. In the name column enter a unique name for the external list records that the import will create. In the marketing list column enter the name of the marketing list created in step 6.
  9. Import this file into CRM into the new entity “External List”, mapping the new relationships created in step 1 and 2 to the appropriate column in the csv file. I.e. Map the unique attribute for the CRM record to the Account, Contact or Lead for which it refers to.
  10. Now open the marketing list created in step 6 and use Manage members to perform a search on all Contacts, Accounts or leads (depending on what you are referencing) where an External List record is associated to them that is related to the Marketing list you created in step 6.
  11. Add the found members to the List.
  12. You have now imported members to a marketing list, you can now always view which members were added via the external list process and which additional members were added via standard CRM processes
  13. As a time saver, save the data import as a new template for future use

The second option is similar to above but you instead of creating a new entity you use Connections and import a new connection linked to the marketing list and use this to perform an advanced find on. The only downside of this approach is that can muddy the water if you use connections for other purposes.

I hope this solves a common dilemma.

Do you know who you are using as a reference? Do you know how many times and the win rate of using that reference? If not track it in CRM

Reference customers are critical to a service provider business model, but how do you keep track of requests, usage and success of reference customers?

The answer is that it is quite easy if you keep it simple! Follow my simple steps below to keep a record of requests, usage and success.

  1. Create a new solution for your reference entity, or open up your existing solution
  2. Create a new entity “Reference” and specify type as Activity
  3. Add required fields to the new entity i.e. Account and related contact who will do the reference, type of reference Case Study, Reference, Speaker etc, Organiser as the person who has requested the reference and Owner who is the owner of the related account or contact. See screen shot below
  4. Reference Entity
  5. Once you have created the entity, update the associated Account and Contact forms to move the new reference relationship down into Sales area of the navigation.
  6. Optionally may want to create a workflow to auto update the Owner of the reference to the owner of the Contact, leaving the organiser as the person who is requesting the reference usage.
  7. You now may also want to create some charts around status and due dates or even as in the example dashboard below a chart showing references by opportunity revenue and status to see how well your references are performing
  8. Reference Dashboard
  9. Once you are happy you can publish your configurations.
  10. Once published you will need to train your CRM users to create a new reference activity when a reference required and if related to an opportunity create it from an opportunity so that the regarding in populated. You can manage the status and performance of your references using standard views, you can now view which customers are being referenced the most and finally manage who have or are proposed to provide Case Studies for you. In addition you could set the regarding against a Campaign if you are using a contact or account as a speaker or case study for an event.

Keeping track of references and usage across the business ensures happy long-term customers. I hope this has been useful.

How do I clean up my Outlook contact list and ensure the right contacts are tracked into CRM?

Recently I was presented with a request that went along the lines of:

“I am using CRM via the browser but I want to start using the Outlook client as I believe not all of my outlook contacts are in CRM, what is the best way to get my outlook contacts synced into CRM?”

Now this may sound simple, just install the outlook add in, sync and then track the required contacts into CRM, but if you do this you could end up with a bunch of duplicate contacts in Outlook, your phone and then Outlook owning the contact records that you track into CRM, which is a big issue as I explain below.

  • When Outlook owns a contact via tracking it directly into CRM, it means that your outlook filters are dismissed for this contact. But what does this mean? Well its quite a major.
  • Imagine the scenario, the contact you tracked is reassigned to another person, in normal circumstances this might mean you no longer see this contact record, but because you tracked it, the contact remains tracked in Outlook.
  • Then say you decide to untrack this contact or delete the contact in your outlook, because you do not deal with that contact anymore, but then 6 months down the line the contact is reassigned back to you, the contact will not be synced to your outlook via the outlook filters as your actions in Outlook has overridden that of the filters as you told CRM you never want to see this contact in Outlook, by untracking it!

So basically if you track in Outlook you will overide the outlook CRM filters for this contact going forward and if you untrack the contact you will never be able to re sync this contact to the contact in CRM without first creating a duplicate contact in CRM merging them and syncing them back.

So what is best practice you ask?

Quite simple let CRM control what contacts based on your outlook filters should be synced to your Outlook and never track a contact via the track in crm buttons in Outlook! This way you will always see the right contacts from CRM and never get into a mess, where some are syncing and others are not. Now that statement may be contrary to what your CRM partner has told you but believe me it is the best approach.

From a training perspective, it simple means that when I am in Outlook and I want to create a contact that ultimately belongs in CRM, I should create it in CRM via the Outlook interface interacting with CRM, and then let the sync process bring the details back down to my Outlook and phone.

So now back to my problem statement, I have an employee who wants to get in sync there Outlook contacts and their CRM contacts by installing the CRM add in for Outlook.

Things to consider:

  • Phone contacts and are they syncing to Outlook
  • Other tools that may be syncing to Outlook
  • Personal vs business contacts

So maybe now you can see my dilemma this is not a simple process! So I have listed the steps below to what I believe makes the process as seamless as possible and ensures minimal duplicates of contacts across Outlook, phone and CRM.

  1. In outlook move all the contacts that you want in CRM to a new Contact folder called Business Contacts.
  2. Export that folder to an excel worksheet (file open, Import, export to file, choose excel, select new contact folder, export)
  3. Open the worksheet and remove all the additional Outlook columns to just leave the ones required to be imported or the ones that have content in
  4. Save the file as a csv file
  5. Import into crm with duplication detection on, mapping the columns to the appropriate contact columns via the Ribbon Import button
  6. Check the status of the import and hopefully minimal duplicates created, depending on your de-dupe rules
  7. Tidy up duplicates by merging in CRM
  8. Delete the contacts folder that contains the business contacts that you have just imported into CRM in Outlook (you have a backup in the csv file) to delete the contacts on your phone, as otherwise your phone may sync back duplicate contact records back into outlook
  9. Check phone has removed the contacts
  10. If phone has not manually delete contacts on the phone and sync
  11. Install Dynamics CRM Outlook add on
  12. Sync down owned contacts based on your outlook filters
  13. Phone and Outlook now have one list of contacts, with business contacts from Outllook and CRM synced appropriately to your devices

Now if ownership of records change the contacts will be removed from your outlook (if your outlook rules are based on ownership) and if you regain ownership of the record the contact will be re-synced back to your outlook.

Hopefully this will simplify your CRM rollup and on-going maintenance of users.

Limitations of the new Updated Forms (process flow) – Top 10!

So Polaris is live, and the new process forms now known technically as the updated forms look good, but what are the limitations of their use, what does this mean for my CRM instance? I have listed below some of the limitations of these forms so that you are all aware on when to use and when not to use!

  1. Only one Updated form can exist for any of the COLAC entities (Contact, Opportunity, Lead, Account and Case entities), multiple forms still exist for the Classic forms [Steven Foster Update] You can create multiple forms in the new mode, and visibility of these can be controlled by security roles, but only one form can be the default and there is no easy way to switch between the different updated form types other than switching to classic, changing to the different form and then closing the record and re-opening the record.
  2. No Javascript event handlers on On load, On change or On save, if included the form will return to Classic
  3. Only Web Resources can be added to the forms, which can interact with the fields on the form but they load asynchronously  which means there will be a delay
  4. Left hand navigation – you can view related records but cannot add new ones, so if you want to create an opportunity against an account then you will need to either add the opportunity as a sub grid or switch to classic forms
  5. You can only add Phone calls and tasks to the record, so as above if you want to create an appointment then you will need to add a subgrid or switch to classic
  6. The command bar cannot be changed in anyway, unlike the ribbon
  7. If you switch to Classic forms then these will become the default, and to enable the Updated form you will first need to open the record again and switch the form to the updated form, close and then reopen
  8. Cannot change the bing maps integration if you wanted to show a different address or different address fields
  9. Only one process form can exist for Opportunity, Case and Lead, so if you have different sales processes then you will either need to simplify to one or switch to classic
  10. You cannot change any of the locked components, which is a shame as the Case presents some core fields from the Account or Contact associated to the Case, but you can not change this if for example you wanted to add the Customer Pin to the form for validation purposes

The list could go on but that is a good start, so before you use the new forms, think about the impact! To turn off the new Updated Forms see my blog post https://nakedcrm.wordpress.com/2013/01/17/how-do-i-enable-for-some-users-by-default-the-classic-ui-forms-rather-than-the-new-process-ui-forms/

How do I enable for some users by default the classic UI forms rather than the new Process UI forms?

I have had a number of queries around the fact that for some organisations the new process UI forms may not work for all users who require a little more functionality that what is offered or that their current implementation is highly configured, hiding and showing sections and fields based on other variables.

So my problem statement is:

How do I enable for some users by default the classic UI forms rather than the new Process UI forms?

Actually it is very easy! It comes down to form security and which security roles can access which forms. So solve the problem you will need to either restrict the new Process UI form to security roles that will access it or create a new dummy security role that you assign to users where you want them by default to have the new form loaded and do not assign this security role to users that you want to default back to the classic form.

So what is involved? I will take the approach of creating a dummy security role to enable or disable the form.

1) Create a new Security Role to be used to manage who will access the form or not, you do not have to add any permissions to this role i.e. for Account – Account Process UI Form Access
ProcessUISecurity1
2) Open up the customisations area and customise the system
3) Open up in this example the Account entity and select the Forms area (or any one of the other entities where the new process UI forms are presented)
4) Select the new process form (named for Account – Account) and choose Assign Secuirty Roles
ProcessUISecurity2
5) Select the new security role and remove all others except system administrator. This will now mean that only users that have this specific security role will be able to access the form, and all other users will revert to the classic form assigned to their security roles.
ProcessUISecurity3

6) Publish the change
7) Now assign the new security roles to the users that you want to access the New Process UI account form
8) When a user with this security role logs in and opens an account they will be presented with the New Process UI form and all other users without this role will see the historical classic form.

Problem solved.

Re-usability of Web Resources by referencing the Execution context

What’s my problem statement?

I want to create a resusable web resource that I can use to validate and format the phone numbers for accuracy on any entity that contains a phone number field.

My options

  1. To create a web resource that references each phone number field on each entity that includes a phone number i.e. Contact, Account, lead  and call this web resource on the onchange event of each field.
  2. Create one web resource and pass in the execution context, call the web resource on the on change event for each phone number field on my entities

So with option one I could improve the code by using a function and calling the function based on the field that has changed passing in the phone number and validating it, but I have to create multiple web resources for each entity and thus maintain the same code in multiple places.

With option two, on the other hand my code is in one place and is ressuable. So how do I do option two?

The Solution – using the execution context

  1. The first step is to create a web resource with the code to validate the phone number but referring to the context of the execution to pass in the variable to be used to validate the number. To do this we add the parameter context to the function i.e.  function <<Insertfunctionname>>(context). We can then reference this context as follows var oField = context.getEventSource().getValue();
  2. We now need to write our simple phone number validation and format script as below.Phone Number Format Code
  3. Save and Publish the web resource.
  4. Open the first form to add the phone number validation and format script.
  5. Click on the Form Properties and add the new web resource as a new library
  6. Select the field to add the control to using the drop down and the event will default to On Change.
  7. Click on Add and select the new library and enter the function name of the script in my case “validatephonenumber”.
  8. Critical to the process is to select the Enabled check box and the “Pass execution context as first parameter” validatephonenumber2
  9. Click ok and save and publish
  10. Repeat for each phone field on each entity
  11. Now when you open the entity and update the phone number the script is run and the number is validated, without hardcoding any field value.

End Result

You can now use this same concept to script other resusable functions using the context of the call, great for any on change common validation of formatting function.

I hope this helps to simplify your development and time to deliver critical common functions.

My Top Tips for CRM 2011 – focus on user productivity

This is a productivity blog on ways to reduce clicks in CRM 2011 through some tips and tricks. I have split them between the Outlook Client and the Browser Client:

1. No more advanced find – use the Outlook client select a record say Accounts and then click the View ribbon. From here select the add columns button and scroll to the bottom of the list to the user defined fields and select. Now you can add CRM fields to your view and from there apply simple or more complex filters.

 

 

 

 

 

 

 

 

2. Multiple column sort by holding down the shift key and selecting the columns you want to sort on

3. Pinning views in Outlook reduces the need to keep on reopening your standard views, great for managers or users who work across territories

4.Calendar Preview – how many of you use preview on the calendar? Well by using the preview on the calendar enables you to select an appointment and quickly navigate to the tracked CRM record, saving clicks.

 

 

 

 

 

 

 

 

 

 

 

5. Conditional formatting in Outlook, use the outlook feature on CRM records and highlight records that need action. To save the formatting for next time start from a system view, apply the formatting and then save as a new view, the conditional formatting will now stick.

6. You may know about quick access to previous records in the browser but do you know you can do it in Outlook as well? Right click on an Outlook CRM folder and then select Recent records, a very cool productivity tip.

 

 

 

 

 

7. Track records by selecting Set Regarding only, if you are not setting the regarding to something then what is the purpose of tracking it?

8. Viewing a dashboard in its own window with no navigation. In the browser select recently viewed on the browser item and then right click the dashboard name and select open in new window. Now you have a standalone dash baord view

9. In the browser you navigate to a view open the first record and then use the up and down arrows to navigate between the records or select the dropdown to arrow and click the record you want to view.

10. Quickly populate date fields by just typing the day and month and tabbing out of the field, the year will default.

11. Use charts to sum or count records in views rather than exporting to Excel.

I hope those made your day and you learnt a cool new tip to help reduce clicks and increase productivity.