-

5 Problems You May Encounter When Integrating Drupal with Third-Party Software

Integrating Drupal with other systems is a common part of creating or developing a website or web application. Although Drupal offers many tools to facilitate this process, encountering minor or major difficulties is simply inevitable. Based on our knowledge from several hundred projects for clients, we’ve compiled a list of the common problems. It’s worth familiarizing yourself with them to effectively avoid them and speed up the implementation of integration projects.

1. Problem with updating contributed modules

Drupal, as an open-source technology, relies heavily on contributed modules developed by the community. Integration with external systems also often uses such modules. They facilitate communication between Drupal and other platforms. 

The problem arises when the module stops being developed, and the external system continues to evolve. If the module's programmers don’t update it according to the new API requirements of external services, Drupal users may be forced to maintain the module themselves or create their own solution. Such situations are very rare in the Drupal ecosystem, but they can occur.

We had to deal with such a case about 3-4 years ago on one of the client's projects when integrating with Marketo, an email marketing and marketing automation platform. After changes in the system, the Marketo MA module we were using at the time wasn’t updated by the developers, and our programmers had to create a custom module for their needs, which solved the problem.

2. Problem associated with API changes

Another situation involves a case where we wrote our own module to perform a Drupal integration with an external system (because there was no ready-made solution or it didn’t meet the client's business needs). In such a situation, there is a need to constantly monitor and adapt to changes on the side of the systems with which Drupal communicates.

Most often, field names, data structure, or authentication methods may change. If these modifications aren’t detected and implemented in the system in a timely manner, the entire website may suddenly stop working properly.

The best way to minimize risks from API changes is through regular integration testing, which automatically verifies that connections to external systems work correctly. Unfortunately, many projects don’t include integration testing in either their budget or schedule. In such cases, API changes can go unnoticed until serious errors occur. Regular testing not only helps detect potential problems earlier but also significantly reduces the time it takes to resolve them.

The process of integrating Drupal with external systems can bring more or less problems.


3. External system authentication problem

Drupal has many ready-made modules to support standard authentication types, e.g., LDAP/Active Directory, OAuth, SAML, Keycloak, etc. The existence of such a solution simplifies the process of configuring the connection, but it’s not always easy. Knowledge or taking the time to read the documentation well is required. For example, to integrate Drupal with LDAP, you need to understand this protocol well. This allows you to correctly fill out forms with settings on the Drupal side.

If there is no pre-made module to integrate with a given system, setting up the connection can be even more difficult. It requires a good understanding of Drupal's API, which is responsible for user authentication, and the API of the external authentication system. Careful planning of such an integration to make it secure is key.

As part of our project work, we once got a system with such an integrated external authentication system that all we had to do was know the email address and send the appropriate request to the API to log in without a password! Therefore, when an authentication mechanism is created from scratch, without an off-the-shelf module, it’s essential to thoroughly test it for security.

4. Problem with ensuring the reliability of data flow

Another challenge when integrating Drupal with third-party software is ensuring the reliability of data flow. When two systems communicate with each other, you want to make sure that the data between them is exchanged efficiently.

Lack of communication, delays in communication, or loss of some data can cause the application to not work properly or to stop altogether.

Even a simple integration of a contact form with an SMTP server could be an example of such a problem. We build a web-based contact page, drive traffic to it, and encourage users to send an inquiry, and when they fill out the form, the email isn’t sent, and nothing happens. This is one of the more common examples that can result in large investments in marketing (e.g., Google Ads campaigns) that can yield zero results due to a failure to ensure the reliability of data flow.

A second typical example is integrations related to user authentication. If logging into Drupal is done through an external server (e.g., LDAP), then if that server stops working, users may lose the ability to log into Drupal.

If we have hundreds of thousands of users who want to log into the system at one time (e.g., when work starts at 8 a.m. or when they receive a company newsletter with a link to the intranet), the connection between servers must allow for a large data transfer. Limits in the connection between servers can make it impossible for some users to log in.

These are problems that are often not analyzed, and they can arise and add to the time-consuming work of performing and maintaining integration.

5. No third-party software testing environment

Another challenge that can arise when integrating Drupal with third-party software is the lack of a dedicated testing environment or so-called sandbox.

The test environment is crucial in the integration process, as it allows functions to be tested safely before they are deployed to production. With a sandbox, developers and customers can verify integration performance (e.g., subscriptions to an external newsletter) without risking impact on the running system or access to production data.

Unfortunately, not all third-party software offers a sandbox. In such cases, integration testing becomes riskier because each test is performed on real data. This can lead to errors affecting the user experience or cause unintended consequences (e.g., sending test emails to real newsletter subscribers).

The lack of a test environment also makes it difficult to iteratively test the features of a system or application on the client side, which would like to have control over how the integration works in practice before it’s fully implemented for users.

Problems when integrating Drupal with third-party software - summary

Integrating Drupal with third-party software can be complicated, but with the proper knowledge and approach, it becomes much easier. It’s crucial not only to know Drupal itself but also to have a deep understanding of the specifics of the systems with which it is to work.

Regular testing, tracking API compatibility, and skillful use of available tools are important elements that determine the success of an integration. While the challenges can be complex, proper planning allows you to build a stable and efficient connection between systems. This makes it possible to take full advantage of the capabilities offered by Drupal and external services.

If you encounter difficulties during the integration, it’s worthwhile to consult an experienced team of experts from a Drupal agency to help you carry out the entire process efficiently.

-