> 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.

# 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 <AdaEmbedView
            handle="ada-example"
            ref={ref => (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**.