The End Users API lets you create and work with end-user data in Ada and respond to changes as users interact across channels. This page highlights common integration patterns to help you get started quickly.
The guides below show how to:
For end-to-end examples and advanced patterns, see the developer guide. For a complete overview of end-user concepts and available endpoints, see the End Users API Overview.
setMetaFields() instead.Use POST /v2/end-users/ to create an end user with profile data (language, metadata) before starting a conversation. This ensures the AI Agent has full context from the greeting onward.
end_user_id from the response.end_user_id:
pt-BR), with metadata values available as metavariables for Playbooks, Actions, and article rules.Use the sensitive_metadata field to pass auth tokens, session IDs, or personally identifiable information through a secure, write-only pathway. Values are encrypted at rest, redacted from the dashboard, excluded from LLM context, and automatically deleted after 24 hours.
sensitive_metadata is available on both POST /v2/end-users/ (custom channels) and PATCH /v2/end-users/:id (all channels).
The sensitive_metadata values do not appear in the response. The AI Agent can use them to execute authenticated Actions.
Set the key to null:
Use the optional external_id field to reference end users by a stable identifier from your own system — for example a CRM contact ID or a phone number. The same value can be used to look up, create, or update end users across conversations without storing Ada’s end_user_id.
external_id is available for custom channel (Conversations API) integrations only. Native chat, social, and voice channels are out of scope.< or >)Look up the end user by external ID:
A 200 response returns the existing end user. A 404 response means no end user is mapped to that external_id yet. A 400 response indicates the value failed validation — for example, an empty value, a value longer than 36 characters, or a value containing < or >.
If the lookup returned 404, create the end user with the external_id:
POST /v2/end-users/ is idempotent when external_id is supplied. If a user with that external_id already exists, the response is 200 with the existing record. A new user returns 201.
Start a conversation with the returned end_user_id:
To clear an external_id later (for example to reassign it), send a PATCH with external_id set to null. profile is required on PATCH requests, so pass an empty profile object when you only need to clear external_id:
Before you start, make sure you have everything you need:
Language codes must be in BCP 47 4-digit format, per the End Users API schema.
Before you set up your webhook, make sure you have everything you need:
v1.end_user.updated and v1.end_user.created events.v1.end_user.created.end_user_id value.v1.end_user.updated log.That’s it! You have the building blocks to create an integration between your customer data platform and Ada’s End Users API. Your integration can ingest webhook events and use the PATCH endpoint to send user details to Ada so that features such as Article Rules can be applied automatically for your end users.