> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Chat as a destination

> Send your data from Nekt to a Google Chat space.

Google Chat is Google Workspace's team communication platform, organizing conversations into spaces and direct messages. It is where many teams follow up on day-to-day operations, which makes it a natural place to receive automated reports from your data.

## 1. Introduction

The Google Chat destination allows you to send the contents of a table directly into a Google Chat space.

You write the message yourself and choose what goes in it: free text with Google Chat formatting, the current date, and a preview of your data rendered as a table. This makes it easy to share a recurring report — daily sales, weekly KPIs, a list of pending items — with the team that needs it, without anyone having to open a dashboard.

In order to properly use the connector, there are a few pre-requisites that need to be fulfilled:

1. You need a **Google Workspace** account. Incoming webhooks are not available for personal Google accounts.
2. You need permission to create a webhook in the space that will receive the messages.

<Note>
  Google Chat webhooks cannot upload files, so this destination does not attach a CSV or an image. Your data is sent as a preview inside the message itself. If you need the full dataset as a file, consider using the Google Drive or Gmail destinations alongside this one.
</Note>

## 2. Create the webhook in your Google Chat space

1. Open the Google Chat space that should receive the messages.

2. Click the space name at the top to open the menu, then choose **Apps & integrations**.

3. Click **Webhooks** (or **Add webhooks**).

4. Give the webhook a name — for example `Nekt` — optionally set an avatar URL, and click **Save**.

5. Copy the generated URL. It looks like this:

   ```
   https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?key=KEY&token=TOKEN
   ```

<Warning>
  This URL is a credential: anyone holding it can post messages to your space. Keep it secret and paste it only into the destination configuration, where Nekt stores it encrypted.
</Warning>

## 3. Configure the Google Chat destination

1. In the [Destinations](https://app.nekt.ai/destinations) tab, click on the "Add destination" button located on the top right of your screen. Then, select the Google Chat option from the list of connectors.

2. Click **Next** and you'll be prompted to add the connector configuration.

   * **Webhook URL**: the URL you copied in the previous section.

   * **Message body**: the message to post in the space. You can use the text formatting supported by Google Chat — `*bold*`, `_italic_`, `~strikethrough~` and monospace — as described in the [official Google Chat documentation](https://developers.google.com/workspace/chat/format-messages). Two variables are available:

     | Variable         | What it renders                                           |
     | ---------------- | --------------------------------------------------------- |
     | `{datestamp}`    | The current date, using the format set in **Date format** |
     | `{data_preview}` | The first rows of your table, as a text table             |

   * **Maximum preview size** (optional): how many rows `{data_preview}` renders. Defaults to 20, and the maximum is 100.

     <Note>
       Google Chat limits a message to 32,000 characters. If your message goes over that limit, Nekt automatically reduces the number of preview rows so the message can still be delivered, and warns you in the run log.
     </Note>

   * **Date format** (optional): controls the format of the `{datestamp}` variable. Defaults to `%Y-%m-%d`. Uses Python `strftime` syntax — for the full list of format codes, see the [Python documentation](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).

     Common examples:

     | Format string | Result         |
     | ------------- | -------------- |
     | `%Y-%m-%d`    | 2026-03-12     |
     | `%d/%m/%Y`    | 12/03/2026     |
     | `%B %d, %Y`   | March 12, 2026 |
     | `%m-%d-%Y`    | 03-12-2026     |

   * **Single record input table** (optional): when your table has a single record, enable this option to reference its columns in the message using the `{column_name}` notation.

   * **Send message with empty data** (optional): by default, no message is sent when the table has no records. Enable this option to receive a message anyway.

   * **Message body (empty data)** (optional): the message to post when the table is empty. If left blank, the regular message body is used.

   * **Thread key** (optional): an arbitrary identifier — for example `daily-metrics-report` — that groups every message sent by this destination into the same Google Chat thread, keeping the space organized. Leave it empty to post each run as a new message.

   <Accordion title="Example with a data preview">
     Assuming you have a daily metrics table like this:

     | date       | revenue   | total\_clients | new\_clients |
     | ---------- | --------- | -------------- | ------------ |
     | 2026-08-10 | 135000.00 | 475            | 10           |
     | 2026-08-11 | 141200.50 | 481            | 6            |

     Your message body looks like this:

     ```
     *Metrics report - {datestamp}*

     Hi everyone, below is a preview of the latest data:

     {data_preview}

     Any questions, please let us know!
     ```

     The resulting Google Chat message will be:

     ```
     *Metrics report - 2026-08-12*

     Hi everyone, below is a preview of the latest data:

     date        revenue    total_clients  new_clients
     ----------  ---------  -------------  -----------
     2026-08-10  135000.00  475            10
     2026-08-11  141200.50  481            6

     Any questions, please let us know!
     ```
   </Accordion>

   <Accordion title="Example with a single record table">
     Assuming you have a sales KPIs table with a single record:

     | total\_revenue | total\_orders | average\_order\_value | conversion\_rate |
     | -------------- | ------------- | --------------------- | ---------------- |
     | 12500          | 250           | 50                    | 3.2              |

     Enable **Single record input table** and write the message body like this:

     ```
     *Sales report for {datestamp}*

     Total revenue: ${total_revenue}
     Total orders: {total_orders}
     Average order value: ${average_order_value}
     Conversion rate: {conversion_rate}%

     Great job team!
     ```

     The field references are dynamically replaced with the actual values from your table.
   </Accordion>

3. Click **Next**.

## 4. Select your data to send

1. The next step is letting us know which data you want to send in the Google Chat message. Select the layer and then the desired table.

   <Note>
     Only the first rows of the table are rendered in the message, according to the **Maximum preview size** setting. If you need to communicate a large dataset, filter the table down to the rows that matter, or use a destination that writes files.
   </Note>

2. Click **Next**.

## 5. Define the trigger

1. Describe your destination for easy identification within your organization. You can inform things like what data it sends, to which team it belongs, etc.

2. To define your [Trigger](https://docs.nekt.com/runs/scheduling-and-triggers), consider how often you want this message to be sent to the space. This decision usually depends on how frequently you need the new table data updated (every day, once a week, only at specific times, etc.).

3. Click **Done**.

### Check your new destination!

1. Once completed, you'll receive confirmation that your new destination is set up!

2. You can view your new destination on the [Destinations](https://app.nekt.ai/destinations) page. Now, for the message to actually be sent, you have to wait for the pipeline to run. You can monitor it on the [Destinations](https://app.nekt.ai/destinations) page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your message should appear in the space.

## Troubleshooting

| What you see in the run log                              | What it means                                                                                                                       |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| The webhook URL is not a valid Google Chat webhook       | The value pasted is not the full webhook URL. Copy it again from **Apps & integrations** > **Webhooks** in the space.               |
| Google Chat refused the message for this space           | The webhook was deleted or the space no longer exists. Recreate the webhook and paste the new URL in the destination configuration. |
| Google Chat is rate limiting the messages for this space | Google allows one message per second per space. Nekt waits and retries automatically, so the run may take a little longer.          |
| The data preview was reduced to N rows                   | The message exceeded Google Chat's 32,000 character limit. Reduce the message body or the **Maximum preview size**.                 |

> If you encounter any issues, reach out to us via Slack, and we'll gladly assist you!
