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".
/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.txtexamples/trigger-campaign-node.jsexamples/trigger-campaign-python.pyreferences/api-contract.mdreferences/backend-patterns.mdreferences/console-setup.mdreferences/debugging.mdreferences/personalization-and-dynamic-filters.mdreferences/security-and-keys.mdscripts/validate-api-trigger-plan.shUse this skill to set up API-triggered campaigns in the Clix console and
trigger them from your backend with dynamic data (trigger.*) for:
POST /api/v1/campaigns/{campaign_id}:triggerX-Clix-Project-IDX-Clix-API-Keyproperties become trigger.* for:
audience.broadcast=true sends to all users eligible under the campaign’s
segment definition; audience.targets narrows to specific users/devices
(still filtered by the segment definition).If Clix MCP tools are available, treat them as the source of truth:
clix-mcp-server:search_docs to confirm the latest API contract + limits:
"API-triggered campaign trigger endpoint""campaigns/{campaign_id}:trigger audience targets broadcast""trigger.* dynamic audience filters limitations"If MCP tools are not available, use the bundled references:
references/api-contract.mdreferences/console-setup.mdreferences/backend-patterns.mdreferences/security-and-keys.mdreferences/personalization-and-dynamic-filters.mdreferences/debugging.mdAPI-triggered campaign progress:
- [ ] 1) Confirm goals + trigger source (what backend event sends the message?)
- [ ] 2) Define campaign contract (properties keys/types; PII policy)
- [ ] 3) Configure campaign in console (API-triggered + audience rules + templates)
- [ ] 4) Implement backend trigger wrapper (auth, timeout, retries, logging)
- [ ] 5) Validate trigger plan JSON (schema + naming + safety)
- [ ] 6) Verify in Clix (test payloads, Message Logs, segment matching)
Ask only what’s needed:
campaign_id?trigger.* keys are used in audience rulesCreate api-trigger-plan.json in .clix/ (recommended) or project root.
Recommended location: .clix/api-trigger-plan.json
Plan schema (high-level):
campaign_id (string)audience.mode: "broadcast" | "targets" | "default"audience.targets (if mode is "targets")dynamic_filter_keys (array of up to 3 snake_case keys)properties (map of snake_case keys → { type, required?, example?, pii? })Example:
{
"campaign_id": "019aa002-1d0e-7407-a0c5-5bfa8dd2be30",
"audience": {
"mode": "broadcast"
},
"dynamic_filter_keys": ["store_location"],
"properties": {
"store_location": {
"type": "string",
"required": true,
"example": "San Francisco"
},
"order_id": { "type": "string", "required": true, "example": "ORD-12345" },
"item_count": { "type": "number", "required": true, "example": 3 },
"pickup_time": { "type": "string", "required": false, "example": "2:30 PM" }
}
}
{{ trigger.* }} for dynamic filters.{{ trigger.* }} in message templates + deep links.See: references/console-setup.md for exact guidance and limitations.
Backend wrapper responsibilities:
X-Clix-Project-ID and X-Clix-API-Key from
environment/secret store (never commit).campaign_id, your correlation id (order id), and the Clix
response (e.g., trigger_id).Copy/paste examples:
examples/trigger-campaign-node.jsexamples/trigger-campaign-python.pyRun:
bash <skill-dir>/scripts/validate-api-trigger-plan.sh .clix/api-trigger-plan.json
This validator checks:
campaign_id presentdynamic_filter_keys is ≤ 3 and snake_caseproperties keys are snake_case and have valid typestargets entries specify exactly one of project_user_id or device_idMinimum verification:
campaign_id matches.trigger.* keys exist in the API call
and match audience rules exactly.See references/debugging.md.
SKILL.md (always loaded)references/ (load when implementing details)examples/ (load when copy/pasting backend code)scripts/ (execute directly; do not load into context)references/api-contract.mdreferences/console-setup.mdreferences/backend-patterns.mdreferences/security-and-keys.mdreferences/personalization-and-dynamic-filters.mdreferences/debugging.md