Skip to content
Back to skills

Clix User Management

ASecurity

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.

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 8, 2026
businessgobashreactdebugging

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill clix-user-management --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Clix User Management?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Clix User Management
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-clix-user-management/badge)](https://www.skillsdirectory.com/skills/majiayu000-clix-user-management)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: clix-user-management
description:
  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`.
---

# 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:

```bash
# 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.