English

Read this article in English.

HTML a imagen en n8n: guía paso a paso y plantilla gratis

Actualizado el

Respuesta corta: n8n no trae un nodo de "HTML a imagen". Añade un nodo HTTP Request que envíe tu HTML (POST) a una API que lo pinte, pon Response Format en File y el nodo te devuelve la imagen PNG, JPEG o WebP en la propiedad binaria data. Sirve en n8n Cloud y autoalojado, sin instalar ningún nodo de la comunidad.

Si automatizas con n8n, tarde o temprano necesitas crear una imagen dentro de un flujo: una tarjeta para redes, la imagen de Open Graph de un artículo, un recibo, un certificado o una miniatura. No hace falta montar un servidor, instalar un navegador ni buscar nodos de la comunidad. Basta un nodo HTTP Request llamando a la API de Cofferdock, y aquí lo tienes campo a campo.

Ese único nodo devuelve ya el archivo de imagen, listo para Google Drive, Gmail, Slack o Telegram.

Esta es la imagen real que devuelve el flujo de abajo, generada por n8n a partir de unas líneas de HTML:

Tarjeta para redes generada en n8n con el flujo de HTML a imagen

Lo más rápido: importa el flujo ya hecho

Si prefieres no rellenar campos a mano, empieza por el flujo gratis:

  1. En n8n, crea un flujo nuevo y abre el menú ⋯ (arriba a la derecha) → Import from URL.
  2. Pega este enlace: https://cofferdock.com/static/blog/n8n/html-to-image.json
  3. Abre el nodo HTML to image y cambia YOUR_API_KEY por tu llave.
  4. Pulsa Test workflow. El último nodo devuelve el PNG como archivo.

También puedes descargar el archivo del flujo y usar Import from File, o abrirlo, copiarlo entero y pegarlo en el lienzo de n8n con Ctrl+V.

Lo que necesitas

Paso a paso en el nodo HTTP Request

Añade un nodo HTTP Request y rellénalo así:

Y ya está. La salida del nodo es un archivo binario en la propiedad data. Para adjuntarlo en Gmail, añade un adjunto y escribe data; en Google Drive → Upload, el campo del archivo también es data.

Mete datos de nodos anteriores en la imagen

La gracia es que la imagen cambie con tus datos. Pon el campo Body en modo Expression y mete valores de los nodos anteriores en tu HTML:

<div style="width:1200px;height:630px;background:#1f1a17;color:#fff;font-family:Arial;padding:80px;box-sizing:border-box">
  <h1 style="font-size:72px">{{ $json.titulo }}</h1>
  <p style="font-size:34px">{{ $json.autor }}</p>
</div>

Si el nodo anterior devuelve diez filas, el HTTP Request se ejecuta diez veces y obtienes diez imágenes distintas. Un flujo típico:

  1. Google Sheets (o un webhook, Airtable, Notion…) lee las filas.
  2. HTTP Request convierte cada fila en imagen con las expresiones de arriba.
  3. Google Drive guarda cada imagen, o Gmail la envía.

Sin escribir HTML: usa una plantilla

Si no quieres escribir HTML, manda el nombre de una plantilla y tus textos en JSON. Cambia estos campos en el mismo nodo:

{
  "template": "social",
  "data": { "quote": "Automatiza lo aburrido", "author": "Tu nombre", "brand": "tumarca.com" },
  "lang": "es",
  "output": "image"
}

Quita la cabecera Content-Type: text/html (n8n manda la de JSON por su cuenta). Las plantillas disponibles (social, og, youtube, receipt, certificate, invoice) y sus campos están en cofferdock.com/templates.json, y puedes ver los diseños en la página de plantillas. Todo lo que mandas se escapa, así que los datos de un formulario no pueden romper el diseño.

Opciones que puedes ajustar

Se añaden como Query Parameters en el mismo nodo:

OpciónPor defectoPara qué sirve
width1200Ancho en píxeles (de 100 a 3840).
height630Alto en píxeles (de 100 a 2160).
formatpngpng, jpeg o webp.
quality90Calidad de 1 a 100 para jpeg y webp.
full_pagefalsePonlo en true para capturar un diseño más alto que height.
wait_ms0Espera antes de la foto para que carguen tipografías o imágenes (máximo 5000).
outputimageimage devuelve el archivo; url devuelve un enlace de descarga temporal (15 minutos).

Las fotos de fondo, logos y tipografías web funcionan poniendo su enlace https://… dentro del HTML o del CSS. La página se pinta sin ejecutar JavaScript, así que monta el diseño solo con HTML y CSS.

Errores típicos y cómo arreglarlos

