Sustituye las Open Badges nativas de Moodle por Badges Ninja (Mejor Diseñador, Misma API)

Moodle incluye Open Badges nativas, pero el diseñador es limitado y la experiencia del destinatario queda encerrada dentro de Moodle. Emite credenciales de Badges Ninja a partir de las finalizaciones de Moodle en su lugar.

Nacho Coll Por Actualizado 8 min de lectura
Moodle incluye Open Badges nativas, pero el diseñador es limitado y la experiencia del destinatario queda encerrada dentro de Moodle. Emite credenciales de Badges Ninja a partir de las finalizaciones de Moodle en su lugar.

Moodle emite Open Badges de forma nativa desde la versión 2.5, y para muchos administradores de cursos eso ya es motivo suficiente para no mirar en otro sitio. Viene integrado, es gratuito y técnicamente produce una credencial conforme a los estándares. Entonces, ¿por qué tantos administradores de Moodle acaban frustrados cuando llegan a su quincuagésima insignia?

La respuesta honesta: el sistema de insignias de Moodle se diseñó para cumplir un requisito de compliance, no para ser un producto de credenciales. Funciona, pero funciona como funciona una característica añadida a un LMS: funcional, anticuada y limitada por las restricciones de la plataforma en la que vive. Si alguna vez has intentado que una insignia de Moodle no parezca un icono circular de clip-art, o has visto a un titulado preguntar “espera, ¿dónde veo esto exactamente?”, ya conoces el problema.

Esto no es un ataque a Moodle — es un LMS excelente y su motor de criterios de insignias (finalización de curso, finalización de actividad, concesión manual, pertenencia a cohorte) está realmente bien pensado para disparar una credencial. El problema es todo lo que ocurre después del disparador: las herramientas de diseño, la experiencia del destinatario y la visibilidad de la insignia fuera de tu instancia de Moodle. Para eso está pensado precisamente badges.ninja, y no tienes que renunciar a la lógica de finalización de Moodle para usarlo — solo apuntas el disparador hacia un motor de emisión distinto.

Dónde se quedan cortas las insignias nativas de Moodle

El diseñador es un compositor de imágenes basado en coordenadas, no una herramienta de diseño. El editor de insignias de Moodle te permite elegir una imagen base, añadir un par de superposiciones de iconos predefinidos y ajustar la posición con desplazamientos en píxeles. No hay biblioteca de formas, no hay sistema de paletas, no hay más opciones de tipografía que las incorporadas en el conjunto de iconos. Si tu organización tiene una marca — un logotipo, una paleta de colores, un lenguaje visual propio para tus certificaciones — el editor de Moodle no puede expresarlo. La mayoría de las instituciones acaban diseñando el arte de la insignia en Photoshop o Canva y subiendo un PNG plano, lo que anula el sentido de tener un diseñador integrado.

Los destinatarios necesitan iniciar sesión en Moodle para ver sus propias insignias. Las insignias concedidas a un estudiante viven dentro de su página de perfil de Moodle. Si ya ha terminado el curso, ha olvidado sus credenciales institucionales, o la institución ha dado de baja su cuenta, la insignia desaparece de facto por su lado — aunque la aserción subyacente pueda seguir resolviéndose en el conector de backpack de Moodle o en la página pública de la insignia. No existe un lugar dedicado, con marca propia y siempre accesible donde un destinatario pueda iniciar sesión solo con su correo electrónico y ver todas las credenciales que ha obtenido en todos sus cursos.

Compartir es un añadido de última hora. Moodle puede enviar insignias a un servicio compatible con Mozilla Backpack, y expone una URL de verificación pública para cada insignia, pero no hay un flujo integrado de “Añadir a LinkedIn”, ni un botón de compartir con un clic, ni analítica de interacción sobre si alguien llegó a mirar la insignia tras su emisión. Para programas que quieren que la insignia funcione como marketing boca a boca — bootcamps, proveedores de formación continua, formación corporativa — eso supone un coste de oportunidad real.

Las operaciones masivas son incómodas. Conceder una insignia a toda una cohorte funciona si todos completan la actividad que la dispara dentro de Moodle al mismo tiempo. Pero si necesitas emitir a posteriori insignias para una cohorte pasada, importar finalizaciones históricas desde una hoja de cálculo, o emitir una insignia por algo ocurrido completamente fuera del LMS, acabas escribiendo SQL contra la base de datos de Moodle o peleando con herramientas de importación de CSV que no se diseñaron específicamente para insignias.

El patrón de sustitución: conserva los disparadores de Moodle, cambia el emisor

No hace falta migrar fuera de Moodle para arreglar esto. El patrón más limpio es dejar que Moodle siga haciendo lo que hace bien — rastrear la finalización de cursos, la finalización de actividades, la pertenencia a cohortes — y hacer que llame a la API de Badges Ninja en el momento en que se dispara una condición de finalización, en lugar de (o además de) conceder su insignia nativa.

Moodle admite esto de varias formas:

  1. Webhook de finalización de curso / sondeo de Moodle Web Services (REST). La API core_completion de Moodle expone el estado de finalización por usuario y por curso. Una tarea programada ligera (una tarea cron programada de Moodle, o un job cron externo que consulta la API REST de Moodle) puede sondear las matrículas recién completadas y, para cada una, llamar al endpoint de concesión de Badges Ninja.

  2. Un hook de plugin local. Si cuentas con un desarrollador en plantilla, el sistema de eventos de Moodle (\core\event\course_completed) puede ser observado por un pequeño plugin local que dispara una petición HTTP en el instante en que se produce la finalización — sin retraso de sondeo.

  3. Zapier/Make/n8n como pegamento, si prefieres evitar tocar el código de Moodle — Moodle puede enviar eventos de finalización a un receptor de webhook que una herramienta de automatización sin código convierte en una llamada de concesión.

