This page provides an overview of how to build an interactive
Google Chat app. Interactive Chat apps are built as
[Google Workspace add-ons](https://developers.google.com/workspace/add-ons/overview) that extend Google Chat.
[Video](https://www.youtube.com/watch?v=lzQ0z3OBTO0)

Interactive Chat apps let users do any of the following:

- Add Chat apps to Chat spaces or direct messages.
- Send messages to or receive messages from Chat apps that contain text, cards, and interactive UI elements.
- View and interact with an [App Home](https://developers.google.com/workspace/chat/send-app-home-card-message) card in the **Home** tab of 1:1 direct messages with the Chat app.
- Prompt Chat apps with [slash commands, quick commands, or
  message actions](https://developers.google.com/workspace/chat/commands).
- Preview links from Chat messages and take action without leaving the conversation.
- Submit information to Chat apps, such as entering text into a [dialog](https://developers.google.com/workspace/chat/dialogs) or [card message](https://developers.google.com/workspace/chat/read-form-data).
- Automate or perform tasks across Google Workspace applications and [connect to external tools or services](https://developers.google.com/workspace/chat/connect-web-services-tools).

## How users discover and use interactive Chat apps

In Chat, add-ons that extend Chat
appear to users as Google Chat apps. Users can discover and use
Chat apps published to the Marketplace
in many ways, including the following:

- Search and install Chat apps from Google Chat or the Marketplace.
- Interact with a Chat app that's been added to a Chat space.
- Discover the Chat app in their direct messages panel after a Google Workspace administrator installs the Chat app on their behalf.

To start using a Chat app, Google Chat users can
start a direct message with the Chat app or add it to a
space. Users can also add the Chat app by @mentioning
it. For more information, see
[Use Chat apps](https://support.google.com/chat/answer/7655820).

The following example shows how a user @mentions a
Chat app to add it to a space:

![Adding a Chat app to a space by typing @ in a message.](https://developers.google.com/static/workspace/chat/images/add-chat-app-to-space.png)

## Get started

To start building an interactive Chat app, see the
following documentation:

- [Configure the Google Chat API](https://developers.google.com/workspace/chat/configure-chat-api) and enable interactive features for your Chat app.
- Learn how to [receive and respond to user interactions](https://developers.google.com/workspace/chat/receive-respond-interactions) using triggers, event objects, and actions.
- Try a quickstart to build a basic Chat app for your preferred [Google Chat app architecture](https://developers.google.com/workspace/chat/structure).

### Configure and create a basic Chat app

The following table lists the documentation for configuring the
Chat API and creating a basic interactive
Chat app for each
[Google Chat app architecture](https://developers.google.com/workspace/chat/structure):

| Architecture or task | Guide |
|---|---|
| Configure the Chat API | [Configure the Google Chat API](https://developers.google.com/workspace/chat/configure-chat-api) |
| **Quickstarts** ||
| Apps Script | [Build a Chat app with Apps Script](https://developers.google.com/workspace/chat/quickstart/apps-script-app) |
| HTTP service (Cloud Run functions) | [Build an HTTP Chat app](https://developers.google.com/workspace/chat/quickstart/gcf-app) |
| Pub/Sub | [Build a Chat app with Pub/Sub](https://developers.google.com/workspace/chat/quickstart/pub-sub) |
| Dialogflow CX | [Build a Dialogflow CX Chat app](https://developers.google.com/workspace/chat/build-dialogflow-chat-app-natural-language) |
| Dialogflow ES | [Build a Dialogflow ES Chat app](https://developers.google.com/workspace/chat/quickstart-dialogflow-es) |
| Agent Development Kit (ADK) AI agent | [Build an ADK AI agent Chat app](https://developers.google.com/workspace/chat/quickstart-adk-agent) |
| Agent2Agent (A2A) AI agent | [Build an A2A AI agent Chat app](https://developers.google.com/workspace/chat/quickstart-a2a-agent) |
| A2UI AI agent | [Build an A2UI AI agent Chat app](https://developers.google.com/workspace/chat/quickstart-a2ui-agent) |
| Gemini Enterprise AI agent | [Build a Gemini Enterprise AI agent Chat app](https://developers.google.com/workspace/chat/quickstart-ge-agent) |

### Build interactive features

The following table shows the documentation for building interactive
Chat app features:

| Feature | Guide |
|---|---|
| Receive and respond to user interactions | [Receive and respond to user interactions](https://developers.google.com/workspace/chat/receive-respond-interactions) |
| Send messages (reply to interactions or send proactively) | [Reply with a message](https://developers.google.com/workspace/chat/receive-respond-interactions#deliver-response) or [Send a message using the Chat API](https://developers.google.com/workspace/chat/create-messages) |
| Respond to slash commands, quick commands, and message actions | [Respond to commands](https://developers.google.com/workspace/chat/commands) |
| Build interactive dialogs | [Open interactive dialogs](https://developers.google.com/workspace/chat/dialogs) |
| Collect and process information from cards and dialogs | [Read form data input by users on cards](https://developers.google.com/workspace/chat/read-form-data) |
| Preview links in Chat messages | [Preview links](https://developers.google.com/workspace/chat/preview-links) |
| Build a homepage (App Home) in 1:1 direct messages | [Build a homepage for a Chat app](https://developers.google.com/workspace/chat/send-app-home-card-message) |
| Connect to external systems and tools | [Connect a Chat app with other services and tools](https://developers.google.com/workspace/chat/connect-web-services-tools) |

## Limitations and considerations for Google Workspace add-ons

Because Chat apps are built as Google Workspace add-ons that extend
Chat, keep the following feature limitations in mind:

- [AppSheet](https://support.google.com/appsheet/answer/12923581) Chat app architecture is unavailable when building as a Google Workspace add-on. Instead, build the Chat app using an [HTTP service](https://developers.google.com/workspace/chat/quickstart/gcf-app), [Apps Script](https://developers.google.com/workspace/chat/quickstart/apps-script-app), [Dialogflow ES](https://developers.google.com/workspace/chat/quickstart-dialogflow-es), [Dialogflow CX](https://developers.google.com/workspace/chat/build-dialogflow-chat-app-natural-language), or [Pub/Sub](https://developers.google.com/workspace/chat/quickstart/pub-sub).
- Custom authorization cards aren't supported in Chat. To authenticate and grant authorization to your service from Chat, the Chat app must return a [basic authorization card](https://developers.google.com/workspace/chat/connect-web-services-tools#basic-auth-card).
- [Add-on homepages](https://developers.google.com/workspace/add-ons/concepts/homepages) in the Chat sidebar aren't supported. If you've configured a [homepage trigger](https://developers.google.com/workspace/add-ons/concepts/workspace-triggers) in your manifest (`addons.common.homepageTrigger`), the homepage only appears in the sidebar of the other Google Workspace applications that your add-on extends. Instead, you can [build a homepage for a Chat app](https://developers.google.com/workspace/chat/send-app-home-card-message) that appears in the **Home** tab of 1:1 direct messages with the Chat app.

If you're extending an existing Google Workspace add-on to work in
Chat, consider the following
[configuration requirements](https://developers.google.com/workspace/chat/configure-chat-api#considerations)
for Chat apps:

- The [Google Workspace Marketplace installation settings](https://developers.google.com/workspace/marketplace/enable-configure-sdk#installation-settings) must permit both individuals and Google Workspace administrators to install the add-on.
- Any common configuration settings in the add-on's [manifest](https://developers.google.com/workspace/add-ons/concepts/workspace-manifests) (`addons.common`) are ignored in Chat. To configure the add-on to work in Chat, you must enable and configure the Chat API. For steps, see [Configure the Google Chat API](https://developers.google.com/workspace/chat/configure-chat-api).
- To deploy and test an add-on in Chat, you must use the Chat API's **Visibility** setting. Any visibility or testing settings that you've configured in the Google Workspace Marketplace SDK are ignored. To deploy a test version of the add-on in Chat, see [Test interactive features for Google Chat apps](https://developers.google.com/workspace/chat/test-interactive-features).
- If your add-ons is published to the Google Workspace Marketplace, you can't save a draft of any changes to the [Google Chat API configuration settings](https://developers.google.com/workspace/chat/configure-chat-api). When you update Chat API configuration settings, the updated Chat app is immediately available to all existing users. To update your Marketplace listing, you can [create a draft](https://developers.google.com/workspace/marketplace/manage-app-listing#draft-app-listing) before submitting any changes.

## Related topics

- [Google Chat API documentation overview](https://developers.google.com/workspace/chat/overview)
- [Receive and respond to user interactions](https://developers.google.com/workspace/chat/receive-respond-interactions)
- [Choose a Google Chat app architecture](https://developers.google.com/workspace/chat/structure)
- Try a sample:
  - [Schedule meetings from Google Chat](https://developers.google.com/workspace/chat/tutorial-schedule-meetings)
  - [Integrate fundamental AI concepts in Chat apps](https://codelabs.developers.google.com/chat-apps-ai-concepts)
  - [Plan travels with an AI agent accessible across Google Workspace](https://developers.google.com/workspace/add-ons/samples/travel-concierge)
  - [Build Gemini Enterprise agents that are tightly integrated with Workspace data stores, APIs, and Chat apps](https://codelabs.developers.google.com/ge-gws-agents)
  - [Build Vertex AI agents that are tightly integrated with Workspace data stores, APIs, and Chat apps](https://codelabs.developers.google.com/vertexai-gws-agents)

## Chat apps that aren't add-ons: Build an interactive Google Chat app

Chat apps that aren't Google Workspace add-ons are built as
Chat-only apps that receive
[Chat API interaction events (`Event`)](https://developers.google.com/workspace/chat/api/reference/rest/v1/Event)
instead of
[Google Workspace add-on event objects (`EventObject`)](https://developers.google.com/workspace/add-ons/concepts/event-objects)
and actions.

If you maintain a Chat app that isn't an
add-on, you can:

- Convert your Chat app that isn't an add-on to a Google Workspace add-on that extends Google Chat. See [Convert a Google Chat app to a Google Workspace add-on](https://developers.google.com/workspace/chat/convert).
- Refer to the expandable **Chat apps that aren't
  add-ons** sections at the bottom of each interactive feature guide in this documentation set for request and response formats.