
Features
Automatic Meeting Creation
Slack Integration
Calendar Invites
AI Meeting Capture
How It Works
Incident Triggers Workflow
Google Meet Room Created
Calendar Invites Sent
Links Shared Everywhere
Meeting Scribe on Google Meet
The Google Meet integration powers Rootly AI Meeting Scribe on your Google Meet incident bridges — automatic recording, live transcription, PII-redacted transcripts, and Rootly AI meeting summaries fed straight into the incident. To enable:- Go to Integrations → Google Meet in Rootly.
- Toggle on Meeting transcript and summary.
- Connect via a Google Cloud Service Account (recommended for production). Personal-OAuth connections work for testing but tie the scribe to one user — when that user leaves or their token expires, scribe stops joining meetings.
- Verify your Google Workspace Meet safety admin settings. Restrictive host-management policies can silently block the scribe from being admitted. See troubleshooting below.
Before You Begin
Installation
You can use OAuth for quick setup with a personal account, or a Google Cloud Service Account for production environments that need domain-wide access. After completing these steps, you can configure workflows to automatically create Google Meet rooms when incidents are declared.OAuth Setup
Best for quick testing or evaluating Rootly before a full organizational rollout.Open the Integrations Catalog

Find and Set Up Google Meet

Choose OAuth and Select Your Google Account

Grant Permissions and Complete Setup

Service Account Setup
Use a Google Cloud Service Account if you’re connecting on behalf of your entire organization. This method ensures the integration keeps running even if a user leaves the company.Create a Service Account in Google Cloud Console


Fill In Service Account Details



Generate a JSON Key
.json file will be downloaded — keep this safe.

Upload the JSON Key to Rootly
.json file you just downloaded.
rootly-meet@yourcompany.com) rather than an individual’s account, and exclude it from offboarding so it isn’t deactivated when someone leaves.Once uploaded, you’ll see a confirmation that your Google Meet account has been connected.
Configure Domain-Wide Delegation
Authorize Domain-Wide Delegation
Why Production Should Use a Service Account
The single biggest lever for reliable Google Meet scribe behavior is connecting via a Google Cloud Service Account rather than personal OAuth.Creating the Incident Meeting
You can automate Google Meet room creation in two ways:Auto-Create Incident Call
Custom Workflow
Option 1: Auto-Create Incident Call
The Auto-Create Incident Call panel lets you automatically generate a Google Meet room whenever an incident begins, without building a workflow from scratch.
Create Google Meet Call on Incident Start
Create Google Meet Call on Incident Start

Bookmark Google Meet Call in Slack
Bookmark Google Meet Call in Slack

Notify Slack Channels
Notify Slack Channels

Meeting Transcript & Summary
Meeting Transcript & Summary

Option 2: Creating a Custom Workflow
For teams that need conditional logic — such as only creating calls for SEV-1 incidents or specific teams — a custom workflow gives you full control.Open Workflows


Choose Workflow Type

Configure Triggers

Add Conditions (Optional)

- Severity-based — Only create calls for SEV-1 or SEV-2 incidents
- Team or service filters — Only for incidents impacting specific teams
- Incident type filtering — Only when the incident kind is set to Incident (not Maintenance)
Add Google Meet Action



