> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ada.cx/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ada.cx/_mcp/server.

# Personalization and identity

## Overview

Use [Messaging](/docs/channels/messaging) metadata to personalize conversations. Use identity tokens when the conversation must belong to a verified signed-in user.

## Limitations

[Messaging](/docs/channels/messaging) metadata is not proof of identity. Do not authorize access to an account from a browser-supplied email address or identifier alone.

The SDK accepts up to 50 custom metadata fields. Keys have a 256-character limit; string values have a 1,024-character limit.

Nested objects and arrays are discarded. See the [metadata differences](/messaging/introduction/reporting-differences-from-the-chat-sdk) before migrating complex payloads.

## Capabilities & configuration

Choose the correct [Messaging](/docs/channels/messaging) mechanism for the data you need.

| Goal                                            | Mechanism                                                                                                                    |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Personalize greetings or supply variable values | SDK metadata and [`setMetaFields`](/messaging/web/sdk-api-reference#setmetafields).                                          |
| Supply sensitive values for configured tools    | [`setSensitiveMetaFields`](/messaging/web/sdk-api-reference#setsensitivemetafields) and the tool's documented configuration. |
| Identify a signed-in user                       | A backend-minted identity token for an existing end-user record.                                                             |
| Restore a user's conversation on another device | A fresh token for the same `end_user_id`.                                                                                    |

Identity tokens are short-lived and single-use. Mint a new token for each device, sign-in, or exchange attempt.

## Implementation & usage

Coordinate [Messaging](/docs/channels/messaging) identity with the team that owns your application's authentication.

**To plan an identified integration:**

1. Have your backend create or find the end-user record with the [End Users API](/reference/end-users/overview).
2. Mint an identity token on the backend for that `end_user_id`.
3. Pass the token through the SDK's documented identity configuration.
4. Handle identity errors explicitly in your application.
5. Test reset, sign-out, account switching, and a second device.

The SDK can continue anonymously after an identity-token error. Treat authenticated access as a separate application requirement.

Follow [Identity getting started](/messaging/identity/getting-started) for the complete flow. Keep API keys on your backend.

The Conversations API's custom-channel creation flow is separate from a native SDK session. Use the SDK to open the Messaging conversation.

## Related features

Review [Data controls](/docs/channels/messaging/messaging-configuration/data-controls) and the [identity lifecycle rules](/messaging/identity/overview) with your implementation.

---

Have any questions? Contact your Ada team, or email us at [](mailto:help@ada.cx?subject=Help%20Docs%20inquiry).