{{ }}. ServFlow calls this dynamic content. This page explains how to read and write it. For every function, see the Dynamic content reference.
Reading a template
Text with gaps in it is called a template. This one is the User prompt of a Discord agent:Where you can use it
In a System prompt and a User prompt, in a tool’s settings, in a context step’s settings, and in a guard’s condition. A field that accepts dynamic content showsSupports {{ }} templates under its label.
What you can read depends on how the agent was started
Three things to watch:
- A Discord agent cannot use
body. It has no web request to read. bodyreads a web request only when the request is sent as JSON.- An agent that runs on a schedule has no message to read, so leave
inputout of its prompts.
.discord, .telegram, and .github.
What you can read from any agent
- What an earlier context step found.
{{ .customer.name }}readsnamefrom a step calledcustomer. See Context fetching. - A stored secret.
{{ secret "weather-api-key" }}. See Secrets. - Inside a tool, what the agent passed to it.
{{ tool_param "question" }}. See Add a tool to an agent.
Small changes to a value
A function can change a value on its way in. Three common ones:
The brackets in
(body "count") mean “work this out first”.
If something is missing
A gap whose value is missing is left empty, and the prompt still goes out. Write prompts that read sensibly when that happens. A misspelt function name is different. In a guard, ServFlow refuses it when you save. In a prompt, the agent fails when it runs.Dynamic content in the dashboard
Every field that accepts dynamic content has two small buttons in its corner. Insert a variable opens a menu of what the field can read, such as the results of context steps and your secrets, and writes the braces for you. Expand editor opens the field in a larger window. Typing inside braces suggests names as you go.

Related
Dynamic content reference
Every function, with what it takes and returns.
Available entry handlers
Every name a Discord, Telegram, or GitHub entry provides.
Guard rails
Conditions that decide whether a tool may run.
Context fetching
Steps whose results a prompt can read.