1st October 2014

DrupalCon Amsterdam BoF: CRM integrations with Drupal 7

John Ennew
Technical Director

I organised a Birds of a Feather (BoF) session at DrupalCon Amsterdam yesterday to discuss people's experiences of integrating Customer Relation Management (CRM) systems with Drupal.

The draw

It seems like it was a pretty popular topic as 12 people joined in a lively discussion which covered a number of areas.

General integration issues

We shared our experiences about integrating Drupal with remote systems, such as a CRM.

We agreed that writing custom integration modules can be a laborious process and prefer using a module to help with the integration to reduce the effort.

Integration modules

If a specific integration module does not exist then the generic Web Services Client module can be used to integrate to web services and provide Drupal actions based on Rules. For a non-Rules based approach, which requires more development, there is the Web Services Integration Framework.

Edge cases

Integrations also require consideration of edge cases, such as what to do if the remote system is unavailable. For example, should a user still be able to update their details on a Drupal website if the CRM is down for maintenance? If they are, how do you go about synchronising data later?

Possible solutions

These are the solutions we debated:

1. The group was in general agreement that there should only be one repository of 'the truth' and data should not be contained in two systems. In the case of a CRM system, user information should live in the CRM and cache what is needed on the website.

2. If the CRM is down, we agreed on a simple simple solution. Firstly, detect the system is down, switch off the connection to the remote system and display helpful messages if talking to the remote system was required. For example, "Our database is unavailable at present, we are working to correct the problem. Please check back later". The Web Service Integration Framework module takes this approach and protects sites by preventing connections being generated to the remote service if it's unavailable, which in turn prevents slow page loads.

3. More complex strategies are needed if it's critical that the website must be operational if the CRM is down. These include time-stamping requests so the data can be correctly reintegrated when the CRM returns.

Integration platforms

The group then discussed integration platforms.

These are cloud-based solutions which allow a simple mechanism for connecting two systems, such as Mulesoft, bip.io, cloudwork.io and zapier.com.

By integrating your Drupal site with one of these, you can use plugins to pass data straight to your CRM. This means less integration work as many CRMs come with plugins for these platforms already. Also, if you change your CRM provider, it's a simple matter of changing the settings in the cloud interface instead of writing or installing a new integration module on your site.

One disadvantage of using integration platforms is the rather large issue around trust. Afterall, your data will be passing through a cloud-based solution. Also, you rely on the quality of the plugin provided by the platform and custom requirements will still need to be addressed.

You can also setup and run your own integration platform using the Apache Camel project.

API quality

When writing custom integrations, the quality of the CRM's API needs to be considered. Some in the group said SalesForce provides a good mechanism for integration. Salesforce also has a Drupal integration module to help, which is maintained by the helpful people at ThinkShout, one of whom was at the BOF.

CRMs differences

When it comes to CRMs, there is a wide choice of systems available.

Drupal-based products, such as CRM Core and RedHen were discussed. The flexibility of Drupal means these are good starting points for custom CRMs for specific requirements.

Other CRMs provide a reasonable out-of-the-box experience but were generally thought to be more work to customise.

We also discussed Erpal, a complete backend business management solution, combines a CRM and invoicing system aimed at small to medium sized businesses.

As an organisation increases in size, it might need to move its CRM into a separate system, rather than being contained within their website or backend system. If this was the case then the group said it was worth considering larger platforms, such as SalesForce or MS Dynamics.

Finishing up...

There are many options in the CRM space and the BoF group went though many of the benefits and pitfalls.

It's clear that care must be taken when thinking about CRM integration. I advise having a look at what others have done before and which integration modules exist to help you before starting a custom integration.