Lo que vesPor qué pasaSolución
401 Missing x-api-key header / Invalid API keyFalta la cabecera, está mal escrita o la llave se anuló.Nombre exacto x-api-key y la llave sin espacios.
400 Missing or invalid html fieldEl cuerpo llegó vacío: Body Content Type no es Raw o la expresión no devolvió nada.Mira en la vista previa del Body de n8n que sale tu HTML.
El nodo devuelve texto o JSON en vez de un archivoResponse Format sigue en Autodetect/JSON.Options → Response → Response Format → File.
Faltan tipografías o imágenesNo terminaron de cargar antes de la foto.Añade wait_ms = 1000.
La imagen sale cortada por abajoEl diseño es más alto que height.Sube height o añade full_page = true.
429 Too many requests o Monthly limit reachedLímite por minuto de tu plan, o no quedan créditos este mes.Pon un nodo Wait en bucles grandes, o mejora el plan / compra créditos extra.
503 Server busy, try again shortlyTodos los turnos de renderizado estaban ocupados en ese momento.Reintenta pasados los segundos de la cabecera Retry-After. En el nodo, abre Settings y activa Retry On Fail.

¿Prefieres verlo en código?

La misma llamada con curl, para probarla fuera de n8n:

curl -X POST "https://api.cofferdock.com/capture?width=1200&height=630" \
  -H "x-api-key: TU_LLAVE" \
  -H "Content-Type: text/html" \
  --data-binary "<h1 style='color:#8a5210'>Hola</h1>" \
  -o imagen.png

Otras formas de hacerlo en n8n

El nodo HTTP Request no es la única vía. Así se comparan las opciones:

OpciónNecesitasn8n CloudConviene saber
HTTP Request a una API que pinta el HTML (esta guía)Una API keySíNo instalas ni alojas nada. Funciona igual en Cloud y autoalojado.
Un nodo de la comunidad para una API de imágenesInstalar el paquete desde npmSolo los nodos verificadosLos nodos de la comunidad sin verificar no funcionan en n8n Cloud, y es un paquete más que mantener al día.
Tu propio navegador sin pantalla (Puppeteer o Playwright, llamado desde el nodo Execute Command o desde un servicio que alojes tú)Un servidor que mantienes túNo con Execute CommandControl total y tu HTML no sale de tu máquina, pero instalas, actualizas y proteges el navegador tú mismo.

Si estás en n8n Cloud, o simplemente no quieres mantener nada, la vía del nodo HTTP Request de arriba es la más sencilla.

¿Cuánto cuesta?

Cada imagen gasta 1 crédito. Todas las herramientas de Cofferdock (HTML a PDF, capturas de webs, QR, gráficos, herramientas de PDF…) tiran del mismo bote de créditos, así que con una suscripción tienes todas.

Preguntas frecuentes

¿n8n tiene un nodo nativo de HTML a imagen? No. Se hace con el nodo HTTP Request llamando a la API de Cofferdock, que es la que genera la imagen.

¿Necesito saber programar? No. Importa el flujo o rellena los campos del nodo siguiendo esta guía. El HTML puede salir de una plantilla.

¿Qué recibo, un enlace o el archivo? El archivo, en la propiedad binaria data. Si prefieres un enlace (para mandarlo por Slack o guardarlo en una hoja), añade output = url.

¿Puedo generar imágenes en bucle? Sí. Si el nodo anterior devuelve varios elementos, n8n ejecuta el HTTP Request una vez por cada uno y obtienes una imagen por elemento.

¿Lo puede usar un agente de IA de n8n? Sí. Conecta el mismo nodo HTTP Request como herramienta del AI Agent, o usa el servidor MCP que se explica en la página de asistentes de IA.

¿Funciona en n8n Cloud? Sí. El nodo HTTP Request es parte de n8n, así que funciona en n8n Cloud y en instalaciones propias, y no instalas nada.

¿Puedo convertir una página web en imagen en vez de escribir HTML? Sí. La herramienta de captura de webs recibe una URL en lugar de HTML, y el montaje en n8n es casi idéntico. Mira captura de webs en n8n.

¿Se guardan mi HTML y las imágenes? No. Se procesan en memoria y se descartan. Solo si pides output = url, la imagen se guarda 15 minutos para que puedas descargarla.

¿Hay un límite de tamaño? El HTML puede pesar hasta 5 MB y la imagen medir hasta 3840 × 2160 píxeles.

Guías relacionadas

Referencia completa con todas las opciones: API de HTML a imagen. ¿Aún sin cuenta? Crea una gratis y monta tu primer flujo hoy mismo.