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.

9 comments:

Ranjeet said...

Good informative post!

Erik Juhlin said...

Very good post. We have stuggled with the Portal2Case solution and have had a lot of trouble with the SSO-configuration. Is there any chance that you will share your integration code on Code Plex?

Regards

Erik Juhlin

Leon Tribe said...

Hi Erik,

I'm not able to unfortunately as it was for a client project and I recently changed employers. With any luck either Microsoft will release something to make the job easier or Oakton will turn the code into a product. I'll let them know there is interest ;)

Leon

Erik Juhlin said...

I understand, thank for responding.

Regards

/Juhlin

Danish Naglekar said...

Hey thanks for the post. We have developed similar to what you have done but except a Windows service we have Azure Job. We are currently in-process of putting a error handling mechanism in place. Would you please let us know how you handled errors and conflict resolution.

Leon Tribe said...

Hi Danish,

From memory it recorded errors in the server logs.

Leon

Danish Naglekar said...

I believe you save on your server logs. As both are on cloud. And the windows service would everytime pick from Parature as well as Error logs to process records in CRM. Correct?

Leon Tribe said...

I'm not sure I understand your question but, in our case, both CRM and Parature were online but we were running an on-premise integration server where the Windows Service was. When it errored I believe it logged it on the integration server.

Debajit Dutta said...

Wonderful post. Many of the new features video shows things actually which need lot of work behind. However from the video it appears to the customer that it is present OOB in the product and the integration looks so easy. And then convincing becomes all the more difficult.

Probably next time I can link to this article for any new parature integration. :)