WhatsApp
5 min de leitura

Cómo Generar Certificados Automáticos con Vecsy y n8n

Aprende a automatizar la emisión de certificados con Vecsy y n8n. Guía práctica para crear y configurar flujos automáticos paso a paso.

Cómo Generar Certificados Automáticos con Vecsy y n8n Cómo Generar Certificados Automáticos con Vecsy y n8n

Emitir certificados manualmente es uno de los procesos más fáciles de automatizar — y uno de los que más persisten manuales por falta de una solución sencilla. Alguien termina un curso, finaliza una capacitación o participa en un evento, y alguien del equipo tiene que abrir un archivo, completar los datos y enviar.

Con la API de Vecsy conectada a n8n, este proceso se convierte en un flujo automático: llega el disparador (finalización, inscripción confirmada, presencia registrada), el certificado se genera con los datos del participante y se entrega por email o WhatsApp sin ninguna interacción manual.

Este tutorial muestra cómo montar esto desde cero.

Qué necesitarás

  • Cuenta en Vecsy con acceso a la API — crea y gestiona tus tokens en Automatización → API dentro de la plataforma
  • Una plantilla de certificado creada en Vecsy, en estado Ready, con los campos dinámicos configurados
  • n8n funcionando (self-hosted o n8n Cloud)
  • Un punto de entrada para el disparador — puede ser un webhook de tu sistema, un formulario o una hoja de cálculo actualizada

Paso 1 — Crea la plantilla de certificado en Vecsy

La plantilla es la base de todo. En el editor de Vecsy, arma el diseño del certificado con tu identidad visual y define qué campos variarán por participante.

Para un certificado de finalización de curso, los campos más comunes son:

CampoTipoEjemplonombreTextoAna SouzacursoTextoAutomatización con APIsfechaTexto30/05/2025fotoImagenURL pública de la fotocargoTextoDesarrolladoraempresaTextoAcme Corp

No necesitas usar todos — configura solo los que tengan sentido para tu caso. Lo importante es que cada campo definido en la plantilla debe ser enviado en la llamada a la API, de lo contrario la solicitud devuelve error 400.

Después de configurar, anota el UUID de la plantilla. Aparece en la URL de la plantilla o en la sección de API de la plataforma.

Paso 2 — Monta el flujo en n8n

El flujo de certificados tiene esta estructura básica:



[Trigger] → [HTTP Request: Vecsy API] → [Envío al participante]

Con un paso opcional de almacenamiento entre la generación y el envío:



[Trigger] → [HTTP Request: Vecsy API] → [Guardar en Drive/S3] → [Envío al participante]

Vamos a montar cada parte.

Paso 3 — Configura el Trigger

Elige el trigger según cómo sepas que un certificado debe ser emitido.

Opción A — Webhook (recomendado)

Úsalo cuando tu plataforma o sistema pueda hacer un POST al completar un curso o evento. Añade el nodo Webhook en n8n:

  • Method: POST
  • Path: /certificado

Payload esperado:

json

{
  "nombre": "Ana Souza",
  "curso": "Automatización con APIs",
  "fecha": "30/05/2025",
  "foto": "https://ejemplo.com/fotos/ana.jpg",
  "email": "ana@ejemplo.com"
}

Opción B — Google Sheets

Úsalo cuando registres finalizaciones en una hoja de cálculo. Añade el nodo Google Sheets → On Row Added y mapea las columnas a las variables del flujo. Funciona bien para operaciones donde el control de finalizaciones se hace manualmente por un equipo.

Paso 4 — Llama a la API de Vecsy

Añade un nodo HTTP Request después del trigger con la siguiente configuración:

CampoValorMethodPOSTURLhttps://www.vecsy.co/api/generate-imageAuthenticationHeader AuthHeader nameAuthorizationHeader valueBearer TU_TOKEN_AQUIBody Content TypeJSON

Cuerpo de la solicitud:

json

{
  "template_uuid": "TU_UUID_AQUI",
  "file_format": "pdf",
  "nombre": "{{ $json.nombre }}",
  "curso": "{{ $json.curso }}",
  "fecha": "{{ $json.fecha }}",
  "foto": "{{ $json.foto }}"
}

