Skip to content

Google Chat

  • Direct messages and space mentions
  • Cards v2 rich responses (buttons, sections, decorated text)
  • Works in Google Workspace tenants (not consumer Gmail)
  • Inherits Workspace authentication and admin controls
  1. Go to the Google Cloud Console
  2. Create a new project (or select an existing one)
  3. Enable the Google Chat API:
    • APIs & Services → Library → search for “Google Chat API” → Enable
  1. IAM & Admin → Service Accounts → Create Service Account
  2. Name: aibutler-chat (or any label)
  3. Skip the optional role grants
  4. After creation, click the account → Keys → Add Key → JSON
  5. Save the downloaded key file securely
  1. In the Cloud Console, go to Google Chat API → Configuration
  2. Fill in:
    • Application name: AI Butler
    • Avatar URL: optional icon
    • Description: one-line bot description
    • Functionality: check both Receive 1:1 messages and Join spaces and group conversations
    • Connection settings → App URL: https://your-host/webhook/googlechat
  3. Under Permissions, choose who can install the bot (your whole domain, a specific OU, or individuals)
  4. Save
Terminal window
# Store the service account JSON in the vault
aibutler vault set googlechat_service_account_json "$(cat path/to/key.json)"
configurations:
channels:
active:
- googlechat
Terminal window
aibutler run

Then add the bot to a Google Chat space from the Workspace admin console or the + New chat menu in Google Chat.

FeatureSupported
1:1 DMsYes
Group spacesYes (@mentions required)
Cards v2 rich repliesYes
File attachmentsYes (download only)
Voice messagesNo
Streaming repliesNo (Google Chat is edit-based)
SSOInherited from Workspace

Bot doesn’t appear in the spaces menu. Your Workspace admin may need to approve the bot in the admin console (Apps → Google Workspace Marketplace apps).

HTTP 401 Unauthorized. The service account JSON is wrong or expired. Regenerate the key and re-store it in the vault.

Messages received but no reply. Google Chat requires the bot’s app URL to respond within 30 seconds. If your model is slow, consider switching to a faster model for Google Chat or enable response streaming (v0.2).