Handlebars
Utilities & PersonalRender Handlebars templates against flow data using the official handlebars package, entirely inside FlowRunner. Agents build message bodies, documents, and payloads from a template without an outbound call.
What This Integration Enables
Handlebars renders templates against flow data inside FlowRunner, using the official handlebars package rather than a reimplemented subset, so the complete template language is available: nested paths, conditional and iteration blocks, subexpressions, block parameters, comments, parent paths and partials. There is no configuration, no API key and no outbound call, which means the step that turns structured data into customer-facing language has no vendor between it and the send, and nothing to provision or rotate. Beyond the language's own helpers it registers more than thirty for comparison, text, maths, collections and dates, and List Helpers returns the full catalogue with signatures so an author or an AI agent can discover the exact name and argument order rather than guessing. The security posture is deliberate and worth stating plainly: values are HTML-escaped by default with only the triple-stash form emitting raw markup, prototype access is blocked so traversal cannot reach code execution, no helper evaluates strings or reads the filesystem or makes a network call, and each render runs with budgets on template size, output size, iterations and partial depth that raise a descriptive error rather than hanging. That is what makes it safe to let a marketer, or an agent, author a template.
Without FlowRunner
With FlowRunner
Use Case Scenarios
One template, many personalized messages
A lifecycle flow sends a renewal notice to every account reaching its anniversary this week. The agent assembles the account data, then calls Render Template Batch once with the template and the whole array. The template is compiled a single time and reused across every entry, which makes it markedly faster than looping a single render, and each entry can read its own position through the injected index property when the copy needs to number things. The rendered bodies go out through Mailgun and the send record is written back to HubSpot.
A payload, not a paragraph
Not every template produces prose. An agent integrating with a partner API that expects a specific JSON shape renders that payload from a template rather than building it in a code step, with escaping turned off because the output is not HTML. The same pattern produces Markdown for a documentation update, YAML for a configuration change, or a formatted plain-text block for a chat message. Keeping the shape in a template means the person who owns the partner relationship can read it, and change it, without touching flow logic.
Letting a person own the wording
A support team wants to edit its own automated acknowledgement copy without asking anyone. The template is stored in a record the team can edit, and before it is saved the agent calls Validate Template, which compiles without rendering and reports whether the syntax is valid, with the parser message and line number when it is not, along with the variables the template reads, the helpers it calls, the partials it expects and any of those partials that were not supplied. A broken template never gets saved. The acknowledgement itself is rendered per ticket and posted through Zendesk.
Human-in-Loop Highlight
The gate is the render that succeeds and is wrong. Handlebars does not error on a missing variable, it renders an empty string, so a template with a typo in a field path produces "Hi ," and a batch render will produce it four thousand times without a single complaint from the flow. Validate Template is the reason the agent can see this coming: it returns the exact list of variables the template reads and the partials it expects, and that list can be compared against the keys actually present in the data. So before a Render Template Batch reaches a real audience, the agent renders one entry with Render Template, diffs the referenced variables against the data, and when anything is referenced but absent it holds the whole batch and asks the campaign owner in Slack: "Renewal template references customer.firstName and plan.renewsOn. Neither key exists in this segment's records, and 4,000 messages would render both as empty. Here is the sample output. Fix the template, remap the fields, or send as is?" An email that has left the building cannot be recalled, and the digital andon cord exists so a flow can stop the line at the last moment where stopping is still free.
Agent Capabilities
4 actionsTemplating
3- Render Template Renders a template against a data object and returns the resulting text, supporting the complete Handlebars language including nested paths, conditional and iteration blocks, subexpressions, block parameters, comments and inline partials, plus more than thirty extra helpers for comparison, text, maths, collection and date work. Values are HTML-escaped by default and only the triple-stash form emits raw markup. Used to build emails, HTML fragments, Markdown, JSON or any other string from structured flow data.
- Render Template Batch Renders one template once per entry in an array of data objects, returning every rendered string plus an optionally joined document. The template is compiled a single time and reused, which makes it markedly faster than looping a single render, and it is the natural fit for table rows, list items, personalized message variants or repeated blocks. Each entry can read its position through the injected index property. Accepts up to 1000 entries per call.
- Validate Template Compiles a template without rendering it and reports whether it is syntactically valid, returning the parser message and line number when it is not. Also returns the variables the template reads, the helpers it calls, the partials it expects and any of those partials that were not supplied. Used as a pre-flight check before saving a user-authored template or running a large batch.
Reference
1- List Helpers Returns every helper available to a render, grouped by category, with its call signature and a short explanation, covering the helpers built into Handlebars itself plus the additional comparison, text, maths, collection and date helpers this connector registers. Used to discover the exact helper name and argument order before authoring a template, or to surface the available vocabulary to an end user or an AI agent composing one.
Frequently Asked Questions
What can FlowRunner do with Handlebars?
FlowRunner agents can run Render Template, Render Template Batch, and Validate Template in Handlebars, plus 1 more action.
Does connecting Handlebars to FlowRunner require OAuth?
No. Handlebars connects to FlowRunner with an API key, no OAuth flow required.
Can Handlebars trigger a FlowRunner workflow automatically?
Handlebars doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Handlebars
$100 in credits. No card required. Connect in minutes.