# Identify signed-in users (/docs/installing/identify-users)

Skavelo works for anonymous visitors, but it's more useful when it knows who's signed in. Identified users get answers that account for their plan and role, and their conversations show their name and details in [Conversations](/docs/conversations/conversation-log).

## Calling identify [#calling-identify]

Once a user signs in, call `Skavelo.identify` with what you know about them:

```js
Skavelo.identify({
  id: user.id,              // required: your ID for them
  name: user.name,          // shown to your team, never sent to the AI
  email: user.email,        // shown to your team, never sent to the AI
  plan: user.plan,          // answers can take it into account
  role: user.role,          // for example 'admin', so answers know what they can do
  tags: ['beta', 'eu'],     // any labels, up to 20
  traits: {                 // anything else worth knowing, up to 30 keys
    company: user.company,
    seats: 12,
  },
  userHash,                 // optional: signed on your server
});
```

With React, you can pass the same details to `SkaveloProvider` as the `user` prop instead.

| Field | Used for |
| --- | --- |
| `id` | Required. Groups a user's conversations. Use an opaque ID rather than an email address. |
| `name`, `email` | Shown to your team in Conversations. Never sent to the AI model. |
| `plan`, `role` | Help Skavelo tailor answers, for example to what a user's plan includes |
| `tags` | Targeting rules, suggestion rules and Conversations filters |
| `traits` | Any other details, available to rules and shown in Conversations |
| `userHash` | Proves the identity is real; see [Identity verification](/docs/installing/identity-verification) |

You can call `identify` again whenever something changes, such as after an upgrade. If the user signs in partway through a conversation, Skavelo attaches the identity to that conversation.

## Using identity in rules [#using-identity-in-rules]

Plan, role, tags and traits can decide who sees the widget and which suggestions appear. For example, you can hide the widget from enterprise accounts that have a dedicated account manager, or show a "Set up late fees" suggestion only to users on the billing plans. See [Targeting](/docs/customizing/targeting) and [Suggestions](/docs/customizing/suggestions).
