Onboard New Client
Step 1 of 9 — GCP Setup
Click the project dropdown at the top → New Project. Name it <client>-agent (e.g. lasica-agent). Note the Project ID shown below the name — you will need it.
APIs & Services → Enable APIs and Services → search and enable each: Google Chat, Google Drive, Gmail, Google Calendar, Google Docs, Google Sheets, Google Slides, People API, Google Forms, Apps Script API
APIs & Services → OAuth consent screen → User type: External → publishing status: Testing. Add app name, support email. Under Test users, add the agent's Google account (e.g. macu_aipm@abstrabits.com). Must be External+Testing because the agent email is on a different domain from the GCP project org.
Credentials → Create Credentials → OAuth 2.0 Client ID → Application type: Desktop app → Name: openclaw-desktop → Create → Download JSON. This file will be labelled credentials.json — you will upload it in Step 3. To verify it is the right one, open it and check the top-level key is "installed".
Credentials → Create Credentials → OAuth 2.0 Client ID → Application type: Web application → Name: recall-calendar → Add redirect URI: http://localhost:8080/callback → Create → Download JSON. This file will be labelled recall-calendar-client.json. To verify, open it and check the top-level key is "web".
Credentials → Create Credentials → Service Account → Name: <client>-chat → Create and Continue → Done. Click the new service account in the list → Keys tab → Add Key → Create new key → JSON → Create → Download. This will be labelled googlechat-sa.json. Do NOT add this service account to any Google Drive folder — it is only for verifying incoming Chat webhook signatures.
Go to aistudio.google.com → Get API key → Create API key in the GCP project you just made. Copy the key — it starts with AIza.... You will paste it in Step 2.
Back in GCP Console → APIs & Services → Google Chat API → Configuration tab → fill in App name (e.g. MACU Agent) → Connection settings: App URL → HTTP endpoint URL:
https://openclaw.<client>.guidr.tech/<client>/googlechat
Set visibility to your Workspace domain → Save. The appPrincipal value will be captured automatically in Step 8 — leave everything else as is for now.