> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.ada.cx/chat/react-native/sdk-api-reference/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ada.cx/_mcp/server. # SDK API Reference > **Warning** > > Ada has deprecated Chat. Messaging fully replaces Chat on December 15, 2026. Read [Introducing Messaging](https://docs.ada.cx/2026-09-30-introducing-messaging) to learn how to migrate. This page covers the legacy Chat React Native SDK. Follow the [Messaging React Native upgrade guide](/messaging/react-native/getting-started#upgrade-from-the-existing-react-native-sdk) to migrate. Use the React Native SDK [settings](#settings) and [actions](#actions) to customize the behavior of your bot. ## Settings For the React Native SDK, `AdaEmbedView` takes various props that you can use to customize the behavior of your chatbot. ### cluster `cluster?: string;` Specifies the Kubernetes cluster your AI Agent runs on. **Set this only if your Agent is hosted on a non-default cluster** (e.g., `us2`, `maple`, `eu`). If the Agent is on the default `us` cluster, leave this unset. > **Info** > > Do not change this value unless instructed by your Ada team. ### greeting `greeting?: string;` Use this prop to customize the greeting that new chatters see. This is useful for setting view-specific greetings across your app. The greeting should correspond to the ID of the Answer you would like to use, which you can find in the URL of the corresponding Answer in the dashboard. **Example** ![](/_fern-img/a7fea47cff8a7e0931f1f7b88be30130fc81ec7c6be9d662433b766b8e037e0b.webp) > **Note** > > This setting is only applicable if you're using a **scripted bot**. ### handle `handle: string;` The handle for your bot. This is a required field. ### language `language?: string;` Takes in a language code to programmatically set the bot language. You must first turn languages on in your Ada dashboard. * If you're using a **generative AI Agent**, go to **Customization** > **Languages**. See [Support multiple languages in the same AI Agent](/docs/setup/languages/about-multilingual-support) for more information. > **Note** > > Language codes use the [ISO 639-1 language format](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). ### metaFields `metaFields?: object;` Use metaFields to pass information about a `chatter` to Ada. This can be useful for tracking information about your customers, as well as personalizing their experience. For example, you may wish to track the `phone_number` and `name` for conversation attribution. (See [Variables](https://docs.ada.cx/variables) for more information.) Once set, you can access this information: * in the email attachment from Handoff Form submissions * via the **Meta variables** modal in the **Conversations** page of your Ada dashboard **`JSX`** ```jsx JSX metaFields={{ name: "Some name", age: 30 }} ``` To change these values after bot setup, use the [setMetaFields](#setmetafields) action. ### sensitiveMetaFields `sensitiveMetaFields?: object;` Use sensitiveMetaFields to pass sensitive meta information about a `chatter` to Ada. This works like [metafields](#metafields), but provides an added layer of security. Once set, you can access this information: * in the email attachment from Handoff Form submissions * via the **Meta variables** modal in the **Conversations** page of your Ada dashboard **`JSX`** ```jsx JSX sensitiveMetaFields={{ token: "your_jwt_token" }} ``` To change these values after bot setup, use the [setSensitiveMetaFields](#setsensitivemetafields) action. ### thirdPartyCookiesEnabled (Android) `thirdPartyCookiesEnabled?: boolean;` Set the `thirdPartyCookies` prop to enable third-party cookies in `AdaEmbedView`. This feature is only available in Android. The default value is `false`. ### zdChatterAuthCallback `zdChatterAuthCallback?(callback: (token: string) => void): void;` Use the `zdChatterAuthCallback` to request a JWT token from your API, then pass it to Ada. This creates shared trust between Ada and Zendesk, and in turn allows for verifiable chatter identity. **`JSX`** ```jsx JSX zdChatterAuthCallback={callback => { const token = getTokenFromAPI(); // Get a fresh JWT token from your API callback(token); }} ``` > **Note** > > `zdChatterAuthCallback` is available only for [Zendesk Chat](https://docs.ada.cx/docs/generative/integrate-ada-with-other-tools/use-ada-with-zendesk/configure-zendesk-chat). It is not available for [Zendesk Messaging](https://docs.ada.cx/docs/generative/integrate-ada-with-other-tools/use-ada-with-zendesk/configure-and-use-zendesk-messaging/). ### endConversationCallback `endConversationCallback?(callback: (event?: { [key]: string | object }) => void): void;` Use `endConversationCallback` to specify a callback function to be called when a chatter ends a conversation. The callback will receive an event object containing conversation metadata. **`JSX`** ```jsx JSX endConversationCallback={(event) => { // perform action after conversation has been ended by the chatter }} ``` ## Actions Call actions directly from the `AdaEmbedView` ref. This allows you to modify Ada chat without using state/props to trigger a re-render of the entire subtree. **`JSX`** ```jsx JSX import AdaEmbedView from '@ada-support/react-native-sdk'; // ... class MyComponent extends React.Component { render() { return (this.adaEmbedView = ref)}/>; } } ``` ### deleteHistory Deletes the `chatter` used to fetch conversation logs for a chatter from storage. When a user opens a new chat window, a new `chatter` is generated. **`JSX`** ```jsx JSX this.adaEmbedView.deleteHistory(); ``` ### reset Creates a new `chatter` and refreshes the Chat window. `reset` can take an optional object allowing `language`, `metaFields`, and `greeting` to be changed for the new `chatter`. **`JSX`** ```jsx JSX this.adaEmbedView.reset(); // With options this.adaEmbedView.reset({ metaFields: { name: "Some name", age: 30 } }); ``` ### setLanguage `setLanguage(languageCode: string)` Changes the language in chat programmatically. Use this action, rather than the language setting, to change the chat language without clearing the chat history. Language codes must use a lowercase, two-letter code, in [ISO 639-1 language format](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). For example, en, fr, ca, ar, and so on. ``` this.adaEmbedView.setLanguage(languageCode: "fr") ``` Before using `setLanguage`: * You must turn languages on in your Ada dashboard. * If you're using a **generative AI Agent**, go to **Customization** > **Languages**. See [Support multiple languages in the same AI Agent](/docs/setup/languages/about-multilingual-support) for more information. * The chat window must be opened at least once. ### setMetaFields Used to set [metaFields](/chat/react-native/sdk-api-reference#metafields) for a `chatter` after instantiation. This is useful if you need to update user data after Ada chat has already launched. **`JSX`** ```jsx JSX this.adaEmbedView.setMetaFields({ name: "Some name", age: 30 }); ``` ### setSensitiveMetaFields Used to set [sensitiveMetaFields](/chat/react-native/sdk-api-reference#sensitivemetafields) for a `chatter` after instantiation. This is useful if you need to update user data after Ada chat has already launched. **`JSX`** ```jsx JSX this.adaEmbedView.setSensitiveMetaFields({ token: "your_jwt_token" }); ``` ### triggerAnswer `this.adaEmbedView.triggerAnswer()` Triggers an answer in chat. Include the Answer ID, which you can find in the URL of the corresponding Answer in the dashboard. **Example** ![](/_fern-img/a7fea47cff8a7e0931f1f7b88be30130fc81ec7c6be9d662433b766b8e037e0b.webp) ``` this.adaEmbedView.triggerAnswer("627d28a9bd9ca9e5337b9763") ``` > **Note** > > The chat window must be opened at least once before this method can be used. > **Note** > > This action is only applicable if you're using a **scripted bot**.