×
Hacktoberfest is here! Contribute, collaborate & earn rewards.
  • Platform

    Platform

    • Overview
    • Channels
    • Playbooks
    • Integrations
    • Mobile
    • Security
    • Trust Center

    Interoperability

    • MS Teams
    • Atlassian
    • GitLab

    Flexible Deployment

    • On-Premise
    • Cloud
  • Solutions

    Use Cases

    • Purpose-Built Collaboration Hub
    • Self-Sovereign Collaboration
    • Mission-Critical ChatOps
    • Real-Time DevSecOps Collaboration
    • Integrated Security Operations
    • Out-of-Band Incident Response

    Industries

    • Critical Infrastructure
    • Defense
    • Technology
    • Global Public Sector
    • Financial Services
    • Energy and Utilities
    • Manufacturing
  • Customers

    Customers

    • USAF
    • Fujitsu
    • RTE
    • CERN
    • NRI
    • Pramacom
    • Crossover Health
    • Netfoundry
    See more customer stories »
  • Pricing
  • Partners

    Partners

    • Become a Partner
    • Partner Program
    • Deal Registration
  • Resources

    Resources

    • Resource Library
    • Blog
    • Demos
    • Events

    Documentation

    • Academy
    • Channels Guide
    • Playbooks Guide
    • Admin
    • Docs
    • API Reference
    • Release Notes

    Community

    • Join Community
    • Contribute
    • Deploy
    • Integrate
    • Download
  • Login

    Login

    • My Workspace
    • Admin Portal
    • Apps
    • Support
  • Contact Sales
