{{ token }} against directory data, the run context, and the triggering event before the message is delivered.
Syntax
All template variables use Mustache-style double braces:- Whitespace inside the braces is optional.
{{recipient.firstName}},{{ recipient.firstName }}, and{{ recipient.firstName }}all resolve identically. - Tokens are case-sensitive and use dot-notation for nested fields (
recipient.firstName, notrecipient.first_name). - Tokens use the canonical names below, but most accept short aliases for backward compatibility (see Aliases).
Universal recipient variables
These tokens are available in every template (welcome emails, training notifications, nudges, scorecards, reports, and playbook-step messages).Playbook step variables
When you author a playbook Send Nudge, Send Notification, or Webhook step, the recipient’s full directory record is available under theuser namespace. These tokens work in subject lines, email bodies, Slack/Teams messages, and webhook body templates.
user.custom. must exactly match the attribute key shown in Settings → People → Custom Attributes.Risk and signal variables (playbook steps only)
If your playbook step references a risk or signal token, the platform automatically enriches the recipient’s context with their current HRI data before sending. No extra configuration required.Run context (advanced)
For webhook step body templates and branch expressions, the playbook run itself is addressable:Per-template extras
Some platform-managed templates expose additional tokens specific to their purpose. Expand the template you’re editing to see its extra variables.Welcome email (WELCOME_EMAIL)
Welcome email (WELCOME_EMAIL)
User invite email (USER_INVITE)
User invite email (USER_INVITE)
Employee invite email (EMPLOYEE_INVITE)
Employee invite email (EMPLOYEE_INVITE)
Training assigned notification (TRAINING_ASSIGNED)
Training assigned notification (TRAINING_ASSIGNED)
Training reminder notification (TRAINING_REMINDER)
Training reminder notification (TRAINING_REMINDER)
Point-in-time training nudge (POINT_IN_TIME_TRAINING_NUDGE)
Point-in-time training nudge (POINT_IN_TIME_TRAINING_NUDGE)
Manager scorecard notification (MANAGER_SCORECARD_NOTIFICATION)
Manager scorecard notification (MANAGER_SCORECARD_NOTIFICATION)
Employee scorecard notification (EMPLOYEE_SCORECARD_NOTIFICATION)
Employee scorecard notification (EMPLOYEE_SCORECARD_NOTIFICATION)
system.engageUrl and system.engageScorecardUrl for Engage deep links.Report ready notification (REPORT_READY)
Report ready notification (REPORT_READY)
Achievement issued notification (ACHIEVEMENT_ISSUED)
Achievement issued notification (ACHIEVEMENT_ISSUED)
achievement.badgeImageHtml and achievement.claimCtaHtml over hand-built <img>/<a> blocks: they render as empty strings when the badge or claim link is unavailable, so your template degrades cleanly instead of shipping a broken image or dead link.
