Data Spillage Handling

plans-img-yellow Available on Entry and Enterprise Advanced plans

Data Spillage Handling helps prevent accidental data spillage and helps system administrators respond quickly to potential leaks without disrupting collaboration. Enabling this feature empowers Mattermost users to report messages that may contain sensitive, regulated, or inappropriate information, and enables designated content reviewers to assess and take appropriate action by removing or dismissing quarantined messages.

By making every team member a first line of defense against sensitive-data exposure, Data Spillage Handling strengthens mission-critical, secure deployments and supports compliance with organizational and regulatory data-handling standards.

Before you begin

You must be a System Admin in Mattermost. You need to identify who will be content reviewers for quarantined messages, and you need to decide whether quarantined messages should be hidden from users in Mattermost while under review.

Enable

Data Spillage Handling isn’t enabled by default. To enable Data Spillage Handling:

  1. Go to System Console > Site Configuration > Data Spillage Handling.

  2. Set Enable Data Spillage Handling to True.

Alternatively, you can configure Data Spillage Handling via the config.json file or through environment variables.

Configure

  1. Under Content Reviewers, define who should review quarantined content:

    • Same reviewers for all teams: Set to True to apply one global reviewer list across all teams, or False to configure reviewers per team.

    • Reviewers: Start typing to search for users to assign as content reviewers.

    Important

    Choose reviewers carefully. Assigning reviewer roles grants access to potentially sensitive information and may expose data from private channels.

    • A global reviewer can view quarantined messages from all teams and channels, including private channels they’re not a member of.

    • Team-specific reviewers can view quarantined messages from their assigned teams, including private channels within those teams they’re not members of.

    • Additional reviewers: Optionally include:

      • System Administrators: System admins receive quarantined messages for all teams they are part of.

      • Team Administrators: Team admins receive quarantined messages for their respective teams.

  2. Under Notification Settings, specify who receives updates at each stage of the quarantine workflow when content is quarantined or reviewed:

    • Notify when content is quarantined: Reviewer(s), Author.

    • Notify when a reviewer is assigned: Reviewer(s).

    • Notify when content is removed: Reviewer(s), Author, Reporter.

    • Notify on dismissal: Reviewer(s), Author, Reporter.

    All notifications are sent via the Data Spillage Bot as direct messages.

  3. Under Additional Settings, configure how the quarantine workflow behaves:

    • Reasons for quarantine: Define the preset categories that appear in the quarantine dialog for users (for example: Classification mismatch, Need-to-know violation, Personally identifiable information (PII) exposure, Operational security (OPSEC) concern, Controlled Unclassified Information (CUI) violation).

    • Require reporters to add comment: Set to True to require users to add a short explanation when quarantining a message.

    • Require reviewers to add comment: Set to True to require reviewers to add a comment when resolving a quarantine.

    • Hide message from channel while it is being reviewed: Set to True to automatically hide quarantined messages from the channel until reviews are complete. If a root post is quarantined, the entire thread is hidden.

Tip

We recommend enabling Hide message from channel while it is being reviewed and require comments from both reporters and reviewers to maintain transparency, accountability, and an auditable record of actions.

Monitor quarantined messages

When a user quarantines a message, the Data Spillage Bot sends a direct message to all content reviewers.

Direct messages from the Data Spillage Bot is a centralized moderation queue, where reviewers can view, assign, and act on quarantined messages without leaving Mattermost. Reviewers can use it to monitor potential data spills, coordinate response, and maintain an auditable record of review activity.

Each quarantined message appears as a card-formatted message that includes:

  • Quarantined by: The user who reported the message.

  • Status: The current state of the review. All quarantined content starts in Pending status.

  • Reason: The reason selected by the reporter (for example, Classification mismatch, Need-to-know violation).

  • Message preview: A snippet of the quarantined message, including the author, timestamp, and original channel.

  • Reviewer: The user currently assigned to review the message (initially Unassigned).

  • Channel: The name of the channel where the message was originally posted.

  • Team: The team context for the quarantined message.

  • Comment: Any reporter-provided context.

  • Post ID: The system identifier for the original message for auditing purposes.

