Visit the site

Visit the site

Organizations Involved

Community contributions

Shortly after the end of World War I, Eglantyne Jebb took to the streets of London to distribute leaflets with the image of two Austrian children, marked by the effects of war. Next to the photo, a message: "Our economic blockade has caused this. Millions of children are dying of hunger". On 19 May 1919, Eglantyne Jebb and her sister Dorothy Buxton founded Save the Children at a mass event in London. 

Early picture of Save the Children help.

Today, Save the Children is a leading global NGO dedicated to the protection of children and present in more than 120 countries. In Spain, it has offices in Madrid, Catalonia, Andalusia, Valencia and the Basque Country.
To carry out its important work effectively, Save the Children Spain needs a complex and multifunctional website from which to carry out operations as diverse as publishing news, managing communications with the press, receiving donations, collecting signatures, allowing users to create crowd fundings or provide training.
The website must also be perfectly aligned with the needs of the different teams working in the NGO, and especially with the tools of their choice. Thus, a perfect integration with third-parties is mandatory.

Metadrop and Save the Children have been working together since 2015, when a first website based on Drupal 7 was developed.

The website more than fulfilled its objectives, resulting in a solid and functional multisite Drupal capable of smoothly managing high levels of traffic and interaction by both anonymous and logged-in users.
Perhaps most importantly, the positive outcome strengthened the relationship between Save the Children Spain and Metadrop and provided a basis for closer collaboration in the future. Thus, in 2019 Metadrop was tasked with the migration of the existing site to Drupal 8 and the development of brand new tools and functionalities.
 

About the project

An NGO the size of Save the Children involves many people with different interests and needs. Their website had to be able to provide effective, powerful yet simple tools for all of them. Moreover, most of the functionalities were very specific and required Metadrop to create custom modules and extensions.

Requirements

For the Drupal 7 version, the following requirements were to be met:

  • A multi-domain website with a single codebase
  • The ability to accept anonymous donations.
  • The ability to create recurring memberships.
  • The ability to create signature campaigns.

A user custom campaign

  • For donations and memberships, a multi-step but easy to use checkout with custom validations and processes (donations to NGOs are subject to specific treatment under Spanish law)
  • A mini-site where the users can create their own crowdfunding campaigns for the NGO.
  • A mini-site where the users can enroll in e-learning courses.
  • A Search-API powered search engine capable of navigating the huge quantity of content available on the website.
  • A rich content type capable of creating complex pages, referencing other entities (such as signature or donation campaigns) yet simple to use by editors.
  • Advanced recollection of data to be sent to Google Analytics, including both client and server-side and custom metrics provided by the client.

In 2020, the migration to Drupal 8 was finished and the following requirements were added:

  • A complete migration of all content and users.
  • A system that allows journalists to easily sign up for press releases and access a release archive.
  • The ability to create and send press releases to different journalist audiences, with advanced filtering and preview.
  • A complete integration with Salesforce, both unidirectional and bidirectional and including a complete set of admin tools inside Drupal capable of detecting incidences, generating reports and exposing configuration.

e-learning page

What makes this project remarkable

The specific needs made this project a challenge that resulted in a great number of contributions and customizations. Metadrop had to develop a total of 36 custom modules, some of which - like the Salesforce integration - are full-fledged suites and include several submodules as well. Moreover, three sandboxes were created on drupal.org to satisfy some needs that were missing (like trying migrations or syncing payment states of Commerce orders) and will evolve in time into contributed modules.

Problems solved

During the development, we solved the following problems:

  • In order to give the user the ability to create complex pages with references to other entities (like donations) and a set of fully functional items (like carousels, hero images, timeline), we developed a rich page content type and we used a carefully crafted mix of Bricks, Paragraphs and CKeditor templates.
  • We were tasked with imagining a mailing system for press releases that allows us to select an audience, compose an email, test it and send it, all in the same form. We created a custom, AJAX-based solution that connects a Webform and a View in order to solve it.

Journalists nwesletter

  • Donations and Memberships had very specific needs and Commerce entities weren’t suited for the task. We created new entities for them and then used Commerce for the checkout by leveraging its API. We even wrote an article about it!
  • Our client had very specific and demanding needs regarding analytics, and the contrib modules were lacking some of them. We contributed several patches to modules such as Commerce Google Analytics and GA push, integrated Google Tag manager, developed custom dataLayer modules and solved many issues regarding data persistence on the server-side when using external payment gateways.
  • The migration presented two great challenges. 
    • First, we had to carefully craft the migration of paragraphs - sometimes nested inside each other - in order to avoid losing the references between them and their hosting nodes. 
    • Secondly, we decided to transition files to media entities. It was easy on file fields, but then we found that images inside CKeditor-enabled text fields were missing because they weren’t tied to any entity and the image style had changed. We decided to do the right (and difficult) thing and convert these URLs to media entities also.
  • We detected that sometimes the payment status of Commerce orders wasn’t in sync with the payment gateways, wrongly reporting some orders as unpaid. We created a tool to check the payment status both manually and by cron and update it accordingly.
  • When working on our custom integration with Salesforce we stumbled upon many pitfalls, so we also developed a custom admin UI capable of:
    • Monitoring the connectivity and warning the client if down.
    • Informing about the data migration status and allowing it to manually perform the scheduled operations.
    • Exposing configuration.
    • Generating reports ready to use with https://dataloader.io

Creating campaigns

Why Drupal was chosen

Drupal was the first option Metadrop considered for the task. The ability that Drupal offers out-of-the-box for multisite and multi-domain websites made it a great candidate for handling the crowdfunding and e-learning projects, while the solidity and extendability of its e-commerce solutions fitted the complex needs of the donation, signature and membership system. When handling the migration from Drupal 7 to 8, developers also took great advantage of the migration APIs in order to ease the job.

Technical Specifications

Drupal version: