Pular para o conteúdo
couryo

Guia do desenvolvedorEnvio

Templates salvos

Templates do Couryo em HTML ou MJML com variáveis {{nome}}, versões e pré-visualização, e como enviar com template + variables.

Ver em Markdown

Salve o HTML do e-mail uma vez e mande só os dados em cada envio. Os templates ficam no projeto, aceitam HTML ou MJML e têm variáveis entre chaves duplas.

Variáveis#

  • Escreva {{nome}} no assunto, no HTML ou no texto. Para valores aninhados, use ponto: {{pedido.numero}}.
  • Nomes aceitos: letras, números e _, começando por letra ou _. Um nome inválido, como {{nome completo}}, é recusado ao salvar.
  • No HTML, os valores são escapados (< vira &lt;), então dados do usuário não quebram o layout nem injetam código.
  • Valores podem ser texto, número ou verdadeiro/falso. Toda variável usada precisa de valor: se faltar alguma, o envio é recusado com invalid_field e param = variables.<nome>.
  • Sem parte em texto, o Couryo gera uma a partir do HTML (os links ficam com o endereço entre parênteses).

Criar#

cURL
curl https://api.couryo.com/v1/templates \
  -H "Authorization: Bearer $COURYO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "boas-vindas",
    "format": "html",
    "subject": "Bem-vinda, {{nome}}!",
    "html": "<h1>Olá, {{nome}}</h1><p>Seu pedido {{pedido.numero}} foi confirmado.</p>"
  }'

A resposta traz o id (tpl_...), a version (começa em 1) e a lista de variables encontradas. O name é único no projeto e pode ser usado no lugar do id. Criar, mudar e apagar exigem uma chave admin; ler e pré-visualizar, read.

Com "format": "mjml", o MJML é compilado ao salvar; se tiver erro, a resposta é invalid_field com param = html e a mensagem do MJML.

Enviar com um template#

cURL
curl https://api.couryo.com/v1/emails \
  -H "Authorization: Bearer $COURYO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Loja <oi@exemplo.com.br>",
    "to": "ana@exemplo.com.br",
    "template": "boas-vindas",
    "variables": { "nome": "Ana", "pedido": { "numero": 1042 } }
  }'
  • Com template, o subject é opcional (vale o do template); se você mandar um, ele vence.
  • template e html/text no mesmo pedido: invalid_field com param = template.
  • O envio usa a versão atual do template, e o e-mail guarda qual foi: GET /v1/emails/{id} traz "template": { "id": "tpl_...", "version": 2 }.
  • Também vale no lote e na checagem POST /v1/emails/check, que confere o conteúdo já com as variáveis.

Versões#

Mudar subject, html ou text (PATCH /v1/templates/{id}) cria uma versão nova; trocar só o name não. E-mails já enviados não mudam. GET /v1/templates/{id}/versions lista todas, da mais nova para a mais antiga.

Pré-visualizar#

cURL
curl https://api.couryo.com/v1/templates/boas-vindas/preview \
  -H "Authorization: Bearer $COURYO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "variables": { "nome": "Ana" }, "version": 1 }'

Devolve subject, html (MJML já compilado), text e missing_variables, a lista do que faltaria para enviar. Nada é enviado. No painel, a tela Templates faz o mesmo, com o e-mail renderizado ao lado.

Endpoints#

Método e caminho Escopo O que faz
GET /v1/templates read lista os templates do projeto
POST /v1/templates admin cria (201)
GET /v1/templates/{id} read um template (por id ou name), versão atual
PATCH /v1/templates/{id} admin muda name, subject, html ou text
DELETE /v1/templates/{id} admin apaga (204)
GET /v1/templates/{id}/versions read versões
POST /v1/templates/{id}/preview read pré-visualização com variáveis