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

# Choosing an integration

> **Warning**
>
> Ada has deprecated Chat. Messaging fully replaces Chat on December 15, 2026. Legacy mobile SDKs continue to work without an app release. Ada moves their chat automatically when it switches your AI Agent, or by that date at the latest. Read [Introducing Messaging](https://docs.ada.cx/2026-09-30-introducing-messaging) for migration details.

This section covers legacy Chat SDKs. Use the [Messaging migration guide](/docs/channels/messaging/migrating-to-messaging) and [integration chooser](/messaging/introduction/choosing-an-integration) to select your migration path.

Ada chat can be embedded and driven in several ways. This page describes the available integrations and when to use each, so the right approach is chosen before development begins.

## Quick comparison

The following table summarizes where each integration runs and when it applies.

| Integration                              | Runs in     | Server required | Use when                                                                                                                                                                                                                                                        |
| ---------------------------------------- | ----------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Default Web Chat                         | Web browser | No              | A website needs standard embedded chat with the built-in launcher and drawer. Configuration only, no code.                                                                                                                                                      |
| Web Chat SDK                             | Web browser | No              | A web page needs to drive or customize the conversation in code — a custom UI, headless mode, in-page automation, or browser-side tools that read and send messages.                                                                                            |
| Mobile SDKs (iOS, Android, React Native) | Mobile app  | No              | Chat is embedded directly in a mobile application.                                                                                                                                                                                                              |
| Conversations API                        | Your server | Yes             | The integration runs on a server, on a channel Ada does not render (for example SMS, WhatsApp, or a proprietary application), or without an active browser session (for example scheduled or system-initiated messages). Custom Channels are built on this API. |

## Default Web Chat

Default Web Chat is the standard embedded experience: a launcher button and a chat drawer, configured without code.

Use it when:

* A website needs an embedded AI Agent with the built-in interface.
* No custom interface or in-page automation is required.

See the [Web SDK getting started guide](/chat/web/getting-started) to embed it.

## Web Chat SDK

The Web Chat SDK runs in the browser and lets a host page read and drive the active conversation from JavaScript. It adds methods such as `sendMessage`, `getMessages`, and `getConversation`, lifecycle events through `subscribeEvent`, and a headless mode that connects to the AI Agent without rendering the built-in button or drawer. Driving the conversation programmatically requires the `enableProgrammaticControl` setting.

Use it when:

* A web page renders its own chat surface — for example a search bar, sidebar, inline form helper, or command palette.
* In-page scripts or browser-side tools need to send or read messages on behalf of the end user.
* The conversation is driven in code while reusing the same AI Agent, handoffs, and live-agent routing as the default drawer.

Do not use it when:

* The integration must run on a server or without an active browser session. Use the Conversations API instead.

See the [Web SDK overview](/chat/web/overview), the [Web Chat SDK API reference](/chat/web/sdk-api-reference), and the [`headless` setting](/chat/web/sdk-api-reference#headless).

## Mobile SDKs

Mobile SDKs embed the AI Agent inside a mobile application, with platform-specific settings and event listeners.

Use them when:

* Chat is delivered through an iOS, Android, or React Native application.

See the [iOS](/chat/ios/overview), [Android](/chat/android/overview), and [React Native](/chat/react-native/overview) overviews.

## Conversations API and Custom Channels

The Conversations API is a server-to-server integration. A server authenticates with Ada over HTTP and exchanges messages with the AI Agent, which makes it suited to cross-system workflows and to surfaces Ada does not render directly. Custom Channels are built on this API.

Use it when:

* The integration runs on a server — for example syncing with a CRM or another system of record.
* Messages are delivered on a channel Ada does not render, such as SMS, WhatsApp, or a proprietary application.
* Messages are sent without an active browser session, such as scheduled or system-initiated outbound messages.

See the [Conversations API overview](/reference/conversations/overview), the [getting started guide](/reference/conversations/getting-started), and [Creating a custom channel](/reference/conversations/developer-guides/creating-a-custom-channel).

## Web Chat SDK or Conversations API?

Both let an integration read and send messages, so the deciding factor is where the integration runs.

* Choose the **Web Chat SDK** when the integration runs in the visitor's web browser. It reuses the existing session, handoffs, and live-agent state, and requires no server.
* Choose the **Conversations API** when the integration runs on a server, on a channel Ada does not render, or without an active browser session.

Most requests to customize chat or to automate the conversation from the browser fit the Web Chat SDK. Reach for the Conversations API when the integration genuinely lives on a server.