Templates

Templates are reusable text formatting definitions that turn structured data into human-readable output. They are used by playbook Template blocks to produce reports, email bodies, CRM notes, and other formatted text at runtime.

Templates are managed under Admin > Templates in the Management UI.

Templates list showing configured templates


How Templates Work

A template is a piece of text with variable placeholders written in Liquid syntax. When a playbook runs, the Template block replaces the placeholders with actual data from earlier blocks and produces the final formatted text.

Template text (with variables)  +  Input data  →  Rendered output

Example:

Template:

Meeting summary for {{ customerName }}

Date: {{ meetingDate }}
Advisor: {{ advisorName }}

{{ summaryText }}

Input data:

customerName = "Jane Doe"
meetingDate = "2026-03-15"
advisorName = "Thomas Berg"
summaryText = "Discussed Q1 portfolio review..."

Rendered output:

Meeting summary for Jane Doe

Date: 2026-03-15
Advisor: Thomas Berg

Discussed Q1 portfolio review...

Creating a Template

  1. Navigate to Admin > Templates in the Management UI
  2. Click Create
  3. Fill in the form:
Field What it does
Name A descriptive label shown in the template list and in the playbook editor’s Value dropdown
Description Optional explanation of what this template produces and when to use it
Content The template text, written using the rich text editor with Liquid variable syntax
  1. Click Save

Template editor showing Name, Description, detected variable chips, and the rich text content editor with Liquid variable toolbar button

Writing template content

The content editor supports rich text formatting and Liquid variable syntax. To insert a variable, type {{ variableName }} — the editor automatically detects variables and displays them as chips below the content field.

Variable names should match the field names you plan to map in the playbook. For example, if your template uses {{ customerEmail }}, the playbook’s Template block needs an input relation that maps a source field to customerEmail.

The editor extracts and displays all detected variables automatically. Use this as a quick check that your variable names are correct before saving.


Variable Syntax

Templates use Liquid syntax, which supports more than simple variable substitution.

Basic variables

{{ variableName }}

Replaced with the value provided by the playbook at runtime. If a variable has no value, it renders as an empty string — the template won’t fail.

Filters

Liquid filters transform values inline:

{{ customerName | upcase }}
{{ meetingDate | date: "%B %d, %Y" }}
{{ description | truncate: 100 }}

Logic and loops

Liquid supports conditionals and iteration:

{% if actionItems %}
Action items:
{% for item in actionItems %}
- {{ item }}
{% endfor %}
{% endif %}

The full Liquid syntax is supported. For a complete reference, see the Liquid documentation.


Using Templates in Playbooks

When you add a Template block to a playbook:

  1. Set Block type to Template
  2. Select the template from the Value dropdown — this lists all templates configured under Admin > Templates
  3. Connect input relations from earlier blocks to provide values for the template’s variables

How variables are mapped

Each input relation’s destination field maps to a template variable name. For example:

  • If your template contains {{ customerName }}, you need an input relation where the destination field is customerName
  • The Relation Builder’s field picker for the destination side shows all variables detected in the selected template

What the block outputs

The Template block produces a single output: the rendered text. Downstream blocks can use this output via relations — for example, an EntityPatternCreate block might write the rendered text into a CRM note field.

For step-by-step instructions on configuring Template blocks in the editor, see Step 5: Select the Block Type in the playbook user guide.


Import and Export

Templates support cross-environment portability through semantic IDs.

  • Export a template from one environment and import it into another — the semantic ID ensures the template retains its identity
  • If a template with the same semantic ID already exists in the target environment, the import updates the existing template rather than creating a duplicate
  • When a playbook is exported, its referenced templates are included in the export. Importing the playbook automatically provisions any templates that don’t yet exist in the target environment.


This site uses Just the Docs, a documentation theme for Jekyll.