> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.ada.cx/docs/channels/messaging/personalization-and-identity/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).