Skip to main content

Google Meet Integration

The Google Meet integration lets your organization connect Harmony to its own Google Cloud project so that meetings created or joined through Google Meet can be captured, transcribed, and processed by Harmony. Because Google Meet uses Google's OAuth 2.0 authorization flow, you (the workspace admin) need to register a Google Cloud OAuth application, enable the required APIs, and paste the resulting Client ID and Client Secret back into the Harmony setup form.

Once configured, anyone in your organization who uses Google Meet will be connected through your app — Harmony does not need each user to repeat the Google Cloud setup.

Connecting Google Meet at the workspace level requires the integrations:write:all permission. See Roles and permissions for details. Personal calendar features still rely on the per-user Google Calendar connection.

Step 1. Open the Marketplace

In Harmony, open the Marketplace tab from the sidebar and select the Google Meet integration tile.

Step 2. Click "Set up"

After clicking Set up, Harmony shows a setup form. This form contains everything you need to wire your Google Cloud OAuth application to Harmony, including:

  1. The Redirect URI to register in Google Cloud.
  2. The list of required OAuth scopes.
  3. A field for the Client ID.
  4. A field for the Client Secret.

You will copy values from this form into your Google Cloud setup, then copy the generated Client ID and Client Secret back into this same form. Google uses OAuth 2.0 for this authorization flow.

Step 3. Open Google Cloud Console and prepare a project

Sign in to the Google Cloud Console and create a new project (or select an existing one) to host this integration. Google recommends using a dedicated project for OAuth-based access to Google APIs so that scopes, credentials, and audit history stay isolated from other workloads.

Step 4. Enable the required APIs

Inside the project, enable each API that Harmony's Google Meet integration needs. Google OAuth integrations require the relevant API access to be enabled before authorization can complete successfully.

Enable the following APIs:

  • Google Drive API

  • Google Calendar API

  • Google Meet API

Step 5. Set up the Google Auth Platform

Once the APIs are enabled, configure the Google Auth Platform / OAuth consent screen. This is the screen that end users see when Google asks them to authorize the application.

5.1 App information

Fill in the basic app details:

  • App name
  • User support email

5.2 Audience

Select External as the audience type:

5.3 Contact information

Provide the required developer contact details:

5.4 Finish

Review all the information and click Create to complete the Google Auth Platform setup.

Step 6. Add the required scopes

Copy the scopes shown in the Harmony setup form and paste them into the Google Auth Platform configuration, then save the selected scopes.

The setup form lists the minimum scopes the integration needs. Adding fewer scopes will cause certain features (calendar reads, Drive access, or Meet API calls) to fail. Adding extra scopes is unnecessary and may delay Google's verification.

Step 7. Create the Client ID and Client Secret

Step 7.1 Choose application type

Set the application type to Web application and give it a recognizable name (for example, "Harmony — Google Meet").

Step 7.2 Set Authorized JavaScript origins

Set Authorized JavaScript origins to:

https://app.heyharmony.com

Step 7.3 Set Authorized redirect URIs

Set Authorized redirect URIs to the value shown in the Harmony setup form. For Google Meet this is:

https://app.heyharmony.com/integrations/oauth/google-meet/callback

Step 7.4 Copy the Client ID and Client Secret

After clicking Create, Google shows a panel with your Client ID and Client Secret. Copy both values — you will paste them back into Harmony in the next step.

Treat the Client Secret like a password. Anyone with both the Client ID and Client Secret can impersonate the integration. If a secret leaks, rotate it in Google Cloud and update it in Harmony.

Step 8. Paste the credentials into Harmony

Return to the Harmony setup form and paste the Client ID and Client Secret into the matching fields, then save.

Once saved, Harmony shows the configured application information on the right side of the integration page.

From now on, anyone in your organization who connects Google Meet from Marketplace → Apps → Google Meet will be routed through your OAuth application — they don't need to repeat the Google Cloud setup, and Harmony can capture Google Meet links they paste or share for transcription and analysis.

Configuring this workspace OAuth app is what enables Google Meet capture in general, but it does not automatically surface each user's scheduled Meet links. Auto-join only schedules the Companion Bot for events read from a connected calendar — today that means each user also needs to connect Google Calendar separately from Marketplace → Apps → Google Calendar (see the Google Calendar integration and Personal integrations → Connecting Google Calendar). Auto-join itself is also gated by several other layers documented in Recording automatically and Recording modes — Auto-Join. Without a connected calendar, users can still send the bot manually to a Meet link from Quick Launch.

Troubleshooting

  • "Access blocked: This app's request is invalid" — the Authorized redirect URI in Google Cloud does not exactly match the one shown in the Harmony setup form. Re-check the URI character-for-character, including the trailing path.
  • "Error 403: access_denied" after authorization — one or more required scopes were not added on the OAuth consent screen, or an API was not enabled in Step 4. Re-check the scope list and the enabled APIs.
  • Authorization succeeds but Meet features still fail — confirm that Google Drive API, Google Calendar API, and Google Meet API are all enabled in the same Google Cloud project the OAuth credentials belong to.
  • You need to rotate the secret — generate a new client secret in Google Cloud, then update it in the Harmony setup form. The Client ID can stay the same.