GETList templates/api/v1/templatesGETGet a template/api/v1/templates/{templateId}POSTCreate a template/api/v1/templatesPATCHUpdate a template/api/v1/templates/{templateId}DELETEDelete a template/api/v1/templates/{templateId}POSTTest a template/api/v1/templates/{templateId}/test-sendGETBrowse the gallery/api/v1/template-galleryGETGet a gallery design/api/v1/template-gallery/{galleryTemplateId}POSTRender without sending/api/v1/render
Qué es una plantilla, por HTTP
Una plantilla es un archivo HTML. No hay ningún diseño a su alrededor: lo que envías es lo que reciben los destinatarios, lo que también significa que el enlace de baja tiene que estar en tu propio marcado; consulta Chuleta de etiquetas de combinación.La galería de plantillas
Escribir a mano 150 líneas de HTML de email, y bien, es un mal uso del tiempo de cualquiera, sea el tuyo o el de un agente. La galería es un pequeño conjunto de modelos que mantenemos nosotros: llevan su enlace de baja, sus regiones editables, y se han comprobado en los clientes que importan. Lees uno, lo copias y editas tu copia. Solo lectura. No hay ningún endpoint para añadir, cambiar o eliminar un modelo: la galería pertenece al producto, no a una organización. Es la misma para todas las claves. Solo son visibles los modelos publicados. Un borrador responde404, exactamente igual que un id que no existe: no puedes distinguirlos, y es deliberado.
Se sigue exigiendo una clave de API, como en todas las rutas de /api/v1. Aquí no se usa para filtrar nada: la galería es común a todas las organizaciones, así que no hay nada que limitar.
Crear una plantilla a partir de un modelo
POST /api/v1/templates recibe galleryTemplateId en lugar de content. El servidor lee el modelo publicado y copia su HTML, así que nunca tienes que mover 150 líneas por tu propio proceso.
| Campo | En | Obligatorio | Descripción |
|---|---|---|---|
name | body | sí | De 1 a 100 caracteres |
galleryTemplateId | body | sí* | El modelo que se copia. Sustituye a content |
defaultSubject | body | no | Si lo omites, se usa el asunto del modelo |
galleryTemplateId o content; consulta más abajo.
bash
curl -X POST -H "x-api-key: $AGENTMAIL_API_KEY" -H "content-type: application/json" \
-d '{"name": "August newsletter", "galleryTemplateId": "'"$GALLERY_TEMPLATE_ID"'"}' \
"https://www.agentsmail.io/api/v1/templates"Es una copia, no una herencia. Tu plantilla tiene su propio HTML desde el momento en que se crea. Si mañana mejoramos el modelo, nada tuyo cambia; si editas tu plantilla, la galería no se toca. Después nada vincula las dos: no hay ningún endpoint de «actualizar desde el modelo», y nosotros no tenemos forma de cambiar lo que ya tienes.
| Condición | Respuesta |
|---|---|
galleryTemplateId solo | 201: se copia el HTML del modelo |
content solo | 201: tu HTML, con las etiquetas de combinación convertidas |
| ambos a la vez | 400: dos documentos distintos, elige uno |
| ninguno | 400: una plantilla necesita un documento |
galleryTemplateId desconocido o no publicado | 400: el mensaje nombra el parámetro |
unsupportedTags, incluidas las que de otro modo traduciríamos: se quedaron en bruto en tu documento y no se interpretarán cuando se renderice el email. Los modelos de la galería normalmente se escriben con nuestro propio vocabulario {{...}}, así que esta lista suele estar vacía, pero se te avisa cuando no lo está, en lugar de que lo descubras en una bandeja de entrada.