Contents Menu Expand Light mode Dark mode Auto light/dark mode
Mattermost documentation
Mattermost documentation
  • Mattermost Overview
    • Editions and Offerings
    • Subscription Overview
      • Self-Hosted
      • Cloud
        • Cloud Dedicated
        • Cloud Shared
        • Cloud VPC Private Connectivity
      • Non-Profit
    • Certifications and Compliance Overview
    • Accessibility Compliance Policy
    • Releases and Life Cycle
      • Release Policy
      • Server
        • Server Releases
        • v10 Changelog
        • v9 Changelog
        • Unsupported Legacy Releases
        • Version Archive
      • Desktop
        • Desktop Releases
        • Desktop App Changelog
      • Mobile
        • Mobile Releases
        • Mobile Apps Changelog
      • Removed and Deprecated Features
    • Frequently Asked Questions
      • General
      • Community
      • Notifications
      • Video, Audio, and Screen Sharing
      • Enterprise
      • License
      • Mattermost Source Available License
      • Integrations
      • Use Cases
      • Product
      • High Trust
      • Design Decisions
      • Business
      • Illicit Use
  • Use Case Guide
    • Maximize Your Microsoft Investments
    • On-Premises Skype for Business Replacement
    • Secure Command and Control
    • DevSecOps Collaboration
    • Incident Response Collaboration
    • Out-of-Band Collaboration
  • Deployment Guide
    • Quick Start Evaluation
    • Application Architecture
    • Server Deployment
      • Preparations
        • Review software and hardware requirements
        • Set up an NGINX proxy
        • Configure Mattermost Calls
        • Set up TLS
        • Use an image proxy
      • Deploy with Kubernetes
      • Deploy with Linux
      • Deploy with Containers
      • Deploy in Air-Gapped Environments
      • Reference Architecture
      • Scale for Enterprise
        • Backing storage benchmarks
        • Elasticsearch
        • High availability
        • Redis
        • Scale up to 200 users
        • Scale up to 2000 users
        • Scale up to 15000 users
        • Scale up to 30000 users
        • Scale up to 50000 users
        • Scale up to 80000 users
        • Scale up to 90000 users
        • Scale up to 100000 users
        • Scale up to 200000 users
    • Desktop App Deployment
      • Install desktop app on Linux
      • Distribute a custom desktop app
      • Silent Windows desktop distribution
      • Desktop MSI installer and group policy guide
      • Desktop App custom dictionaries
      • Desktop managed resources
    • Mobile App Deployment
      • Deploy using an EMM provider
      • Distribute a custom mobile app
      • Host your own push proxy service
      • Mobile VPN options
      • Mobile security features
      • Secure file storage
      • Mobile apps FAQ
    • Deployment Troubleshooting
      • General deployment troubleshooting
      • Docker deployment troubleshooting
      • Desktop app troubleshooting
      • Mobile app troubleshooting
      • PostgreSQL installation troubleshooting
      • MySQL installation troubleshooting
  • Administration Guide
    • Self-hosted billing
    • Cloud workspace management
      • Workspace migration
      • Cloud data residency
      • Cloud IP Filtering
      • Cloud Bring Your Own Key (BYOK)
    • Server maintenance
      • Install a license key
      • Generate a support packet
      • Backup and disaster recovery
      • Upgrade Mattermost server
        • Important upgrade notes
        • Prepare to upgrade Mattermost
        • Communicate scheduled maintenance best practices
        • Upgrade Mattermost Server
        • Enterprise install and upgrade
        • Administrator onboarding tasks
        • Enterprise roll-out-checklist
        • Welcome email to end users
        • Downgrade Mattermost Server
        • Open source components
      • Secure Mattermost
        • Encryption options
        • Transport encryption
        • Multi-factor authentication
        • Delegated granular administration
        • Custom terms of service
        • User and group provisioning via AD/LDAP
        • SAML-based SSO
          • Okta SAML Configuration
          • Generate self-signed certificates
          • OneLogin SAML Configuration
          • Microsoft ADFS SAML Configuration for Windows Server 2012
          • Microsoft ADFS SAML Configuration for Windows Server 2016
          • Keycloak SAML Configuration
        • SAML SSO techical documentation
        • Certificate-based authentication
      • Mattermost error codes
      • Logging
      • mmctl
      • CLI
      • Feature labels
    • Server configuration
      • Store configuration in your database
      • Server configuration options
        • Self-hosted workspace edition and license settings
        • Cloud workspace subscription, billing, and account settings
        • Reporting configuration settings
        • User management configuration settings
        • Environment configuration settings
        • Site configuration settings
        • Authentication configuration settings
        • Plugins configuration settings
        • Integrations configuration settings
        • Compliance configuration settings
        • Experimental configuration settings
        • Deprecated configuration settings
        • Bleve search
      • Enable Copilot
      • Environment variables
      • Customize the server
        • Customize Mattermost
        • Custom branding tools
        • Code signing custom builds
      • SMTP email setup
      • Email templates
      • Chinese, Japanese, and Korean search
      • SSL client certificate setup
      • Connected workspaces
      • Telemetry
    • User provisioning
      • Corporate directory integrations
      • Provisioning workflows
      • AD/LDAP setup
      • AD/LDAP manage team or private channel membership
      • GitLab SSO
      • OpenID Connect SSO
      • Google SSO
      • Entra ID SSO
      • Convert OAuth 2.0 providers to OpenID
    • User management
      • Permissions
      • Manage team and channel configuration
      • Advanced permissions infrastructure
      • Guest accounts
    • Monitoring and performance
      • Optimize your Mattermost workspace
      • Collect performance metrics
      • Deploy Prometheus and Grafana for performance monitoring
      • Performance monitoring metrics
      • Push notification health targets
      • Performance alerting guide
      • Ensuring releases perform at scale
      • Manage user surveys
      • User satisfaction surveys
      • Notify admin
      • System-wide notifications
      • Statistics
      • In-product notices
      • Health checks
      • Health check probes
      • Product limits
    • Compliance
      • Compliance export
      • Compliance monitoring
      • Electronic discovery
      • Data retention
      • Export channel data
      • Legal Hold
      • JSON audit log schema
    • Migration
      • Migrate from MySQL to PostgreSQL
        • Automate PostgreSQL migration
        • Manually migrate to PostgreSQL
      • Server migration guide
      • Migrate from Slack
      • Bulk export tool
      • Bulk loading tool
      • Migration announcement email template
  • Security Guide
    • Zero Trust with Mattermost
    • Mobile Security
  • End User Guide
    • Connect and collaborate
      • Access your Mattermost workspace
        • Install the desktop app
        • Install the iOS mobile app
        • Install the Android mobile app
        • Log out of Mattermost
      • Organize using teams
        • Team settings
        • Team keyboard shortcuts
      • Organize using custom user groups
      • Invite people
      • Learn about Mattermost roles
      • Collaborate with audio and video
      • Collaborate within channels
        • Channel types
        • Channel naming conventions
        • Communicate a channel's focus and scope
        • Create channels
        • Rename channels
        • Convert public channels to private channels
        • Convert group messages to private channels
        • Join and leave channels
        • Make calls in Mattermost
        • Manage channel members
        • Browse channels
        • Navigate between channels
        • Mark channels as favorites
        • Manage channel bookmarks
        • Mark channels as unread
        • Archive and unarchive channels
      • Communicate with messages and threads
        • Send messages
        • Reply to messages
        • React with emojis and GIFs
        • Organize conversations
        • Mark messages as unread
        • Forward messages
        • Share links to channels and messages
        • Save and pin messages
        • Set message reminders
        • Search for messages
        • Schedule messages
        • Format messages
        • Set message priority
        • Mention people
        • Share files in messages
      • Collaborate within Microsoft Teams
      • Chat with Copilot
        • Copilot Context Management
      • Keyboard shortcuts
        • Keyboard accessibility
        • Run slash commands
        • Built-in-slash-commands
      • Extend Mattermost with integrations
    • Build repeatable processes
      • Learn about collaborative playbooks
      • Work with collaborative playbooks
      • Work with runs
      • Work with tasks
      • Work with notifications and updates
      • Work with metrics and goals
      • Share and collaborate
      • Interact with collaborative playbooks
    • Customize your preferences
      • Manage your notifications
        • Troubleshoot notifications
        • Manage your web notifications
        • Manage your desktop notifications
        • Manage your mobile notifications
        • Manage your thread reply notifications
        • Manage your @mention & keyword notifications
        • Manage your channel-specific notifications
      • Customize your Mattermost theme
      • Customize your channel sidebar
      • Manage your profile
      • Manage your security preferences
      • Set your status & availability
      • Manage your display options
      • Manage your sidebar options
      • Manage advanced options
      • Manage your plugin preferences
      • Customize your desktop app experience
      • Connect to multiple workspaces
  • Integrations Guide
    • Pre-built integrations
      • GitHub
      • GitLab
      • Jira
      • ServiceNow
      • Zoom
    • Microsoft integrations
      • Mattermost for M365, Teams, and Outlook
      • Playbooks in Microsoft Teams
      • Microsoft Calendar Sync
      • Microsoft Teams Sync
      • Join Microsoft Teams Meetings
  • Training and Support
    • Join our community
    • Community for Mattermost
    • Contribute to this documentation
