IntegrationsWorkplace chat

Brand mentions in a Google Chat space

Google Chat is the obvious home for alerts in a company that runs on Workspace, and it takes a webhook without an app review. What it does not take is a personal Gmail account, and every webhook in a space shares one small rate budget.

Every alert channel is on every plan, including Free. Google Chat webhooks need a Business or Enterprise Workspace account.

[01] WHAT LANDS THERE/ A SPACE

A mention, as it arrives in Google Chat

Rendered by the code that sends it, from a sample GitHub post. Never the post body.
Space · Product feedback

FishOutAppnow

Relevant mention on GitHub

FishOut

Notchmail sync drops threads with more than 50 replies

Relevance 84 · Competitor · Negative · by okafor-dev

Labels: Has a problem, Complaint

Open in FishOutView on GitHub
[02] CONNECT IT/ SETUP

Point FishOut at a space

3 steps, a few minutes end to end.
  1. 1

    Add a webhook to the space — on the web

    Open Google Chat in a browser (webhooks cannot be configured in the mobile app), open the space, and from the menu next to its title choose Apps & integrations → Add webhooks. Name it FishOut, optionally give it an avatar URL, and Save.

  2. 2

    Copy the link

    From the webhook’s More menu, choose Copy link. The key and token in the query string are the credential; Google’s own advice is never to share the URL in a public repository.

    webhook url

    https://chat.googleapis.com/v1/spaces/AAAA…/messages?key=…&token=…
  3. 3

    Paste it into FishOut and set the floor

    Under Settings → Notifications, add a Google Chat channel and paste the URL. Pick mention.scored and a relevance floor. You may keep a threadKey and messageReplyOption on the URL if you want every alert in one thread; nothing else is accepted in the query.

Then set the floor

Spaces in Chat tend to be small and topical, which is an argument for several narrow channels rather than one busy one: a product-feedback space at 70 fed by GitHub and Hacker News, and a leadership space at 90 that only sees the posts most worth a reply. Each FishOut channel carries its own floor, so that is two webhooks, not a filter you maintain.
Settings · Notifications

Google Chat

https://chat.googleapis.com/…

Healthy

Relevance floor70

Eventsmention.scored
Batch bursts5 min
[03] WHAT IS IN IT/ FIELDS

What Google Chat receives, field by field

Built from the event’s envelope and nothing else, so a retry renders exactly the message the first attempt would have.
Field How
Card headerShownThe headline as the title, “FishOut” as the subtitle.
Post titleClippedBold paragraph, HTML-escaped, clipped at 200 characters.
Relevance, subject, sentiment, authorShownA plain paragraph under the title.
Reply hint and labelsShownTheir own paragraphs.
Plain text fallbackShownOnly our headline, never the title — so “<users/all>” in a post cannot notify the space.
Post bodyNeverNever sent: the envelope does not carry it.
[04] TEN PINGS OR ONE/ DIGEST

A burst arrives as one message

Google Chat batches by default. Here 3 posts were held after the first; they arrive together when the window closes, best first.
Space · Product feedback · 5-min digest

FishOutApp+5m

3 new mentions for AcmeMail

FishOut

  • Support for importing AcmeMail archives · GitHub · 87
  • Notchmail OAuth tokens expire after one hour · GitHub · 80
  • Docs: compare shared-inbox providers · GitHub · 72
Open in FishOut
[05] WHAT WILL BITE YOU/ LIMITS

Google’s limits, not ours

These are Google Chat’s constraints, checked against Google for Developers. Failures are tracked per channel, so one broken destination never stops the others.

Incoming webhooks need a Business or Enterprise Google Workspace account with Chat. If Add webhooks is missing from the menu, your organization does not allow them. [source]

Every webhook in a space shares that space’s message quota: one request per second. Two FishOut channels and a deploy bot pointed at one space share it too. [source]

A message, text and cards included, is capped at 32,000 bytes. A FishOut card carries a title and a few short lines, so it stays far below. [source]

Webhooks are one-way: nobody can reply to the bot, and a button can only open a link. That is why both buttons here are links back to the post and to FishOut. [source]

A threadKey on the URL, with messageReplyOption, keeps alerts in one thread instead of starting a new one each time. [source]

In the channel’s delivery history
You seeIt meansDo this
googlechat_space_not_foundThe space was deleted, or the webhook removed from it.Add a new webhook to a live space and update the URL.
googlechat_permission_deniedYour Workspace admin turned incoming webhooks off.Ask an admin to allow users to add and use incoming webhooks.
googlechat_unauthenticatedThe key or token in the URL is wrong.Copy the link again from the webhook’s More menu.
googlechat_invalid_payloadGoogle rejected the card.Send a test from FishOut; if it persists, tell support.
[06] WHERE MENTIONS COME FROM/ ROUTES
[07] OPEN IN FISHOUT/ THE INBOX

From Google Chat to a drafted reply

“Notchmail sync drops threads with more than 50 replies”, open in the inbox. You send the reply; FishOut never posts.
GitHubokafor-dev
84

Notchmail sync drops threads with more than 50 replies

Has a problemComplaintCompetitor

Draft reply

Copy and open threadYou send it

Questions