An automated migration tool for converting Slack applications to Zoom Team Chat with intelligent API mapping and code generation.
This skill provides comprehensive migration capabilities for transforming Slack applications into Zoom Team Chat applications:
- Automated Analysis: Examines Slack application structure and API usage patterns
- Comprehensive API Mapping: Converts 110+ Slack API calls to Zoom equivalents
- Code Generation: Produces production-ready TypeScript/Node.js code with implemented handlers
- Error Recovery: Includes automatic validation and error correction mechanisms
- Feature Parity Analysis: Calculates migration completeness (typically 80-95%)
- Complete Documentation: Generates setup guides, migration reports, and API documentation
The following tools and accounts are required:
- Claude Code CLI - Install from Anthropic
- Git - Version control system for repository management
- Node.js v16+ - Runtime environment for generated Zoom applications
- Zoom Developer Account - Register at marketplace.zoom.us
This method allows usage without permanent installation by specifying the plugin directory path at runtime.
Step 1: Clone the repository
# Option A: SSH (if you have SSH key configured)
git clone git@github.com:zoom/app-migration-skill.git
# Option B: HTTPS
git clone https://github.com/zoom/app-migration-skill.git
cd app-migration-skillStep 2: Record the installation path
pwd
# Example output: /Users/yourname/projects/app-migration-skillStep 3: Launch with plugin directory flag
cd your-project
# Replace with your actual path from Step 2
claude --plugin-dir /Users/yourname/projects/app-migration-skill/skills/slack-to-zoom-migrateRecommended for: Initial evaluation, temporary usage, testing environments, or multi-system deployments.
Permanent installation via symbolic link for streamlined access:
Step 1: Clone the repository
# Option A: SSH (if you have SSH key configured)
git clone git@github.com:zoom/app-migration-skill.git
# Option B: HTTPS
git clone https://github.com/zoom/app-migration-skill.git
cd app-migration-skillStep 2: Create symbolic link
# Initialize skills directory
mkdir -p ~/.claude/skills
# Create symbolic link to skill
ln -s "$(pwd)/skills/slack-to-zoom-migrate" ~/.claude/skills/slack-to-zoom-migrateStep 3: Verify installation
ls -la ~/.claude/skills/slack-to-zoom-migrate
# Output should display symlink reference to installation directoryStep 4: Launch Claude Code
The skill is now available in all Claude Code sessions:
cd any-project
claudeRecommended for: Production environments, frequent usage, and automatic update propagation.
For Option 1 installations:
cd your-project
claude --plugin-dir ~/projects/app-migration-skill/skills/slack-to-zoom-migrateFor Option 2 installations:
cd your-project
claudeInvoke the skill with the following command syntax:
# Migrate from GitHub repository
/slack-to-zoom-migrate https://github.com/company/slack-voting-bot
# Migrate from local filesystem
/slack-to-zoom-migrate ./my-slack-appThe skill performs the following operations:
- Analysis: Examines Slack application structure and feature implementation
- Code Generation: Produces Zoom Team Chat application with functional implementations
- Validation: Verifies generated code integrity and applies automated corrections
- Output Creation: Generates project directory:
zoom-[app-name]/
Generated project structure:
zoom-voting-bot/
├── src/ # TypeScript source code
├── package.json # Dependencies and scripts
├── .env.example # Environment configuration template
├── README.md # Setup and deployment instructions
└── MIGRATION_GUIDE.md # Feature parity analysis report
Processing time: Varies based on application complexity (typically 2-10 minutes)
After migration completion, configure and deploy the generated Zoom application:
Step 1: Install project dependencies
cd zoom-voting-bot/ # Navigate to generated project directory
npm installStep 2: Configure Zoom application credentials
- Create a Team Chat application at Zoom Marketplace
- Obtain application credentials from the App Credentials page
- Configure environment variables:
cp .env.example .env
# Configure the following credentials in .env:
# - ZOOM_CLIENT_ID
# - ZOOM_CLIENT_SECRET
# - ZOOM_BOT_JIDStep 3: Configure webhook endpoint (required for local development)
Zoom Team Chat requires a publicly accessible HTTPS endpoint for webhook delivery. Local development requires a tunneling service to expose port 3000.
Option A: ngrok
Establishes secure tunneling to localhost:
# Install ngrok via Homebrew
brew install ngrok
# Or download from https://ngrok.com/download
# Initialize tunnel
ngrok http 3000Output displays forwarding URL:
Forwarding https://abc123.ngrok.io -> http://localhost:3000
Note the HTTPS URL for webhook configuration.
Option B: frp (Fast Reverse Proxy)
Alternative tunneling solution for self-hosted proxy servers:
# Install frp client
brew install frp
# Or download from https://github.com/fatedier/frp/releases
# Configure frpc.ini:
[common]
server_addr = your-frp-server.com
server_port = 7000
[zoom-bot]
type = http
local_port = 3000
custom_domains = your-subdomain.your-domain.com
# Initialize client
frpc -c frpc.iniPublic URL format: https://your-subdomain.your-domain.com
Configure Zoom application endpoints:
- Navigate to Zoom Marketplace → Your App → Features
- Configure Bot Endpoint URL:
https://your-url/webhooks/zoom - Set
.envvariable ZOOM_REDIRECT_URI:https://your-url/api/zoomapp/auth
Step 4: Launch development server
npm run devThe application is now configured to receive Zoom webhook events.
Step 5: Review documentation and deploy
Consult the generated documentation for complete deployment guidance:
README.md- Feature implementation details and deployment proceduresMIGRATION_GUIDE.md- Feature parity analysis, Marketplace configuration, and known limitations
Confirm successful skill installation:
Step 1: Launch Claude Code
claude
# Option 1 users: include --plugin-dir flagStep 2: Query available skills
Execute the help command:
/help
Step 3: Verify skill registration
Expected output:
Available skills:
- slack-to-zoom-migrate: Migrate Slack apps to Zoom Team Chat...
Presence of this entry confirms successful installation.
Maintain current version by synchronizing with the repository:
For all users:
cd app-migration-skill
git pull origin mainInstallation-specific behavior:
- Option 1: Updated version applies on next
--plugin-dirinvocation - Option 2: Symbolic link automatically references updated version
Onboarding documentation for team members:
Slack-to-Zoom Migration Skill
Quick Start Guide:
# 1. Clone repository git clone git@github.com:zoom/app-migration-skill.git # Alternative: git clone https://github.com/zoom/app-migration-skill.git cd app-migration-skill pwd # Record this path # 2. Launch Claude Code with skill cd your-project claude --plugin-dir /YOUR/RECORDED/PATH/skills/slack-to-zoom-migrate # 3. Execute migration /slack-to-zoom-migrate https://github.com/yourorg/your-slack-appFor permanent installation: Refer to Option 2: Global Installation
Option 1 diagnosis:
Verify directory path accuracy:
# Confirm path matches pwd output from installation
ls ~/projects/app-migration-skill/skills/slack-to-zoom-migrate
# Expected contents: skill.json, SKILL.md, executor.mdIf files are not present, re-execute pwd in the installation directory to obtain the correct path.
Option 2 diagnosis:
Verify symbolic link integrity:
ls -la ~/.claude/skills/slack-to-zoom-migrate
# Expected output: symbolic link indicator (->)If missing or invalid, recreate the symbolic link:
# Navigate to installation directory
cd ~/projects/app-migration-skill # Adjust path as needed
# Initialize skills directory
mkdir -p ~/.claude/skills
# Create symbolic link
ln -s "$(pwd)/skills/slack-to-zoom-migrate" ~/.claude/skills/slack-to-zoom-migrateCorrect file permissions:
chmod -R 755 ~/projects/app-migration-skill/skills/slack-to-zoom-migrateVerify CLI installation:
claude --versionIf command not found, install from claude.ai/download.
For persistent issues:
-
Query Claude Code directly (if accessible):
Check if the slack-to-zoom-migrate skill is properly set up -
Submit issue report at GitHub Issues
app-migration-skill/
├── README.md # Project documentation
└── skills/
└── slack-to-zoom-migrate/ # Primary skill implementation
├── skill.json # Skill metadata and configuration
├── SKILL.md # Skill implementation instructions
├── executor.md # Execution workflow documentation
├── docs/ # API reference documentation
│ ├── API_MAPPING_REFERENCE.md # 110+ API mappings
│ ├── ZOOM_DOCS_DIRECTORY.md # Zoom API documentation
│ ├── SLACK_DOCS_DIRECTORY.md # Slack API documentation
│ └── code-examples/ # Implementation examples
└── templates/
└── general/ # Code generation templates
Contributions are welcomed through the standard fork and pull request workflow:
- Fork the repository
- Create a feature branch:
git checkout -b feature/feature-name - Implement changes in
skills/slack-to-zoom-migrate/ - Validate with multiple Slack application migrations
- Commit changes:
git commit -m 'Add feature description' - Push to branch:
git push origin feature/feature-name - Submit pull request
Note: Option 2 installations automatically reflect updates via symbolic link on git pull.
Internal Documentation:
- Skill Overview - Quick reference guide
- API Mapping Reference - 50+ API mappings
- Zoom API Directory - 40+ documentation links
- Slack API Directory - 70+ documentation links
- Code Examples - 8 implementation examples
External Resources:
Licensed under the MIT License. See LICENSE file for complete terms.
Copyright (c) 2026 Zoom Video Communications, Inc.
Last Updated: 2026-03-03