Helps developers author and debug Clix personalization templates (Liquid-style) for message content, deep links/URLs, and audience targeting. Use when the user mentions personalization variables, Liquid, templates, conditional logic, loops, filters, deep links, message logs, or when the user types `clix-personalization`.
Generates and validates Clix personalization templates with Liquid-style syntax for messages, URLs, and audience targeting.
/plugin marketplace add clix-so/skills/plugin install all@clix-agent-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
LICENSE.txtreferences/common-patterns.mdreferences/debugging.mdreferences/template-syntax.mdscripts/validate-template.shUse this skill to help developers write personalized Clix campaigns using template-based variables and light logic in:
user.* (user traits/properties)event.* (event payload properties)trigger.* (custom properties passed via API-trigger)device.id, device.platform, device.locale,
device.language, device.timezone, plus user.id, event.name{{ ... }}.{% if %}, {% else %}, {% endif %} with operators
== != > < >= <= and or not. Invalid conditions evaluate to false.{% for x in y %} / {% endfor %} (use guards for empty lists).upcase, downcase, capitalize, default, join, split,
escape, strip, replace (chain with |).If the Clix MCP tools are available, treat them as the source of truth:
clix-mcp-server:search_docs for personalization behavior and supported
syntaxIf MCP tools are not available, use the bundled references in references/.
Personalization progress:
- [ ] 1) Identify where the template runs (message / URL / audience rule)
- [ ] 2) Identify trigger type (event-triggered vs API-triggered)
- [ ] 3) Confirm available inputs (user.*, event.*, trigger.*, device.*)
- [ ] 4) Draft templates with guards/defaults
- [ ] 5) Validate template structure (balance tags, avoid missing vars)
- [ ] 6) Verify in Clix (preview/test payloads, check Message Logs)
Ask only what’s needed:
event.* is availabletrigger.* is availableuser.* properties are set by the appevent.* / trigger.* properties are passed (include example
payload)Return a compact table the user can approve:
default over complex branching.size > 0) before looping."7.4 miles",
"38m 40s") instead of formatting inside templates.If you have a template file (recommended for review), run:
bash <skill-dir>/scripts/validate-template.sh path/to/template.liquid
This script does lightweight checks (matching {% if %}/{% endif %},
{% for %}/{% endfor %}, and brace balancing). It can’t guarantee the
variables exist — you still need a payload + console verification.
trigger.* (not event.*).user.* is missing → fix user property setting (see
clix-user-management)event.* is missing → fix event tracking payload (see
clix-event-tracking)SKILL.md (always loaded)references/ (load when writing/debugging templates)scripts/ (execute directly, do not load into context)references/template-syntax.md - Variables, output, conditionals, loops,
filtersreferences/common-patterns.md - Copy/paste patterns for messages + URLs +
guardsreferences/debugging.md - Troubleshooting missing variables and Message Logs