Saltar al contenido principal

Previsualizar una plantilla de email

POST/v1/mail-templates/preview

Para desarrolladores

Descripción​

Renderiza un documento de plantilla y devuelve el HTML que llegaría al destinatario. No hace falta una plantilla guardada y no se guarda nada.

Un documento con errores responde 422, igual que al guardarlo. Para ver los errores sin que la llamada falle, use POST /v1/mail-templates/validate.

Con vars, el HTML vuelve completado con esos valores, como lo recibiría un destinatario con esos datos: los bloques {% if %} y {% for %}, los de las filas (if y for) y los filtros de formato quedan resueltos. El valor de un campo de selección trae la etiqueta de su opción, como en el envío de una campaña, así que {{ CIUDAD.label }} muestra su texto.

Si omite vars, el HTML se completa con los valores de ejemplo que el documento guarda en sampleValues (formato). Si no envía ninguno de los dos, las etiquetas vuelven tal como están escritas. Un vars vacío ({}) se usa tal cual: cada etiqueta toma su respaldo.

Guía relacionada​

Autenticación​

Authorizationbearer tokenheaderobligatorio
API key con scope templates:read. Formato: Bearer <API_KEY>.
X-Instance-Slugstringheaderobligatorio
Identificador de su instancia. Ver Autenticación.

Request​

Body:

{
"config": {
"mode": "html",
"rawHtml": "<html><body><p>Hola</p><a href=\"fide:unsubscribe\">Darse de baja</a></body></html>",
"page": { "rows": [] }
},
"preheader": "Hasta 40% de descuento este fin de semana",
"vars": { "NOMBRE": "Ana" }
}
configobjectobligatorio
Documento completo, hasta 256 KB, como lo devuelve GET /v1/mail-templates/{template_id}, incluido el modo HTML crudo.
preheaderstring | null
Preheader con el que se renderiza, hasta 255 caracteres.
varsobject | null
Valores de ejemplo para las etiquetas. Siguen las reglas de vars en un envío: claves sin distinguir mayúsculas de minúsculas, valores de texto, número, booleano, lista u objeto, sin EMAIL. Si lo omite, se usan los sampleValues del documento.

Response​

200 OKDevuelve un objeto con los campos que siguen.
htmlstringsiempre presente
HTML del correo, con el preheader incluido como bloque oculto al comienzo del cuerpo. En modo HTML crudo, el HTML enviado sin cambios salvo el preheader.

Errores​

CódigoCuándo
413El body supera el tamaño máximo de una petición, o el documento, una vez completado con sus valores por defecto, supera los 256 KB (request_too_large).
422El documento tiene errores (invalid_document). Hay un ítem por error, con su pointer bajo /config, params.rule y params.uuid. También responde 422 si no se envió ningún documento (document_required), si el body trae el campo essential (essential_not_supported) o si, en modo HTML crudo, rawHtml supera los 100 KB (template_html_too_large). Si la plantilla no se puede completar con los vars enviados, por ejemplo por un divided_by: 0, el error es template_render_failed, en /vars. Los sampleValues del documento siguen las mismas reglas que vars, aunque envíe vars. Si no las cumplen, el error es invalid_document con params.rule sample_values_invalid, en /config/sampleValues. Si la plantilla no se puede completar con los sampleValues, el error es template_render_failed, en /config/sampleValues.

Detalle en Errores por campo (422).

Request
curl -X POST "https://$API_HOST/v1/mail-templates/preview" \
-H "Authorization: Bearer $API_KEY" \
-H "X-Instance-Slug: $SLUG" \
-H "Content-Type: application/json" \
-d '{
"config": {
"mode": "html",
"rawHtml": "<html><body><p>Hola</p><a href=\"fide:unsubscribe\">Darse de baja</a></body></html>",
"page": {
"rows": []
}
},
"preheader": "Hasta 40% de descuento este fin de semana"
}'
Response
{
"html": "<!DOCTYPE html><html>…</html>"
}