{{1}}, {{2}}, and so on. You give each slot a Sample so Meta can review the template, and the agent supplies the real value for each slot when it sends.
Add variables in the body
Type{{1}} where the first value goes, or select Add variable in the expanded body editor. Kylo reads the highest number it finds and shows one Variable N card per slot, each with a Sample field and a remove button.
Kylo accepts positional variables only. These rules apply, and Meta’s rules match them:
Meta also rejects variables that are not sequential, such as
{{1}}, {{2}}, {{5}}, variables with special characters, and templates with too many variables for their length. The body can be up to 1,024 characters. See Meta: template review and Meta: template components.
Removing a variable with its remove button deletes {{n}} from the body and renumbers the later ones.
Write real samples
Samples are the values Meta sees. Use realistic ones, such asSara for a first name, 971501234567 for a phone number, and Acme for a company. Meta reviews samples, so placeholder text like “test” can hurt approval.
How the agent fills the slots
When a trigger fires, Kylo starts one agent turn. The agent calls@whatsapp.send-template with the template name and one value per slot, in order. Kylo checks the call before it sends anything:
The seeded Lead Qualifier instructions show the pattern: “When a new lead arrives, use
@whatsapp.send-template TEMPLATE_NAME. Put First_Name from this chat’s memory in {{1}}. If First_Name is missing, leave {{1}} empty. Do not guess.” An empty value triggers empty_slot, which is the intended outcome: no message goes out with a guess in it.
Meta’s error for a count mismatch is 132000, and Kylo’s check exists to avoid reaching it. See Send errors.
The values come from the agent, so the instructions decide which Zoho field goes in which slot. Name the field in the instructions, for example “
{{1}} is the lead’s First_Name”.Template approval
What happens after you submit.
