HTML to Text
Strip HTML tags, scripts, and styles from a string to get clean, readable text.
- Use it to
- Strip HTML markup, scripts, and styles down to readable plain text
- Find it
- Tools → Data → Convert → HTML to Text
- Cost
- 1 Step credit per execution
- Limits
- Truncates input beyond 16,777,216 characters
- Output
- Converted plain text via {{ N.$full_result }}
- Instead
- Inline pipe ({{ 1.htmlBody | strip_html }}) for quick single-field cleanup
Most often you need it because an email body, a CRM note or a fetched web page arrived as HTML. The next step wants text a person can read: a Slack message, a spreadsheet cell, a summary.
No extra step needed? You can strip HTML directly inside any field token using Data Transformation with {{ 2.html_body | strip_html }}. Use this dedicated HTML to text step when you want the cleaned text stored as a standalone canvas output for multiple subsequent steps to reuse.
Keyboard shortcut: t+h
Setting it up
- Press
t+h, or open Tools → Data → Convert in the dock and select HTML to text. - In the Input field, pick the HTML from an earlier step.
- Save the step.
What it passes on
The Step returns the converted text directly, without a ret wrapper. Read the whole string using this Step’s number:
{{ 3.$full_result }}Run the Step with representative HTML and inspect the converted text in Executions before mapping it downstream.
What it leaves behind
- Styles and scripts. Markup that is not readable text is stripped along with the tags.
- Entities and odd markup. Encoded characters are turned back into the characters they stand for, and imperfectly nested tags do not stop the step.
- Empty input. An empty or missing input produces an empty string.
The exact output for a given page is worth confirming once in the Executions tab rather than predicting it. HTML in the wild varies more than any rule about it does.
Link addresses can remain in the text. A link such as this link can
become this link [https://example.com/track]. Do not use HTML conversion to
remove sensitive URLs or credentials. Extract links separately with a Code
editor Step if you need a structured
list.
Examples to copy
What goes in and what comes out
<h1>Order Confirmation</h1>
<p>Thank you for your order, <strong>Ada</strong>.</p>
<ul>
<li>Item: Widget Pro</li>
<li>Quantity: 3</li>
<li>Total: $89.97</li>
</ul>
<p>
Visit <a href="https://example.com/track">this link</a> to track your order.
</p>Illustrative text output:
ORDER CONFIRMATION
Thank you for your order, Ada.
* Item: Widget Pro
* Quantity: 3
* Total: $89.97
Visit this link [https://example.com/track] to track your order.The conversion uses plain-text headings, paragraph breaks and list markers rather than preserving the page’s visual layout. Inspect the result for your HTML, including links and whitespace.
An email body into Slack
An email trigger gives you the message as HTML. Slack shows the tags rather than the words unless you convert it first.
What to do: add HTML to text after the trigger, set the input to the email’s
body field, and put {{ 3.$full_result }} in the Slack step’s message (replacing 3
with this step’s own number).
A page you fetched into an AI step
Convert a fetched HTML page to text before using it as prompt context.
What to do: put HTML to text after HTTP Request.
Select the HTML text from Workflow data: {{ 3.ret.data }} for a default text
response, or {{ 3.ret.body }} with Include Full Response enabled. Reference
the converted text in the prompt.
HTML to Text processes inputs up to 16,777,216 characters (16 MiB) and truncates content beyond that limit.
- Run
- Map an HTML string into Input and click Run step in Test & Debug
- You should see
- The Executions tab shows plain text with headings, list markers, and decoded entities, ready to reference via {{ N.$full_result }}.
What’s Next?
- Break the resulting text into a list with Split Text.
- Write a custom parser for more complex extraction using Code editor.