Get the FREE Ultimate OpenClaw Setup Guide →

clix-user-management

npx machina-cli add skill clix-so/skills/user-management --openclaw
Files (1)
SKILL.md
4.4 KB

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

git clone https://github.com/clix-so/skills/blob/main/skills/user-management/SKILL.mdView on GitHub

Overview

Use this skill to implement Clix user identification and user properties so campaigns can use user.* variables and audience filters. It ensures identity is consistent across devices and sessions and provides logout handling and campaign-ready personalization.

How This Skill Works

Leverage setUserId, removeUserId, and setUserProperty(s) with safe schemas. If MCP tools are available, treat them as the source of truth; otherwise rely on the bundled references for signatures, logout guidance, and property schema. Ensure correct logout behavior by avoiding setUserId(null) and switching user IDs on login.

When to Use It

  • Implement login/logout flows to identify users
  • Maintain a consistent user identity across devices and sessions
  • Use user properties for personalization and audience targeting
  • Define and enforce PII policy and property types
  • Integrate MCP; use official docs for signatures and logout rules when available

Quick Start

  1. Step 1: Confirm platform(s), auth model, and a stable userId source
  2. Step 2: Propose a compact User Plan with setUserId timing, logout policy, and properties
  3. Step 3: Validate the plan, implement platform calls, and verify switching and property propagation

Best Practices

  • Treat MCP tools as the source of truth when available
  • Do not call setUserId(null) on logout; handle logout in app logic
  • Validate the user plan (PII, property types, logout rules) before implementing
  • Define properties with explicit types (string, number, boolean) and mark required vs optional
  • Implement error handling around user operations (they can throw)

Example Use Cases

  • After login, call setUserId(user.id) to identify the user
  • On login of a different user, call setUserId(newUserId) to switch
  • If you want a session to stay anonymous, avoid setting a userId
  • Store a property like 'subscriptionTier' as a string for personalization
  • Run the validation workflow: create user-plan.json and run scripts/validate-user-plan.sh

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers