WhatsApp
5 min de leitura

Como Gerar Certificados Automáticos com Vecsy e n8n

Aprenda a automatizar a emissão de certificados com Vecsy e n8n! Este guia prático mostra como criar e configurar fluxos automáticos passo a passo.

Como Gerar Certificados Automáticos com Vecsy e n8n Como Gerar Certificados Automáticos com Vecsy e n8n

Emitir certificados manualmente é um dos processos mais fáceis de automatizar — e um dos que mais persistem manuais por falta de uma solução simples. Alguém conclui um curso, termina um treinamento ou participa de um evento, e alguém do time precisa abrir um arquivo, preencher os dados e enviar.

Com a API da Vecsy conectada ao n8n, esse processo vira um fluxo automático: o gatilho chega (conclusão, inscrição confirmada, presença registrada), o certificado é gerado com os dados do participante e entregue por email ou WhatsApp sem nenhuma interação manual.

Este tutorial mostra como montar isso do zero.

O que você vai precisar

  • Conta na Vecsy com acesso à API — crie e gerencie seus tokens em Automação → API dentro da plataforma
  • Um template de certificado criado na Vecsy, em estado Ready, com os campos dinâmicos configurados
  • n8n rodando (self-hosted ou n8n Cloud)
  • Um ponto de entrada para o gatilho — pode ser um webhook do seu sistema, um formulário, ou uma planilha atualizada

Passo 1 — Crie o template de certificado na Vecsy

O template é a base de tudo. No editor da Vecsy, monte o layout do certificado com sua identidade visual e defina quais campos vão variar por participante.

Para um certificado de conclusão de curso, os campos mais comuns são:

CampoTipoExemplonomeTextoAna SouzacursoTextoAutomação com APIsdataTexto30/05/2025fotoImagemURL pública da fotocargoTextoDesenvolvedoraempresaTextoAcme Corp

Você não precisa usar todos — configure apenas os que fazem sentido para o seu caso. O importante é que cada campo definido no template precisa ser enviado na chamada de API, caso contrário a requisição retorna erro 400.

Após configurar, anote o UUID do template. Ele aparece na URL do template ou na seção de API da plataforma.

Passo 2 — Monte o fluxo no n8n

O fluxo de certificados tem esta estrutura básica:



[Trigger] → [HTTP Request: Vecsy API] → [Envio ao participante]

Com uma etapa opcional de armazenamento entre a geração e o envio:



[Trigger] → [HTTP Request: Vecsy API] → [Salvar no Drive/S3] → [Envio ao participante]

Vamos montar cada parte.

Passo 3 — Configure o Trigger

Escolha o trigger de acordo com como você sabe que um certificado precisa ser emitido.

Opção A — Webhook (recomendado)

Use quando sua plataforma ou sistema consegue fazer um POST ao concluir um curso ou evento. Adicione o nó Webhook no n8n:

  • Method: POST
  • Path: /certificado

Payload esperado:

json

{
  "nome": "Ana Souza",
  "curso": "Automação com APIs",
  "data": "30/05/2025",
  "foto": "https://exemplo.com/fotos/ana.jpg",
  "email": "ana@exemplo.com"
}

Opção B — Google Sheets

Use quando você registra conclusões em uma planilha. Adicione o nó Google Sheets → On Row Added e mapeie as colunas para as variáveis do fluxo. Funciona bem para operações onde o controle de conclusões é feito manualmente por um time.

Passo 4 — Chame a API da Vecsy

Adicione um nó HTTP Request após o trigger com a seguinte configuração:

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

Corpo da requisição:

json

{
  "template_uuid": "SEU_UUID_AQUI",
  "file_format": "pdf",
  "nome": "{{ $json.nome }}",
  "curso": "{{ $json.curso }}",
  "data": "{{ $json.data }}",
  "foto": "{{ $json.foto }}"
}

