Google Meet connector setup
Operator·4 minutes to read
This page is the setup half — creating the OAuth app in your own Google Cloud project and
getting its client id and secret into this deployment, the same shape
docs/connectors/gmail.md already describes. Authorising a connection afterwards is
the Authenticate control on the plugin sheet, which is what actually sends you to Google.
This connector reads meetings, recordings and transcripts the vendor already holds. A bot does not join a call. A consumer Google account cannot use this connector at all — it needs a Google Workspace account, and the Meet REST API only authenticates as a user, never a bare service account.
1. Create the OAuth app in your own Google Cloud project
-
In the Google Cloud console, create or reuse a project, enable the Google Meet API, and create an OAuth client under APIs & Services → Credentials — this is your own Google Cloud project, not Botseon's.
-
Under Authorized redirect URIs, paste the redirect URL from
docs/connectors/README.md— with the quickstart's defaultBOTSEON_PUBLIC_URL, that is:http://127.0.0.1:3000/api/oauth/google-meet/callback -
Save. The console shows you a Client ID and a Client secret — copy both now.
Three admin facts worth knowing before you connect. A super admin may have to mark the OAuth client Trusted under Security → Access and data control → API controls, which can take up to 24 hours. An External-audience app left in Testing is issued a refresh token that expires in seven days — a connection that works today dies next week. An Internal-audience consent screen removes verification, the test-user cap and that seven-day expiry, but only if every member is in one Workspace organisation — it is the recommended setting for this connector.
2. Scopes
This connector requests one scope, and never a Drive scope:
https://www.googleapis.com/auth/meetings.space.readonly(sensitive) — read past conferences, who joined them, and the transcript entries the meeting service itself holds.
Recording and transcript files are Drive files and need the restricted drive.meet.readonly or
drive.readonly scope on top; this connector's four tools never request either, and
google-meet.get_transcript reads transcript entries from the Meet API, not a Drive file.
3. Enter the app
One command, with the client secret on standard input — there is no flag that takes it and no
environment variable that holds it (see
docs/connectors/README.md):
printf %s "$CLIENT_SECRET" | botseon oauth-app set \
--org <organisation id> --slug google-meet \
--client-id <the client ID from step 1> \
--auth-url https://accounts.google.com/o/oauth2/v2/auth \
--token-url https://oauth2.googleapis.com/token \
--revoke-url https://oauth2.googleapis.com/revoke \
--configured-by <your user id>
It stores the secret encrypted and prints the redirect URL from step 1 back, so you can check the
two match. botseon oauth-app show --org <organisation id> --slug google-meet says whether an app
is configured and under which client id; nothing prints the secret back.
Never put either value in a bot's description, a memory, or anywhere else a model reads as ordinary text.
4. What this connector does and does not do
This connector is read-only: it has no write tool and raises no approval card.
google-meet.list_conference_records— past conferences.google-meet.get_conference_record— one conference record.google-meet.list_participants— who joined a conference.google-meet.get_transcript— a conference's transcript entries.
Recordings and transcripts exist only on Workspace editions that include them — Business
Standard and up; not Business Starter, not consumer accounts — so a connection can succeed and
get_transcript can still return nothing. list_conference_records, get_conference_record and
list_participants verify on any Workspace edition.
Google publishes no separate EU API host for Meet: Workspace Data Regions pins covered data
(including Meet recordings and transcripts) at rest to the US or Europe on qualifying editions,
but that is not an endpoint — this connector calls meet.googleapis.com either way.
This connector's catalogue row ships available: false: it stays disabled until the live smoke
runs at turn-on.
Last verified against build 3f515ac.