Last updated: July 5, 2026
Variables Show as {{...}} in Output
When Agent0's output or tool calls contain literal {{variable}} text instead of actual values, the variable isn't being resolved. This happens when variables don't exist for the trigger that fired.
Wrong Trigger Type for Variable
The most common issue: using trigger-specific variables with the wrong trigger type.
Example problem:
123Prompt: "Post findings to {{slack.channel.name}}"Trigger: Schedule (runs daily at 9am)Result: "Post findings to {{slack.channel.name}}" (literal text)
Why: Schedule triggers don't have {{slack.channel.name}}. That variable only exists for Slack triggers.
Fix:
Option 1: Use Only Compatible Variables
Only use variables that exist for your trigger type:
- Schedule →
{{now}},{{today}}, built-in variables - Slack message →
{{slack.channel.name}},{{slack.message.text}}, etc. - Failed check →
{{check.name}},{{label.service}}, etc.
Option 2: Use Constants Instead
Define values that don't change as constants:
- Go to Guardrails > Constants
- Add constant:
alert_channel=incidents - Use in prompt:
Post to #{{alert_channel}}
This works for all trigger types.
Option 3: Handle Multiple Trigger Types
If your automation has different triggers, branch on trigger type:
123If this is a Slack message, post findings to {{slack.channel.name}}.If this is a scheduled run, post findings to #daily-reports.
Reference {{dash0.trigger.kind}} to differentiate.
Typo in Variable Name
Small typos break variable resolution silently.
Common mistakes:
{{slack.chanel.name}}(should bechannel- typo in attribute name){{Slack.channel.name}}(wrong capitalization){{label-service}}(should belabel.servicewith dot)
Fix:
- Copy variable names from trigger documentation
- Use autocomplete in the prompt editor (type
{{to see suggestions) - Double-check spelling and capitalization
Variable Doesn't Exist for This Trigger
Some variables only exist in specific contexts.
Example:
{{slack.thread.timestamp}} only exists if the Slack message was in a thread. Top-level messages don't have this variable.
Fix:
- Check trigger documentation for available variables
- Don't assume variables exist in all contexts
- For optional variables, write prompts that work whether the variable is present or not
Constant Not Defined
If you reference a constant that doesn't exist, it shows as literal text.
Check:
- Go to Guardrails > Constants
- Verify the constant key matches what you're using in the prompt
- Keys are case-sensitive
Example:
- Constant defined:
environment=production - Prompt uses:
{{Environment}}❌ - Should use:
{{environment}}✓
Built-in Variable Misspelled
Built-in variables have specific names.
Correct built-in variables:
{{now}}{{today}}{{dash0.dataset}}{{dash0.trigger.kind}}{{dash0.workflow.name}}
Common mistakes:
{{date}}(should be{{today}}){{dataset}}(should be{{dash0.dataset}}){{trigger}}(should be{{dash0.trigger.kind}})
Testing Variable Resolution
Use the test dialog to verify variables resolve correctly.
Steps:
- Click Test in the automation editor
- Choose Test with Past Trigger to use real event data
- Look at the resolved prompt in run results
- Variables should show actual values, not
{{...}}text
If variables show as {{...}} even in tests:
- The variable truly doesn't exist for that trigger type
- There's a typo in the variable name
- The variable is optional and wasn't present in that specific event
Debugging Variable Issues
1. Check Trigger Type
What trigger fired the automation?
- View the run history
- Check the "Trigger" column
- Verify your variables are available for that trigger type
2. Check Available Variables
For your trigger type, what variables should exist?
Reference:
- Configure Triggers — Lists all variables per trigger type
3. Test with Manual Run
Manual test runs show which variables are missing:
- Test manually with empty/default variables
- See which
{{...}}remain unresolved - Either fill them in manually or remove them from prompt
4. Use Autocomplete
The prompt editor's autocomplete shows valid variables:
- Type
{{in the prompt field - Select variables from the suggestion list
- This prevents typos
Common Scenarios
Schedule Posts to Slack Channel
Problem:
123Prompt: "Post daily report to {{slack.channel.name}}"Trigger: ScheduleResult: Literal {{slack.channel.name}} in output
Fix using constant:
121. Define constant: report_channel = "daily-reports"2. Update prompt: "Post daily report to #{{report_channel}}"
Slack Response Uses Service Name
Problem:
123Prompt: "Check service {{label.service}}"Trigger: Slack messageResult: Literal {{label.service}} in output
Fix:
{{label.service}}only exists for failed check triggers- For Slack triggers, parse service name from
{{slack.message.text}} - Or use constants if service is always the same
Multiple Triggers, Different Variables
Problem:
- Automation has both Slack and schedule triggers
- Prompt uses
{{slack.channel.name}} - Schedule runs show
{{slack.channel.name}}literally
Fix - branch on trigger type:
12345If {{dash0.trigger.kind}} is "slack_bot.message":Post findings to {{slack.channel.name}}If {{dash0.trigger.kind}} is "schedule":Post findings to #daily-reports
Further Reading
- About Troubleshooting — Overview of common automation issues
- Configure Triggers — All available variables per trigger type
- Write Prompts — Using variables effectively in prompts