Portal de gestión de voluntariado y ONGs con Drupal
Cómo crear un portal de gestión de voluntariado y ONGs con Drupal
He visto más hojas de Excel compartidas por WhatsApp en ONGs que líneas de código en mis últimos tres proyectos. Voluntarios en una pestaña, eventos en otra, donaciones en un Google Sheet que nadie actualiza desde febrero. Lo bonito de Drupal para ONGs es que permite meter todo eso en un único sitio con permisos reales, formularios decentes y cero licencias que pagar.
Voy a recorrer la arquitectura, los módulos y las decisiones técnicas que aplico cuando monto un portal de gestión de voluntariado sobre Drupal 10 o superior.
Por qué Drupal encaja bien en el sector de voluntariado y ONGs
Drupal no gana ningún concurso de rapidez para levantar un blog. Eso lo tenemos claro. Pero cuando lo que necesitas es una aplicación web con lógica propia —roles, flujos de aprobación, entidades relacionadas entre sí—, pocas plataformas open source le plantan cara. Tres cosas lo hacen especialmente útil aquí:
- Sistema de roles y permisos nativo. Defines perfil de voluntario, coordinador de proyecto, administrador de sede y responsable de comunicación, cada uno con acceso a secciones y acciones distintas. Sin tocar una sola línea de PHP.
- Campos y tipos de contenido configurables. Cada proyecto, evento o convocatoria tiene su propia estructura de datos (fechas, ubicaciones, plazas disponibles, requisitos) creada directamente desde la interfaz de administración.
- API REST integrada. Si la ONG ya usa CiviCRM o necesita conectar con plataformas de donación externas, Drupal expone y consume APIs de forma nativa con el módulo JSON:API.
Frente a soluciones SaaS específicas para voluntariado, hay un argumento que pesa mucho: la propiedad total de los datos. Para ONGs con financiación pública o europea eso no es un "nice to have". Es un requisito de cumplimiento.
Arquitectura de contenidos: qué tipos de contenido necesitas
Antes de lanzarte a instalar módulos, para. Mapea las entidades que el portal va a gestionar. Un modelo típico para una organización de voluntariado incluye cuatro bloques.
Proyectos o programas
Cada proyecto representa una línea de acción de la ONG. Campos que recomiendo:
- Título y descripción del proyecto
- Área temática (taxonomía: educación, medioambiente, acción social, emergencias...)
- Fecha de inicio y fecha de fin
- Sede o territorio asociado
- Estado (activo, en pausa, cerrado)
- Coordinador/a responsable (referencia a usuario)
Convocatorias de voluntariado
Son las ofertas concretas vinculadas a un proyecto. Cada convocatoria debería incluir:
- Proyecto padre (referencia de entidad)
- Número de plazas disponibles
- Perfil de voluntario requerido (idiomas, formación, disponibilidad horaria)
- Ubicación concreta (campo de geolocalización con el módulo Geofield)
- Período de inscripción (fecha apertura y cierre)
- Formulario de inscripción enlazado
Perfiles de voluntario
Aquí toca tomar una decisión de arquitectura que condiciona todo lo demás. Tienes dos caminos: extender la entidad de usuario de Drupal con campos de perfil adicionales o crear un tipo de contenido separado vinculado al usuario. La primera opción queda más limpia si el voluntario solo tiene un perfil. La segunda permite que un mismo usuario tenga varios perfiles —por ejemplo, uno por cada sede territorial en la que colabora—.
Campos habituales del perfil de voluntario:
- Datos personales y de contacto
- Disponibilidad (mañanas, tardes, fines de semana)
- Habilidades y formación
- Historial de participación (referencias a convocatorias anteriores)
- Documentación adjunta (certificado de antecedentes, título, seguro)
Eventos y formaciones
Si la ONG organiza jornadas de formación, encuentros o actos públicos, sepáralos de las convocatorias. Los eventos tienen su propia lógica de inscripción, aforo y gestión de asistencia. Mezclarlos genera un lío de campos condicionales que no compensa.
Módulos clave para el portal
El ecosistema contrib de Drupal es enorme, pero para este tipo de proyecto hay un núcleo de módulos que te resuelven el 80% del trabajo.
Webform: inscripciones y formularios
Webform es, de lejos, el módulo de formularios más completo de Drupal. Creas formularios de inscripción con lógica condicional (mostrar campos según respuestas previas), adjuntas archivos, configuras notificaciones automáticas y exportas las respuestas a CSV. Cada convocatoria puede tener su propio formulario embebido o referenciar uno genérico.
Un truco que funciona bien: crear un handler personalizado en Webform que, al recibir una inscripción, actualice automáticamente el campo de plazas disponibles en la convocatoria asociada. Ahorra un paso manual que los coordinadores siempre olvidan.
Views y Facets: búsqueda y filtrado de convocatorias
Views viene en el núcleo de Drupal y permite construir listados dinámicos: convocatorias abiertas filtradas por zona geográfica, proyectos activos por área temática, voluntarios disponibles por habilidad. Combínalo con Facets y un backend de búsqueda como Search API (con Solr o la base de datos estándar) y los usuarios refinan resultados con filtros laterales. Tú no programas cada combinación posible. Drupal la calcula.
Group: gestión de sedes o delegaciones
Si la ONG tiene presencia en varias ciudades o países, Group es tu módulo. Crea espacios independientes dentro del mismo portal. Cada grupo (sede, delegación, programa) tiene sus propios miembros, contenidos y permisos. El coordinador de Barcelona no ve los datos de Sevilla y viceversa. Limpio y seguro.
ECA (Events, Conditions, Actions): automatizaciones sin código
ECA reemplaza al antiguo Rules en Drupal 10. Con él defines reglas como: "Cuando una convocatoria alcanza cero plazas disponibles, cambia su estado a 'Completa' y envía un correo al coordinador". Automatizar estos flujos reduce la carga administrativa diaria y evita los errores que aparecen cuando alguien se olvida de actualizar un estado a mano.
CiviCRM: cuando necesitas un CRM completo
CiviCRM es un CRM open source diseñado específicamente para organizaciones sin ánimo de lucro. Su integración con Drupal (a través del módulo CiviCRM Entity) permite gestionar contactos, membresías, campañas de donación, mailings y seguimiento de voluntarios con un nivel de detalle que los módulos nativos no alcanzan. Los datos se exponen como entidades de Drupal consultables desde Views.
¿Lo necesitas desde el primer día? Probablemente no. Si tu prioridad es gestionar convocatorias e inscripciones, los módulos anteriores cubren de sobra. CiviCRM entra en juego cuando aparece gestión financiera de donaciones, seguimiento relacional de contactos o reporting avanzado.
Roles y permisos: diseño práctico
Un error que veo en casi todos los portales de ONGs: replicar el organigrama completo en roles de Drupal. Eso genera una matriz de permisos que nadie entiende y nadie mantiene. Mejor trabajar con pocos roles amplios y usar el módulo Group para la segmentación por sede o proyecto.
Un esquema funcional con cuatro roles:
- Voluntario registrado. Puede ver convocatorias, inscribirse, editar su propio perfil y consultar su historial.
- Coordinador de proyecto. Todo lo anterior más crear y editar convocatorias dentro de sus proyectos asignados, ver listados de inscritos y exportar datos.
- Administrador de sede. Gestiona todos los proyectos y convocatorias de su delegación territorial, gestiona usuarios de su grupo.
- Administrador general. Acceso completo al panel de Drupal, gestión de taxonomías, configuración de módulos y supervisión global.
Para permisos a nivel de campo (que un coordinador vea el teléfono del voluntario pero un voluntario no vea el de otro), Field Permissions ofrece control granular sin código personalizado.
Flujo de inscripción paso a paso
El flujo habitual en un portal de voluntariado funciona así:
- El voluntario llega al portal y navega por las convocatorias abiertas usando filtros de zona, temática o disponibilidad.
- Encuentra una convocatoria que le interesa y accede a la ficha completa: requisitos, fechas, ubicación y plazas restantes.
- Si no tiene cuenta, se registra. Drupal le asigna automáticamente el rol de "Voluntario registrado" y le pide completar su perfil.
- Con la sesión iniciada, rellena el formulario de inscripción (Webform) asociado a la convocatoria.
- El sistema envía un correo de confirmación al voluntario y una notificación al coordinador del proyecto.
- El coordinador revisa la inscripción desde su panel, puede aprobarla o solicitar información adicional.
- Una vez aprobada, el voluntario recibe la confirmación definitiva y la convocatoria actualiza el contador de plazas.
Todo esto se implementa con Webform + ECA + Views. Cero PHP a medida.
Rendimiento y escalabilidad
Un portal de voluntariado no suele tener picos de tráfico como un ecommerce. Pero llega una emergencia humanitaria o una campaña se hace viral y las inscripciones se disparan de golpe. Tres medidas preventivas:
- Caché agresiva. Activa Internal Page Cache para visitantes anónimos y Dynamic Page Cache para usuarios autenticados.
- Base de datos optimizada. Los campos que usas como filtros en Views necesitan índices. Revísalos.
- CDN para estáticos. Imágenes, documentos PDF y archivos adjuntos deben servirse desde un CDN o almacenamiento externo como S3.
Multiidioma, accesibilidad y protección de datos
Drupal trae soporte nativo para sitios multiidioma con los módulos del núcleo (Language, Content Translation, Interface Translation). Convocatorias en español, catalán, euskera e inglés sin instalar nada adicional.
En accesibilidad, Drupal cumple con WCAG 2.1 AA de serie. Para el frontend público, elige un tema base como Olivero o construye uno personalizado que respete contraste, navegación por teclado y etiquetado semántico. Las ONGs con financiación pública a menudo deben cumplir estos requisitos por normativa.
Los portales de voluntariado almacenan datos personales sensibles, así que el cumplimiento del RGPD no es negociable. Configura retención de datos y eliminación automática con el módulo GDPR, implementa consentimientos explícitos en cada formulario, cifra conexiones y backups, y aplica las actualizaciones de seguridad de Drupal en cuanto se publican.
Del portal básico a la plataforma completa
No intentes nacer con todo. Una hoja de ruta realista:
Fase 1 (mes 1-2). Portal público con catálogo de convocatorias, registro de voluntarios y formulario de inscripción. Tres tipos de contenido, cuatro roles, Webform y Views.
Fase 2 (mes 3-4). Panel de coordinador con listados de inscritos, exportación de datos, automatizaciones con ECA y notificaciones por correo.
Fase 3 (mes 5-6). Integración con CiviCRM para gestión de donaciones y comunicaciones masivas, módulo Group para segmentación por sedes, y API REST para conectar con aplicaciones móviles o herramientas externas.
Este enfoque incremental permite validar cada fase con usuarios reales antes de añadir complejidad. Si tu organización necesita ayuda para planificar o ejecutar un proyecto de este tipo, puedes consultarnos para evaluar juntos el alcance y la arquitectura más adecuada.
Lo que marca la diferencia en un portal de voluntariado bien hecho
La tecnología es solo el medio. Lo que determina si un portal de voluntariado funciona o acumula polvo es la fricción que elimina. Que un voluntario se inscriba en menos de tres minutos. Que un coordinador no tenga que pedir datos por correo electrónico. Que la dirección saque un informe de actividad en dos clics. Drupal proporciona las herramientas, pero el diseño del flujo, la estructura de datos y la gobernanza del contenido son las decisiones que separan un portal útil de uno que nadie abre.