A template is mostly fixed text with a few holes — a name, a link, an amount. Variables are how you fill those holes at send time. The template owns the wording; your send call owns the data.Documentation Index
Fetch the complete documentation index at: https://docs.senderkit.com/llms.txt
Use this file to discover all available pages before exploring further.
The syntax
SenderKit interpolates templates with Mustache. You reference a variable with double braces, and nested values with a dotted path:Template copy
Your send
Typed variables
Each template version declares the variables it expects, with a type (string, array, object, or boolean), an optional description, an example
value, and whether it’s required. The editor uses these declarations to preview the
template with realistic sample data, and to help non-engineers understand what each
hole needs.
Declarations describe and document the variables a template uses — they power
previews and the editor experience. At send time, interpolation is driven by the
vars you actually pass.Missing variables
If a template references a variable you don’t supply, it renders as an empty string — interpolation doesn’t fail, and the send still goes out. That keeps a forgotten optional field from blocking delivery, but it also means a typo in a variable name fails silently.Escaping
For email, values interpolated into the HTML body are HTML-escaped by default, so a variable can’t inject markup. Subjects, preheaders, plain-text bodies, and all SMS and push content are not HTML, so they pass through unescaped. When you genuinely need a variable to contain trusted HTML, opt out of escaping with the triple-brace / ampersand form:Conditionals and loops
Mustache sections let a template show a block only when a value is present, or repeat a block over a list:Templates
Where variables are declared and used.
Sending
How
vars travel with a send.