Global Donation Platform

Drupal 9 with global payments

Global Donation Platform

Drupology is bound by an NDA which prevents us from publishing specific detail about this client on any marketing materials.

The donation platform is build in Drupal 9 taking advantage of many of the existing Drupal modules to handle many of the requirements.

Localised donation forms and pages

One of the key requirements not met out-the-box was to deliver localised, translated copy of pages on the same URL, e.g. English speaking visitors seeing the home page will view English, Spanish will view Spanish, etc. without any language prefixes in the URL. Each country requires it's own donation amounts optimised for that market as well as collecting payments using countries' local payment providers.

Donation forms fields are also localised if, for example, a country requires a national ID to be collected. Redirects were also required as some countries will have their own websites to collection donations directly.

To achieve this functionality we worked with Acquia (an enterprise Drupal hosting provider) to customise their architecture ensuring multiple versions of the pages can be cached and delivered based upon the donor's browser and location details.

The resulting forms are delivered and targeted for the donor's regional settings with very fast cached response times. 

These forms can also be embedded in third-party websites.

Collecting donations

Drupal out-the-box, even with Commerce is not designed well to process donations without using a traditional "add to cart" user journey. The forms needed to be fast, slick, and easy to use. This meant developing a suite of modules to extend Commerce and Webform to allow the collection and processing of donations securely. 

The modules are developed with a plugin architecture, allowing easy addition of new payment providers if new markets wish to come onboard, ensuring donations are handled in a PCI compliant way.

Processing donor data

Donor data has to be sent to various different CRMs, depending on the donors location. In most cases the data goes to SalesForce via some bespoke middleware to allow other systems to populate the same CRM with data. This is a schema based UI data-mapping driven delivery system, meaning site editors can tweak and adjust the mappings without requiring a code deployment. Data is sent asynchronously to prevent bottlenecks, and responses are checked with a queued job at regular intervals to check for data processing response messages. This is also plugin driven to allow new data processing providers to come on board if required.

Optimised user journeys

Taking best practice and discovery from multiple multi-variant donation form tests, the form is optimised to help donors complete with as little friction as possible. Country administrators can build their own donation forms collecting the specific data they require to be processed as well as handling any local laws around collection (e.g. GDPR).


Since the launch of the initial Drupal 8 site, and now the upgraded Drupal 9 site, donations have significantly increased year-on-year as more markets and territories are onboarded to the platform. This means millions of dollars of revenue are used to help some of the worst effected areas of the world bringing genuine change to people's lives.

Get in touch

3 + 15 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

This form collects your name, telephone number (optionally) and email address only so we can contact you back about your enquiry. We do not and will never use your data for any other purposes other than contacting you regarding this enquiry and no data is shared with any third-party.