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`.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "clix-user-management" with this command: npx skills add clix-so/skills/clix-so-skills-clix-user-management

Clix User Management

Use this skill to help developers implement Clix user identification and user properties so campaigns can use user.* variables and audience filters, and so user identity is consistent across devices and sessions.

What the official docs guarantee (high-signal)

  • Anonymous vs identified: if no user ID is set, Clix treats the user as anonymous; setting a user ID converts the anonymous user into an identified user and links prior activity.
  • Logout: do not call setUserId(null) on logout; handle logout in app logic only; when a different user logs in, call setUserId(newUserId) to switch.
  • User properties: values are strings, numbers, or booleans; user operations can throw—handle errors.

MCP-first (source of truth)

If Clix MCP tools are available, treat them as the source of truth:

  • clix-mcp-server:search_docs for conceptual behavior and logout guidance
  • clix-mcp-server:search_sdk for exact SDK signatures per platform

If MCP tools are not available, use the bundled references:

  • Contract + pitfalls → references/user-management-contract.md
  • Logout + switching rules → references/logout-and-switching.md
  • Property schema + PII → references/property-schema.md
  • Implementation patterns → references/implementation-patterns.md
  • Personalization + audience mapping → references/personalization-and-audience.md
  • Debugging checklist → references/debugging.md

Workflow (copy + check off)

User management progress:
- [ ] 1) Confirm platform(s) and auth model (anonymous browsing? login? shared devices?)
- [ ] 2) Propose user plan (when setUserId/removeUserId, properties, logout policy)
- [ ] 3) Validate plan (PII, property types, logout rules)
- [ ] 4) Implement (platform-correct calls + error handling)
- [ ] 5) Verify (switching works, properties appear, campaigns can target/personalize)

1) Confirm the minimum inputs

Ask only what’s needed:

  • Platform: iOS / Android / React Native / Flutter
  • Auth events: where login success and logout happen in code
  • User identifier: what stable ID to use (prefer internal user id, not email)
  • PII policy: what must never be stored as user properties
  • Campaign goals: personalization, audience filters, or both

2) Propose a “User Plan” (before touching code)

Return a compact table:

  • user_id source: where it comes from (auth response, local db)
  • setUserId timing: exact point (after login success / token saved)
  • logout behavior: explicitly “no call to setUserId(null)”
  • properties: key + type, required vs optional
  • purpose: personalization / audience / analytics

3) Validate the plan (fast feedback loop)

Create user-plan.json in .clix/ (recommended) or project root.

For agents: locate scripts/validate-user-plan.sh in the installed skill directory and run:

# From project root:
bash <skill-dir>/scripts/validate-user-plan.sh .clix/user-plan.json
# Or if in root:
bash <skill-dir>/scripts/validate-user-plan.sh user-plan.json

If validation fails: fix the plan first, then implement.

4) Implement (platform-correct)

Use MCP to fetch the exact signatures per platform, then:

  • Place setUserId(...) after login/signup is confirmed.
  • On logout: do nothing with Clix (no setUserId(null)).
  • When switching users: call setUserId(newUserId) after the new login succeeds.
  • Set user properties only from controlled sources; avoid free-text/PII.
  • Always handle errors (async calls can throw).

5) Verify

  • Identity:
    • Anonymous flow works without calling setUserId
    • After login, setUserId is called once and stable
    • Switching accounts updates the active profile
  • Properties:
    • Properties are primitives (string/number/boolean) and consistent
    • Campaign audiences can filter on them
    • Messages can use user.* personalization

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

push-notification-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

clix-skill-creator

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

clix-api-triggered-campaigns

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

clix-personalization

No summary provided by upstream source.

Repository SourceNeeds Review