Back to top
Edit this page

Legal Hold#

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

A Legal Hold, also known as a litigation hold, is a process that an organization uses to preserve all forms of relevant information when litigation is reasonably anticipated. It’s a requirement established by the Federal Rules of Civil Procedure (FRCP) in the United States and similar laws in other jurisdictions.

Primary use cases include:

  1. Litigation: In anticipation or in the event of a lawsuit, organizations need to preserve all relevant documents and electronic data to ensure they can adequately defend their position. A failure to do so could result in court penalties.

  2. Regulatory investigation: If an organization is being investigated by a regulatory body, it may be required to preserve and produce certain documents or data.

  3. Audits: During an audit, whether internal or external, an organization might need to put a hold on certain data that is relevant to the audit.

  4. Records management: In some cases, organizations might use a Legal Hold to temporarily suspend the deletion of data that would otherwise be purged as part of its records management policy.

Mattermost is used as a secure collaboration hub by technical and operational teams, with critical documents and data shared on a daily basis. Thus, Legal Hold is a key requirement for Enterprises and public sector organizations who have deployed Mattermost for their teams, to meet compliance & auditory requirements while minimizing risk.

Mattermost Legal Hold can be combined with eDiscovery integration and data retention policies to customize the data retained and deleted to comply with compliance requirements.

