anthropics/knowledge-work-plugins38 files

Build Zoom Team Chat App

Reference skill for Zoom Team Chat. Use after routing to a chat workflow when building user-scoped messaging integrations, chatbot experiences, rich cards, buttons, slash commands, or chat webhooks.

Specification
Skill ID
anthropics/knowledge-work-plugins/build-zoom-team-chat-app
Publisher
anthropics
Repository
knowledge-work-plugins
Installs
0
Files
38
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

anthropics/knowledge-work-plugins/build-zoom-team-chat-appInstalls these files
  • RUNBOOK.md
  • SKILL.md
  • concepts/api-selection.md
  • concepts/authentication.md
  • concepts/deployment.md
  • concepts/environment-setup.md
  • concepts/message-structure.md
  • concepts/security.md
  • concepts/webhooks.md
  • examples/button-actions.md
  • examples/channel-management.md
  • examples/chatbot-setup.md
  • examples/database-integration.md
  • examples/dropdown-selects.md
  • examples/form-submissions.md
  • examples/llm-integration.md
  • examples/multi-step-workflows.md
  • examples/oauth-setup.md
  • examples/scheduled-alerts.md
  • examples/send-message.md
  • examples/slash-commands.md
  • examples/token-management.md
  • get-started.md
  • references/api-reference.md
  • references/environment-variables.md
  • references/error-codes.md
  • references/jid-formats.md
  • references/message-cards.md
  • references/rate-limits.md
  • references/sample-comparison.md
  • references/samples.md
  • references/scopes.md
  • references/webhook-events.md
  • troubleshooting/common-issues.md
  • troubleshooting/deployment-issues.md
  • troubleshooting/message-issues.md
  • troubleshooting/oauth-issues.md
  • troubleshooting/webhook-issues.md

What this skill tells the agent

/build-zoom-team-chat-app

Background reference for Zoom Team Chat integrations. Use this after the workflow is clear, especially when the Team Chat API versus Chatbot API distinction matters.

Read This First (Critical)

There are two different integration types and they are not interchangeable:

  1. Team Chat API (user type)
  • Sends messages as a real authenticated user
  • Uses User OAuth (authorization_code)
  • Endpoint family: /v2/chat/users/...
  1. Chatbot API (bot type)
  • Sends messages as your bot identity
  • Uses Client Credentials (client_credentials)
  • Endpoint family: /v2/im/chat/messages

If you choose the wrong type early, auth/scopes/endpoints all mismatch and implementation fails.

Official Documentation: https://developers.zoom.us/docs/team-chat/ Chatbot Documentation: https://developers.zoom.us/docs/team-chat/chatbot/extend/ API Reference: https://developers.zoom.us/docs/api/rest/reference/chatbot/

Quick Links

New to Team Chat? Follow this path:

  1. [Get Started](get-started.md) - End-to-end fast path (user type vs bot type)
  2. [Choose Your API](concepts/api-selection.md) - Team Chat API vs Chatbot API
  3. [Environment Setup](concepts/environment-setup.md) - Credentials, scopes, app configuration
  4. [OAuth Setup](examples/oauth-setup.md) - Complete authentication flow
  5. [Send First Message](examples/send-message.md) - Working code to send messages

Reference:

  • [Chatbot Message Cards](references/message-cards.md) - Complete card component reference
  • [Webhook Events](references/webhook-events.md) - All webhook event types
  • [API Reference](references/api-reference.md) - Endpoints, methods, parameters
  • [Sample Applications](references/samples.md) - 10+ official sample apps
  • Integrated Index - see the section below in this file

Having issues?

  • Authentication errors → OAuth Troubleshooting
  • Webhook not receiving events → Webhook Setup Guide
  • Messages not sending → Common Issues
  • Start with quick checks → 5-Minute Runbook

OAuth endpoint sanity check:

  • Authorize URL: https://zoom.us/oauth/authorize
  • Token URL: https://zoom.us/oauth/token
  • If /oauth/token returns 404/HTML, use https://zoom.us/oauth/token.

Building Interactive Bots?

  • Button Actions - Handle button clicks
  • Form Submissions - Process form data
  • Slash Commands - Create custom commands

Quick Decision: Which API?

Use CaseAPI to Use
Send notifications from scripts/CI/CDTeam Chat API
Automate messages as a userTeam Chat API
Build an interactive chatbotChatbot API
Respond to slash commandsChatbot API
Create messages with buttons/formsChatbot API
Handle user interactionsChatbot API

