# Google Chat

Connects an agent to a Google Chat app. Users message the app in a direct message or a space; the agent receives each message and replies in the same thread.

- **Supported agents:** Agentic Flow, Coworker
- **Route type:** Conversation

## Before You Start

1. In the **Google Cloud console**, create or choose a project and enable the **Google Chat API**.
2. Create a **service account** in the project and download a **JSON key** for it. You paste this key into Neo.
3. Note the project’s **project number** (shown on the project’s dashboard).
4. In the Google Chat API configuration, set up the Chat app with an **HTTP endpoint**. Set the endpoint URL to the Neo webhook URL — it is shown in Neo after you create the channel — and set the authentication audience to the **project number**.

Your platform administrator must also set the project number for the deployment (`GOOGLE_CHAT_PROJECT_NUMBER` on the Channel Event Gateway). Neo only accepts requests from Google Chat whose token matches this project number; until it is set, every incoming message is rejected.

Your agent must be published with an active version.

## Configuration

**Credentials**

- **Credential Name** — A unique name to identify this credential. Required.
- **Authentication Type** — **Service Account** (the only option). Required.
- **Service Account JSON** — The full JSON key of the Google Cloud service account. Required.

**Route Settings**

- **Description** — Optional label for this channel instance.
- **Purpose** — Optional note on when the agent should use this channel.
- **Session Expiry (hours)** — Idle timeout before a conversation session resets. Default: 4. Range: 0.01–48.

## How Conversations Work

- In a direct message, the whole conversation is one session. In a space, each thread is its own session.
- Send `/reset` or `restart` to start a new session.
- Uploaded files are passed to the agent: `docx`, `jpeg`, `jpg`, `pdf`, `png`, `pptx`, `txt`, `xls`, `xlsx`, and `zip`, up to 20 MB each. Files shared only as Google Drive links are not downloaded.
- Replies are sent as text in the same thread. Formatting is converted to Google Chat’s style (bold, italic, strikethrough, and links; no headings).

When delivering through the [Output node](delivery_templates.html), Google Chat supports the `message` event type only.

## Troubleshooting

- **Messages to the app get no reply** — Check that the Chat app’s endpoint URL matches the webhook URL shown in Neo, that its authentication audience is the project number, and that `GOOGLE_CHAT_PROJECT_NUMBER` is set to the same number on the deployment.
- **No webhook URL is shown in Neo** — The deployment’s public gateway URL is not configured. Ask your platform administrator to set `CHANNEL_EVENT_GATEWAY_PUBLIC_URL`.
- **Agent cannot read an attachment** — Upload the file directly in Google Chat rather than sharing a Drive link, and check that it is one of the supported file types.