Legal Hold demo (Sneak Peek)#

Check out this YouTube sneak peek demo to learn about Mattermost’s Legal Hold workflow.

Below are step-by-step instructions on how to carry out a Legal Hold for Mattermost using the Mattermost Legal Hold plugin.

How to carry out a Legal Hold#

Step 1: Upgrade to Mattermost Enterprise#

Legal Hold is available in Mattermost Enterprise. Learn more about the Enterprise plan & request a quote online at https://mattermost.com/pricing/

Step 2: Establish a Legal Hold policy#

Establish a policy for when to implement a Legal Hold. This should be developed in consultation with your legal counsel and should include procedures for identifying relevant users (those who have potentially relevant information).

Establishing a Legal Hold policy first enables you to configure the Mattermost system correctly to meet your compliance & auditory requirements, minimizing associated risk.

Step 3: Set up the Mattermost Legal Hold plugin#

Install the plugin#

  1. Log in to your Mattermost workspace as a system administrator.

  2. Download the latest version of the plugin binary release, compatible with Mattermost v8.0.1 and later. If you are using an earlier version of Mattermost, follow our documentation to upgrade to Mattermost v8.0.1 or later.

  3. Go to System Console > Plugins > Plugin Management > Upload Plugin, and upload the plugin binary you downloaded in the previous step.

  4. In the Installed Plugins section, scroll to Legal Hold Plugin, and select Enable.

Configure the plugin#

When the Legal Hold integration is enabled, you can configure when it runs using the format HH:MM ±HHMM and +0000 for UTC.

You can configure a custom Amazon S3 bucket for Legal Holds by specifying Amazon S3 configuration settings. If no S3 configuration is specified, the Mattermost server file store used. Learn more about file storage configuration options in our product documentation.

(Optional) Configure a data retention policy#

You can optionally configure a data retention policy to control how long data and file attachments are retained in the Mattermost database.

Step 4: Create a Legal Hold#

In Mattermost, create a Legal Hold by completing the following steps:

  1. Go to System Console > Plugins > Legal Hold Plugin, and select Create new.

  2. Enter a name for the Legal Hold.

  3. Specify the user names or user groups of users you want to place on Legal Hold.

  4. (Optional) Public channels are excluded by default. You can choose to include public channels that the specified users or user groups are members of, if preferred; however, doing so will significantly increase the amount of data held based on the number public channels available.

  5. Specify the number of days that users are placed in Legal Hold with a start date. An end date is optional.

  6. Select Create Legal Hold. Downloadable data won’t be available until the next scheduled job runs.

Manage Legal Holds#

While a Legal Hold is in place, you can edit details of the Legal Hold, access the Legal Hold Secret, as well as download a copy of the preserved data to your local machine.

An example of the Legal Hold management interface available to Mattermost system admins.
Edit a Legal Hold#

Select the Edit Contribute to Mattermost documentation by selecting the Edit option located in the top right corner of any documentation page. icon to change the name of the Legal Hold, add or remove users, change the end date, as well as include or exclude public channels.

Access a Legal Hold secret#

A Legal Hold secret enables you to verify the authenticity of the data for a Legal Hold in Mattermost.

Select the Show Review your message text formatting using the Show/Hide preview icon in the message formatting toolbar. icon to display the Legal Hold secret key. Keep a copy of this key in a secure location.

An example of a Legal Hold Secret Key available to Mattermost system admins.

To verfiy the contents of the files in this Legal Hold, you must append the processor command with the following flag: --legal-hold-secret <KEY>. The output verifies the file and returns the authenticity state of files along with the rest of the output for the processor, as follows:

Success:

Secret key was provided, verifying legal holds...
- Verifying Legal Hold *processor9*: Verified

Error:

...
Secret key was provided, verifying legal holds...
- Verifying Legal Hold *processor9*: [Error] hash mismatch for file: legal_hold/processor9_i7k1dbkipiyojeess6ozi4agyr/index.json
...
Download Legal Hold data#

