
Build Zoom Team Chat App
Choose between Zoom Team Chat API and Chatbot API, then implement the correct OAuth flow and endpoints so messages and bots behave as intended.
Install
npx skills add https://github.com/anthropics/knowledge-work-plugins --skill build-zoom-team-chat-appWhat is this skill?
- Critical fork: User type (Team Chat API + User OAuth + `/v2/chat/users/...`) vs Bot type (Chatbot API + Client Credentia
- Quick decision matrix covers CI/CD notifications, user automation, slash commands, buttons/forms, and interactive handle
- Explains that most failures come from mixing user auth with bot endpoints or the reverse
- Team Chat API sends messages as the authenticated human user; Chatbot API surfaces as your bot with interactive componen
Adoption & trust: 832 installs on skills.sh; 19.6k GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Entra App Registrationmicrosoft/azure-skills
Azure Aigatewaymicrosoft/azure-skills
Lark Openapi Explorerlarksuite/cli
Supabasesupabase/agent-skills
Firebase Auth Basicsfirebase/agent-skills
Firebase Data Connectfirebase/agent-skills
Journey fit
Primary fit
Zoom chat integration is core product wiring during build—wrong API/auth pairing blocks a shippable notification or bot feature. Third-party Zoom messaging APIs, OAuth models, and endpoint paths belong in build → integrations.
Common Questions / FAQ
Is Build Zoom Team Chat App safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Build Zoom Team Chat App
# API Selection Guide Zoom Team Chat offers **two distinct APIs** for different use cases. Choose the right one before you start building. ## Critical First Decision Pick one of these integration types before writing code: - **User type** -> Team Chat API -> User OAuth -> `/v2/chat/users/...` - **Bot type** -> Chatbot API -> Client Credentials -> `/v2/im/chat/messages` Most implementation issues come from mixing user-type auth with bot-type endpoints (or the opposite). ## Quick Decision Matrix | Use Case | API to Use | Messages Appear As | |----------|------------|-------------------| | Send notifications from scripts/CI/CD | **Team Chat API** | Authenticated user | | Automate messages as a user | **Team Chat API** | Authenticated user | | Build an interactive chatbot | **Chatbot API** | Your bot | | Respond to slash commands | **Chatbot API** | Your bot | | Create messages with buttons/forms | **Chatbot API** | Your bot | | Handle user interactions | **Chatbot API** | Your bot | ## Team Chat API (User-Level Messaging) ### What It Is The Team Chat API allows your application to send messages **as an authenticated user**. Messages appear in Team Chat as if the user sent them manually. ### When to Use ✅ **Use Team Chat API when:** - You want to send simple text messages programmatically - Messages should appear as sent by a specific user - You're building CI/CD notifications - You're automating user-level messaging - You don't need interactive components (buttons, forms) ### Key Characteristics | Aspect | Details | |--------|---------| | **Authentication** | User OAuth (authorization_code flow) | | **Endpoint** | `POST https://api.zoom.us/v2/chat/users/me/messages` | | **Message Format** | Plain text or markdown | | **Scopes** | `chat_message:write`, `chat_channel:read` | | **User Experience** | Messages appear from the authenticated user | ### Example Use Cases 1. **CI/CD Notifications** ``` User: "Build #123 completed successfully" ``` 2. **Automated Reporting** ``` User: "Daily sales report: $10,000" ``` 3. **Task Reminders** ``` User: "Reminder: Team meeting in 15 minutes" ``` ## Chatbot API (Bot-Level Interactions) ### What It Is The Chatbot API allows your application to send messages **as a bot**. Bots can send rich, interactive messages with buttons, forms, images, and handle user interactions via webhooks. ### When to Use ✅ **Use Chatbot API when:** - You want to build an interactive chatbot - You need rich message formatting (cards, buttons, forms) - You want to handle slash commands (e.g., `/weather`) - You need to respond to button clicks or form submissions - You're integrating LLMs (Claude, GPT, etc.) - You want scheduled notifications ### Key Characteristics | Aspect | Details | |--------|---------| | **Authentication** | Client Credentials grant | | **Endpoint** | `POST https://api.zoom.us/v2/im/chat/messages` | | **Message Format** | Rich cards with components | | **Scopes** | `imchat:bot` (auto-added) | | **User Experience** | Messages appear from your bot | | **Interactivity** | Buttons, forms, dropdowns, webhooks | ### Example Use Cases 1. **Support Bot** ``` Bot: "How can I help you?" [Help Center] [Contact Support] [Report Bug] ``` 2. **Approval Workflow** ``` Bot: "Expense Report: $500" Branch: main Requester: John [Approve] [Reject] ``` 3. **AI Assistant** ``` User: "/ask What's the weather?" Bot: "The weather in San Francisco is 72°F and sunny." ``` ## Feature Comparison | Feature | Team Chat API | Chatbot API | |---------|---------------|-------------| | **Plain Text Messages** | ✅ | ✅ | | **Markdown** | ✅ | ✅ | | **Rich Cards** | ❌ | ✅ | | **Buttons** | ❌ | ✅ | | **Forms** | ❌ | ✅ | | **Dropdowns** | ❌ | ✅ | | **Images** | ✅ (basic) | ✅ (rich) | | **Slash Commands** | ❌ | ✅ | | **Webhooks** | ❌ | ✅ | | **Button Click Handling** | ❌ | ✅ | | **Form Submissions** | ❌ | ✅ | ## Authentication Comparison ###