Zoom Integration for Runbooks
Harness AI SRE integrates with Zoom through a Connector-based approach, enabling automated meeting management for incident response.
Overview
Zoom integration enables your runbooks to:
- Create incident bridges automatically
- Schedule follow-up meetings
- Manage participant access
- Share meeting recordings
- Track attendance
Connector Requirements
When You Need the Zoom Connector
The Zoom connector is required for programmatic meeting creation — creating meetings via runbook actions with the ability to:
- Create new meetings on demand
- Set meeting names, duration, and descriptions
- Programmatically invite participants
- Configure meeting settings (waiting room, passcode, auto-recording, etc.)
When You Don't Need the Zoom Connector
You do not need a connector if you only want to:
- Join existing Zoom meetings using static bridge links
- Use pre-configured, recurring meeting rooms
- Manually create meetings through the Zoom web interface
If your incident response workflow uses static meeting bridges that responders join manually, the Zoom connector is not required.
Integration Setup
Prerequisites
- Zoom admin access
- Harness Project Admin role
- Appropriate Zoom API permissions
Setup Steps
- Navigate to Project Settings → Third Party Integrations (AI SRE)
- Select Zoom from the available integrations
- Configure authentication (see Authentication Methods below)
- Grant required API permissions (see below)
- Test the connection
Authentication Methods
Zoom integrations in Harness AI SRE support two authentication methods: Server-to-Server OAuth and API Key/Secret (Account ID and Secret). The authentication method you choose affects how the AI Scribe Agent joins incident meetings.
Server-to-Server OAuth (Recommended)
OAuth authentication enables the AI Scribe Agent to join Zoom meetings automatically without waiting room delays.
Capabilities:
- Automatic meeting join: Generates ZAK (Zoom Access Key) tokens that allow the bot to bypass waiting rooms
- No manual admission required: The bot joins immediately when the meeting starts
- Full programmatic access: Create, configure, and manage meetings via runbook actions
- Silent operation: No error alerts related to meeting access
Use OAuth when:
- You want the AI Scribe Agent to join incident war rooms automatically
- You need reliable meeting transcription without manual intervention
- You're using runbook actions to create meetings programmatically
Setup:
- In the Zoom integration configuration, select OAuth
- Click Sign in with Zoom and authorize access
- Grant the required API scopes listed below
- Test the connection
API Key/Secret Authentication
API Key authentication (Account ID and Secret) provides basic meeting management capabilities but limits automatic meeting participation.
Limitations:
- No ZAK token support: Cannot generate tokens that bypass waiting rooms
- Waiting room requirement: The bot joins as a standard participant and requires manual admission
- Manual intervention needed: Someone on the call must admit the bot from the waiting room
- Alert messages: Generates error messages in Slack when attempting to request ZAK tokens
Behavior with API Key authentication:
When the AI Scribe Agent attempts to join a meeting with API Key authentication:
- Bot attempts to join meeting using ZAK token → request fails (ZAK not supported with API Key auth)
- Bot falls back to standard join → lands in waiting room
- Error alert appears in Slack: "ZAK token generation not supported"
- A meeting participant must manually admit the bot
- If no one admits the bot, it misses the meeting entirely and no transcript is captured
Use API Key when:
- You only need to create meetings programmatically (not join them for transcription)
- Your team is comfortable manually admitting the bot to meetings
- OAuth setup is not feasible for your organization
If using API Key authentication, the AI Scribe Agent will miss meetings where no participant admits it from the waiting room. This results in incomplete incident documentation. For reliable transcription, use Server-to-Server OAuth.
Switching from API Key to OAuth
If you're currently using API Key authentication and experiencing issues with bot admission or seeing ZAK token error alerts:
- Navigate to Project Settings → Third Party Integrations (AI SRE) → Zoom
- Remove the existing API Key configuration
- Select OAuth and follow the setup instructions above
- Test by creating a meeting via runbook and verifying the bot joins automatically
Alternatively, if OAuth is not feasible, you can suppress the ZAK token error alerts in your Slack notification settings.
Required Permissions
The Zoom integration requires specific API scopes depending on the actions your runbooks will perform. Below are the required scopes organized by functionality:
Basic Meeting Management
meeting:write- Create, update, and delete meetingsmeeting:read- Read meeting details and settingsuser:read- Read user information for meeting hosts and participants
Advanced Meeting Actions
meeting:write:admin- Required for ending meetings and advanced meeting controlmeeting:update:admin- Modify meeting settings for meetings you don't hostmeeting:read:admin- Access detailed meeting information across the organization
Recording Management
recording:read- Access meeting recordingsrecording:write- Manage recording settings and permissionscloud_recording:read- Read cloud recording detailscloud_recording:write- Manage cloud recordings
Participant and User Management
user:read- Read basic user informationuser:write- Manage user settings (for participant management)group:read- Read group information for bulk participant management
Webinar Support (if applicable)
webinar:write- Create and manage webinarswebinar:read- Read webinar information
Scope Requirements by Action
| Action | Required Scopes | Notes |
|---|---|---|
| Create Meeting | meeting:write, user:read | Basic meeting creation |
| End Meeting | meeting:write:admin | Critical for meeting termination |
| Update Meeting Settings | meeting:write, meeting:update:admin | Admin scope needed for meetings you don't host |
| Manage Participants | meeting:write, user:read, user:write | For adding/removing participants |
| Access Recordings | recording:read, cloud_recording:read | For post-meeting analysis |
| Schedule Recurring Meetings | meeting:write, user:read | For incident follow-ups |
Permission Troubleshooting
If you encounter permission errors:
- "Insufficient privileges" error: Add
meeting:write:adminscope - "Cannot end meeting" error: Ensure
meeting:write:adminis granted - "Recording access denied": Add
recording:readandcloud_recording:readscopes - "User not found" errors: Verify
user:readscope is active
For detailed information about Zoom API scopes, refer to the official Zoom API documentation.
Using the Zoom Connector
Creating a Zoom Meeting Runbook
- Create a new runbook or edit an existing one
- Add a new Action
- From the Action Picker, select Create Zoom Meeting
- No additional configuration is required - the default Zoom connector will be used
Executing the Runbook
- Open an existing incident or create a new one
- Navigate to the Runbooks tab
- Click Execute a Runbook
- Select your runbook with the Zoom meeting action
- Click the run/play icon to execute
- View the results in the incident timeline
Disabling the Connector
Remove from Zoom Marketplace
- Go to the Zoom Marketplace
- Navigate to Manage → Installed Apps
- Locate the Harness app
- Click Remove or Uninstall
- Confirm the removal
- Verify in Harness:
- Navigate to Project Settings → Third Party Integrations (AI SRE)
- Confirm the Zoom connector is no longer listed
- Check that related secrets have been automatically removed
Using Zoom Actions in Runbooks
When you add Zoom actions to a runbook, you'll configure them through a form-based interface. The specific fields depend on the action type you select.
Create Zoom Meeting Action
Creates a new Zoom meeting for incident coordination.
Form Fields:
- Topic: Meeting title
- Example:
{{Activity.title}} - Incident Bridge
- Example:
- Agenda: Meeting description (optional)
- Duration: Meeting duration in minutes
- Start Time: When to start the meeting (for scheduled meetings)
- Settings:
- Join before host
- Waiting room enabled/disabled
- Auto-recording (cloud or local)
Available Mustache Variables:
{{Activity.title}}- AI SRE incident title{{Activity.id}}- AI SRE incident ID{{Activity.severity}}- AI SRE incident severity{{Activity.summary}}- AI SRE incident summary- Any custom incident fields configured in your incident template
Best Practices
Meeting Setup
- Use consistent naming
- Enable auto-recording
- Configure waiting rooms appropriately
- Set proper security settings
Participant Management
- Control host privileges
- Manage waiting room
- Set up co-hosts
- Configure breakout rooms
Recording Management
- Set retention policies
- Configure sharing settings
- Manage access controls
- Archive important meetings
Common Use Cases
Incident Response
- Create immediate bridge
- Add response team
- Enable recording
- Share meeting link
Troubleshooting
Common Issues
-
Authentication Failures
- Verify OAuth tokens
- Check permissions
- Confirm account access
-
AI Scribe Bot Not Joining Meetings / ZAK Token Errors
- Symptom: Bot lands in waiting room, requires manual admission, or you see "ZAK token generation not supported" errors in Slack
- Cause: Using API Key authentication instead of OAuth
- Solution: Switch to Server-to-Server OAuth (see Switching from API Key to OAuth)
- Workaround: Manually admit the bot from the waiting room, or suppress ZAK token error alerts in Slack
-
Meeting Creation Errors
- Check scheduling conflicts
- Verify user limits
- Confirm host rights
-
Recording Issues
- Check storage space
- Verify permissions
- Confirm settings