Reviewers can select View details to take action as follows:

  • Assign a Reviewer responsible for reviewing the quarantined message.

  • Remove message: Permanently delete the quarantined message from its original channel for all users. The status of the quarantined message changes to Removed.

  • Keep message: Dismiss the quarantine and restore the message if it was hidden. The status of the quarantined message changes to Retained.

  • Add a comment: Record the reason for the decision when required.

Once an action is taken, the Status field updates automatically. The Data Spillage Bot sends follow-up notifications to the reporter, author, and other reviewers based on how Data Spillage Handling is configured.

Deleted messages

When a reviewer permanently removes a quarantined message, the message and all associated data are deleted from the database and can’t be recovered. The deletion covers:

  • Post record: The text of the message and any associated post properties. The content is scrubbed before the post is deleted.

  • File attachments: The files stored in Mattermost’s file storage (local, S3, etc.).

  • File attachment records: The file info database rows for the message, including file names, IDs, and links to storage.

  • Edit history: Every prior revision of the message, along with file metadata from each revision.

  • Priority metadata: Any message priority or importance settings.

  • Persistent notifications: Any recurring notifications attached to the message.

  • Acknowledgements: Records of users who acknowledged the message.

  • Reminders: Any reminders created for the message.

  • Thread, replies, and reactions: The thread record, replies, and reaction data associated with the message.

Post deletion report

When a reviewer selects Remove message, the Data Spillage Bot posts a Post Deletion Report into the reviewer’s content review thread for that quarantined message. The report is delivered to every reviewer who received the original quarantine notification, and is localized to each reviewer’s language. Each post includes a short summary rendered inline, and a full report attached as a Markdown file named deletion_report_<postId>.md.

The report records every cleanup step performed against the message and its associated data. The steps map directly to the data scope listed in Deleted messages:

  • File attachments: Files removed from file storage.

  • File attachment records: File info database rows for the message.

  • Edit history: Every prior revision of the message. Each revision is reported as its own sub-step so that reviewers can see exactly which revisions were cleared.

  • Priority metadata: Message priority and importance settings.

  • Persistent notifications: Recurring notifications attached to the message.

  • Acknowledgements: Records of users who acknowledged the message.

  • Reminders: Reminders set on the message.

  • Thread, replies, and reactions: The thread record, replies, and reaction data associated with the message.

  • Post record: The post itself. The content is scrubbed before the post is deleted.

Each step is assigned one of the following statuses:

  • Removed ✅: The data was successfully deleted.

  • Not applicable ➖: There was no data of this type to delete.

  • Partial ⚠️: Some items of this type were deleted, but at least one failed. This status most often appears under Edit history when one revision can’t be deleted.

  • Failed ❌: The step didn’t complete. The report includes an error log so reviewers and System Administrators can inspect what went wrong.

When every step is Removed or Not applicable, no further action is required. The report serves as the auditable record of the deletion.

When any step reports Partial or Failed, the report displays an incomplete warning. Reviewers should escalate to a System Administrator, who can use the attached deletion_report_<postId>.md file - including the full per-step error log - to perform manual remediation and confirm that the data is fully removed.

Note

The post deletion report is the single source of truth for post-removal auditing. It isn’t stored elsewhere in the System Console, so the reviewer thread containing the report should be retained in line with your organization’s audit retention policy.

Best practice recommendations

Before rolling out Data Spillage Handling organization-wide, we recommend communicating that the feature protects both users and the organization from accidental data spillage. Start with a pilot team to validate reviewer notifications and workflows, integrate the process with existing data-handling or incident-response playbooks, and require reporter and reviewer comments to ensure every decision is transparent and auditable.