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 binariadata. 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:

Lo más rápido: importa el flujo ya hecho
Si prefieres no rellenar campos a mano, empieza por el flujo gratis:
- En n8n, crea un flujo nuevo y abre el menú ⋯ (arriba a la derecha) → Import from URL.
- Pega este enlace:
https://cofferdock.com/static/blog/n8n/html-to-image.json - Abre el nodo HTML to image y cambia
YOUR_API_KEYpor tu llave. - 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
- Una cuenta en Cofferdock. El plan gratis te da 50 créditos al mes sin tarjeta, de sobra para probar.
- Tu API key, que creas en tu panel con "+ Crear llave". Se muestra una sola vez, así que cópiala y guárdala.
- Un nodo HTTP Request en tu flujo de n8n.
Paso a paso en el nodo HTTP Request
Añade un nodo HTTP Request y rellénalo así:
- Method:
POST - URL:
https://api.cofferdock.com/capture - Send Query Parameters: actívalo y añade el tamaño en campos separados:
width=1200yheight=630. - Send Headers: actívalo y añade dos cabeceras:
x-api-keycon tu llave, yContent-Typecon el valortext/html. - Send Body: actívalo → Body Content Type
Raw→ Content Typetext/html→ en Body pega tu HTML. - En Options → Response → Response Format elige File.
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:
- Google Sheets (o un webhook, Airtable, Notion…) lee las filas.
- HTTP Request convierte cada fila en imagen con las expresiones de arriba.
- 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:
- Body Content Type:
JSON→ Specify Body:Using JSON - JSON:
{
"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ón | Por defecto | Para qué sirve |
|---|---|---|
width | 1200 | Ancho en píxeles (de 100 a 3840). |
height | 630 | Alto en píxeles (de 100 a 2160). |
format | png | png, jpeg o webp. |
quality | 90 | Calidad de 1 a 100 para jpeg y webp. |
full_page | false | Ponlo en true para capturar un diseño más alto que height. |
wait_ms | 0 | Espera antes de la foto para que carguen tipografías o imágenes (máximo 5000). |
output | image | image 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 ves | Por qué pasa | Solución |
|---|---|---|
401 Missing x-api-key header / Invalid API key | Falta 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 field | El 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 archivo | Response Format sigue en Autodetect/JSON. | Options → Response → Response Format → File. |
| Faltan tipografías o imágenes | No terminaron de cargar antes de la foto. | Añade wait_ms = 1000. |
| La imagen sale cortada por abajo | El diseño es más alto que height. | Sube height o añade full_page = true. |
429 Too many requests o Monthly limit reached | Lí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 shortly | Todos 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ón | Necesitas | n8n Cloud | Conviene saber |
|---|---|---|---|
| HTTP Request a una API que pinta el HTML (esta guía) | Una API key | Sí | No instalas ni alojas nada. Funciona igual en Cloud y autoalojado. |
| Un nodo de la comunidad para una API de imágenes | Instalar el paquete desde npm | Solo los nodos verificados | Los 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 Command | Control 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
- HTML a imagen en Make y en Zapier
- HTML a PDF en n8n (facturas e informes)
- Captura de webs en n8n
- QR en n8n y gráficos en n8n
- Alternativa a htmlcsstoimage: cuándo te conviene Cofferdock y cuándo no
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.