HTML output mapper

The HTML output mapper node renders a single HTML template into a page.

The HTML output mapper node renders a single HTML template into a page. Use it when the caller is a browser rather than an API client — the workflow answers with text/html instead of JSON.

Overview

PropertyValue
Inputs1
Outputs0 (sink)
Runtime output{ "html": "…", "statusCode": 200, "contentType": "text/html; charset=utf-8" }

Parameters

ParameterTypeDescription
labelstringNode identifier (camelCase)
htmlstringThe page template. $nodeLabel.field expressions are interpolated in place.
statusCodenumberHTTP status for the response (default 200)
contentTypestringResponse content type (default text/html; charset=utf-8)

Webhook and run behavior

When this node is the only terminal output of the workflow, the execute endpoint responds with the rendered page, the configured status code, and the configured content type — no JSON envelope, no label wrapper.

Two things turn that off:

  • A second terminal node. With another active terminal in the graph, Heym falls back to the normal per-label JSON map and the page arrives as a string field.
  • X-Simple-Response: false. That header asks for the full envelope with status, node_results, and timings, which is what the editor's canvas uses. Send it when you are debugging a page workflow.

Serving a page to a browser

Set the workflow's request method to GET in the cURL dialog so a plain browser navigation reaches it. A GET request carries no body, so inputs come from the query string:

curl -X GET "https://your-host/api/workflows/<workflow-id>/execute?name=Ada"

Read those values with $input.query.name. See Webhooks for the full method contract.

A workflow with no trigger node whose only terminal is this node shows a WEB chip in the Workflows tab.

Agent tool usage

Not supported. This node is a terminal sink, so it cannot be attached to an Agent Node tools handle. The same applies to JSON output mapper.

Loop restriction

Same rule as Output: do not place this node inside a loop iteration branch—only after the loop done branch. See Loop.

Example

{
  "type": "htmlOutputMapper",
  "data": {
    "label": "reportPage",
    "html": "<!doctype html><html><body><h1>$llm.text</h1><p>Generated by Heym</p></body></html>",
    "statusCode": 200,
    "contentType": "text/html; charset=utf-8"
  }
}
  • JSON output mapper – Same idea for API clients expecting JSON
  • Output – Message or schema-based response with result wrapping
  • Webhooks – Execute endpoint, request methods, and responses
  • Node Types – All node types