Select the Download Use the Download icon to download an attached file to your local system. icon to download a copy of the preserved data to a location on your local machine. Note, no data will be available to download until at least one scheduled job is completed. This may take up to 24 hours.

Step 5: Release a Legal Hold#

Once the Legal Hold has completed, release it to take users off of the Legal Hold by selecting the Release option to the right of the Legal Hold task.

Important

Once a Legal Hold is released, all data is irretrievably deleted from Mattermost and can’t be recovered.

Frequently asked questions#

Who can implement Legal Hold?#

Only Mattermost system admins can implement a Legal Hold.

Does a user know if they’re placed under a Legal Hold in Mattermost?#

No, users won’t be notified if they’re placed under a Legal Hold, and no reference to Legal Holds will be visible in their Mattermost client or accessible via the Mattermost API. This allows for investigations to be conducted without influencing user behavior and without conflicts of interest.

What types of content does Legal Hold cover?#

The Legal Hold covers all messages and file uploads shared in conversations where the Legal Hold is active, including messages posted by plugins, bots or webhooks. This includes messages or files shared in public channels, private channels, direct messages and group messages.

However, Legal Hold does not apply to reactions, collaborative playbooks, or audio calls.

Can users delete their messages while on a Legal Hold?#

Yes, users can delete messages, but they are retained for the purposes of Legal Hold when implemented with the aforementioned steps.

Can a Legal Hold be applied retroactively to collect past data?#

Yes, but this is only guaranteed for existing and future messages/files once Legal Hold is activated. It won’t recover messages or files that were deleted before the Legal Hold was activated.

Is Legal Hold the same as e-discovery?#

No. While they serve a related use case, they are not the same.

Legal Hold is an initial step to ensure relevant electronically stored information (ESI) is preserved. On the other hand, e-discovery is a multi-step process that uses this preserved data to identify, collect, preserve, process, review, and produce ESI in the context of a legal or investigative process.

How do I enable e-discovery for Mattermost?#

Learn more about extracting data for e-discovery in our product documentation.

How do I manage storage costs and version retention in S3?#

If you plan to use an existing S3 bucket for Legal Hold data storage, and your existing S3 bucket has versioning enabled, we strongly recommend using a dedicated S3 bucket with versioning disabled.

The Legal Hold plugin frequently modifies files in the legalhold directory, and when S3 bucket versioning is enabled, each modification creates a new version. This can result in a rapid accumulation of object versions, increased storage costs, potential performance impact, higher S3 API usage, and complicating version management over time. See the S3 Lifecycle Rules documentation for additional details.

Tell us more!

Your feedback helps us improve the Mattermost product documentation.

How can we make this page more helpful?

0/186

Have a feature request? Share it here.

Having issues? Join our Community server.

×
Thank you!

We appreciate your feedback.

Did you find what you were looking for?

😀

Yes

😐

Mostly

🙁

No!

Next
Audit Log JSON Schema
Previous
Export channel data
Copyright © 2015-2025 Mattermost
Made with Sphinx and @pradyunsg's Furo
On this page
  • Legal Hold
    • Legal Hold demo (Sneak Peek)
    • How to carry out a Legal Hold
      • Step 1: Upgrade to Mattermost Enterprise
      • Step 2: Establish a Legal Hold policy
      • Step 3: Set up the Mattermost Legal Hold plugin
        • Install the plugin
        • Configure the plugin
        • (Optional) Configure a data retention policy
      • Step 4: Create a Legal Hold
        • Manage Legal Holds
          • Edit a Legal Hold
          • Access a Legal Hold secret
          • Download Legal Hold data
      • Step 5: Release a Legal Hold
    • Frequently asked questions
      • Who can implement Legal Hold?
      • Does a user know if they’re placed under a Legal Hold in Mattermost?
      • What types of content does Legal Hold cover?
      • Can users delete their messages while on a Legal Hold?
      • Can a Legal Hold be applied retroactively to collect past data?
      • Is Legal Hold the same as e-discovery?
      • How do I enable e-discovery for Mattermost?
      • How do I manage storage costs and version retention in S3?