Aquí tienes la llamada real de concesión, una vez que dispones del nombre y el correo de un usuario que ha completado el curso:

curl -X POST https://api.badges.ninja/awards \
  -H "X-Api-Key: bws_3f9a1c2d4e5b6a7c8d9e0f1a2b3c4d5e" \
  -H "Content-Type: application/json" \
  -d '{
    "badgeId": "badge_moodle_course_completion",
    "recipient": { "name": "Jordan Alvarez", "email": "learner@example.edu" },
    "issuedOn": "2026-08-31"
  }'

O en Node, dentro de la tarea programada o el receptor de webhook que estés usando:

const response = await fetch("https://api.badges.ninja/awards", {
  method: "POST",
  headers: {
    "X-Api-Key": process.env.BADGES_NINJA_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    badgeId: "badge_moodle_course_completion",
    recipient: { name: completedUser.fullname, email: completedUser.email },
    issuedOn: Date.now(),
  }),
});
const award = await response.json();

El correo del destinatario se guarda con hash SHA-256 en reposo, la concesión recibe automáticamente una URL de verificación única, un código QR y un certificado en PDF A4, y — algo fundamental — el destinatario puede reclamarla mediante un inicio de sesión con enlace mágico en badges.ninja/me, sin necesidad de una cuenta de Moodle aparte. Consulta la forma completa de la solicitud/respuesta en la referencia de la API de awards y la guía de autenticación para ver cómo funcionan las claves de API de principio a fin.

Si prefieres hacerlo por lotes — por ejemplo, emitir a posteriori las finalizaciones de todo un semestre en una sola pasada en lugar de configurar eventos en tiempo real — exporta las finalizaciones de Moodle como CSV y utiliza directamente el flujo de concesión masiva, que admite pausa/reanudación para archivos grandes. Esto se trata en detalle en cómo emitir Open Badges desde un CSV.

Diseñando la insignia en sí

Una vez montada la fontanería, el diseño de la insignia en sí lleva minutos, no un ticket a tu equipo web. El diseñador visual te ofrece más de 80 plantillas de formas, un sistema real de paletas de color, bibliotecas de iconos y carga de tipografías personalizadas — para que una insignia de “Estadística Avanzada — Completado” parezca de verdad de la marca de tu institución en lugar de un icono genérico de logro de Moodle.

API Keys — empty state

Cada clave de API tiene un alcance definido y es revocable desde el mismo panel donde gestionas insignias y emisores, así que entregar la credencial de integración a un desarrollador (o a una herramienta de automatización como Zapier) no supone compartir el inicio de sesión de tu cuenta principal.

Create key — name form

Comparativa directa: experiencia del destinatario

Insignia nativa de MoodleBadges Ninja
Dónde la ven los destinatariosDentro del perfil de Moodle, requiere inicio de sesiónbadges.ninja/me, enlace mágico, sin contraseña
Verificación públicaSí, URL pública por insigniaSí, endpoint JSON-LD de Open Badge v2.0
Herramientas de diseñoIcono fijo + desplazamientos de posición80+ plantillas, paletas, tipografías/iconos personalizados
Compartir en LinkedInManual, sin botón integradoFlujo nativo de Añadir a Perfil de LinkedIn
Emisión histórica masivaSQL o solución manual con CSVConcesión masiva integrada con pausa/reanudación
Visibilidad de interacciónNingunaEstadísticas de vistas/comparticiones por concesión
Acceso tras dejar la instituciónLigado al estado de la cuenta de MoodlePersistente, propiedad del destinatario

Moodle sigue ganando en una cosa: si tu único requisito es “la insignia existe, es técnicamente conforme a Open Badge v2.0 y vive dentro del LMS que el estudiante ya usa”, las insignias nativas no cuestan nada extra y no requieren trabajo de integración. La desventaja aparece en el momento en que te importa la calidad del diseño, la portabilidad tras finalizar el curso, o convertir la emisión en una señal de captación/marketing — que es la mayoría de las instituciones, tarde o temprano.

Para una visión más amplia de cómo se comparan otras plataformas de Open Badges en precio y funciones, consulta la comparativa de la plataforma de Open Badges más económica. Y si tu institución está valorando Open Badge v2.0 frente a la especificación más reciente de credenciales verificables, Open Badge v2 vs v3 explicado explica cuál conviene lanzar hoy en realidad.

¿Listo para emitir tu primera credencial verificable? Empieza gratis en badges.ninja — diseñador visual, página de verificación pública, certificado en PDF, salida en Open Badge v2.0. No se requiere tarjeta de crédito.

Nacho Coll

Sobre el autor

Founder & Engineer at Badges Ninja

Nacho founded Badges Ninja to make issuing verifiable digital credentials as simple as a single API call — Open Badge v2.0 badges and certificates, minted, hosted, and verifiable without standing up your own issuer infrastructure. Writes about the Open Badges spec, credential verification, and running a credentialing platform serverless on AWS, from the operator side of the wire.

Volver al Blog

Artículos Relacionados