Save the Children
Migración desde Drupal 7 a Drupal 10, integración con Salesforce y desarrollo de herramientas a medida
Las grandes ONG se enfrentan a los mismos problemas que las empresas o administraciones de su tamaño. Su página web debe ser parte de la solución.
Más de cien años centrados en la infancia
Poco tiempo después del final de la I Guerra Mundial, Eglantyne Jebb salió a las calles de Londres para repartir folletos con la imagen de dos niños austriacos, marcados por los efectos de la guerra. Junto a la foto, un mensaje: «nuestro bloqueo económico ha provocado esto. Millones de niños se mueren de hambre». El 19 de mayo de 1919, Eglantyne Jebb y su hermana Dorothy Buxton fundan Save the Children en un acto multitudinario celebrado en Londres.
Hoy día, Save the Children es una importante ONG global dedicada a la protección de la infancia y presente en más de 120 países. En España cuenta con delegaciones en Madrid, Cataluña, Andalucía, Comunidad Valenciana y País Vasco.
Para desarrollar su importante labor con eficacia, Save the Children España necesitaba un sitio web complejo y multifuncional desde el que realizar operaciones tan dispares como publicar noticias, gestionar las comunicaciones con la prensa, recibir donaciones, crear crowdfundings o proporcionar formación.
Este sitio web debía además alinearse perfectamente con las necesidades de los diferentes equipos que trabajan en la ONG y, muy especialmente, con las herramientas de su elección.
Metadrop y Save the Children: una relación fructífera
Metadrop y Save the Children llevan trabajando juntos desde 2015, año en el que se desarrolló un primer sitio web basado en Drupal 7.
Desde esta primera web el usuario podía colaborar con la ONG de múltiples formas: firmar en apoyo de proyectos, realizar donaciones, hacerse socio o compartir en redes sociales contenido de la web. La web también centraliza la información y actividad pública de la ONG, siendo el punto de referencia para toda la información institucional, noticias, contacto, etcétera.
Este primer sitio incluía también varios minisites como Retos o la Escuela de Padres y Madres que permitían la creación de campañas de crowdfunding por parte de los usuarios de la plataforma o el acceso a formación on-line gratuita previo registro.
La página web cumplió sus objetivos con creces, resultando en una plataforma sólida y funcional capaz de gestionar con soltura multitud de interacciones por parte de usuarios tanto anónimos como logados y de sostener sin problemas tanto el sitio principal como los minisites desde una única base de código.
Quizá más importante, la buena marcha del sitio web afianzó la relación entre Save the Children y Metadrop y sirvió de base para estrechar la colaboración de cara al futuro.
Migrar, crecer, integrar.
La publicación de Drupal 8 en el año 2015 supuso una revolución. Por una parte, la nueva versión de Drupal era más sólida, profesional y potente que nunca. Por otra, los enormes cambios introducidos suponían que la migración de Drupal 7 a 8 solía convertirse en una tarea considerable, más aún en páginas de un cierto tamaño.
Ante esta oportunidad, Save the Children y Metadrop unieron fuerzas de nuevo.
No solo se trataba de migrar todo el contenido y usuarios existentes, garantizando la continuidad de todas las funcionalidades del sitio y asegurando una transición casi invisible para el usuario. La nueva web debía crecer, beneficiándose de las mejoras introducidas en Drupal 8; e integrarse sin fricciones en el ecosistema de servicios y plataformas usados por la ONG, entre los que destaca el popular CRM Salesforce.
Todo un reto.
El desarrollo
Una base sólida
Nunca se puede enfatizar lo suficiente la importancia de los cimientos de un sitio web. Para el desarrollo, el equipo de Metadrop expandió su decálogo de buenas prácticas con el objetivo de acelerar el proceso y plantear una base sólida que no pudiera flaquear en el momento más inesperado.
- Herramientas de diseño a la altura: Como en Drupal 7, el diseño de la web parte de una propuesta de Save the Children, pero Metadrop tiene el visto bueno para proponer alteraciones y alternativas. Siguiendo las mejores prácticas, el diseño es mobile-first, responsivo y accesible. De cara al tematizado de la web nos beneficiamos del uso de herramientas como SCSS, Autoprefixer, SMACSS o Gulp, que aumentan nuestra productividad. Además, realizamos un uso extensivo de las API y buenas prácticas de Drupal.
- Entornos de desarrollo bien afinados: Todos los desarrolladores trabajan sobre entornos de desarrollo idénticos usando Docker, de modo que no se produzcan discrepancias. Además, se usan herramientas y técnicas para discriminar entre entornos que garantizan que no se despliegan cambios no deseados evitando analíticas erróneas, problemas con las pasarelas de pago o pérdida de información sensible. Por último, el equipo de Save the Children tiene acceso en todo momento al testeo en entornos de desarrollo, pudiendo así comprobar directamente el trabajo realizado.
- Sistema de Integración Continua: Como en todos nuestros proyectos, contamos con un sistema de Integración Continua, encargado de hacer tests y análisis estáticos de código por cada rama enviada al repositorio central. Esto nos asegura que nada se rompe y aporta información adicional a la hora de hacer las revisiones de código.
Herramientas para todos
Una ONG del tamaño de Save the Children involucra a muchas personas con diferentes intereses y necesidades. La página web tiene que ser capaz de ofrecer herramientas para todos.
La mayoría de las funcionalidades requirieron de desarrollos propios; de hecho, el alto nivel de personalización logrado en este proyecto es uno de sus grandes hitos: en total, desarrollamos más de 35 módulos a medida, varios parches solucionando problemas de módulos contribuidos y tres sandboxes.
- Un e-Commerce muy diferente: Una ONG ha de aceptar pagos online, pero esto no hace de su web un e-Commerce tradicional. Por su naturaleza, las donaciones, firmas y altas de socio requieren de una aproximación radicalmente diferente que se resolvió creando nuevos tipos de entidades y conectando nuestro nuevo sistema con la API de Drupal Commerce.
- Agilizar el envío de notas de prensa: La dimensión pública de Save the Children implica que una relación ágil y fluida con los periodistas sea crucial. La página permite el registro rápido de los periodistas interesados y el acceso al histórico de prensa. Además, Metadrop desarrolló una solución única para centralizar los envíos de notas de prensa en una sola página que permite elegir una audiencia de periodistas aplicando varios filtros, componer el email, previsualizarlo y enviarlo.
- Componer páginas complejas con herramientas sencillas: El equipo de la ONG necesitaba tener la capacidad de crear rápidamente nuevas páginas sin tener que utilizar código o herramientas complicadas. Metadrop creó un tipo de página avanzada con acceso a una librería de componentes reutilizables y capacidad de incrustar elementos como formularios de donación o de firma. El equipo es ahora capaz de levantar páginas multifuncionales y complejas en cuestión de minutos.
- Donar y firmar en pocos clicks: Los flujos que implican varios pasos son un problema: si el usuario lo encuentra complicado, demasiado largo o erróneo, la tasa de abandonos puede volverse insostenible. Para ello, Metadrop desarrolló toda una serie de soluciones propias que, integradas con sistemas tan sólidos como Webform o Commerce, permiten que firmar una petición, realizar una donación o darse de alta como socio sea un proceso transparente, ágil y sin fricciones, incluyendo la capacidad de prepopular datos o saltarse pasos del flujo.
- Search API al rescate: Cuanto más compleja es una página, más importantes vuelve tener un buen buscador capaz de distinguir y jerarquizar los términos de búsqueda. Afortunadamente, en Metadrop somos expertos en Search API e hicimos buen uso de esta herramienta para afinar el buscador e incluso poder exponer una serie de filtros personalizados que agilizan la búsqueda al agrupar los resultados por criterios proporcionados por el cliente.
- La importancia de la analítica: Dado el volumen de interacciones, Save the Children otorga una enorme importancia a la información y analítica. Para ello, es necesario que la página web envíe los datos correctos en tiempo y forma. Por ello, Metadrop ha desarrollado e impulsado varias soluciones y herramientas propias que incluyen el envío de datos tanto a nivel frontend como backend, la configuración y personalización de metaetiquetas por página (incluyendo parámetros UTM), el uso de acortadores de URL y la correcta integración con las pasarelas de pago para evitar la pérdida de datos.
Una migración exitosa
La migración de Drupal 7 a 8 fue uno de nuestros principales retos. Afortunadamente, contamos con las excelentes herramientas que Drupal 8 pone a nuestra disposición; pero el tamaño y especificidades de la web original auguraban problemas que fue necesario solventar.
- Migración de todo el contenido: Para los clientes involucrados en un proceso de migración, mantener la integridad de su sitio web es fundamental. Para ello es necesario asegurar la pervivencia de todos los contenidos hasta el mínimo detalle, así como de las direcciones URL, de modo que tras el cambio todo siga en su sitio y se eviten errores que resulten en penalizaciones por parte de los buscadores.
- Aprovechar la oportunidad para mejorar: En varios casos, se aprovechó la migración para mejorar la arquitectura del sitio y utilizar las nuevas funcionalidades introducidas por Drupal 8. En el caso de las imágenes, la migración las convirtió en entidades de tipo Media: reutilizables, más sólidas y más fáciles de usar por parte del cliente.
- Soluciones imaginativas para problemas complejos: Las migraciones nunca están exentas de problemas: la existencia de contenidos anidados dentro de otros (paragraphs) o la desaparición de imágenes incrustadas en el texto tras un cambio de URL requirieron de toda nuestra imaginación hasta llegar a la solución óptima.
Un Drupal perfectamente integrado
Los equipos multidiscipilinares suelen disponer de toda una serie de herramientas y servicios cuya integración supone un reto y, si no se gestiona correctamente, una fuente de problemas
En el caso que nos afecta, Save the Children utiliza dos pasarelas de pago (RedSys y PayPal), un sistema de envío de emails (Mandrill) y, sobre todo, un complejo y avanzado CRM (Salesforce). De nada servirían nuestros esfuerzos si la nueva web no fuera capaz de interactuar correctamente con estos sistemas. En este caso, fuimos incluso un poco más allá y añadimos la capacidad de monitorizar desde Drupal el estado de los servicios y corregir errores.
- Salesforce + Drupal = control total: La integración entre los dos sistemas incluye la generación de leads en Salesforce y la integración total de los usuarios existentes en ambas plataformas, diferenciando correctamente los usuarios potenciales de los socios. Se produce también una sincronización de las altas de socio, las donaciones y las firmas, de modo que Salesforce esté siempre al tanto de todo lo que ha ocurrido en la web. La naturaleza de estas interacciones puede ser tanto unidireccional como bidireccional. Por último, si el usuario quiere recurrir al modo manual, habilitamos la capacidad de exportar los datos siguiendo el estándar de DataLoader.io, el formato que usa Salesforce. En Save the Children, Drupal y Salesforce hablan entre sí más que nunca.
- Todo el poder para el usuario final: Con el objetivo de hacerle la vida más fácil al usuario, la integración con Salesforce va acompañada de una potente y detallada interfaz de administración desde la cual, y sin abandonar Drupal, el cliente se pueden realizar multitud de operaciones, comprobaciones, configuraciones y ajustes.
- ¿Algo salió mal? Notificar y corregir: Las cosas no siempre van bien entre servicios interconectados. A veces basta una pequeña interrupción del servicio para que un pago no se notifique o una alta de socio no se refleje. Para ello, creamos una serie de soluciones propias que avisan vía email de fallos en la conectividad con Salesforce, permiten conocer el estado de las migraciones o la existencia de conflictos en el estado de un pago y, si hay errores, permiten al usuario ejecutar la resincronización.
- Envíos masivos con Mandrill: Cuando se trata de enviar notificaciones masivas o campañas de prensa a miles de correos, una plataforma sólida de envío es crucial. La web de Save the Children se integra a la perfección con Mandrill.
El futuro
Save the Children ha supuesto un reto muy estimulante para Metadrop tanto por el tamaño del proyecto como por la complejidad de muchas de las tareas.
Esta web ha servido para acelerar la colaboración entre equipos, refinar y ampliar buenas prácticas e incrementar nuestros conocimientos en áreas tan dispares como Salesforce, pasarelas de pago, o las diferentes formas de integración con Analytics.
Hemos realizado grandes avances y extendido módulos como GA push, Metatags o Commerce, lo cual nos ha empujado a realizar una gran cantidad de desarrollo propio que podrá ser contribuido en el futuro. También nos ha llevado a refinar el sistema de creación de contenidos para hacerlo más potente sin perder simplicidad.
La mayoría de estas mejoras y aprendizajes han sido inmediatamente incorporadas a nuestro día a día y sin duda son solo el inicio de futuros desarrollos que hagan de la web de Save the Children una plataforma aún más potente.