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.
Si ya usas n8n para automatizar flujos — inscripciones, envíos de email, notificaciones de WhatsApp — probablemente tengas al menos un caso donde sería útil generar una imagen personalizada para cada usuario o participante, sin procesos manuales.
Este tutorial muestra cómo hacerlo desde cero: crear una tarjeta personalizada vía API de Vecsy dentro de un flujo n8n y compartir la imagen generada. El ejemplo usa el escenario de inscripción a un evento, pero la lógica se aplica a certificados, tarjetas de bienvenida, publicaciones en redes sociales y cualquier otro caso donde necesites imagen + dato de usuario.
El flujo que construiremos tiene tres etapas:
Antes que nada, la plantilla debe estar lista. En el editor de Vecsy, crea una plantilla con los campos dinámicos que variarán por participante. En nuestro ejemplo:
name — nombre del participante (campo de texto)photo — foto del participante (campo de imagen)Anota el UUID de la plantilla — lo necesitarás en la llamada a la API. Aparece en la URL de la plantilla o en la sección de API dentro de la plataforma.
En n8n, crea un nuevo workflow y añade el nodo Webhook como trigger.
Configura así:
/inscripcion (o cualquier nombre que tenga sentido para tu flujo)Activa el webhook y copia la URL generada. Tendrá el formato:
https://tu-n8n.com/webhook/inscripcion
Esta URL es el punto de entrada del flujo. En tu sitio o plataforma de inscripción, configura para enviar un POST con los datos del participante al completar el registro.
Ejemplo de payload esperado:
json
{
"name": "Ana Souza",
"photo": "https://ejemplo.com/fotos/ana.jpg",
"email": "ana@ejemplo.com"
}
Añade un nodo HTTP Request después del webhook.
Configura los campos:
CampoValorMethodPOSTURLhttps://www.vecsy.co/api/generate-imageAuthenticationHeader AuthHeader nameAuthorizationHeader valueBearer TU_TOKEN_AQUIBody Content TypeJSON
En el cuerpo de la solicitud, mapea los valores dinámicos que vienen del webhook:
json
{
"template_uuid": "18cc03b9-68c9-4aaf-ad74-17c8c76e0827",
"file_format": "png",
"name": "{{ $json.name }}",
"photo": "{{ $json.photo }}"
}
Sustituye template_uuid por el UUID de tu plantilla y los nombres de los campos (name, photo) por los que configuraste en el editor de Vecsy.
Respuesta esperada de la API:
json
{
"url": "https://…",
"key": "uploads/api/generate-image/…",
"format": "png"
}
El campo url contiene el enlace temporal para descargar la imagen generada. Usa este valor en los siguientes nodos del flujo.
Atención: el enlace devuelto es temporal. Si tu flujo necesita almacenar la imagen por más tiempo, descárgala y guárdala en un almacenamiento propio (S3, Google Drive, etc.) antes de continuar.
Con la URL de la imagen en mano, el siguiente paso es enviarla al participante. Aquí las dos opciones más comunes.
Añade el nodo Send Email (o Gmail, si prefieres) y configura:
{{ $('Webhook').item.json.email }}¡Tu tarjeta está lista, {{ $('Webhook').item.json.name }}!html
Hola, {{ $('Webhook').item.json.name }}!
Tu tarjeta ha sido generada. Haz clic en el enlace abajo para descargarla:
![]()
Si tu flujo incluye WhatsApp, añade otro nodo HTTP Request apuntando a tu instancia de WhatsApp y pasa la URL de la imagen como medio:
json
{
"number": "{{ $('Webhook').item.json.phone }}",
"mediaUrl": "{{ $json.url }}",
"caption": "Aquí está tu tarjeta, {{ $('Webhook').item.json.name }}! 🎉"
}
La API de Vecsy devuelve errores estandarizados en JSON. Los más comunes que puedes encontrar:
Authorization esté correcto.Para manejar esto en n8n, añade un nodo IF después del HTTP Request verificando el código de estado:
{{ $json.url }} existe → continúa al envío[Webhook] → [HTTP Request: Vecsy API] → [IF: ¿éxito?]
↓ sí
[Send Email / WhatsApp]
↓ no
[Log de error / Alerta]
Con este flujo, cada nueva inscripción genera automáticamente una tarjeta personalizada y la entrega al participante sin intervención manual — sin importar el volumen.
Con la integración básica funcionando, algunas extensiones naturales:
Para cualquiera de estos casos, la estructura base es la misma: trigger → llamada a la API de Vecsy → acción con la URL retornada.
¿Quieres probar la integración? Accede a la documentación completa de la API o habla con el equipo de Vecsy para configurar tu acceso. Solicita acceso a la API →
Continue lendo sobre temas similares
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.
Descubre por qué los desarrolladores están cambiando de Bannerbear a la API de Vecsy para generación de imágenes a gran escala, optimizando costos y eficiencia.