Because BOW pulls events outbound, your server never needs to be reachable from the internet — no public URL, no inbound firewall rules. This makes Google Chat a good fit for locked-down enterprise deployments.
Capabilities
- Direct messages — users DM the analyst app one-on-one in Google Chat.
- Threaded replies — answers land in a thread on the user’s message; replying continues the same conversation and report.
- Auto-linking by email — Google vouches for the sender’s email, so users whose email matches a BOW account are linked automatically on first message.
- Status feedback — the bot posts a 👀 “Working on it…” message while processing and removes it when the answer is ready.
- Report links — every conversation is saved as a BOW report, with a link posted in the thread.
How to integrate
You’ll need admin access to BOW, a Google Cloud project, and permission to configure a Chat app for your Workspace domain.Step 1: Create a project and enable the APIs
- In the Google Cloud Console, create a new project (e.g.,
bow-chat). - Enable two APIs for the project (APIs & Services → Enable APIs):
- Google Chat API
- Cloud Pub/Sub API
Step 2: Create the Pub/Sub topic
- Go to Pub/Sub → Topics → Create Topic and name it (e.g.,
bow-chat-events). - On the topic’s Permissions tab, click Add Principal and grant:
- Principal:
[email protected](Google’s Chat service account) - Role: Pub/Sub Publisher
- Principal:
If your organization enforces the Domain Restricted Sharing policy, this grant will fail with “IAM policy update failed” because the principal is outside your domain. A project admin can override the
iam.allowedPolicyMemberDomains policy at the project level (set it to Allow all), apply the grant, and optionally restore the policy — the check happens at write time only.Step 3: Create the subscription
- Go to Pub/Sub → Subscriptions → Create Subscription.
- Name it (e.g.,
bow-chat-events-sub), select the topic from Step 2, and keep Delivery type: Pull. - Note the full subscription name — you’ll paste it into BOW:
Step 4: Create a service account for BOW
- Go to IAM & Admin → Service Accounts → Create Service Account (e.g.,
bow-chat-sa). - Grant it the Pub/Sub Subscriber role (on the project, or just on the subscription).
- Open the service account → Keys → Add Key → Create new key → JSON, and download the key file.
Step 5: Configure the Chat app
- Go to APIs & Services → Google Chat API → Configuration.
- Fill in the app identity:
- App name (e.g., “BOW”), Avatar URL, and Description
- Under Interactive features:
- Toggle interactive features On
- Enable Receive 1:1 messages
- Under Connection settings, select Cloud Pub/Sub and enter the topic name from Step 2 (
projects/YOUR-PROJECT-ID/topics/bow-chat-events). - Under Visibility, make the app available to your domain (or specific people/groups).
- Set App status to Live and click Save.
Step 6: Connect in BOW
- In BOW, go to Settings → Integrations and open the Google Chat integration.
- Paste the full subscription name from Step 3 and the service account JSON key from Step 4.
- Click Connect. BOW validates the credentials by performing a real pull against the subscription before saving.
How to use
- In Google Chat, start a DM with the app (search for its name under Apps).
- Send a question. If your email matches a BOW account you’re linked automatically; the bot confirms once.
- The bot posts 👀 “Working on it…” in the thread, then replies with the answer and a link to the full report, removing the working marker when done.
- Reply in the thread to continue the conversation — follow-ups extend the same report.
Google Chat messages are capped at ~4,000 characters; longer answers are split across messages. Charts and data files are summarized in the thread with a link to the full report in BOW, since Google Chat apps can’t upload files with app credentials.
Troubleshooting
- “bow is not responding” — check the topic’s Metrics tab for publish requests. If Google isn’t publishing at all, check Cloud Logging for
ChatAppLogEntryerrors, and verify the app is not in Workspace add-on mode (see the warning above — if it is, create a fresh project). - Nothing arrives in BOW — verify
[email protected]has Publisher on the topic (not Subscriber on the subscription), and that the BOW service account has Subscriber on the subscription.