Save the Workflow
Variable Reference
Use these variables in workflow notifications, Slack messages, and calendar event templates.Google Meet Variables
Incident Variables
Example Templates
- Slack Notification
- Calendar Event
Troubleshooting
Authentication Failed
Authentication Failed
- Verify you’re using the correct Google account
- Check that your account has Google Meet enabled
- For OAuth: Try incognito mode to avoid account conflicts
- For Service Account: Verify the JSON key file is valid and not expired
403 Forbidden — Insufficient Permissions
403 Forbidden — Insufficient Permissions
- Verify domain-wide delegation is enabled in Google Admin Console
- Confirm all three OAuth scopes are added exactly as shown
- Check the Client ID matches your service account
- Ensure the subject email belongs to your domain
- Wait 10–15 minutes for Google to propagate changes
Service Account Key Invalid
Service Account Key Invalid
- Ensure you downloaded the JSON (not P12) format
- Check the file hasn’t been modified or corrupted
- Verify the service account still exists in GCP Console
- Generate a new key if the current one is older than 90 days
Cannot Find Client ID
Cannot Find Client ID
- Go to Google Cloud Console
- Select your project
- Navigate to IAM & Admin → Service Accounts
- Click on your service account
- Find Unique ID or Client ID in the details section
Integration Shows Connected But Doesn't Work
Integration Shows Connected But Doesn't Work
- For Service Account: check Acts as user first. An empty field surfaces as
Invalid requestwhile the integration continues to display as connected. - For Service Account: if Acts as user points at a user who has been deactivated or deleted, meeting creation also fails until you point it at another active user.
- For Service Account: domain delegation may also be missing or incomplete
- For OAuth: Re-authenticate and ensure all permissions were granted
- Check that Google Meet is enabled in your Google Workspace
- Verify the integration shows Active status in Rootly
Meeting Scribe Will Not Join
Nearly every “the scribe didn’t join our call” report traces back to one of a small set of causes. Work through them in this order.The Bot Won’t Join Google Meet Meetings
Walk through this list in order.The integration is on personal OAuth (not a service account)
Personal-OAuth connections work but are tied to one user. If that user’s token expired or they lost calendar permissions, the scribe stops being able to admit itself to calls. Fix: Reconnect via a service account (see above).The meeting URL wasn’t created by Rootly
The scribe is scoped to the Google Meet room Rootly created for the incident. Ad-hocmeet.google.com links or personal meeting rooms won’t be picked up.
Fix: Use the meeting link Rootly pinned at the top of the incident’s Slack channel.
Google Workspace Meet safety settings block admission
This is the most common cause of “the bot says it joined but nobody can let it in.” Unless the scribe was pre-invited to the calendar event as an attendee (in which case Google typically skips the waiting room), it joins as an external participant and lands in the waiting room. When Host management is on in your Google Workspace Meet safety settings, only the meeting host and any pre-assigned co-hosts can see and admit people from the waiting room. Every other responder on the call — even responders in your own organization — sees nothing to admit. The scribe waits, nobody with permission notices, and it leaves at the 10-minute timeout. Fix — pre-assign a co-host. The organizer can designate co-hosts on the calendar event so more than one person can admit from the waiting room. This is only available in the Google Calendar UI, so it’s a manual step per meeting rather than something you can automate. Fix — turn Host management off. In the Google Admin console, go to Menu → Apps → Google Workspace → Google Meet → Meet safety settings and turn Host management off for the organizational unit containing the organizer account — the service account’s Acts as user, or the OAuth-connected user, per the warning above. Applying it to responders’ OU instead of the organizer’s OU has no effect. Any participant can then admit from the waiting room.Waiting-room timeout (10 minutes)
If the scribe is stuck waiting for admission and no one lets it in, it leaves after 10 minutes. Fix: Reinvite from the Meeting tab and admit it promptly. Prevention: pre-assign a co-host or turn Host management off — see Google Workspace Meet safety settings block admission above.Nobody-joined timeout (5 minutes)
If the scribe enters the meeting but no responders join within 5 minutes, it leaves. Fix: Start the meeting on your side first, then reinvite the bot — or wait until responders are on the call before inviting it.The Bot Joined but Transcript Is Missing
Post-meeting processing is still running
Transcripts and Rootly AI meeting summaries generate after the call ends. Give it 5–10 minutes.Recording started but the call ended abruptly
If the meeting host ended the call while the scribe was still in an unstable state, some of the recording may not have made it to processing. Reinvite for future sessions of the same incident if the meeting resumes.The bot recorded a “waiting room” clip and nothing else
The bot was never admitted to the meeting — the recording is only its own waiting-room view. See the “won’t join” section above for the underlying cause.Uninstall
To remove the Google Meet integration:- Go to Configuration → Integrations and find Google Meet
- Click the Connected button to reveal the disconnect option
- Click Disconnect

Frequently Asked Questions
Can I create multiple Google Meet rooms for a single incident?
Can I create multiple Google Meet rooms for a single incident?
What happens to the Google Meet room when an incident is resolved?
What happens to the Google Meet room when an incident is resolved?
Can I use this with both OAuth and Service Account connections?
Can I use this with both OAuth and Service Account connections?
Why isn't the Google Meet link appearing in Slack?
Why isn't the Google Meet link appearing in Slack?
{{ incident.slack_channel_id }} to target the incident’s dedicated channel automatically.Meeting Scribe Questions
Why do we need a service account?
Why do we need a service account?
Can I use both personal OAuth and a service account?
Can I use both personal OAuth and a service account?
Does the scribe work on external / cross-organization Google Meet calls?
Does the scribe work on external / cross-organization Google Meet calls?
Does the scribe support Google Meet calls initiated from a personal Google account?
Does the scribe support Google Meet calls initiated from a personal Google account?
@gmail.com account aren’t covered.