Skip Navigation LinksHome > SSW Standards > Rules > SSW Rules to Better Microsoft CRM

I've been putting together Development Guidelines for my employer and in the process have reviewed many published standards (in the .Net arena) from around the world. In each category, the suggestions at SSW are always among the best. Leon Bambrick -
 

Do you agree with them all? Are we missing some? Let us know what you think.

Rules to Better Microsoft CRM

  1. Project Planning - Do you download a copy of the Microsoft CRM Implementation Guide?
  2. Installation - Do you log each screen which is different to the default?
  3. Installation - Do you turn on DevErrors in the web.config file?
  4. Installation - Do you simplify the organizational chart before you load it into Microsoft CRM?
  5. Do you know the best way to demo Microsoft CRM 4 to clients?
  6. Scheduling - Do you know how to book developers for a project?
  7. Scheduling - Do you know how to view availablity of each developer?
  8. Scheduling - Do you know when to use "All Day Events" or start and end times?
  9. Sales - Do you know how to view developers projected income?
  10. Customization - Do you have only one person making changes to your CRM customization?
  11. Customization - Do you only export the customizations and related ones that you have made?
  12. Customization - Do you have a naming convention for your customization back up?
  13. Customization - Do you use a supported method of customization?
  14. Customization - Do you always make backup versions of the XML schema?
  15. Customization - Do you use the built-in test form events before you publish JavaScript changes?
  16. Customization - Do you know which version of SQL Reporting Services and Visual Studio you are using?
  17. Customization - Do you always use the filtered views when designing custom reports?
  18. Customization - Do you have your customizations documented?
  19. Customization - Do you set the schema-name prefix?
  20. Customization - Do you have email address in the Associated Contact View?
  21. Customization - Do you know how to change default CRM logo?
  22. Customization - Do you export only the customizations of entities that you did customize?
  23. Data Entry - Do you know how to Create New Companies?
  24. Data Entry - Do you know how to Create New Contacts?
  25. Data Entry - Do you know how to Create New Opportunities?
  26. Data Entry - Do you know the Quick Way to Create all Three of the Above at Once?
  27. Data Migration - Do you prioritize the data that is to be imported?
  28. Sales - should you use Leads?
  29. Sales - Be aware it is a workflow/sales process - not just forms - Leads can be converted to Opportunities, Contacts and Accounts?
  30. Sales - Do you track all sales related activities in CRM?
  31. Sales - Do you have a sales pipeline report in CRM?
  32. Sales - Do you know when to track an activity such as email, appointment, task, etc. in CRM?
  33. Marketing - Do you know how to send a newsletter using Microsoft CRM 4.0?
  34. Marketing - Do you use quick campaign for sending newsletter?
  35. Marketing - Do you use campaign for managing event such as Tech Breakfast?
  36. Marketing - Do you know the differences between Campaign and Quick Campaign in CRM 4
  37. Marketing - Do you know when to delete instead of disqualify a lead?
  38. Form Design - Do you change contact method options from default option group to checkboxes?
  39. Do you track emails in Outlook using the Track button in the CRM Add-in?
  40. Do you identify Development, Test and Production CRM Web Servers by colors?
  41. Do you make batch files for deployment to Test and Production servers?
  42. Do you run SSW Diagnostics before you install the CRM Outlook client?
  43. Do you enable your contacts to have more than 3 email address and phone numbers?
  44. Do you know the one case where you use a CRM lead?
  45. Do you know how and when to deactivate a Company/Contact?
  46. Do you know to hit 'Track in CRM' when you receive an important email?
  47. Do you set your work hours in CRM / Users?
  48. Do you use CRM resource scheduler?
  49. Do you put your exported customizations and your plug-in customization under source-control during deployment?
  50. Do you export your configuration on deployment using the CRM Plug-in Registration Tool?
  51. Do you avoid doing small bug fixes on your test-server?
  52. Do you sync your Outlook contacts to CRM?
  53. Do you know how to schedule developer time in the CRM calendar?
  54. Do you know how to keep abreast of your Opportunities?
  55. Do you sync your Outlook contacts to CRM?
  56. Sales - Do you know how to follow up an opportunity using CRM Activities?
  57. Do you know the best way to schedule resources in CRM?
  58. Do you use the CRM Service Calendar to see who's free for next week?
  59. Rules to Better CRM Data
  1. Project Planning - Do you download a copy of the Microsoft CRM Implementation Guide?

    The Microsoft CRM Implementation Guide contains essential information on installation pre-requisites and planning, implementation tools and troubleshooting.

  2. Installation - Do you log each screen which is different to the default?

    It is impossible to exactly remember every configuration setting in an MSCRM install. A historical log of the installation is hugely valuable when there are problems after installation is completed and helps to correctly re-install if required. The easiest and most convenient way of doing this is to take screen captures of every screen and paste them into a Word document.

    You will also need this because you are going to do this in a Dev, then Test and then Production environment aren't you :-)

    DevErrors in web.config
    Figure: You want a screen capture of everything up to here - so you can replay it for the Test and Production servers
  3. Installation - Do you turn on DevErrors in the web.config file?

    When exceptions occur in CRM they are trapped by the platform layer and a standard error message is displayed to the user. At SSW we similarly implement exception handling and use SSW Code Auditor to audit exception handling

    By turning DevErrors on you will obtain the actual error that caused the exception as this is what that will actually be posted onto newsgroups. Microsoft Support should also ask you for this will the issue be escalated that far, so you probably cannot do any meaningful troubleshooting until this has been activated. To switch DevErrors on, open the web.config and change DevErrors value ="On".

    DevErrors in web.config
    Figure: Turn on DevErrors within Web.Config file to get details of error
  4. Installation - Do you simplify the organizational chart before you load it into Microsoft CRM?

    Usually there is not much point creating an over-complicated organizational structure in MSCRM, a flatter organizational chart will achieve the same end result. Whilst the security model of Microsoft CRM is highly configurable, most organizations do no need to have excessive differentiation of data ownership and hence could cut down on unnecessary work. It is recommended to use the "out of the box" roles for almost all organizations less than 30 users.

    Microsoft CRM Default Security Roles are good enough to start with - this is not a thing to stuff with early on
    Figure: Microsoft CRM Default Security Roles are good enough to start with - this is not a thing to stuff with early on
  5. Do you know the best way to demo Microsoft CRM 4 to clients?

    If in the office:

    • Option 1 is Outlook Client - you log on as Administrator to CRMDOMAIN. Your computer needs to be joined to CRMDOMAIN.
    • Option 2 Remote Desktop Connection to DanubeCRM Virtual Server Ready Image on the SSW Network.
    • Option 3 is Outlook Client - as SSW user on the SSW Domain.
    • Option 4 use the VPC (recommended if you want to enter sample data and play around with the image)

    If not in the office (say at a client site) with an Internet connection:

    • As above but you need to consider that you will probably be on an Internet connection (max 1.5Mbps) not a 1Gbit LAN so for performance considerations the VPC (Option 4) is the guaranteed only acceptable mode of demonstration out of the above. Also consider:
    • Option 5 is Offline Outlook Client (but you cannot demonstrate all of the functionality such as Administration Settings)

    If there is no Internet connection then work offline:

    • Option 1 is a VPC
    • Option 2 is Offline Outlook Client (but you cannot demonstrate all of the functionality such as Administration Settings)

    You should be able to show:

    • Accounts (aka Companies)
    • Contacts
    • Sales (aka Leads and Invoicing and Quoting)
    • Marketing (aka Campaigns)
    • Service (aka Support)
    • Mail Merge
    Figure: The CRM environment
  6. Scheduling - Do you know how to book developers for a project?

    There are two ways of booking developers for project work:

    • Via Web Client:
      1. Create new appointment from the CRM 2011 web interface
        Create new appointment in CRM
        Figure: Click New Activity | Appointment to create new appointment in CRM 2011
      2. Select the resources that you want to book
        Microsoft CRM 4.0 appointment form
        Figure: In the "Required" field, click the search button. Select the required developers.
        Microsoft CRM 4.0 appointment select required resource popup
        Figure: Select "User" at "Look for" dropdown control and search for developers that you want to book.
      3. Select the client that you want to book the developers to work on.
        Microsoft CRM 4.0 appointment main form
        Figure: Click the button next to the "Regarding" field to select required developers.
        Microsoft CRM 4.0 appointment select regarding popup
        Figure: Select the "Client" at the "Look for" dropdown control and search for the project that you want developers to work on.
      4. Select the time that you want to book the developers
        Microsoft CRM 4.0 appointment main form
        Figure: Select the appointment time from CRM 4.0 appointment form.
    • Via Outlook Client (CRM 4.0 Outlook Add-in):
      1. Create a new Outlook appointment
      2. Select required resources and time from your Outlook appointment
      3. Select the project that you want to book the developers to work on
        Microsoft CRM 4.0 Outlook appointment regarding
        Figure: Click "Set Regarding" | "More" to set a regarding client for your appointment.
        Microsoft CRM 4.0 appointment select regarding popup
        Figure: Select the "Client" at the "Look for" dropdown control and search for the project that you want developers to work on.
        Microsoft CRM 4.0 Outlook appointment with regarding
        Figure: After you set regarding, the "Track in CRM" button will be highlighted and you can also view the project by clicking "View Regarding"
      4. Send your appointment from your Outlook.

    CRM 4.0 does not allow users to create recurring appointments, we have a suggestion to Microsoft CRM about this . If you still want to create recurring appointments, you can follow these steps to help you create them quicker:

    • Create a Microsoft CRM 4.0 appointment
    • Open Outlook with CRM 4.0 Outlook client installed
    • Open Calendar view in Outlook
    • Copy and paste the Microsoft 4.0 appointment to each of the day you want it to recur

    Attention: SSW Developers

    We use the appointment's time to calculate projected income, because the booking time and the calculation can be very complicated. We create the following rules about booking time to simplify the process and calculation:

    • The standard hours used for the calculations are 9:00AM-1:00PM and 2:00PM-6:00PM.
    • If you book an appointment outside standard hours and "Non Standard Hours" checkbox is unchecked, then only the standard hours, i.e. 9:00AM-1:00PM and 2:00PM-6:00PM will be used in calculation of project income.
    • You cannot book appointment in which the start time and end time are in two different dates.
  7. Scheduling - Do you know how to view availability of each developer?

    Developer's availability can be viewed by Service Calendar in Microsoft CRM 4.0:

    Microsoft CRM 4.0 Service Calendar
    Figure: Service Calendar in CRM 4.0 shows booked appointments of each developer.
  8. Scheduling - Do you know when to use "All Day Events" or start and end times?

    For an appointment of one day or less, use the start and end times so that it is easily viewed on people's calendars as 1 day appointments are easy to miss. However, if the appointment spans more than one day (e.g. 2 weeks) it's ok to use 1 appointment to span the whole time period, as it drastically reduces the complexity of keeping it accurate, up to date, and showing easily on the Service Calendar.

    Different types of appointments
    Figure: Good example ?multi day appointment shown at the top, single day appointment shown in the middle
    The appointment is too complicated.
    Figure: Bad example ?over complicated appointments for PDS and the 1 day appointment gets easily lost and is hard to read
  9. Sales - Do you know how to view developers projected income?

    You can view developers projected income by running the report "SSW Developers Projected Income"

    Microsoft CRM 4.0 Outlook appointment regarding
    Figure: Run "SSW Developers Projected Income" report from CRM 4.0
    Microsoft CRM 4.0 Outlook appointment regarding
    Figure: Report showing projected income from each developer
  10. Customization - Do you have only one person making changes to your CRM customization?

    Customizations cannot be undone and are cumulative, e.g: if you add an attribute on a form and deploy, there is no easy way to remove the attribute from the entity. We have a suggestion to CRM on this issue.

      In order to remove the attribute, what you have to do:

    1. If attribute is not a required field then go to step 3.
    2. Set attribute to be not required field
    3. Save and publish the changes
    4. Remove attribute from the form
    5. Save and publish the changes
    6. Remove attribute from the entity
    7. Save and publish the changes

    Because of this reason, we have to take extra care in tracking and maintaining the CRM customization changes. So the solution:

    1. Make someone (that person is called CRM Champion) in charge of schema changes
    2. Define security roles so that only this person can make customization changes
    3. Everyone else has to send customization changes to the CRM Champion in development team
  11. Customization - Do you only export the customizations and related ones that you have made?

    Sometimes less is better, CRM customizations are cumulative, this means that a customization that you import will override your existing schema. So if you're only working on for example Account entity, you should only export the Account entity's customization and any related entites in any new relationship that you have added to the schema. This avoids unexpected overriding existing entity's customization that potentially can break your CRM system.

    You could also export all the customizations and then just import the customization and the related ones that you have made changes. However this requires you taking an extra effort to take note of which customizations that you have made changes.

  12. Customization - Do you have a naming convention for your customization back up?

    Keeping track of CRM customization changes is just as difficult as back-end database changes. We have a rule Is a Back-end structural change going to be a hassle? which provide you an example how you should keep track of back-end changes. You can apply this rule to CRM changes and use a naming convention on each customization backup file to identify and keep track of your changes. Your customization file name should be: [IncrementalNumber]_[Entity]_[Date].zip, for example: 001_account_29042009.zip The file's name can tell you which entity you made changes and which date the changes were made. The incremental number will provides us step by step instruction on how to produce the current CRM system from a vanilla Microsoft Dynamics CRM.

  13. Customization - Do you use a supported method of customization?

    The Microsoft CRM customization tools make it no longer necessary for you to hack ie. write triggers, stored procedures and .aspx pages. In fact if you were to do any of these your CRM is unsupported. Changes will not be preserved in any upgrades or fixes and Microsoft will not attend to any of your support calls until you revert your CRM back to a supported state.

    The common ways to customize are:

    1. Use the designer to add Entities and Forms (aka Tables and Forms)
    2. Write SQL Reporting Services Reports
    3. Write workflows with the CRM designer
    4. Write workflows with VS.NET and .NET 3.0 WF (new in CRM 4.0)
    5. Write callouts with VS.NET (the extension points made available)

    The diagram below briefly outlines what are possible supported methods of customization.

     Microsoft CRM Customization Architecture
    Figure: Microsoft CRM Customization Architecture
    Refer to P19 of the CRM Customization Manual Course 8525A for a more in depth discussion.
    PS: For CRM 3.0 you can't find everything on the web - you will need the CRM Customization Manual Course 8525A - you have to buy it from Microsoft :-(

  14. Customization - Do you always make backup versions of the XML schema?

    When the XML schema is published it re-generates the underlying SQL and .aspx code. If trouble hits, a "refresh" or "rollback" to an uncorrupted schema is always a backup plan. A versioning scheme is also required to keep track of different versions of the XML schema at different points in time. To make a backup of the schema from within Microsoft CRM navigate to Settings -> Customization -> Export Customizations. Browse to the location on your personal hard drive where the .XML file is to be stored.

    Microsoft CRM Customization Pane
    Figure: Export customizations as backup

    Tip #1: Export only the customizations of entities that you customize and keep each entity customizations in a separate file, see the rule:Customization - Do you export only the customizations of entities that you did customize?
    Tip #2: Put the date on the file names and while you are working you will be doing this multiple times a day.
    Tip #3: don't save this on the Dev Virtual Machine.

  15. Customization - Do you use the built-in test form events before you publish JavaScript changes?

    Generally you will add Javascript to the form to give client side validation.

    Given JavaScript is difficult to debug and doesn't get precompiled this can save a lot of time rather than re-publishing all the form changes and having to reload and refresh the forms manually.
    These events can be trigged using the Preview menu from the form customization environment.

    Test your Javascript via the Preview menu in the Custom Forms Designer
    Figure: Test your Javascript via the Preview menu in the Custom Forms Designer
  16. Customization - Do you know which version of SQL Reporting Services and Visual Studio you are using?

      CRM 3.0 is in .NET 1.1 so it was designed to work with:

    • SQL Server 2000 (even better to use 2005)
    • Reporting Services 2000 (design reports in VS.NET 2003)
    • Callouts in VS.NET 2003

    Tip #1: Do try to use SQL 2005 if available - it is marginally faster.
    Tip #2: Don't try working in VS.NET 2005 - there are workarounds but they become very, very painful.
    Tip #3: SQL Reporting Services and the .rdl files are not backward compatible - there is no hope of doing them in 2005 and back porting the RDL.

  17. Customization - Do you always use the filtered views when designing custom reports?

    Directly querying the table bypasses the security and filtering of MSCRM as well as not being supported by Microsoft. This is not the correct method for reports to be written.
    The correct filtered views can be found under the Views section of the CRM database and these are the Views that should always be used to design SQL Reporting Services reports.

    When developing reports don't go against the base tables - instead use the filtered views of Microsoft CRM 3.0
    Figure: When developing reports don't go against the base tables - instead use the filtered views of Microsoft CRM 3.0
  18. Customization - Do you have your customizations documented?

    You will want to have a list of all customizations - from Custom Entities to Callouts. You can export the customizations to an XML file - but that is not fun to read. There is no tool to document or any visual tool to look at - so the best thing is screen captures with circles highlighting the customized areas.

  19. Customization - Do you set the schema-name prefix?

    Note when you do a customization it gives it a prefix with the schema name - in our case SSW. With this prefix you can easily distinguish customized attributes from default attributes.

    Set your schema-name prefix to use for custom entities and attributes
    Figure: Set your schema-name prefix to use for custom entities and attributes
    customized attributes with the prefix
    Figure: customized attributes with the prefix
  20. Customization - Do you have email address in the Associated Contact View?

    In default view for Associated Contact you cannot see the email address, it would be better to customize it as an extra column.

    Associated Contact View without the email address
    Figure: Associated Contact View without the email address
    Associated Contact View with the email address
    Figure: Associated Contact View with the email address

    It is easy to do this by import the customisations xml files.

  21. Customization - Do you know how to change default CRM logo?

    The name of default crm logo is 'masthead.jpg' which is located under directory '_imgs' of the crm web folder. Rename this file to, say, masthead_backup.jpg and put your company logo and name it as ''masthead.jpg'. Done!

    Change CRM company Logo
    Figure: Change CRM company logo
  22. Customization - Do you export only the customizations of entities that you did customize?

    Export each single entity customization and keep each entity customization in a separate file, like:

    • Account_11022009.xml
    • Contact_11022009.xml

    This way, if an entity is changed or broken on the Live environment, you can re-import the customization for this entity again, without breaking other entities on live environment.

    Instead of exporting each single entity, you can also export only your customized entities in 1 step, and afterwards select what entities to import

    Import single customization
    Figure: You can select the single customization to import
  23. Data Entry - Do you know how to Create New Companies?

    Note: Please make sure that there is no existing company before you make the entry.
    Change CRM company Logo
    Figure: To enter new companies go to Microsoft CRM.
    Change CRM company Logo
    Figure: Create company profile.
  24. Data Entry - Do you know how to Create New Contacts?

    Note: In order to enter new contacts into CRM, the company the contact belongs to must first exist.
    Create New Contact Logo
    Figure: Create New Contact
    Create New Contact Information
    Figure: Enter Contact Information and click Save and Close.
  25. Data Entry - Do you know how to Create New Opportunities?

    Note: In order to enter new opportunities into CRM, the company the opportunity belongs to must first exist.
    Change CRM company Logo
    Figure: Create CRM Opportunity.
    Change CRM company Logo
    Figure: Enter as much details as possible, and then Click Save and Close.
  26. Data Entry - Do you know the Quick Way to Create all Three of the Above at Once?

    Note: Although you can create all of these separately, there is a quicker way to create all three at once.
    Change CRM company Logo
    Figure: Create New Sales Lead.
    Change CRM company Logo
    Figure: Enter Lead data "as much details as possible".
    Change CRM company Logo
    Figure: Specify which of the 3 you want to create.
  27. Data Migration - Do you prioritize the data that is to be imported?

    Step 1 - What data?

    1. Don't take all the data for the first release - Usually there are huge amounts of data in legacy systems - take only the most important firstly.
    2. Using the planning spreadsheets included with the Microsoft CRM Data Migration Pack - they are excellent for specifying data migration field mappings.
    Step 2 - Sync or import?
    1. Syncing and keeping the old system live is the preferred option
    2. Consider writing .NET callouts - or consider Scribe Insight
  28. Sales - should you use Leads?

    Leads are not for the majority of companies. Leads are for:

    • Unknown/unqualified customers ie. Purchased a mailing list
    • Potentially rubbish
    Q: Say you have a product on the web and customers register to download. Is this a lead or is this a Contact?
    A: We say it is a Contact because they are qualified.
    Note: The important thing is to delete contacts when you realize they are rubbish.
  29. Sales - Be aware it is a workflow/sales process - not just forms - Leads can be converted to Opportunities, Contacts and Accounts?

    All CRM users should be able to walk through this simple workflow:

    The process is:

    1. In CRM, create a Lead
    2. Convert it into an Opportunity, Contact and Account using the Qualify button
    3. Become familiar with the 'Convert Lead' button
      Figure: Become familiar with the Qualify" button

      Clicking on the "Qualify" button allows the automatic generation of Accounts, Contacts and Opportunities.

      Convert Lead Web Page Dialog
      Figure: Qualify Lead Web Page Dialog

      This will:

    4. Deactivate the Lead
    5. Create an Opportunity and Account
    6. Automatically link the Opportunity to the Account and the Account to the Contact
    Link to Account from Opportunity
    Figure: Link to Account from Opportunity

    This will save you substantial amount of time compared to creating and linking each one manually

  30. Sales - Do you track all sales related activities in CRM?

    Microsoft Dynamics CRM 4 allows user to track activities such as emails, appointments, phone calls, etc. This feature can be easily abused by users to record unrelated activities inside CRM. It is difficult sometimes to work out which type of activities should be recorded. These are the types of activities you should track in CRM:

    • Appointments: initial meeting, and follow-up meetings...
    • Phone Calls: any incoming and outgoing sales related phone call
    • Emails: sales related emails

    All sales activities should be set regarding an opportunity, not company or contact.

                From: Marlon Marescia www.ssw.com.au 
                Sent: Thursday, 25 February 2010 10:40 AM
                To: some-email-address
                Subject: RE: Consulting
    
                Hi Robert,
    
                As per our conversation, Dan will be starting on Monday 1st March.
    
                We discussed using a second resource on the project with Dan. You and Dan will assess whether this is necessary during the first week and make a decision.
    
                I will call you in a week or so to see how things are progressing.
    					
    Figure: This email should be tracked in CRM

      By recording these activities, reports can be created to view:
    • The guys doing the most sales activities e.g. The "Activities" report. This should be printed monthly and posted on the wall.
    • Which opportunities have been neglected. This is a custom report
    • The history for all sales activities relating to an opportunity. This is useful to review before making a call.
    Work tracking gragh
    Figure: Ulysses was the hardest worker for this month. Print this and put it on the wall and it will encourage everyone to log their calls
  31. Sales - Do you have a sales pipeline report in CRM?

    Microsoft Dynamics CRM 4 provides a built-in sales pipeline report with some valuable data from your opportunities. The report uses estimated revenue and closed date of the opportunity when you create it. The problems are:

    1. If your income is from a project based revenue and it is based on a "Time and Material" billing method, this data won't be valid to you. For example, if you have a project (opportunity) that last for next 6 months, the estimated is 1 million dollars and you want to sees your sales pipeline in next 3 months. CRM built-in report won't show revenue comes from this project because this project's closing date is not in the next 3 months. In this case the data is invalid, because client is paying you every hour that you're spending on the project but the revenue is not shown.
    2. If you win your project and close your opportunity. CRM built-in sales pipeline report will now shows the estimated revenue as your estimated income right on the date that you close it. This is not true because you won't get a full amount of estimated revenue from your project until you complete it that could be another 6 months away.

    To solve all of these problems, we have customized our CRM system to allow us record "Monthly Projected Income" for our business:

  32. Sales - Do you know when to track an activity such as email, appointment, task, etc. in CRM?

    Microsoft Dynamics CRM 4 allows user to record every day activity suchas email, appointment, task, etc. This feature can be easily abused by users to record unrelated activities in CRM

  33. Marketing - Do you know how to send a newsletter using Microsoft CRM 4.0?

    You can use Microsoft CRM 4.0 Quick Campaign to create a newsletter and tracking the responses from the newsletter emails that you're sending out. Check out our standard Do you know how to send newsletter in Microsoft CRM? for more information.

  34. Marketing - Do you use quick campaign for sending newsletter?

    For sending newsletter, you should you Quick Campaign instead of the normal Campaign, because:

    • Creating quick campaign is quicker than normal campaign.
    • Financial detailed report is not needed.
    • Marketing list in campaign is not updated when contact's attribute is changed and no longer meets the criteria you set for the list. In this case you have to re-generate your list again. Whereas for quick campaign you can just create the view using Advanced Find to search for the contacts that you want to send newsletter to and save the view for later use, this view will auto update the list of contacts everytime you switch to it.
    An example of CRM 4 Quick Campaign Scenario on Microsft CRM Team blog.
  35. Marketing - Do you use campaign for managing event such as Tech Breakfast?

    For a Tech Breakfast you should use Campaigns (from Marketing tab) and Not to use Quick Campaigns (from Marketing tab) because:
    • Integration with Event Management Accelerator which allows you to plan, track, and manage your event.
    • Allows keeping track of cost and revenue from the campaign.
    • Multiple marketing lists (contact, account, lead) can be added to one campaign.
    • Create multiple campaign activities (phone call + email).
    Color of CRM Development Server
    Figure: CRM Campaign form with the financial information and event management accelerator.

    An example of CRM 4 Campaign Scenario on Microsft CRM Team blog.

  36. Marketing - Do you know the differences between Campaign and Quick Campaign in CRM 4?

    Below picture shows a flowchart of Campaign and Quick Campaign in CRM 4:
    Color of CRM Development Server
    Figure: Campaign VS Quick Campaign flowchart.
  37. Marketing - Do you know when to delete instead of disqualify a lead?

    When going through leads to see if they should be converted to an Account/Contact/Opportunity or disqualified, any that do not contain contact details should be deleted instead of disqualified. The reason for this is that there is no benefit having only a name in the system, and it could produce false duplicates later if we were to import or create someone with the same name.

    Delete rubbish lead
    Figure: Delete rubbish lead.
  38. Form Design - Do you change contact method options from default option group to checkboxes?

    CRM contact methods
    Figure: Bad Example - By default CRM uses option group for contact's and account's contact methods.

    As per our rule Do you know when to use CheckBox?. Checkboxes should be used instead of the option group since the answer is a boolean type. You can change the option group to checkboxes by:

    1. From CRM, go to Settings | Customizations | Customize Entities
    2. Double-Click "Contact" entity
    3. Click "Form and Views"
    4. Double-Click "Form" to edit contact form
    5. Click "Administration" tab
    6. Select a contact method field, i.e. Email
    7. Click "Change Properties"
      CRM contact methods form design
      Figure: Select and change the email field's properties.
    8. Click "Formatting" tab
    9. Change layout from "Two Columns" to "One Column" and select "Check box" as control formatting
    10. CRM email field properties
      Figure: Change layout and control formatting of email field to one column type and check box.
    11. Repeat steps 6-9 for other contact method
    12. Repeat steps 3-9 for account entity
    CRM contact methods with checkboxes
    Figure: Good example - Checkboxes are used for contact methods because they're clear and simple.
  39. Do you track emails in Outlook using the Track button in the CRM Add-in?

    Creating follow up in CRM 4.0 web client is not an easy process. We have a suggestion to make CRM follow up the same way as Outlook. However we still want to keep our email in CRM and create a follow up, so this is how it can be done:

    1. Create a new email in Outlook
    2. Press "Track" button
    3. Set regarding for your email
    Email in Outlook with track in CRM
    Figure: Button to press in an Outlook email to "Track" it
  40. Do you identify Development, Test and Production CRM Web Servers by colors?

    As per rule "Do you have separate development, testing and production environment?", it's better to use different background colors to identify Development, Test and Production servers. The way to change the default background color is to edit the global.css.aspx file:

    	        body.stage
                {
                    <% if (CrmStyles.IsRightToLeft) { %>
                        dir:rtl;
                    <%} %>
                    border-top:1px solid #6893cf;
                    /* background-color: #d6e8ff; */
                    background-color: #ffff00;
                    padding: 4px;
                    /* background-repeat: repeat-x;
                    background-image: url(/_imgs/app_back.gif);
                      */
                }
    	      
    Figure: In C:\Inetpub\wwwroot\_common\styles\global.css.aspx comment out and change the reference in yellow so the users know what server they are on
    Color of CRM Development Server
    Figure: Color of CRM Development Server - Red
    Color of CRM Test Server
    Figure: Color of CRM Test Server - Yellow
    Color of CRM Test Server
    Figure: Color of CRM Production Server - Default
  41. Do you make batch files for deployment to Test and Production servers?

    The goal is that I don't want CRM developers to move from Dev to Test and to Production manually. Basically I don't want a developer to touch Test or Production servers. The testers can run the .bat file. See SSW rules to setup packages

    How developers should work?

    Create a Deployment.bat like this

    	        REM (deploy the callouts - Part 1)
    
                REM	(restart IIS of CRM TEST Server - BASILISK)
                iisreset BASILISK
    
                REM	(copy callouts dlls onto CRM TEST Server - BASILISK)
                copy Microsoft.Crm.Platform.Callout.Base.dll "\\BASILISK\C$\Program Files\Microsoft CRM\Server\bin\assembly"            
                copy SSW.TimeProIntegrationCallouts.dll "\\BASILISK\C$\Program Files\Microsoft CRM\Server\bin\assembly"            
                copy callout.config.xml "\\BASILISK\C$\Program Files\Microsoft CRM\Server\bin\assembly" 
                
                REM (deploy the callouts - part 2)
                REM Stop the WorkFlow Service (as we need to remove the lock on the .dlls)
                REM Start it 
                REM (avoid workflow in v3 - see comment above C but if you do you need to)
                REM Manual - use Import wizard
                REM (avoid server side validation logic in v3)
                REM  Deploy a 1.1 web service
    	        

    Deploy to Test Server

    • Import the customizations.xml
    • Run .bat file

    Deploy to Production Server

    • Import the customizations.xml
    • Run .bat file
  42. Do you run SSW Diagnostics before you install the CRM Outlook client?

    SSW Diagnostics will detect the latest version of the Outlook Service Pack and CRM Outlook Client and save you time from having to install hot fixes down the line.

  43. Customization - Do you enable your contacts to have more than the default 3 email addresses and phone numbers?

    Out of the box CRM4 only enables a contact to have 3 phone numbers (home, business and mobile) + 3 email addresses (but only one visible). A customization that almost everyone needs is to remove this limitation (to allow contacts to have an unlimited amount of phone numbers and email addresses).

    Figure: Bad example - Out of the box a contact can only have 3 phone numbers and 1 email address

    There are a few customizations needed to get the SSW Contact Makeover:

    • Show some hidden fields
    • Make some form changes to move to a new tab
    • Make a CRM frame (to add in a subform)
    • Add some entities
    • Add some form java script to hide the core Contact Details? tab when a user is entering a new contact

     

    Figure: Good example - Enable the hidden fields and move it to a new tab. And now a Contact has 3 email addresses and phone numbers
    Figure: Good example - After adding an entity, you add a frame show the unlimited contact details (phone, fax, email etc)

    Q: So what is the end result?
    A: The end user experience to add a phone number is ..

    Figure:  Step 1: Double-click the contact (or right-click the contact and select Open) Open

    Figure:  Step 2: Select the tab 'More Contact Details'

    Figure:  Step 3: Click the button 'New Contact Detail'

    Figure:  Step 4: Enter the details and click button 'Save and Close' (top left)
  44. Do you know the one case where you use a CRM lead?

    It can sometimes be hard to work out when to use a lead vs a contact and company, or even an opportunity.

    Type Type and Category
    Called up about a service needed urgently Contact + Opportunity (hot)
    Called up about a service Contact + Opportunity
    Qualified Contact (prospect down the line) Contact
    Someone goes to the website and joins the mailing list Contact
    Random business cards from TechEd 2009 Contact + Tag "Tech Ed 2009"
    Uninterested contact Contact
    Purchased mailing list Lead
    Figure: There is only one scenario where you would use a lead
     

    It is better to have all your contacts in one place rather than split over 2 separate tables. Leads are not needed except as a data entry tool to help you link new contacts, companies, and opportunities. See Quick Way to create and opportunity, contact and account in one step.

    The only legitimate use of leads is for completely unqualified data, e.g.

    • You buy a contact database (too large to contact each one of them to qualify)
  45. Do you know how and when to deactivate a Company/Contact?

    There comes a time when some contacts in your CRM database might just be taking up space and not giving any value. At this point it is best to deactivate them.

    • CRM still knows about it so it will still come up for duplicate detection.
    • You can still view them if you need to by viewing Inactive companies/contacts.

    Hint: When you deactivate a client - put a note in the notes field to say why first.

  46. Do you know to hit 'Track in CRM' when you receive an important email?

    Whenever you email a client with a correspondence that relates to an existing CRM opportunity (i.e. an "as per our conversation" about when you think the project would get going etc.) you should track it in CRM so it is centralised and can be seen by anyone else who tries to follow up that opportunity.

    The simplest way is, when writing or receiving the email, click the track in CRM button in the ribbon and "set regarding" to the opportunity in question.

    Ribbon CRM section in email
    Figure: When you receive an important email, click the 'Track in CRM' button in on the CRM toolbar

    Otherwise, you can also do it from the main Outlook page with the toolbar at the top.

    Toolbar CRM section in Inbox
    Figure: A shortcut to the same 'Track in CRM' button exists on the CRM Toolbar
  47. Do you set your work hours in CRM / Users?

    You should always set your working hours in your CRM settings so others knows when you are working, this will help us to do resource scheduling. This is especially important for people who are not working as full time, e.g. part-time, contractors etc.

    You can find this setting in CRM->Settings->Users->[User Name]->Working Hours, it looks like below:

    Set work hours for users in CRM
    Figure: Working Hours setting for user in CRM

  48. Do you use CRM resource scheduler?

    CRM provides a calendar control and allows you to schedule your resources for services. We use CRM to schedule our resources and find out resources' availability.

    Toolbar CRM section in Inbox
    Figure: Toolbar CRM section in Inbox
    However, out of the box CRM resource scheduler have some limitations:
    1. "Service Calendar" link on left navigation does not appear when outlook is opened. You can solve this problem by modifying CRM's default sitemap. See Microsoft KB Article for more details.
    2. CRM Service Scheduler does not allows you to create a recurrent appointment in outlook. We have a suggestion to CRM for this issue. If you want to create a recurrent appointment, you have to repeatedly schedule the appointment.
    3. CRM Service Scheduler creates an appointment in outlook for the scheduler and resources when scheduling a service activity. This causes a problem for the sales person because he has to schedule a lot of service activities for different resources. CRM will create all the appointments in his outlook calendar and makes it impossible for him to track his own appointments. To work around this issue, you can create a user account which will be used by your sales team to schedule all the services in CRM.

  49. Do you put your exported customizations and your plug-in customization under source-control during deployment?

    If you export your customizations from your CRM Development server, put them under TFS source-control, so that TFS is your central repository for everything, and you have all the advantages of a source control system.

  50. Do you export your configuration on deployment using the CRM Plug-in Registration Tool?

    Instead of configuring your plug-in manually in the registration tool, export all settings and import them on the other server.

    Make sure you put your plug-in customization file under source control

  51. Do you avoid doing small bug fixes on your test-server?

    Don't make any changes to the test server, it can break your deployment process of your plug-in.

    Develop only on your development server.

  52. Do you sync your Outlook contacts to CRM?

    It can be useful to have the contacts you deal with regulary in your outlook (for offline access and easy editing).

    Contacts that you create or have tranferred to you and tagged as your "Active contacts". These are the only ones that will sync from CRM to your Outlook. In Outlook, you can choose which of your personal contacts you want to sync to CRM by using the toolbar option "track in CRM" and "Set Parent" (i.e. company).

    To do this, in Outlook, click CRM | Options | Synchronization, and click Contacts.

    Contact Synchronization enabled
    Figure: Contact Synchronization enabled

    Remember, if your Outlook syncs to your mobile device, and you have a very large numbr of active contacts under your name, often it is not a scalable option to sync to CRM as you may get too many contacts to easily deal with.

  53. Do you know how to schedule developer time in the CRM calendar?

    Prerequisites:

    • There must be an existing project in CRM

    Process for a developer to book himself in:

    1. Create an appointment for the 1st day in Outlook
    2. Add the developers that will be working on the project including yourself as "Required Attendees"
    3. Set regarding to the relevant project on the outlook CRM toolbar
    4. Copy and paste it into each day that you are working on that project

    Process for a Manager to book a developer in:

    1. Go into the calendar of SSWBillable
    2. Create an appointment for the 1st day in Outlook and invite the developer
    3. Add the developers that will be working on the project as "Required Attendees"
    4. Set regarding to the relevant project on the outlook CRM toolbar
    5. Copy and paste it into each day that the developers are working on that project
  54. Do you know how to keep abreast of your Opportunities

    Add opportunities
    Figure: Contact Synchronization enabled
  55. Do you sync your Outlook contacts to CRM?

    It can be useful to have the contacts you deal with regulary in your outlook (for offline access and easy editing).

    Contacts that you create or have tranferred to you and tagged as your "Active contacts". These are the only ones that will sync from CRM to your Outlook. In Outlook, you can choose which of your personal contacts you want to sync to CRM by using the toolbar option "track in CRM" and "Set Parent" (i.e. company).

    To do this, in Outlook, click CRM | Options | Synchronization, and click Contacts.

    Contact Sync Enabled
    Figure: Contact Synchronization enabled

    Remember, if your Outlook syncs to your mobile device, and you have a very large number of active contacts under your name, often it is not a scalable option to sync to CRM as you may get too many contacts to easily deal with.

  56. Sales ?Do you know how to follow up an opportunity using CRM Activities?

    Once you create an opportunity, you should always click the "Follow Up" button to create an activity to call up the client after approximately 1 week. Each time you make this call, you should complete this activity and create a new one, with a time interval based on the specific circumstances of the opportunity.

    Follow Up Activity
    Figure: 1 = follow up button. 2 = form that the follow up button opens.

    You can see your outstanding activities in your CRM workspace homepage, and this should keep you on top of all of your current opportunities.
    Make sure you never have an opportunity in CRM without a follow up activity against it; otherwise you're just hoping that they will remember to call you?never a good sales strategy.

  57. Do you know the best way to schedule resources in CRM?

    Using the Service Calendar, you can see who is and is not available at a given time

    CRM Service Calendar
    Figure: Look in the CRM Service Calendar for developer availability
    The two ways to schedule are:
    1. CRM Service Scheduling using Service Activities
      Service Activities
      Figure: Bad Example ?Service Activities
        Pros:
      • Can specify types of resources required (important)
        E.g. Senior Devs, Silverlight Devs, etc.
        Cons:
      • Can't use the Outlook client to create these (an Outlook limitation)
      • No copy and paste
      • Lots of clicks
      • No recurrence (fixed in CRM 2011)
    2. Outlook appointments tracked in CRM
      Appointments
      Figure: Good Example - Appointments (Note: You would normally use the Outlook client to create this)
      Pros:
      • Less clicks
      • Recurrence via copy and paste in CRM 4(using the Outlook client)
      • Full recurrence in CRM 2011
      Cons:
      • Need to already know developers skill sets
      • No recurrence in CRM 4
  58. Do you use the CRM Service Calendar to see who's free for next week?

    As an account manager you'll frequently be required to find a free resource to put onto a project. Instead of going around and asking everyone “Who’s free next week?”; you should use the CRM Service Calendar. The calendar provides a one page view of everyone’s availability for a given time period. Here’s what you need to do to access it:

    1. Go to http://crm.ssw.com.au
    2. Click Service | Service Calendar
    3. Send a weekly email to the CEO or Resource Planner on Friday showing everyone's availability next week

    Hi Adam,
    Here is the CRM service calendar for next week.
    [Comment on the bookings – e.g. Doesn't look like there's too much billable work next week, lots of people are still on leave]

    CRM bookings

  59. Rules to Better CRM Data

    Product Owner of a Company/Account should be included into the Job Title.

    Product Owner of the Company can't be determined by looking the contacts list
    Figure: Product Owner for the Company can't be determined by looking the contacts list
    CRM user can easily determine who is Product Owner of the Company/Contact.
    Figure: CRM user can easily determine who is the Product Owner of the Company/Contact.

Acknowledgements

Zune Vien
Adam Cogan
Peter Gfader


Benefit from our knowledge and experience!

SSW is the industry leader in Custom Software Development, Software Auditing & Developer Training.

Call us on +61 2 9953 3000 or email us for a free consultation

What does it cost? I’m not in Australia. Can you still help?