Team Chat API (User-Level)

  • Messages appear as sent by authenticated user
  • Requires User OAuth (authorization_code flow)
  • Endpoint: POST https://api.zoom.us/v2/chat/users/me/messages
  • Scopes: chat_message:write, chat_channel:read

Chatbot API (Bot-Level)

  • Messages appear as sent by your bot
  • Requires Client Credentials grant
  • Endpoint: POST https://api.zoom.us/v2/im/chat/messages
  • Scopes: imchat:bot (auto-added)
  • Rich cards: buttons, forms, dropdowns, images

Prerequisites

System Requirements

  • Zoom account
  • Account owner, admin, or Zoom for developers role enabled
  • To enable: User Management → Roles → Role Settings → Advanced features → Enable Zoom for developers

Create Zoom App

  1. Go to Zoom App Marketplace
  2. Click Develop → Build App
  3. Select General App (OAuth)
⚠️ Do NOT use Server-to-Server OAuth - S2S apps don't have the Chatbot/Team Chat feature. Only General App (OAuth) supports chatbots.

Required Credentials

From Zoom Marketplace → Your App:

CredentialLocationUsed By
Client IDApp Credentials → DevelopmentBoth APIs
Client SecretApp Credentials → DevelopmentBoth APIs
Account IDApp Credentials → DevelopmentChatbot API
Bot JIDFeatures → Chatbot → Bot CredentialsChatbot API
Secret TokenFeatures → Team Chat SubscriptionsChatbot API

See: Environment Setup Guide for complete configuration steps.

Quick Start: Team Chat API

Send a message as a user:

// 1. Get access token via OAuth
const accessToken = await getOAuthToken(); // See examples/oauth-setup.md

// 2. Send message to channel
const response = await fetch('https://api.zoom.us/v2/chat/users/me/messages', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    message: 'Hello from CI/CD pipeline!',
    to_channel: 'CHANNEL_ID'
  })
});

const data = await response.json();
// { "id": "msg_abc123", "date_time": "2024-01-15T10:30:00Z" }

Complete example: Send Message Guide

Quick Start: Chatbot API

Build an interactive chatbot:

// 1. Get chatbot token (client_credentials)
async function getChatbotToken() {
  const credentials = Buffer.from(
    `${CLIENT_ID}:${CLIENT_SECRET}`
  ).toString('base64');
  
  const response = await fetch('https://zoom.us/oauth/token', {
    method: 'POST',
    headers: {
      'Authorization': `Basic ${credentials}`,
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: 'grant_type=client_credentials'
  });
  
  return (await response.json()).access_token;
}

// 2. Send chatbot message with buttons
const response = await fetch('https://api.zoom.us/v2/im/chat/messages', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    robot_jid: process.env.ZOOM_BOT_JID,
    to_jid: payload.toJid,           // From webhook
    account_id: payload.accountId,   // From webhook
    content: {
      head: {
        text: 'Build Notification',
        sub_head: { text: 'CI/CD Pipeline' }
      },
      body: [
        { type: 'message', text: 'Deployment successful!' },
        {
          type: 'fields',
          items: [
            { key: 'Branch', value: 'main' },
            { key: 'Commit', value: 'abc123' }
          ]
        },
        {
          type: 'actions',
          items: [
            { text: 'View Logs', value: 'view_logs', style: 'Primary' },
            { text: 'Dismiss', value: 'dismiss', style: 'Default' }
          ]
        }
      ]
    }
  })
});

Complete example: Chatbot Setup Guide

Key Features

Team Chat API

FeatureDescription
Send MessagesPost messages to channels or direct messages
List ChannelsGet user's channels with metadata
Create ChannelsCreate public/private channels programmatically
Threaded RepliesReply to specific messages in threads
Edit/DeleteModify or remove messages

Chatbot API

FeatureDescription
Rich Message CardsHeaders, images, fields, buttons, forms
Slash CommandsCustom /commands trigger webhooks
Button ActionsInteractive buttons with webhook callbacks
Form SubmissionsCollect user input with forms
Dropdown SelectsChannel, member, date/time pickers
LLM IntegrationEasy integration with Claude, GPT, etc.

Webhook Events (Chatbot API)

EventTriggerUse Case

Use this skill in a project

Open any RiverX project, search the Skills panel for anthropics/knowledge-work-plugins/build-zoom-team-chat-app, and install it in one click.

Use this skill