Friday, July 31, 2015

The Current State of Parature–Dynamics CRM Integration

You may have seen the video depicting the integration of Dynamics CRM and Parature and perhaps you are wondering how to set it up. If you have not seen the video, here it is (https://www.youtube.com/watch?v=JavkJPykyDY):

The video portrays an exciting CRM future where we have an auto-provisioning support portal and two-way communication between the CRM agent and the customer.

Reality, as is often the case, is not completely represented by the advertising but it is possible to achieve something close to what is presented in the video with a bit of work. I know because I just finished working on a project where we did it.

What Do We Get Out of the Box?

In an ideal world, for Parature and Dynamics CRM, there would be two-way communication of entities such as:

  • Cases
  • Articles
  • Contacts
  • Accounts
  • Activities

All this is, in theory, possible because both products have an API and, if they are sitting in the same Office 365 instance, they should be able to see each other.

At this stage though, the only entity that is possible to configure without code are articles and these do not sync between Dynamics CRM and Parature but, rather, the Parature articles appear in the Social Pane on Cases (and any other entities you need it to appear for).

Setting up Knowledge Base Article Integration

The ability to surface Parature knowledge base articles is still quite new. In fact, my most recent project was the first customer site to link an existing Parature instance to CRM Online. If you are new to both Parature and Dynamics CRM Online, the process is quite simple. Once you have bought them through Office 365 and set them up, from Dynamics CRM, you go to Settings –> Service Management –> Set Up Knowledge Base Management. This pops up the configuration window where you type in the details of your Parature instance.

image

That is it. The knowledge base articles then appear in the Social Pane on the entities you have selected it for (in the case above, Contacts and Cases). Unfortunately, if you are using Dynamics CRM On-Premise, it is not possible, at this stage, to link it to Parature in the way described above.

For customers with an existing Parature instance, the process is slightly more complex. From Parature, you may have noticed a button.

image

Clicking on this button requests an Office 365 Administrator login. Once this is provided, a mapping wizard appears so you can link your existing Parature users to users in Office 365. Once this is done, you are finished. As before, you will be able to go to Dynamics CRM and configure the knowledge base integration.

In terms of those users mapped, they will now have the option of logging in directly through Parature, as before, or authenticating through Office 365. In terms of setting up new users, once the mapping is complete it is not possible to add users directly to Parature; it must be done through Office 365.

With this in place, as mentioned the Parature knowledge base articles now surface in Dynamics CRM.

image

A nice feature is also that when the KB RECORDS tab is clicked on, the title of the Case is automatically inserted into the search box, bringing back relevant articles.

Mousing over the article also provides three action icons.

image

The first links the article to the Case, copying a reference to it into a custom child entity. The second pops an email with a link to the article in the body (and clicking this icon also automatically links the article to the Case. The third icon opens the article up for review.

Overall, the integration is very practical for the Case agent giving them the information they need, where they need it.

Syncing Other Records

For Contacts, Accounts, Activities and Cases, we must get our hands dirty with code. Initially we considered using Portal2Case but this proved too difficult to adjust to meet the specific needs of the customer. In the end, to move data from Parature to Dynamics CRM, we built a windows service which polled the Parature data on a regular basis and returned new and amended records, feeding them through the Dynamics CRM API into CRM Online. To move data from Dynamics CRM to Parature, we used plugins, firing on changes and record creations, which then communicated directly with the Parature API. Go here for details on the Parature API REST endpoint.

With this in place, it was possible for agents to work out of Dynamics CRM to manage Cases without compromising the advantages of Parature. Clients could still go to the Parature Web Portal, log a Case and this Case would pass from Parature to Dynamics CRM, linked to the correct Contact. The agents, through the knowledge base integration also had access to the Parature articles and could send these to the client, if required.

For clients logging Cases via email, the support email was redirected from Parature to a Dynamics CRM queue and the automatic record creation and routing rules managed it from there.

Parature’s concept of Actions was mirrored in CRM through a custom Activity entity called Case Comments. If the client added a comment from the web portal, this came into CRM as a Case Comment. Similarly, if the agent added a Case Comment to the Case, this appeared on the Portal for viewing by the client.

Future Possibilities

While the current system works well for the customer’s needs, extending the Parature web portal is difficult. One option being considered is to move from the Parature web portal to an ADX Portal. ADX integrates, without code, to both Dynamics CRM Cases, Accounts and Contacts as well as to Parature’s knowledge base. This means the portal would show CRM Cases and the Parature knowledge base and be a lot more extendable.

image

If you are needing a portal with access to both Parature and Dynamics CRM, certainly consider the ADX Studios Portal product. Although I have not tested it, for portal integration it is, to my knowledge, deployment agnostic and will therefore work with CRM On-Premise as well as CRM Online.

The End Result

Although the coding of the integration between the two systems was very complex (kudos to Phil Mitchell for pulling off this lofty goal), the end result was similar in functionality to the integration video put out by Microsoft. It was possible for someone to log a request and for an agent to action it in CRM. The agent then replied to the request and this reply appeared in the client’s Case on the Parature web portal.

I imagine, over time, the integration between these two products will become tighter so unless the need is urgent I would probably recommend against coding your own integration. In our case, project deadlines meant it was necessary. However, if you have access to Parature and Dynamics CRM and want to play, setting up the knowledge base integration is very simple and worth reviewing.

Monday, July 27, 2015

Samsung Revisited and How ChromeCast Makes Everything Better

At the start of the year I bought a Samsung Galaxy Tab S 10.5 and reviewed it. My assessment at that time still reflects my thoughts on the device; a great screen but it is, ultimately, a game device for the kids. The problems at the front of my mind these days are:

  • Space is limited (16Gb on-board with a 32Gb micro-SD) which hinders game-caching leading to slow load times, hinders updating and means constant juggling as apps get installed
  • User management is annoying. Unlike Windows, where all users can be made equal, with Android there is the owner (the main administrator) and all others. In my case my wife is the primary user but I am the tech in the family but, to do tablet maintenance, I am forced to log in as her.

There have been a delight though. Outlook for Android (released after my review) is great. It automatically filters the inbox to the mail that matters. If I can figure out how to do this in Outlook 2013 I will be in Outlook nirvana. Every weekend I fire up Outlook on the Samsung to make sure there are no important emails I have missed

In terms of the apps I use today with the Samsung, these are:

  • The games my son plays (Jurassic World, Clash of Clans etc.)
  • Outlook for Android
  • My Bar Free (you tell it what is in your bar, it tells you what cocktails you can make)
  • Chrome (not often used but there when I need it)
  • Netflix (more of this later)

In my original review I lamented that I had not found a television remote app for the Samsung to control my television. With ChromeCast that is now moot.

The Netflix Workout

My journey with ChromeCast started with Netflix. I got a free six month subscription to Netflix via my internet provider. As I am on a plan with unlimited bandwidth, binge watching soon ensued. The chief problem is my TV is a plain LED TV, nothing smart, not even a USB port. Every time I wanted to watch Netflix, I had to hook up one of the house laptops to the HDMI port of the TV. Then, to browse programs, I kneeled at the media altar working the touchpad of the connected laptop. In a world of remote control, this was too much like exercise.

A bit of research revealed that there were devices available which plugged into the HDMI port and communicated wirelessly to a computer.

Miracast vs ChromeCast

Given I am talking about Android, I will not dwell on Apple TV, which does similar things for Apple. For the rest of us, it seems to be a choice of two: Miracast and ChromeCast. Miracast is, in effect,  a wireless HDMI standard; whatever is on your device screen is transmitted to the television.

For my purpose, Miracast was cheaper but had disadvantages. The first was flakiness, which I had experienced at clients who tried to use Miracast for meeting room presentations; connection was temperamental. More importantly though, whatever is on your screen gets transmitted to the television. So, no screensaver, no using the device for anything other than transmitting, the device is, effectively, locked.

ChromeCast works differently. ChromeCast is a dongle which plugs into the HDMI port of the television but it is, in effect, its own Android device. It is like an Android computer whose screen is the television and whose keyboard is your device which connects to it via your home wireless network. This means that once ChromeCast is transmitting, you can use your controlling device to do other things like read email, browse etc.

How ChromeCast Works With Apps

With apps on the Samsung, you look for the ChromeCast icon image and this means you can stream it to your television at the press of a button. Netflix is one such app but there are plenty of others. I am also a fan of Pandora and YouTube which also work.

Another is the OneDrive app. What is nice about the OneDrive app is if you have movies stored in OneDrive/OneDrive for Business, you can stream them to the television through ChromeCast without leaving your armchair. OneDrive is now my media player, thanks to ChromeCast.

One final cherry on the ChromeCast pie is the ability for it to control the television through the HDMI port. While I cannot get my old Viera to turn on, starting a cast will automatically change channel to the HDMI channel which is quite a neat trick.

ChromeCast for Windows

For Windows, ChromeCast works with the Chrome browser. This provides lots of options. Firstly, if you browse to, say, Netflix or YouTube and click the ChromeCast icon, the app opens on the ChromeCast dongle, just like it would from an Android device. You also have the option of streaming the screen or, interestingly, a tab on the Chrome browser.

image

This also opens the option of playing with browser options and add-ons. While you cannot mess with the settings in the Android version of Chrome, you can in the Windows version. This means you can, in theory, alter the settings and use Chrome add-ons, to display precisely what you want in Chrome and then cast the tab from your Windows device. This provides a similar experience to the Android device with the power of Windows Chrome and with the ability to minimise the tab and do other things on the device while still streaming.

Conclusions

For a modest price, the ChromeCast has revitalised my Samsung, turning into an internet streaming device for the media I do not own and turned my OneDrive into an online media player with unlimited storage for the media I do own. Similarly music is just a couple of clicks away with no armchair departure required. No more plugging laptops into HDMI cables and it works with everything I own, Windows and Android alike. I could not be happier.

Friday, July 24, 2015

Tracking the Movements of a Case

I am finishing up with my current employer and, in the process, finishing what has been a really interesting project using Dynamics CRM for Case management. The project forced me to learn about new CRM features like routing rules and email conversion as well as Parature integration; all of which will prove rich sources of inspiration for future articles.

In this article I will go through a bit of configuration I set up to track the movements of a Case.

Business Context

In our scenario, the client wanted to see if a Case bounced around the different areas of the business or not. To do this, they wanted a log of where the Case had been and for how long. In our situation I was using Teams instead of Queues as the client wanted the areas of the business to take responsibility (ownership) for the Cases assigned to them. Teams lent themselves nicely to this.

Setting up the Case Audit

The first step was creating a new entity to hold the history of the Case movement. I called this the Case Audit. The fields it had were:

  • Description: The default Name field for the entity
  • Created On: A date field
  • Previously Assigned: When the Case had been moved previously
  • Owner: A Team or User
  • Case Status: The Status Reason of the Case
  • Hours in Queue: Time with a particular Owner

image

This was a child entity to the Case. In the above example, the Case moved from being created by Ranjeet at 12:28pm to the Records (transcript) team to being picked up by me for actioning. You may notice that I am exploiting the Owner of the Case Audit to track ownership of the Case.

Creating the entity was straightforward, populating it was a little trickier.

Populating the Case Audit Log

To populate the log, I used a real time workflow.

image

Looking at when the process runs, it runs:

  • After the record is created (creating the first entry in the log)
  • Before the status changes
  • Before the record is assigned
  • Before fields change (Owner, Status, and Status Reason)

Then, when it fires, it firstly checks if the Case is Cancelled or Resolved (the act of trying to create a log entry on a closed Case was preventing the Case from being reopened so this got around that).

Assuming the Case is active, it then creates a Case Audit record to mark the change and changes the Last Assigned Time on the Case (a custom field).

The values for the Case Audit were:

image

The Name field gets populated with sensible values to assist with queries. The Previously Assigned takes the date time value from the Case record, just before it is updated in the next step by this workflow. The Owner of the Audit record is set to the Owner of the Case (meaning we can store a Team or a User), and the Case Status simply takes the Status Reason of the Case. Finally, the Hours in Queue is a calculated decimal field.

image

The reason I used DiffInMinutes and divided by 60, rather than DiffInHours is because the Diff functions return an integer, which for quick owner transfers simply was not accurate enough. By using minutes I could track the movement in hours but with two decimal places.

So, with this workflow, I got a new entry every time the record changed status (except when re-opening because of the error, which could be worked around with a second workflow, if required) and every time it was assigned to a Team or User.

Charts and Measures Available

With this in place and a few other tricks, a wealth of measures are now available. Firstly, using my record-level graphs trick, on the Case record it is possible to see the history of the Case and how long it had been with each Owner.

image

While the graph is only for one day in the above example, if the Case remained open across multiple days this would also be reflected in the above graph. On the Case, we have the following measures.image

The Initial Queue, Latest Queue, Moved Off Queue (when someone took ownership), and Queue Hops (how many Teams the Case has been to) are populated by a second workflow running after the change in ownership. The Hours in Queue measures how long the Case bounced around teams before being owned by a user and is a calculated field using the Case Created On field and the Moved Off Queue. The Hours To Resolve is a calculated field using the Moved Off Queue and the Modified On field which only populates if the Case is resolved (calculated fields can be conditional).

Non-Working Hours is a rollup field, looking at the Case Audit entries and summing up the Hours in Queue values for entries with a status other than In Progress (rollup fields can be conditional). Finally, the Last Audit Entry is the field populated by our workflow and used to generate the next Case Audit record.

With all these in place, we can also generate charts such as the average hours Cases stay with a Team and the average time for resolution.

Conclusion

With some of the newer tools of Dynamics CRM such as calculated fields, rollup fields and real time workflows, we can provide insight into our CRM data without resorting to BI tools or exporting to Excel, giving instant feedback to the business. If you have not yet played with these new features, I strongly recommend giving them a try.

Tuesday, June 30, 2015

Top Ten Secrets to a Successful CRM Deployment: Part Three–Technology

This is the last part of my “Top Ten” series from my MS Dynamics World talk “Secrets to a Successful CRM Deployment”.

Part One went through people aspects of CRM deployments
Part Two was about process issues with CRM deployments

This part goes through the new things in Dynamics CRM 2015 which contribute to a smooth deployment in order of, in my opinion, smallest to largest impact.

1. Data Sovereignty For Australia

This is really only for us folk in Australia. In the past, CRM Online was available for Australia through the Singapore data center. With the introduction of the data centers in Sydney and Melbourne, we now have the option of getting CRM Online without the data ever leaving Australian shores. Even the geo-redundant back-up stays in Australia. While data sovereignty is not a huge issue for most industries, for the finance industry there is still a lot of reservation about data heading overseas. One of the major regulatory bodies for the Australian financial industry, APRA, has, in the past, issued strong warnings about using online services.

While APRA’s position has relaxed over time, there is still concern in the industry about embracing the cloud. The new data centers remove this barrier by ensuring financial organisations can use CRM Online and guarantee the data stays within Australia.

2. Hierarchical Views

I talked a little about hierarchical views in my Corpse Relationship Management post. This new feature provides a graphical view of a list of records which are related to each other but is only good for one entity type at a time.

[zhierarchy%255B4%255D.png]

Where I see this helping deployment and user adoption is in helping users visualise their data in ways not possible before in CRM. For example, in the corpse example, where the hierarchy is the link of which zombies created other ones, it is clear that Jim Grim is very active at creating zombies whereas this information may not have been clear in the traditional form views.

3. Improvements in Business Process Flows

I must admit I have not yet fully embraced the flow bar at the top of the record forms but the idea of it certainly piques the interest of prospects during pre-sales meetings. The latest improvements bring it closer to being an integral part of the Dynamics CRM experience.

Process flows have come a long way in a relatively short period of time; they can now span multiple entities and multiple processes, for a given entity, are possible. The latest improvement is branching. Branching allows us to put conditionals into our process reflecting more closely what happens in the real world.

If you ever look at a process diagram for a real business process, more often than not there is a point where a decision needs to be made. Here is part of the standard sales process from SureStep. The green diamonds are decision points.

image 

With the new branching options, it is these green diamonds that are managed with process flows. With a better alignment to actual processes, flows can be implemented in CRM and give a new employees a clear, guided process to follow, improving adoption and allowing them to learn the system and the business processes quickly.

4. Excel Export Fixed

Something that is a regular source of confusion for new users is the Excel export which is, more accurately, an XML export. When the export hits Excel, is throws an error because Excel is not sure if the XML file is Excel-compatible. Thankfully, the Excel export utility has been rewritten from the ground up and now exports ‘proper’ xlsx files. These work without error in Excel and work with Excel Online (the old format was incompatible with Excel Online).

One of the strengths of Dynamics CRM is their focus on giving normal users the power to analyse their data without requiring strong technical knowledge or expensive consultants. Fixing the Excel export so it works as the user expects is a great leap forward in assisting users to fully embrace Dynamics CRM.

5. New Email Editor Improved Business Rules

In my talk, I referred to a new email editor in Dynamics CRM. Unfortunately, Microsoft did not deliver on this one for Update 1 and we still have the old email editor with the new one being only available in Dynamics Marketing. However, Microsoft have improved the business rules as I discovered today when configuring a system for a client.

Business Rules (the configurable form behaviours) now allow for If-Then conditions and the grouping of conditions with AND/OR logic. So, for example, if you need a field to appear based on the value of two other fields, this is now possible.

While much could be done with JavaScript in the past, these new changes mean many form behaviours can be managed through codeless configuration. Making forms simpler and reactive to the user’s input is a great way to overcome forms which are “too busy” or “too hard to navigate”.

6. Folder Tracking for Mobility

A new feature which, for me, the jury is still out on is folder tracking for mobility. This feature brings the tracking capability, previously only available to Outlook to any device. In essence, the user simply drags an email to a special folder and CRM picks it up and tracks it to CRM.

Tracking is a very popular feature of the Outlook client and is often the driving reason for using the Outlook client. Bringing similar capabilities to any mobile device is likely to delight those users who use CRM on the road and also need an efficient way to get emails into the database against key records.

7. Custom Help Web Pages

An unsung hero for Dynamics CRM 2015 is the custom help web pages. While it was possible to create custom help web pages back in the v1.2 and, from memory, the v3 days, when CRM Online came out it became a lot harder. Thankfully CRM 2015 allows you to pepper CRM help with your own content. This is perfect for customised systems where the user may need assistance with a new entity or for the new user trying to get to grips with the system.

8. Global Search

Every user I show this to, loves it. CRM now sports a search box at the top of the web client. Typing in a key phrase searches multiple entities at once and displays the results in a friendly format in a flash, making it easy for users to quickly locate the record they are after.

In the project I am working on now, which is a customer support system, typing in the name of a client brings up their Contact record but also any Cases (Enquiries) they have raised.

image

For sales, this could be Accounts and Sales Opportunities. I created a similar search using workflows a number of years ago but there is no need for mine now that it is baked into the product and infinitely easier to administer.

9. Navigation Improvements

Dynamics CRM 2013 introduced the new touch-friendly navigation. The problem was it was not very mouse-friendly and, to locate areas of the system, often required scrolling around big tiles.

image

This is now fixed, going to a cascading menu structure which works for both touch and mouse users.

image

Without a doubt, for my clients moving from CRM 2011 to 2013, this was the biggest complaint. Those who have subsequently moved to CRM 2015 could not be happier and as this is the part of CRM users interact with the most, it is great Microsoft have made it so adoptable for all types of CRM users.

10. Themes

Many, many years ago, when I worked with SalesLogix, there was one thing I did to every demo system to guarantee a smile on the prospect’s face: add their logo to the system. That was over 15 years ago so it is great to see Microsoft bring the ability to add themes to Dynamics CRM.

With the new themes feature, you can add a logo to the web client and change the colours used in the product. An example of this is the canary yellow you can see in the previous example (their choice, not mine). Branding CRM with the client’s marque and colour palette helps the users see it as their system and warm them to it.

Conclusions

While more product-specific than the previous two articles, there is a lot to love in Dynamics CRM 2015 and Update 1 from a user adoption perspective. If you are still on CRM 2013, seriously consider upgrading for the new menu and if you are about to implement a new CRM system, consider using themes to make the system truly part of your business.

I hope you enjoyed this set of blogs and, while a set of books could be written on tips and tricks for CRM implementation and adoption, with any luck this provided some insights into how to manage the people and processes around CRM and what features of the product you can use to ensure the system gets the opportunity it deserves to thrive.

Saturday, June 27, 2015

Top Ten Secrets to a Successful CRM Deployment: Part Two–Process

Microsoft and Google have done it! Live Writer again talks to Blogger so my migration to WordPress gets a stay of execution. Well done giants of industry, we appreciate your efforts.

This is part two of three ‘top ten’ lists of things which can make or break a CRM deployment. In the first part I talked about people. This time it is about the process.

1. CRM is More Than Sales

In the beginning there was Sales Force Automation but CRM has come a long way since then. CRM now has Service AND Marketing but it is more than that as well. In fact, plenty of CRM systems have nothing to do with any of these. CRM systems manage business processes and are especially good when those processes involve interacting with external parties. I have seen CRM systems which manage employee of the month nominations, floor safety audits, and online auctions.

When implementing a CRM system, think of it as a system to manage processes, well defined or otherwise. Thinking in terms of sales, marketing or service may hinder, rather than help the design and never discount bringing a process into CRM because it does not fall neatly into one of the ‘standard CRM modules’.

2. Process Re-engineering is Inevitable

Dynamics CRM is very flexible, and there are often at least three ways to achieve an outcome, but every piece of packaged software has design limitations or assumptions built in. A classic assumption with most CRM systems (Dynamics CRM included) is a person only works for one company. In the case of the medical industry, this is a very poor assumption with doctors often splitting their time between working at a hospital, running their own practice and perhaps working in a research institute.

Of course these limitations can be worked around, as I have written about in the past, but this may lead to a process which is unfamiliar to the end user or, perhaps, requires a click or two extra than anticipated. Similarly, if CRM is replacing an existing system, processes may be in place which are not ideal but are simply “how things are done”.

CRM implementations are an excellent opportunity to review how things are done and how they can be improved and often the system and the humans meet somewhere in the middle, both adapting to the other.

One recent presales meeting I was in, I explained this very idea that a CRM implementation is an opportunity to assess the business’ processes in light of the technology being brought in. The client immediately saw the possibilities of revitalising the business through the technology catalyst.

3. NEVER Replicate an Old Process in a New System

Similar to the previous example, the idea that you can take an old system and simply imprint it onto CRM is a recipe for disaster. One project I remember in particular moved from CRM partner to CRM partner in Australia, each time ending in a lot of money spent and little to show for it. The problem was the client, a very large sporting association, wanted their old membership system replicated perfectly in CRM. This was a system which had evolved literally over a hundred years with hundreds of business rules hard coded into the back end of it.

Some of these rules related to war time or long-forgotten Sunday trading laws; some rules related to membership levels no longer used in the club or held by any member. Regardless, the client had no interest in reviewing the list, had no interest in reviewing its processes, and wanted CRM to look exactly like the old system.

This approach always fails because it discards all the benefits of a packaged platform system like Dynamics CRM

image

Dynamics CRM has forms look a certain way and has the layout of the controls work a certain way. This makes it easy to set up and work with. If you want everything to behave in a very specific way, build the system from the ground up. CRM has the advantage of pre-configuring commonly required components such as Outlook integration, role-based security and activity management. If you are not going to take advantage of these or wish them to be completely rebuilt, CRM is not for you.

The other aspect of this is in refusing to review your existing processes, in light of the new system, you run the risk of making a bad process run more efficiently. If you annoyed your customers before through a bad experience, imagine how successful you will be when you do it faster and with the capacity to do it to more people.

4. Bad Data = Bad System

Data cleansing is never easy or pleasant and it is very tempting to ignore the problem. To do the job properly requires a dedicated team of data ninjas working full time for weeks or months. For a CRM system, the best options are either bite the bullet and sort the data out or throw away the majority of it and just bring in the data you know are good. The worst thing you can ever do is bring your bad data into CRM with a view of sorting it out later.

I am ashamed to admit I once did this for a client. As well as the Account and Contact information from the users which, for the most part, was clean, they also had the legacy accounting data, also with Accounts and Contacts. We brought it all into CRM and soon discovered our mistake. The accounting data was a double-up of the user data and also brought in a bunch of old, irrelevant records. There was no clear source of truth and we were heading for disaster. Fortunately we saw the error of our ways and deactivated all of the accounting records before go-live.

While CRM has lots of excellent tools for data management, from a user adoption perspective you have lost the war before the battle has begun if you start with bad data. With multiple data sources, there is never a clear source of truth; no one knows where the correct version of a contact record resides. If you bring all your data sources into CRM without cleansing, all you do is centralise the bad data so there are now three versions of the same record in the one system, all of which are potentially incorrect. Users will learn to mistrust the system and will likely revert to their old systems and processes.

5. Big Bang = Big Failure

I am not a fan of fixed priced projects. One of the reasons for this is because it encourages the client to try and get as much as they can as quickly as possible and, in really bad cases, the project becomes more about scope juggling than about what the business actually needs.

In the worst of cases, the client demands a big bang approach. All areas of the business are going to switch to the system all at once and every possible item on the wish list will be implemented. Cost-benefit considerations are thrown out the window, as are product roadmaps. Everything will be built, even if it takes 18 months and 6-7 figure budgets.

The biggest problem with the big bang approach is most of what is built is obsolete by the time it is finished or was never needed in the first place. Where this is commonly seen is in reporting. With the prospect of a new, centralised system, management start brainstorming every possible report they can extract out of the system. They specify the precise format and, inevitably, the only way the reports can be built to meet the specification is with SQL Server Reporting Services (SSRS). SSRS reports are technical and expensive but are very powerful and flexible. In some cases I have seen literally 100 reports specified even before the first field has been added to a form.

No one sees a bloated system which does everything the business needed a year ago and nothing the business needs today as a success. Budgets are gone and the system is locked in, doomed to become a white elephant. In the case of reporting, the client often discovers they can get the information they need with Excel and Advanced Find with no need for expensive report writers.

6. Keep Things Simple

My position is to implement a good platform that does at least as much as the existing system and removes the severe pain points. Also, I try to keep coding to a minimum. It is very tempting for a junior consultant, especially one with a development background, to say yes to everything the client asks for, knowing it can be built with code. However, while the client may ask for something, if the cost outweighs the benefit, it will never been seen as a success.

While a client may not like that they have to do two clicks instead of one to perform an action and a button on the ribbon could solve this, if the time saving is not there compared to the development cost, “fixing” it should be resisted. I have a friend, also a CRM Architect/Consultant who likes pushing the boundaries. This is not necessarily a bad thing but he will often give the client one thing they want which they may not need because it is something unusual and exciting. Often, to deliver it, requires a bit of unsupported work and a fair amount of expense. Unfortunately, while the intent is good, when things go awry it is that part of the project which the client focuses on and not the rest of the system.

7. Plan For Phase 2, 3, 4…

The better approach to big bang is to phase the implementation. Phasing the implementation means intelligent decisions are made in light of where the product is heading and where the business is heading. Decisions on where limited budgets can make the most impact means CRM is shown in its best light. The phased approach also means the opportunity to work with the client over a longer period of time and to be a key part of their success. I have customers who I have literally worked with for years, solving different problems as priorities dictate and budgets allow. Phasing the project, in my opinion, gives the best possible chance for success.

8. Show the System Early and Often

I mentioned in Part One that using a demo version of the system in the workshop is a good idea. My position is show it off as much as you can. Even in the presales, while a meeting may be a meet and greet, there are times when a prospect I am meeting, tired of PowerPoint and promises, has insisted on seeing something there and then. Always have a demo system ready to go even if you do not intend to use it (it has literally won deals for me in the past). I believe in the product I sell and know that the more the client sees it, the more comfortable they become with it. Often, in the early meetings, their biggest objections get raised so having a system ready to tackle the issue head-on can be very powerful in influencing the decision.

While it is good to give the prospect as much exposure to the product as possible, leaving them alone with a 30 day trial is not. Without training, it is very easy for the prospect to become overwhelmed and feel the system is too complex.

9. Choose the Right Software For You

Despite what you may read on dynamics.com, while Dynamics CRM is a great product, it is not right for everyone. One of the worst reasons I have seen for organisations to select a software package is because someone used it once and liked it. It is a good reason to consider it but no piece of enterprise software lives in a vacuum so it is essential that your CRM plays nicely with the rest of your local ecosystem. Thankfully, most of the projects I have worked on have obeyed this rule; Microsoft shops go with Dynamics CRM and Apple/Google shops go with Salesforce.

A client whose On-Premise CRM system I implemented a couple of years ago is now looking to improve the reporting capabilities of the system by leveraging the power of SQL Server and setting up a data warehouse. I recall at the time of implementation there were stakeholders, familiar with Salesforce, who felt Dynamics CRM was a poor choice for the business. Time has proven Dynamics CRM has done its job and now, as it expands in the business, it can efficiently make use of the business’ Microsoft stack.

10. Build it for the Future

Funnily enough I am in this situation now where I must choose to sacrifice work today to set up the client for the future. I have a client who is implementing CRM and has needs which I know will be addressed directly in the next six to twelve months. The lesser consultant would take the client’s money and build what they know will be obsolete in the near future but this is a poor approach.

The better approach is share what you know (without violating Microsoft NDAs of course) and allow the client to make a reasoned judgement. If the requirement is urgent and waiting will cost the business too much then so be it but, usually, the client can wait and, as a consultant, you gain the trust of your client. Short term consulting dollars at the expense of the client relationship is never worth it.

Conclusions

Just as managing the people in the project is vital for success, so is managing both the implementation process and the business processes which will be impacted by the project. For the implementation, guiding the client appropriately for the long term is vital. For their processes, embrace that change will come and help them manage it.

Saturday, June 20, 2015

Top Ten Secrets to a Successful CRM Deployment: Part One–People

I recently gave a talk for MS Dynamics World on “Secrets to a Successful CRM Deployment”. In the talk I gave 30 tips on maximising the chance of success for CRM projects, broken down into three categories (people, process and technology), making it a top ten list for each.

image

This month I will go through these three top ten lists and highlight some examples where I have seen CRM project flourish or come unstuck because of these factors. This article focuses on the people aspects of a CRM project.

1. Recognition of a Problem

In a 12-step program, the first step is recognising there is a problem. So too with CRM implementations. If the people whose destiny is to use the CRM system see no value in implementing it, they will protect what is familiar to them and frustrate the implementation of the new system.

Sometimes this resistance is a force of one and sometimes it is the entire user base. On one project I did a few years ago, the resistance was the brains behind the old system who refused to admit their system, cobbled together, piece by piece, over a decade, was no longer appropriate for the business. While a key stakeholder in the implementation of the new system, he slowed the process down significantly through constant challenging of the new system and trying to find reasons to stay with the old system. His challenges had to be addressed and absorbed significant time in workshops, meetings and emails.

While challenging a consultant’s design is healthy, the ultimate goal for everyone is solving the problems of the business. Pretending there are no problems to protect one’s ego or to maintain the status quo is a poor foundation for a successful project.

2. Definition of Success

A key part of a successful CRM implementation is recognising what success is. This needs to be defined early and documented for reference. I usually define it as part of the introduction to the project’s functional specification.

Without a clear, documented definition of success, by the time the CRM project is implemented (which can be months later), the issues which seemed insurmountable in the old system are a thing of the past and additional goals emerge which may not be as easily addressed. Clients then focus on the new goals and get frustrated when it proves difficult to address these within the scope of the existing project.

No one wins. The client feels cheated, the consultant feels unappreciated and the system risks not being adopted.

One project I worked on was introducing Dynamics CRM and a web portal to an organisation. The key driver for the project was stakeholder/activity management. This was very difficult with their incumbent BONA system. Dynamics CRM, with its Outlook integration was exactly what the customer needed. However, their web server setup was a nightmare and getting the portal to work was a slow process, delaying the project.

Success was not defined early and, after the system went live, it was the problems with the portal which was at the front of mind of the client, not the great leaps they had made at managing their customers.

3. Buy-In By the Executive

Change is modelled from the top so if the executive are not behind the initiative, even if there are advocates elsewhere in the business, the culture the executives preside over will prevail. Lip service is not enough. The senior project sponsors must demonstrate their support in strong, symbolic ways. Examples I have seen include promoting a naming competition for the new system or ordering bright t-shirts for the trial users to wear. It can even be as simple as attending and participating in the CRM design workshops. After all, their time is important so if they are willing to sacrifice half a day or a day in a workshop, the initiative must be important.

4. Use the Workshop to Generate Buy-In at the Coalface

Officially we do workshops to gather requirements and understand the needs of the business. If this is the case, why not do it via a questionnaire? Other than the fact that every question generates at least two others, design workshops are powerful tools in ensuring the success of an implementation.

Design workshops need to be done with a demo system at hand for full effect. This has multiple benefits. The people in the workshop, often the trial users, gain familiarity with the system. Also, if there are specific doubts about whether the system will be able to meet the needs of the business, these can be addressed directly with a live demonstration.

The workshop participants will see a system modified to suit their needs, and spread the word about the benefits it will bring when they speak to the curious co-workers outside of the workshop. So many times people who walk into a workshop on day one with cynicism and low expectations leave with excitement and optimism at the end of the week.

5. Involve the Dissenters

More often than not, a CRM implementation is a political landscape. We have touched on those blind through self-delusion in point number one but there are many reasons why there may be dissenters on a project:

  • People who resent “high-paid” consultants doing a job they are perfectly capable of
  • People who know Salesforce/Access/SharePoint is better and Dynamics CRM can offer no real value
  • People who fear a loss of power and influence with the removal of old processes and systems

In all of these cases, bringing the dissenters closer into the project is the best approach. For those resenting the consultants, show them that a CRM implementation is more complex than just installing software; that there is a subtlety to designing the system that, if done correctly, requires an intimate knowledge of the product and experience gained through many projects before this one.

For those who see no value in Dynamics CRM, challenge them and work with them. Through the workshops they will see value they had not considered and realise the picture is often a lot bigger than they had anticipated.

For those fearing the loss of power with the change, give them the opportunity to become the new system expert. If people within the business look to them for ad hoc system support, it will be natural for these same people to turn to our would-be dissenter for support in the new CRM system. Let them become that strong advocate and guide.

6. Get a Partner/Consultant Involved

For an unscrupulous CRM consultant there is nothing better than hearing that a company is managing a CRM implementation internally without a CRM specialist. The reason is that in three to six months time that same company will be begging for help and to unwind the damage will cost at least twice the amount if the company had been guided correctly from the start.

Back in my “Upgrade vs Rebuild” blog from a few weeks ago, I spoke of a Dynamics CRM system stuck in version three. What I did not explicitly mention in that article was the system had been an internal implementation. The system was built with internal staff and then left for a decade until it fell apart. If a CRM consultant had been present, even if the initial design had remained the same, as new versions of CRM came out, the client could be encouraged to upgrade and evolve the system as functionality in Dynamics CRM improved. Adopting this approach would result in a system with potentially less unsupported code and better aligned to the contemporary needs of the business.

Without fail, and not because of self interest, no CRM consultant or partner will recommend a customer go through a CRM implementation alone. Even when I am introduced to CRM opportunities and determine the company I work for is a bad fit for the project because, for example, the client is too small to be effectively serviced by a medium-level consultancy, I ensure I introduce the client to someone who can assist them. No one ever thanks you for throwing them under the bus.

7. Make Sure You Have a Functional, Technical, and Implementation Consultant on the Project

While the skills may reside in one person, all three are necessary to ensure a good design for the system. Without a good functional CRM consultant, the project runs the risk of over-engineering. A good CRM developer can make Dynamics CRM do anything. The job of a functional CRM consultant is to make sure they do not need to. Many times a complex interplay of plugins, web pages and entities is proposed to solve a problem when a clever dialog or workflow gets close enough to meet the needs of the business for a fraction of the cost.

Without a good technical CRM consultant (developer) the system is ham-strung. With every new version of Dynamics CRM, there is more that can be achieved through configuration. For example, I am making good use of the new Service Management capabilities of Dynamics CRM on a current project which, a version or two ago, would have needed multiple plugins to achieve a similar outcome. However, there is always a necessary part of any CRM system which configuration cannot achieve. A good developer changes what would otherwise be a manually-intensive process into a button click. A creative developer who considers the cost-benefit of their work is worth their weight in gold.

Finally, there is the implementation consultant. For on-premise implementations, without a consultant with a deep server implementation spike, the project is heading for disaster. Client networks are never perfect so having someone on the project that can navigate Active Directory, set up claims based authentication and cluster servers is essential. For online implementations, the skills are different, focussing on things like Azure and Office 365 knowledge but the necessity for their presence is the same.

I have seen over-engineered projects which cost a fortune and been thrown away because of the developed complexity. I have seen projects with frustrating manual processes because the project did not have a good coder on board to recognise where they could provide delights to the business and, finally, I have seen projects trying to navigate broken authentication, aging, overworked servers and flaky network routers. With the right team, obstacles the size of mountains become gravel on the path.

8. Get the Executive to Tell You What is Important For Reporting

This point, and the next point, talk at the Ying-Yang relationship between the end users and their managers which I talked about four months ago. A key function of a CRM system is to inform the business to help them make improvements. In the project I am on now, we are implementing an enquiry management system built on Dynamics CRM Online and Parature. The manager of the customer service agents has very clear ideas on the kinds of things he wants to monitor.

This is great because, when a consultant knows that the outputs of the system are, he can work to ensure the correct inputs are in place to generate the required information. In this particular project, the manager is keen to know things like:

  • Average length of time a Case remains in the queue before being picked up
  • Average length of time per day for Case resolution
  • Average time a Case remains with each team before being passed on or resolved

Knowing these key parameters means the right fields, charts and dashboards can be added. This will ensure the management get the information they need to guide the business.

9. Make Sure it is Practical for the Users

Setting up all the reports in the world will not help if there are no data going into the system. Therefore it is essential the system is practical for the users.

A project I did quite a number of years ago was my first at a new employer. Being keen to please and being a little less wise than I am today, I fell into a number of pitfalls. Firstly, there was no end users in the workshop. The general manager assured me he knew exactly what the end users needed and the workshop would be me and him. In fact, the general manager knew exactly the 200 fields he needed to generate the reports from his sales funnel and assumed the end users would have no issue filling in the virtual paperwork. He was wrong.

The system went in and only a small fraction of the fields were ever populated, much to the general manager’s frustration. The system was not well-liked because of the busy forms and languished for quite a while. Thankfully, the client eventually upgraded the system which provided an opportunity to revisit the design and, this time, end users were involved leading to a much better system.

10. Training is Essential

When presented with the CRM project Gantt chart and a large associated cost, a common focus for a client is to look for creative ways to cut the costs. The first place is often training, followed closely by the design workshops. While workshop questions can be tackled offline (see point four for why this may not always be a good idea), it is much harder to train effectively via email.

A sure-fire way to cripple user adoption is to not show the end users how to use the system effectively and efficiently. It is guaranteed that users will return to old systems or do the least possible in the new system as everything is just a little harder than it should be.

This is so common it is hard to think of a single example but, often in pre-sales meetings, if the client has an existing implementation of Dynamics CRM and they acknowledge that no one really uses it, the root cause is a lack of user training.

Conclusions

I am sure other people-related issues come to mind as you read my top ten, and feel free to add them to the comments, but what should be clear is that a CRM implementation is much more than a software implementation. The success of a CRM project is strongly dependent on the people involved, on both the client and consultant side and how they engage with each other. Regardless of how great Dynamics CRM is, without careful consideration of the people engaged in the project, a project has a strong risk of being another cautionary tale in someone’s blog.

Saturday, May 30, 2015

Upgrade vs Rebuild, Interest vs Responsibility

Apparently blog writing software worldwide has been knocked out by Google’s recent turning off of an old authentication method. If, like me, you use Blogger, the good news is Microsoft and Google are coming up with a joint solution to the problem. If that is not good enough, you can create a WordPress blog site and import all of your blogs. I will give them a week or two before making the jump.

This week’s blog is inspired by a piece of work we just completed and the follow-on work which may result from it.

The Proof of Concept

Within their industry, the client checks the compliance of service providers through regular visits and tracks what measures need to be applied to meet the legal standards required. In some ways they are similar to restaurant health inspectors. They were managing this process through Microsoft CRM v3 (yes, this was before it was called Dynamics CRM). Understanding it was time to move on, they wanted to do a trial upgrade to see what could be preserved and plan out the actual upgrade.

Microsoft CRM v3 was the second version of CRM after v1.0/1.2 (there was no version 2). This was the early days of CRM and introduced the Marketing and Service modules of the product. It also introduced the extension tables for the entities, allowing many more custom fields than was possible in v1 and allowed for the creation of custom entities.

Despite making the product ‘practical’ and propelling it past Sage ACT! which had, in my opinion, been Microsoft CRM v1’s closest competitor, it still had significant shortcomings. The predecessor of plugins, “callouts”, had significant limitations, as did the API, so it was no surprise that the client had been very creative in their customisations of the solution.

It was common for consultants to embrace ‘unsupported customizations’ in v3 because of the limitations. Unsupported customizations are changes made to Dynamics CRM which Microsoft do not support i.e. they cannot guarantee they will survive updates and Microsoft reserves the right not to support a system where they have been employed.

In this specific case, the client had added stored procedures to the SQL Database (a CRM no-no), and renamed CRM tables and replaced them with SQL views (a really big no-no). They had avoided the use of callouts and done practically everything with JavaScript, web pages, and windows services.

To upgrade to Dynamics CRM 2015, it is necessary to take the system through every version. So the upgrade went from Microsoft CRM v3 –> Dynamics CRM v4 –> Dynamics CRM v2011 –> Dynamics CRM v2013 –> Dynamics CRM v2015. Practically every part of the CRM architecture was revised and tweaked over these versions. For example, between v3 and v4, Dynamics CRM went from a pure on-premise solution to a deployment-independent solution i.e. CRM Online and, more recently, the product went from only supporting Internet Explorer for its web client to supporting all major browsers.

Not surprisingly, very little of the customizations survived the process, with most having to be removed just so the upgrade worked at all. Our own l33t CRM developer, Colin Slack, brought one of the major pieces of customizations all the way through so the client could see how the product looked in Dynamics CRM 2015.

The client was happy with what they saw and we set about putting a proposal together for the actual upgrade.

Three Options

It became clear there were three options available to us to get a working Dynamics CRM 2015 system:
  • Upgrade Lite: Literally get the current system and make it work in Dynamics CRM 2015
  • Upgrade “Proper”: Upgrade the code where needed but, with the significant advances in the configuration capabilities of Dynamics CRM, where possible replace what was JavaScript in CRM v3 with configuration in CRM 2015
  • Rebuild: Start with a fresh implementation of Dynamics CRM 2015 and determine what the business needs (as opposed to what was possible with CRM v3) and configure/customize as required
Costing the options it also became clear that the effort to rebuild was significantly less than the upgrade options and much less risky in terms of nasty surprises in the many years of code applied to the old system. It also allowed a more robust design. For example, JavaScript, the tool of choice in the existing design, relies on the user opening a form to trigger the code. This means the JavaScript will not fire on the import of records, if a web form is used, or if mobility options are used. While not part of the business processes today, it is inevitable that this will become a problem some time in the future.

The problem was the client was fixed on their path. All along they had assumed that the way to go was to upgrade and for us to convince them of a different approach was difficult. To complicate matters, the decision makers were reluctant to get the business involved in the intensive workshops necessary to understand the business processes for the rebuild but largely unnecessary for the most expensive Upgrade Lite option.

This discussion is still not resolved and it may be the business prefers to go for the more expensive option to avoid disruption to ‘business-as-usual’, discounting the ‘best practice’ option. Ultimately it is their business and they must choose the best path for them.

Conclusions

The reason I wrote this was to highlight that while upgrading is normally the obvious choice, it does not always mean it is the best choice and, under certain circumstances, rebuilding the system can make sense.

In this case, the most cost-effective, risk-averse option was rebuilding but, with the consultant having incomplete information, this did not mean it is the best option for the business. While, as consultant, we may get frustrated with clients who pay us money to hear our advice and then not heed it, it is ultimately the business executives’ responsibility if the business succeeds or fails, not ours, and we must respect that.