What are Plugins?
Server Extensions
Add backend functionality with Go-based server plugins
UI Customization
Enhance the interface with React-based webapp components
Deep Integration
Access Mattermost APIs and data directly from within the platform
Marketplace Ready
Discover and install plugins from the Mattermost Marketplace
Plugin Capabilities
Plugins can extend Mattermost in ways that webhooks and integrations cannot:What Plugins Can Do
Server-Side:- Hook into message posting and editing lifecycle
- Create custom API endpoints
- Store data in plugin-specific databases
- Schedule background jobs and recurring tasks
- Intercept and modify messages before posting
- Add custom authentication methods
- Integrate with external services securely
- Add custom UI components and panels
- Modify the channel header and post dropdowns
- Create custom right-hand sidebar panels
- Add buttons to the channel interface
- Override existing UI behaviors
- Add custom routes and pages
- Style components with custom CSS
- Full access to Mattermost REST API
- Read and write posts, channels, users
- Manage team and channel memberships
- Access file storage
- Send WebSocket events to clients
- Create and manage bot accounts
Plugins have access to powerful APIs and hooks. Only install plugins from trusted sources.
Popular Plugins
Communication & Collaboration
Calls Plugin- Voice calls and screen sharing
- Video conferencing within channels
- Recording and transcription
- Call notifications and presence
- Export channel messages to various formats
- Compliance and archival
- Data portability
- Start Zoom meetings from Mattermost
- Meeting notifications in channels
- Calendar integration
Development & DevOps
GitHub Plugin- Repository subscriptions
- Pull request and issue notifications
- Code review workflows
- Slash commands for GitHub actions
- Two-way synchronization
- Merge request notifications
- Pipeline status updates
- Issue tracking
- Slash commands for GitLab
- Issue creation and updates
- JQL subscriptions
- Webhook notifications
- Transition issues from chat
- Build notifications
- Trigger builds from chat
- Build parameter input
- Test result summaries
Productivity
Todo Plugin- Task management within Mattermost
- Create todos from messages
- Daily reminders
- Team task visibility
- Meeting agenda management
- Action item tracking
- Meeting notes in channels
- Create polls in channels
- Real-time voting results
- Anonymous voting options
- Single and multiple choice
AI & Automation
AI Plugin- ChatGPT integration
- Thread summarization
- Message assistance and drafting
- Custom AI prompts
- Multiple LLM support
- Incident response workflows
- Runbook automation
- Task checklists and assignments
- Retrospectives and analytics
- Custom workflows for any process
- Visual workflow builder
- Automation triggers and actions
- Scheduled workflows
- External integrations
Installing Plugins
From the Marketplace
- Navigate to Product menu → Marketplace
- Browse available plugins
- Click Install on desired plugin
- Configure plugin settings
- Enable the plugin
Manual Installation
System Admins can manually upload plugins:- Download plugin
.tar.gzfile - Navigate to System Console → Plugins → Plugin Management
- Click Upload Plugin
- Select the downloaded file
- Configure and enable the plugin
Prepackaged Plugins
Some plugins come pre-installed with Mattermost:- Calls - Voice and video calling
- Playbooks - Workflow automation
- NPS - User satisfaction surveys
prepackaged_plugins directory and can be enabled without downloading.
Plugin Configuration
Plugin Settings
Each plugin has its own configuration page:- Navigate to System Console → Plugins
- Find the plugin in the installed list
- Click Settings
- Configure plugin-specific options:
- API credentials
- Webhook URLs
- Feature toggles
- Permission settings
- Bot account configuration
Plugin States
Plugins can be in different states:Plugin Permissions
Control what plugins can do:- System Console Access: Which plugins can modify settings
- User Permissions: Who can interact with plugin features
- Channel Restrictions: Limit plugin functionality to specific channels
- API Access: Scope of API operations allowed
Plugin Architecture
Plugin Structure
A typical plugin contains:Plugin Manifest
plugin.json defines plugin metadata:
Plugin Hooks
Plugins can hook into Mattermost events: Message Hooks:MessageWillBePosted- Intercept before postingMessageWillBeUpdated- Intercept before editingMessageHasBeenPosted- React after postingMessageHasBeenUpdated- React after editing
UserHasBeenCreated- New user createdUserHasLoggedIn- User logged inUserWillLogIn- Before login completes
ChannelHasBeenCreated- New channel createdUserHasJoinedChannel- User joined channelUserHasLeftChannel- User left channel
Plugin Management
Enabling/Disabling Plugins
Via System Console:- Navigate to System Console → Plugins → Plugin Management
- Find plugin in list
- Toggle Enable Plugin switch
- Plugin activates immediately (no restart required)
Updating Plugins
Marketplace Updates:- Marketplace shows update notifications
- Click Update next to plugin
- Plugin updates automatically
- Restart if required (rare)
- Download new version
- Upload via Plugin Management
- Old version is replaced
- Configuration preserved
Uninstalling Plugins
- Disable the plugin first
- Click Remove in Plugin Management
- Confirm deletion
- Plugin files deleted
- Configuration data can be preserved or deleted
Plugin Health and Monitoring
Plugin Status
Monitor plugin health:- ✅ Active: Running normally
- ⚠️ Error: Failed to start (check logs)
- ⏸️ Disabled: Intentionally turned off
- 🔄 Updating: Update in progress
Plugin Logs
View plugin-specific logs:Health Checks
Plugins can implement health checks:Plugin Performance
Resource Usage
Plugins consume server resources:- CPU: Processing hooks and background jobs
- Memory: Storing state and caching data
- Network: External API calls
- Database: Plugin-specific data storage
Performance Best Practices
- Async Processing: Don’t block message posting
- Caching: Cache external API responses
- Rate Limiting: Respect external API limits
- Batch Operations: Combine multiple operations
- Cleanup: Remove old data regularly
Plugin Sandboxing
Plugins run in isolated processes:- Separate from main server process
- Crashes don’t affect Mattermost
- Configurable memory and CPU limits
- Automatic restart on failure
Developing Plugins
Plugin SDK
Mattermost provides SDKs for plugin development: Server SDK (Go):Plugin Template
Start developing with the official template:Plugin API
Access Mattermost functionality:Plugin Security
Security Considerations
- Code Review: Review plugin code before installation
- Trusted Sources: Only install from Marketplace or trusted developers
- Permissions: Limit plugin access to necessary APIs
- Updates: Keep plugins updated for security fixes
- Monitoring: Watch for unusual plugin behavior
Plugin Signatures
Verify plugin authenticity:- Marketplace plugins are signed by Mattermost
- Signature verification prevents tampering
- Can require signed plugins via configuration
Plugin Isolation
Plugins are isolated for security:- Run in separate processes
- Limited file system access
- API permissions enforced
- Network access controllable
Plugin Ecosystem
Marketplace
Browse 100+ plugins in the Mattermost Marketplace:- Categories: DevOps, Productivity, AI, Communication
- Filters: Free/Paid, Cloud/Self-hosted compatible
- Ratings: Community reviews and ratings
- Support: Official and community support
Community Plugins
Find community-developed plugins:- GitHub: github.com/mattermost-community
- Forum: forum.mattermost.com
- Integrations directory: integrations.mattermost.com
Custom Development
Build plugins for your organization:- Identify need: Feature or integration required
- Design: Plan UI and functionality
- Develop: Use plugin SDK and template
- Test: Validate on test instance
- Deploy: Install on production
- Maintain: Update and monitor
Related Features
- Integrations - Webhooks and slash commands
- Workflows - Automation with Playbooks
- Calls - Voice and video powered by plugin
- Messaging - Core messaging features