Skribby
GuidesUpdated 1 week ago

Bot Authentication

By default, Skribby bots join meetings as Guests. However, many organizations block guest access for security. To bypass these restrictions, you must authenticate your bot as a real user.

Authentication Methods

MethodPlatformsDescription
Authenticated AccountsGoogle Meet, MS TeamsLink a real account (email/password) via the Skribby Dashboard.
ZAK TokensZoomProvide a short-lived token generated via the Zoom API.

Google Meet & Microsoft Teams

For these platforms, you manage accounts directly in the Skribby Dashboard.

Adding an Account

  1. Navigate to Settings → Authenticated Accounts
  2. Click Add Account
  3. Select the service (Google Meet or Microsoft Teams)
  4. Enter the account email and password
  5. Save and copy the account_id

Using in API Requests

{ "authentication": { "account_id": "uuid-here", "always_authenticate": true } }

💡 Guest-First Logic: By default, bots try to join as guests first (to use your custom bot_name). If the meeting requires login, it then uses the account. Set always_authenticate: true to skip the guest attempt.

Provider Requirements

Google Meet

RequirementDetails
Account TypeGoogle Workspace or personal Gmail
MFAMust be disabled
App PasswordsNot supported; use the main account password
Workspace RestrictionsAccount must be in the same Workspace as meetings

Microsoft Teams

RequirementDetails
Account TypeMicrosoft 365 account
MFAMust be disabled
LicenseNeeds Teams access (most M365 plans include this)
Tenant RestrictionsAccount must be in the same tenant as meetings

💡 Dedicated Accounts: We recommend creating dedicated service accounts (e.g., [email protected]) rather than using personal accounts.

Zoom (ZAK Tokens)

Zoom authentication is ephemeral. You must generate a ZAK Token via the Zoom API for the specific user the bot should represent.

Skribby's production Zoom bot authentication currently supports ZAK pass-through only. It does not provide production OBF support, and you should not send an OBF token in place of zoom_zak_token.

How to get a ZAK Token

  1. Prerequisites: You need a Zoom Server-to-Server OAuth app.
  2. Step 1: Get User ID: Call GET /users to find the id or email of the user.
  3. Step 2: Generate Token: Call GET /users/{userId}/token?type=zak.
  4. Step 3: Skribby Integration: Pass the returned token string to Skribby.
{ "authentication": { "zoom_zak_token": "zak-token-string" } }

⚠️ Expiration: ZAK tokens are typically valid for 90 days, but we recommend generating a fresh one before creating a bot.

Zoom OAuth Scope Workaround

ZAK tokens generated with the granular user:read:zak scope can cause Zoom joins to remain in joining and eventually fail as not_admitted.

While this Zoom compatibility issue exists, use the classic Zoom OAuth scopes available from the Zoom Marketplace app defaults, such as user:read and meeting:read, when generating ZAK tokens. Avoid explicitly forcing a granular scope= value that includes user:read:zak.

This is a ZAK compatibility workaround, not OBF support.

Why Skribby Does Not Use OBF for Production Zoom Bots

Zoom's OBF model is designed for the Zoom Meeting SDK join flow. Skribby's current Zoom bot joins through Zoom's hosted web client with a ZAK token; it does not generate a Meeting SDK JWT or call the Meeting SDK join API.

OBF is not a good fit for autonomous recording bots because it requires a user-authorized OBF token, the associated Zoom user must already be present in the meeting, and the SDK app's meeting lifecycle is tied to that user's presence. That conflicts with scheduled bot joins, lobby waiting before the requester arrives, and continued recording if the requester leaves.

Important Constraints

  • Disable MFA: Multi-Factor Authentication must be disabled on all service accounts. Our bots cannot solve 2FA prompts during the login flow.
  • Bot Naming: When authenticated, the bot appears with the account name. The bot_name parameter is ignored once authentication is active.
  • Account Merging: If you send two bots using the same account into the same meeting, the platform merges them into a single participant. Use different accounts for multi-bot scenarios.
  • Zoom OBF: OBF is not supported for production Zoom bot authentication. Use authentication.zoom_zak_token for Zoom ZAK pass-through.

Troubleshooting

IssueCauseResolution
Bot stuck at auth_requiredMeeting requires login, no account providedAdd authentication.account_id to your request
Login fails immediatelyWrong password or MFA re-enabledVerify credentials, check MFA is disabled
Bot appears as guest despite authGuest attempt succeeded firstSet always_authenticate: true
Works for some meetings, not othersDifferent org/tenant requirementsVerify account is in the same org as meeting
Zoom bot stays in joining, then fails as not_admittedZAK token generated with granular user:read:zak scopeUse classic Zoom OAuth scopes such as user:read and meeting:read; do not force granular scope=user:read:zak while this compatibility issue exists