Algunas notas sobre los parámetros:

  • file_format: usa pdf para certificados (más adecuado para documentos formales) o png si quieres una imagen para compartir en redes sociales. El valor por defecto es png.
  • Nombres de los campos: deben coincidir exactamente con los nombres configurados en el editor de Vecsy (sensible a mayúsculas y minúsculas).
  • Campo de foto: debe ser una URL pública y accesible vía HTTPS. Si la foto proviene de una subida del usuario, verifica que el enlace sea público antes de enviarlo a la API.

Respuesta exitosa (HTTP 200):

json

{
  "url": "https://…/certificado-ana-souza.pdf",
  "key": "uploads/api/generate-image/…",
  "format": "pdf"
}

El campo url es el enlace temporal al archivo generado. Úsalo en los siguientes nodos.

Paso 5 — (Opcional) Guarda el certificado antes de enviarlo

Si necesitas archivar los certificados o el enlace temporal de Vecsy puede expirar antes del envío, añade un nodo de almacenamiento entre la generación y la entrega.

Google Drive

Añade el nodo Google Drive → Upload File:

  • File URL: {{ $json.url }}
  • File Name: Certificado - {{ $('Webhook').item.json.nombre }}.pdf
  • Folder: selecciona la carpeta destino

Después de la subida, tendrás un enlace permanente de Drive para usar en el email.

Amazon S3

Añade el nodo AWS S3 → Upload y pasa la URL del archivo. Útil cuando los certificados forman parte de un producto digital que necesita un enlace permanente.

Paso 6 — Entrega el certificado al participante

Por email

Añade el nodo Send Email (o Gmail):

  • To: {{ $('Webhook').item.json.email }}
  • Subject: ¡Tu certificado está listo, {{ $('Webhook').item.json.nombre }}!
  • Body (HTML):

html

Hola, {{ $('Webhook').item.json.nombre }}!

Felicitaciones por completar {{ $('Webhook').item.json.curso }}. Tu certificado está disponible en el siguiente enlace:

Descargar certificado

El enlace expirará pronto. Recomendamos guardar el archivo lo antes posible.

Por WhatsApp (vía Evolution API o similar)

json

{
  "number": "{{ $('Webhook').item.json.phone }}",
  "mediaUrl": "{{ $json.url }}",
  "caption": "¡Felicidades, {{ $('Webhook').item.json.nombre }}! Aquí tienes tu certificado de finalización de {{ $('Webhook').item.json.curso }}. 🎓"
}

Manejo de errores

Añade un nodo IF después del HTTP Request de Vecsy para verificar si la generación fue exitosa antes de continuar:

  • Condición: {{ $json.url }} existe y no está vacío → verdadero → sigue al envío
  • Falso → dispara una notificación para el equipo (Slack, email de alerta) con los datos del participante para reprocesamiento manual

Errores principales de la API:

CódigoCausaQué hacer401Token inválido o ausenteVerificar el header Authorization400Campo faltante o inválidoRevisar que todos los campos de la plantilla estén siendo enviados404Plantilla no encontrada o no está en ReadyVerificar UUID y estado de la plantilla en Vecsy

Flujo completo

[Webhook / Google Sheets]
        ↓
[HTTP Request → Vecsy API]
        ↓
    [IF: url existe?]
    ↓ sí              ↓ no
[Guardar Drive/S3]   [Alerta para el equipo]
        ↓
[Envío por Email / WhatsApp]

Cuándo este flujo marca la diferencia

El verdadero beneficio aparece cuando el volumen aumenta. Una plataforma que emite 50 certificados al mes lo resuelve manualmente sin problema. Con 500 al mes, el proceso empieza a ser pesado. Con 5.000, o automatizas o necesitas a alguien dedicado solo para eso.

Con este flujo en marcha, cada finalización genera y entrega el certificado en segundos — sin importar si es a las 3 de la mañana o en medio de un feriado.

¿Quieres configurar la API de Vecsy en tu flujo? Habla con el equipo para obtener acceso y resolver dudas sobre la integración. Solicita acceso a la API →

Pronto para testar a Vecsy?
Teste a Vecsy Gratuitamente hoje mesmo e aumente seu alcance nas mídias.
Teste grátis

Posts Relacionados

Continue lendo sobre temas similares