Crear una plantilla
Un borrador salvo que pidas publicarlo. Un borrador se puede previsualizar y no se puede enviar.
Ejecuta la llamada real contra tu espacio de trabajo, con tu propia clave.
POST /templates
Un borrador salvo que pidas publicarlo. Un borrador se puede previsualizar y no se puede enviar.
Ejemplo
Necesita templates:write. Devuelve 201. slug se deriva del nombre cuando lo omites, y es el identificador que conviene fijar en el código, porque un nombre es justo lo que alguien cambia.
curl -X POST "$OE/templates" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "name": "Order shipped", "engine": "html", "subject": "Order {{orderId}} is on its way", "html": "<p>Hello {{customer}}, {{orderId}} left the warehouse.</p>", "props": [ { "key": "orderId", "kind": "text", "required": true }, { "key": "customer", "kind": "text", "default": "there" } ], "publish": true }'{ "object": "template", "id": "tpl_9c1f0a4b7e05d3862c1f0a44", "name": "Order shipped", "slug": "order-shipped", "description": null, "status": "active", "publishedVersion": 1, "latestVersion": 1, "subject": "Order {{orderId}} is on its way", "engine": "html", "slots": [], "props": [ { "key": "orderId", "kind": "text", "required": true, "default": null }, { "key": "customer", "kind": "text", "required": false, "default": "there" } ], "createdAt": "2026-08-30T10:41:02.000Z", "updatedAt": "2026-08-30T10:41:02.000Z"}Pon publish: true desde un script de despliegue. Sin eso obtienes la versión 1 como borrador, que es lo correcto cuando alguien va a leer el texto primero y lo incorrecto en cualquier cosa automatizada.
Un nombre duplicado es template_name_taken y un slug duplicado es template_slug_taken, ambos 409 sobre la conexión y no sobre la cuenta.
Una conexión admite 200 plantillas. La 201 es template_limit_reached, una protección contra un script desbocado, no un límite de plan.