Google Chat
Lobu’s Google Chat adapter supports direct messages, space mentions, and interactive workflows. Google sends interaction events to the Lobu gateway over a signed HTTPS webhook, and Lobu replies through the Google Chat API.
- Create a Google Cloud project and enable the Google Chat API.
- Create a service account and download a JSON key. A project IAM role isn’t required for the
chat.botscope. Treat the downloaded key as a secret. - Copy the project’s numeric Project number from Google Cloud. This is different from the project ID.
- In Lobu, add a Google Chat connection and provide the full service-account JSON plus the project number. Lobu encrypts the credential. Open the saved connection’s Settings and copy its Webhook URL.
- In the Google Chat API configuration, configure the app:
- Enable Interactive features.
- Under Connection settings, select HTTP endpoint URL.
- Use a common HTTP endpoint for all triggers and paste the exact Webhook URL copied from Lobu.
- If Google shows an Authentication audience choice, select HTTP endpoint URL. Workspace add-on requests use the endpoint URL as their signed token audience.
- Under Commands, add one Slash command:
- Command ID:
1(or another number from 1 to 1000) - Name:
/lobu - Description:
Run Lobu commands: /lobu help - Leave Open a dialog off.
- Command ID:
- In the Lobu connection, set Lobu command ID to the same number. The ID belongs to this Google Cloud project, so the two values must match.
- During testing, make the app visible only to specific people and groups in your Workspace organization, and add your tester account.
- Save the Chat API configuration. In Google Chat, start a new chat, find the app by name, and send a direct message. If Join spaces and group conversations is available and enabled for the project, add the app to a space and @mention it.
Google disables Join spaces and group conversations for Chat apps created from a personal Google account. The current Lobu public-preview project has that restriction, so its Marketplace build is direct-message only. To publish space support, use or migrate to a Workspace-owned Google Cloud project and enable the setting before review.
Don’t construct the webhook from the numeric ID in the Lobu browser URL. Chat routing uses a separate stable connection ID; the copyable URL in Settings is authoritative.
You don’t need a Google Workspace Marketplace listing for trusted testers. Publish only after the direct-message and space flows are stable; public listings go through Google’s review.
Commands
Section titled “Commands”Google Chat exposes one native /lobu command and Lobu routes its argument to the same command dispatcher used by Slack.
| Command | Result |
|---|---|
/lobu or /lobu help | Show the available commands. |
/lobu status | Show the agent, model, and skill count for this conversation. |
/lobu agents | List demo agents available on a preview connection. |
/lobu try [agentId] | Show the demo-agent menu, or bind this conversation to a listed demo agent. |
/lobu link <code> | Link this conversation using the short-lived code printed by lobu run. |
/lobu new | Save the current context and start a fresh agent session. |
/lobu clear | Clear Lobu’s stored history for this conversation. |
Google makes the command message itself visible only to the person who invokes it and the Chat app. Lobu’s later agent response is a normal message in the conversation; don’t treat a space response as private unless Google labels that message as private.
Configuration
Section titled “Configuration”| Field | Required | Type | Description |
|---|---|---|---|
credentials | No | string | Service account credentials JSON string. Defaults to GOOGLE_CHAT_CREDENTIALS env var. |
useApplicationDefaultCredentials | No | boolean | Use Application Default Credentials (ADC) instead of service account JSON. |
endpointUrl | No | string | HTTP endpoint URL for button click actions. Required for HTTP endpoint apps. |
googleChatProjectNumber | No | string | Google Cloud project number for verifying webhook JWTs. Defaults to GOOGLE_CHAT_PROJECT_NUMBER env var. |
impersonateUser | No | string | User email for domain-wide delegation. Defaults to GOOGLE_CHAT_IMPERSONATE_USER env var. |
pubsubAudience | No | string | Expected audience for Pub/Sub push JWT verification. Defaults to GOOGLE_CHAT_PUBSUB_AUDIENCE env var. |
helpCommandId | No | string | Google Chat command ID (1-1000) mapped to this project's registered /lobu command (or legacy /help command). |
userName | No | string | Override bot username. |
Authentication
Section titled “Authentication”The adapter supports two authentication modes:
- Service account JSON (hosted default) — provide
credentialswith the complete JSON key contents. Lobu requests only thehttps://www.googleapis.com/auth/chat.botscope. - Application Default Credentials (self-hosted) — set
useApplicationDefaultCredentials: true. This works with Google Cloud runtimes, Workload Identity Federation, or local application-default credentials.
Features
Section titled “Features”- Direct messages trigger the agent. Space @mentions are also supported when the Google Cloud project permits and enables space access.
- Native
/lobucommand with the same built-in subcommands as Slack. - Streaming responses with throttled message edits.
- Google Chat Cards v2 for interactive elements (buttons, permission grants, configuration).
- Access control — restrict which users or groups can interact.
Message access and identity
Section titled “Message access and identity”Installing the app does not give Lobu permission to scrape every public channel or read a Workspace backlog.
- In a DM with the app, Google sends messages addressed to that app.
- In a multi-person space, the normal interaction webhook sends @mentions and commands. Lobu can subscribe to a conversation thread for follow-up events when the Google Workspace Events path is configured; that is still scoped event delivery, not an organization-wide crawl.
- Lobu records the Google Chat sender ID and display-name metadata that Google includes with each delivered event. It does not silently equate that platform identity with a verified Lobu account.
- Workspace-wide ingestion, historic message search, or identity correlation would be a separate connector feature with explicit Google scopes, administrator consent, ACL mapping, and retention controls.
This boundary is deliberate: presence in a space authorizes the app to participate in the interactions Google sends it, not to build a hidden profile from unrelated conversations.
Marketplace publication
Section titled “Marketplace publication”Specific tester accounts can use a Chat app before it has a Marketplace listing. A public listing is the distribution path for individual and administrator installs outside the tester list, and Google reviews public apps before publishing them.
While a Marketplace draft is under review, Google locks it against edits. You can cancel the review to return it to draft, fix it, retest, and submit again. If Google locks Chat API identity fields for an approved or under-review app, follow the contact instruction shown in Cloud Console.
Creating the Cloud project with a personal Google account doesn’t prevent a public listing. You can add company maintainers through IAM, and a project with no organization can later be migrated into a Google Cloud organization when the source and destination permissions and policies are ready. The Marketplace Public versus Private visibility choice is permanent after it is saved, so choose Public for an app intended for outside domains.
Slack parity
Section titled “Slack parity”The shared Lobu conversation surface is aligned: DMs, mentions, threads, streaming responses, platform-neutral cards/buttons, and /lobu help, status, agents, try, link, new, and clear use the same Lobu runtime.
It is not literal platform-wide parity:
- Slack has hosted OAuth and multi-workspace installation; Google Chat uses a Google Cloud app configuration, service-account credentials, and Marketplace review.
- Slack has App Home and Block Kit; Google Chat has its own app surfaces and Cards v2.
- Lobu currently has a Slack outbound file-upload handler and Slack workspace identity flow. Google Chat doesn’t yet provide those Lobu-specific capabilities.
- Linked whole-channel capture currently has a Slack-specific catch-all path. Google Chat receives DMs, app interactions, and explicitly configured event subscriptions; it doesn’t scrape all spaces.
Gemini and MCP
Section titled “Gemini and MCP”Installing Lobu as a Google Chat app doesn’t automatically attach Lobu MCP to the built-in Ask Gemini surface in Chat. They are separate products and authorization paths. The direct route today is the Lobu Chat app: its agent can use Gemini as the model while Lobu exposes the same governed tools and company context it uses in other clients.
Gemini Enterprise supports custom MCP server connectors, including Streamable HTTP and OAuth, through a separate Google Cloud data-store setup. That doesn’t configure the ordinary Ask Gemini panel merely by installing this Chat app; an administrator must enable the relevant organization policy, add the Lobu MCP endpoint separately, and validate its OAuth flow.
Google Workspace Studio can also call external webhooks and supports custom add-on steps where available, but those are separate flow integrations. Custom Studio add-on steps are currently a limited-preview path, not a replacement for Lobu’s Chat app or a general MCP bridge inside Google Chat.
Typical Use Cases
Section titled “Typical Use Cases”- Internal assistant accessible from Google Workspace.
- Workflow automation triggered by team conversations in Google Chat spaces, when the deployment has space access enabled.
- Knowledge base bot for organizations using Google Workspace.
For product help, see Lobu Support or email hello@lobu.ai.
Google Chat™ is a trademark of Google LLC.