---
title: Google Chat, Mattermost, Rocket.Chat
description: Incoming-webhook setup for Google Chat spaces, Mattermost and Rocket.Chat channels, with grouped summaries during storms.
canonical: https://watchfor.io/docs/notifications/chat-apps
---

# Google Chat, Mattermost, Rocket.Chat

Incoming-webhook setup for Google Chat spaces, Mattermost and Rocket.Chat channels, with grouped summaries during storms.

These three chat tools all work the same way: create an **incoming webhook**
for the room that should receive alerts, paste its URL into WatchFor under
**Alerting → Channels & contacts → Add Channel**, attach
[contact groups](/docs/notifications/contact-groups), save, then **⋯ → Send
test**. All three receive per-incident messages and one summary message when
several incidents land inside the
[grouping window](/docs/notifications#grouping-during-a-storm).

Self-hosted Mattermost and Rocket.Chat servers must be reachable from the
public internet — URLs on private or internal addresses are rejected (see
[guard rails](/docs/notifications#guard-rails-on-save)).

## Google Chat

### Create a space webhook
In Google Chat, open the space → click the space name → **Apps &
integrations** → **Webhooks** → **Add webhook**. Name it (for example
*WatchFor*) and copy the URL it generates
(`https://chat.googleapis.com/v1/spaces/…`).

### Add the channel
**Add Channel → Google Chat**, paste the **Webhook URL**, pick contact groups,
save, send a test.

Alerts arrive as cards: title (`🔴 DOWN: API (prod)`), diagnosis, expected vs
detected values, key/value fields for target, severity, timing and confirming
locations, and an **Incident #N** link in the footer. A storm becomes one
summary card.

## Mattermost

### Create an incoming webhook
In Mattermost, open the main menu → **Integrations → Incoming Webhooks → Add
Incoming Webhook**, pick the target channel, save and copy the URL
(`https://mattermost.example.com/hooks/…`).

### Add the channel
**Add Channel → Mattermost**, paste the **Webhook URL**. Optional: **Channel**
(a channel name such as `town-square`) to post somewhere other than the
webhook's default, and **Bot Username** for the display name. Pick contact
groups, save, send a test.

Messages use Markdown with a colored attachment and the same content as every
other chat channel; a storm arrives as `🔴 5 new incidents` with a linked line
per monitor.

> **Info**
>
> The **Bot Username** override only works if the Mattermost administrator
> has enabled username overrides for incoming webhooks (**System Console →
> Integrations → Integration Management**), and the **Channel** override is
> refused for webhooks locked to their channel.

## Rocket.Chat

### Create an incoming webhook
In Rocket.Chat, go to **Administration → Workspace → Integrations → New →
Incoming WebHook**, enable it, choose the channel and a post-as user, save and
copy the **Webhook URL** (`https://rocketchat.example.com/hooks/…`).

### Add the channel
**Add Channel → Rocket.Chat**, paste the **Webhook URL**. Optional:
**Channel** (`#alerts`) to override the webhook's channel and **Bot
Username** for the display name. Pick contact groups, save, send a test.

Rocket.Chat receives the same Markdown messages and grouped summaries as
Mattermost.

## Troubleshooting

- **Test fails** — the webhook was disabled or deleted, or the server isn't
  reachable from the internet. The error recorded in
  [notification history](/docs/notifications/history) shows the HTTP status
  the server returned.
- **Posts land in the wrong room** — remove the **Channel** override or
  check the webhook's own default channel.

---

Canonical page: https://watchfor.io/docs/notifications/chat-apps · All docs: https://watchfor.io/docs · Site guide: https://watchfor.io/llms.txt