Algumas notas sobre os parâmetros:

  • file_format: use pdf para certificados (mais adequado para documentos formais) ou png se quiser uma imagem para compartilhar em redes sociais. O padrão é png.
  • Nomes dos campos: devem bater exatamente com os nomes configurados no editor da Vecsy (sensível a maiúsculas e minúsculas).
  • Campo de foto: precisa ser uma URL pública e acessível via HTTPS. Se a foto vem de um upload do usuário, verifique se o link é público antes de passar para a API.

Resposta de sucesso (HTTP 200):

json

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

O campo url é o link temporário para o arquivo gerado. Use-o nos próximos nós.

Passo 5 — (Opcional) Salve o certificado antes de enviar

Se você precisa arquivar os certificados ou o link temporário da Vecsy pode expirar antes do envio, adicione um nó de armazenamento entre a geração e a entrega.

Google Drive

Adicione o nó Google Drive → Upload File:

  • File URL: {{ $json.url }}
  • File Name: Certificado - {{ $('Webhook').item.json.nome }}.pdf
  • Folder: selecione a pasta destino

Após o upload, você terá um link permanente do Drive para usar no email.

Amazon S3

Adicione o nó AWS S3 → Upload e passe a URL do arquivo. Útil quando os certificados fazem parte de um produto digital que precisa de link permanente.

Passo 6 — Entregue o certificado ao participante

Por e-mail

Adicione o nó Send Email (ou Gmail):

  • To: {{ $('Webhook').item.json.email }}
  • Subject: Seu certificado está pronto, {{ $('Webhook').item.json.nome }}!
  • Body (HTML):

html

<p>Olá, {{ $('Webhook').item.json.nome }}!</p>

<p>
  Parabéns por concluir <strong>{{ $('Webhook').item.json.curso }}</strong>.
  Seu certificado está disponível no link abaixo:
</p>

<p>
  <a href="{{ $json.url }}" style="background:#4F46E5;color:white;padding:10px 20px;border-radius:6px;text-decoration:none;">
    Baixar certificado
  </a>
</p>

<p style="color:#999;font-size:12px;">
  O link expira em breve. Recomendamos salvar o arquivo assim que possível.
</p>

Por WhatsApp (via Evolution API ou similar)

json

{
  "number": "{{ $('Webhook').item.json.phone }}",
  "mediaUrl": "{{ $json.url }}",
  "caption": "Parabéns, {{ $('Webhook').item.json.nome }}! Aqui está seu certificado de conclusão de {{ $('Webhook').item.json.curso }}. 🎓"
}

Tratamento de erros

Adicione um nó IF após o HTTP Request da Vecsy para verificar se a geração foi bem-sucedida antes de seguir:

  • Condição: {{ $json.url }} existe e não está vazio → verdadeiro → segue para o envio
  • Falso → dispara uma notificação para o time (Slack, email de alerta) com os dados do participante para reprocessamento manual

Principais erros da API:

CódigoCausaO que fazer401Token inválido ou ausenteVerificar o header Authorization400Campo faltando ou inválidoConferir se todos os campos do template estão sendo enviados404Template não encontrado ou não está em ReadyVerificar UUID e status do template na Vecsy

Fluxo completo

[Webhook / Google Sheets]
        ↓
[HTTP Request → Vecsy API]
        ↓
    [IF: url existe?]
    ↓ sim              ↓ não
[Salvar Drive/S3]   [Alerta para o time]
        ↓
[Envio por Email / WhatsApp]

Quando esse fluxo faz diferença

O ganho real aparece quando o volume sobe. Uma plataforma que emite 50 certificados por mês resolve isso manualmente sem drama. Com 500 por mês, o processo começa a pesar. Com 5.000, ou você automatiza ou precisa de alguém dedicado só para isso.

Com esse fluxo no ar, cada conclusão gera e entrega o certificado em segundos — independente de ser às 3 da manhã ou no meio de um feriado.

Quer configurar a API da Vecsy no seu fluxo? Fale com o time para obter acesso e tirar dúvidas sobre a integração. Solicite acesso à 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