Skip to content

zoom/app-migration-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Slack-to-Zoom Migration Skill

An automated migration tool for converting Slack applications to Zoom Team Chat with intelligent API mapping and code generation.

Overview

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

Prerequisites

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

Installation

Option 1: Direct Usage via Plugin Directory

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-skill

Step 2: Record the installation path

pwd
# Example output: /Users/yourname/projects/app-migration-skill

Step 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-migrate

Recommended for: Initial evaluation, temporary usage, testing environments, or multi-system deployments.

Option 2: Global Installation (Recommended)

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-skill

Step 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-migrate

Step 3: Verify installation

ls -la ~/.claude/skills/slack-to-zoom-migrate
# Output should display symlink reference to installation directory

Step 4: Launch Claude Code

The skill is now available in all Claude Code sessions:

cd any-project
claude

Recommended for: Production environments, frequent usage, and automatic update propagation.

Usage

Launching Claude Code

For Option 1 installations:

cd your-project
claude --plugin-dir ~/projects/app-migration-skill/skills/slack-to-zoom-migrate

For Option 2 installations:

cd your-project
claude

Executing Migration

Invoke 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-app

Migration Process

The skill performs the following operations:

  1. Analysis: Examines Slack application structure and feature implementation
  2. Code Generation: Produces Zoom Team Chat application with functional implementations
  3. Validation: Verifies generated code integrity and applies automated corrections
  4. 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)

Post-Migration Configuration

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 install

Step 2: Configure Zoom application credentials

  1. Create a Team Chat application at Zoom Marketplace
  2. Obtain application credentials from the App Credentials page
  3. Configure environment variables:
cp .env.example .env
# Configure the following credentials in .env:
# - ZOOM_CLIENT_ID
# - ZOOM_CLIENT_SECRET
# - ZOOM_BOT_JID

Step 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 3000

Output 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.ini

Public URL format: https://your-subdomain.your-domain.com

Configure Zoom application endpoints:

  1. Navigate to Zoom Marketplace → Your App → Features
  2. Configure Bot Endpoint URL: https://your-url/webhooks/zoom
  3. Set .env variable ZOOM_REDIRECT_URI: https://your-url/api/zoomapp/auth

Step 4: Launch development server

npm run dev

The 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 procedures
  • MIGRATION_GUIDE.md - Feature parity analysis, Marketplace configuration, and known limitations

Installation Verification

Confirm successful skill installation:

Step 1: Launch Claude Code

claude
# Option 1 users: include --plugin-dir flag

Step 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.

Updates

Maintain current version by synchronizing with the repository:

For all users:

cd app-migration-skill
git pull origin main

Installation-specific behavior:

  • Option 1: Updated version applies on next --plugin-dir invocation
  • Option 2: Symbolic link automatically references updated version

Team Distribution

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-app

For permanent installation: Refer to Option 2: Global Installation

Troubleshooting

Skill Not Detected

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.md

If 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-migrate

Permission Issues

Correct file permissions:

chmod -R 755 ~/projects/app-migration-skill/skills/slack-to-zoom-migrate

Claude Code Launch Failure

Verify CLI installation:

claude --version

If command not found, install from claude.ai/download.

Additional Support

For persistent issues:

  1. Query Claude Code directly (if accessible):

    Check if the slack-to-zoom-migrate skill is properly set up
    
  2. Submit issue report at GitHub Issues

Repository Structure

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

Contributing

Contributions are welcomed through the standard fork and pull request workflow:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/feature-name
  3. Implement changes in skills/slack-to-zoom-migrate/
  4. Validate with multiple Slack application migrations
  5. Commit changes: git commit -m 'Add feature description'
  6. Push to branch: git push origin feature/feature-name
  7. Submit pull request

Note: Option 2 installations automatically reflect updates via symbolic link on git pull.

Documentation

Internal Documentation:

External Resources:

License

Licensed under the MIT License. See LICENSE file for complete terms.

Copyright (c) 2026 Zoom Video Communications, Inc.


Last Updated: 2026-03-03

About

A Claude skill to Migrate Slack Apps to Zoom Team Chat Apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages