Agent skill
clix-personalization
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`.
Install this agent skill to your Project
npx add-skill https://github.com/clix-so/skills/tree/main/skills/personalization
SKILL.md
Clix Personalization
Use this skill to help developers write personalized Clix campaigns using template-based variables and light logic in:
- Message content (title, body, subtitle)
- Links (dynamic URL or deep link params)
- Audience targeting (conditional include/exclude rules)
What the official docs guarantee (high-signal)
- Data namespaces:
user.*(user traits/properties)event.*(event payload properties)trigger.*(custom properties passed via API-trigger)- Device/system vars:
device.id,device.platform,device.locale,device.language,device.timezone, plususer.id,event.name
- Missing variables render as an empty string.
- Output: print values with
{{ ... }}. - Conditionals:
{% if %},{% else %},{% endif %}with operators== != > < >= <= and or not. Invalid conditions evaluate tofalse. - Loops:
{% for x in y %}/{% endfor %}(use guards for empty lists). - Filters:
upcase,downcase,capitalize,default,join,split,escape,strip,replace(chain with|). - Errors: template rendering errors show up in Message Logs.
MCP-first (source of truth)
If the Clix MCP tools are available, treat them as the source of truth:
clix-mcp-server:search_docsfor personalization behavior and supported syntax
If MCP tools are not available, use the bundled references in references/.
Workflow (copy + check off)
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)
1) Confirm the minimum inputs
Ask only what’s needed:
- Where used: title/body/subtitle vs URL/deep link vs audience targeting rule
- Campaign trigger:
- Event-triggered →
event.*is available - API-triggered →
trigger.*is available
- Event-triggered →
- Inputs:
- Which
user.*properties are set by the app - Which
event.*/trigger.*properties are passed (include example payload)
- Which
- Fallback policy: what to show when data is missing (default strings, guards)
2) Produce a “Template Plan” (before tweaking lots of templates)
Return a compact table the user can approve:
- field (title/body/url/audience)
- template (Liquid)
- required variables (and their source: user/event/trigger/device)
- fallbacks (default filter and/or conditional guards)
- example payload + expected rendered output
3) Authoring guidelines (what to do by default)
- Prefer simple variables +
defaultover complex branching. - Add guards for optional data and for arrays (
size > 0) before looping. - Prefer pre-formatted properties from your app (e.g.,
"7.4 miles","38m 40s") instead of formatting inside templates. - Keep logic minimal; complex branching belongs in the app or segmentation setup.
4) Validation (fast feedback loop)
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.
5) Verification checklist
- Missing data: does the template still read well with empty strings?
- Trigger type: API triggers use
trigger.*(notevent.*). - Message Logs: check rendering errors and fix syntax issues first.
- Upstream data:
- If
user.*is missing → fix user property setting (seeclix-user-management) - If
event.*is missing → fix event tracking payload (seeclix-event-tracking)
- If
Progressive Disclosure
- Level 1: This
SKILL.md(always loaded) - Level 2:
references/(load when writing/debugging templates) - Level 3:
scripts/(execute directly, do not load into context)
References
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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
clix-integration
Integrates Clix Mobile SDK into iOS, Android, Flutter, and React Native projects. Provides step-by-step guidance for installation, initialization, and verification. Use when the user asks to install, setup, integrate Clix or when the user types `clix-integration` / "clix integration".
clix-user-management
Implements Clix user identification and user properties (setUserId, removeUserId, setUserProperty/setUserProperties, removeUserProperty/removeUserProperties) with safe schemas, logout best practices, and campaign-ready personalization/audience usage. Use when the user mentions login/logout, userId, user properties, personalization, audience targeting or when the user types `clix-user-management`.
push-notification-designer
Design and implement local push notification campaigns to boost user engagement in mobile apps. Use this skill whenever the user mentions local push notifications, in-app notifications, user engagement campaigns, retention messaging, re-engagement nudges, or wants to add scheduled notifications to their app. Also trigger when the user asks about notification timing strategies, onboarding notification flows, or workout/habit/goal reminder systems. Covers iOS (Swift/UNUserNotificationCenter), Android (Kotlin/WorkManager+NotificationManager), Flutter (flutter_local_notifications), and React Native (notifee/expo-notifications).
clix-api-triggered-campaigns
Helps developers configure API-triggered campaigns in the Clix console and trigger them from backend services with safe auth, payload schemas, dynamic audience filters (trigger.*), and personalization best practices. Use when the user mentions transactional notifications, backend-triggered sends, campaign_id trigger APIs, or "API-triggered campaigns".
push-notification-best-practices
Comprehensive mobile push notification guide for iOS (APNS) and Android (FCM). Use when setting up push notifications, debugging delivery issues, implementing background/foreground handlers, managing push tokens, integrating deep linking, or troubleshooting platform-specific issues.
clix-event-tracking
Implements Clix event tracking (Clix.trackEvent) with consistent naming, safe property schemas, and campaign-ready validation. Use when adding, reviewing, or debugging event tracking; when configuring event-triggered campaigns; or when the user mentions events, tracking, funnels, or properties — or when the user types `clix-event-tracking`.
Didn't find tool you were looking for?