Book a Call
FEATUREAI & AUTOMATION
FEATUREAI & AUTOMATIONN8N

The n8n HTML node, and why it's my favourite output trick.

If your n8n workflow is producing JSON that ends up in a doc, a YouTube description, or an internal email, route it through the HTML node first. Same workflow, ten lines of template, one platform-appropriate output.

YA
Yerain Abreu
SEO Strategist
PUBLISHEDFeb 12, 2026
UPDATEDMay 15, 2026
READ TIME6 min
TOPICn8n
YA
Yerain AbreuSEO STRATEGIST
PUBLISHEDFeb 12, 2026UPDATEDMay 15, 2026READ TIME6 minTOPICn8n
A simple n8n workflow with the HTML node routing JSON through a template before delivery.FIG · 01

I've been running n8n in production for a year now — for editorial automation, internal ops, and the AI-assisted content pipelines I build for clients. About six months in, I hit the same problem on three different workflows: the output looked like garbage every time it left the platform.

JSON with literal \nsequences. Markdown that got mangled in Notion. Plain-text descriptions where every "smart quote" turned into ’. The fix turned out to be simpler than I expected, and it's been my default move ever since.

// HEADS UP

This post assumes you've already shipped at least one n8n workflow. If you haven't, start with the n8n getting-started guide and come back.

The problem: JSON is a transport, not a presentation layer.

Most n8n workflows hand you data as JSON, which is great — until you need a human to read it. The default options are all bad in their own way:

JSON is a transport, not a presentation layer. Stop treating it like one.
// THE THESIS

The fix: the HTML node, used as a templating layer.

The HTML node in n8n is usually framed as "scrape a page" — but it's also a Handlebars-flavoured template renderer. You can pipe any upstream JSON into it and get formatted output the next node can consume. Here's the pattern I use:

template.hbs  // 6 LINES
// Handlebars template inside the HTML node
{{#each items}}
  <h3>{{title}}</h3>
  <p>{{description}}</p>
  <a href="{{url}}">Read more →</a>
{{/each}}

Set the node's output mode to HTML and the next node receives a clean, rendered string. From there I usually pipe it into one of four destinations:

DESTINATION 01

YouTube

Video descriptions with clean line breaks and chapter timestamps. Tags stripped, formatting kept.

DESTINATION 02

Gmail / SMTP

Newsletter previews and transactional emails — formatting survives the round-trip.

DESTINATION 03

Notion / Airtable

Drop into rich-text fields and the formatting comes through cleanly.

DESTINATION 04

WordPress

Pipe straight into a draft post body — no Markdown round-trip.

Without vs. with the HTML node.

CASE
WITH HTML NODE ✓
WITHOUT ✕
01
Line breaks land.Real newlines render across YouTube + Gmail.
Literal \n sequences.Show up in destinations as text characters.
02
Bold & links survive.Inline formatting renders.
Smart-quote entities.Quotes mangle to &rsquo;.
03
Lists render as lists.Bullets, numbered, both.
Lists collapse.One run-on line.
04
One template, many destinations.Branch off the same HTML node.
One transform per destination.Code-node sprawl.

Where it earns its keep.

// DESTINATIONNATIVE FORMATHTML NODE FIT ★NOTES
YouTubePlain textSTRONGLine breaks survive
GmailHTML emailNATIVEPipes straight in
NotionMarkdownSKIPUse Markdown instead
SlackBlock KitSKIPBlock Kit is structured
WordPressHTMLNATIVEDrop into post body

Quick FAQ.

Q.01Does this work in self-hosted n8n and n8n Cloud?

Yes — the HTML node is a core node, available in both. No plugin or community node required.

Q.02Can I use it for emails with inline CSS?

Absolutely. Drop your inline-CSS email template in directly. Pair it with the Gmail or SMTP node and you've got a workflow-driven newsletter.

Q.03What about more complex logic — conditionals, loops?

Handlebars syntax handles {{#if}}, {{#each}}, and helpers. For anything beyond that, do the data work in a Code node first and keep the template dumb.

Try this on your next workflow. Drop an HTML node between your data-shaping nodes and your delivery node, give it 5 minutes of template-writing time, and watch the output quality jump.

Yerain Abreu

// SEO & AI AUTOMATION · MT VERNON, WA

Ten years building organic-growth pipelines for YMYL verticals. Currently figuring out how to win in ChatGPT, Gemini, and Perplexity. Taking two retainer slots in Q3 2026.

LIKED THIS?Get the
next one.
POST 07 OF 42

// GROWTH SIGNAL · WEEKLY

More workflow tricks, every Tuesday.

SEO, AI automation, and the playbooks I actually run for clients. One email a week, no fluff.

// 1,800+ OPERATORS · ONE-CLICK UNSUB