MattermostV2

Mattermost is an open-source, self-hostable online chat service with file sharing, search, and integrations. It is designed as an internal chat for organizations and companies.

Messaging and Conferencing · Mattermost

Details

IDMattermostV2
ProviderMattermost Inc
CategoryMessaging and Conferencing
From Version6.10.0
Docker Imagedemisto/netutils:1.0.0.10187688
Supported ModulesAgentix XSIAM

README

Mattermost is an open-source, self-hostable online chat service with file sharing, search, and integrations. It is designed as an internal chat for organizations and companies.
This integration was integrated and tested with version 4.0.0 of Mattermost API.

Some changes have been made that might affect your existing content.
If you are upgrading from a previous version of this integration, see Breaking Changes.

Configure Mattermost v2 in Cortex

Parameter Description Required
Server URL   True
Bot Access Token The Bot Access Token to use for connection. True
Personal Access Token The Personal Access Token to use for connection. True
Team Name   True
Default Notifications Channel If Notifications Channel name is not specified, will send notification to incidentNotificationChannel channel. False
Enable Incident Mirroring   False
Allow external users to create incidents via DM.   False
Types of Notifications to Send Notifications of type ‘externalAskSubmit’ or ‘externalFormSubmit’ are not configurable because they are required to allow Ask tasks to be sent correctly. False
Long running instance. Required for investigation mirroring and direct messages.   False
Trust any certificate (not secure)   False
Use system proxy settings   False

Commands

You can execute these commands from the CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a DBot message appears in the War Room with the command details.

mattermost-get-team


Gets a team’s details.

Required Permissions

Must be authenticated and have the view_team permission.

Base Command

mattermost-get-team

Input

Argument Name Description Required
team_name The name of the team to retrieve. Required

Context Output

Path Type Description
Mattermost.Team.id String The ID of the team.
Mattermost.Team.create_at Unknown When was the team created.
Mattermost.Team.update_at Unknown When was the team updated.
Mattermost.Team.delete_at Unknown When was the team deleted.
Mattermost.Team.display_name String The display name of the team.
Mattermost.Team.name String The name of the team.
Mattermost.Team.description String The description of the team.
Mattermost.Team.email String The email of the team.
Mattermost.Team.type String The type of the team.
Mattermost.Team.company_name String The company name of the team.
Mattermost.Team.allowed_domains String The allowed domains of the team.
Mattermost.Team.invite_id String The allowed domains of the team.
Mattermost.Team.allow_open_invite Unknown Does the team allow open invites.
Mattermost.Team.scheme_id String The scheme ID of the team.
Mattermost.Team.policy_id String The policy ID of the team.

Command example

!mattermost-get-team team_name=panw

Context Example

{
    "Mattermost": {
        "Team": {
            "allow_open_invite": false,
            "allowed_domains": "",
            "cloud_limits_archived": false,
            "company_name": "",
            "create_at": 1696486762638,
            "delete_at": 0,
            "description": "",
            "display_name": "PANW",
            "email": "rrapoport@example.com",
            "group_constrained": false,
            "id": "6ie46zmi4fdqiqqe7p5gfki9hr",
            "invite_id": "ocoh4fcrw7dzxgfu5bdtqpy7cr",
            "name": "panw",
            "policy_id": null,
            "scheme_id": "",
            "type": "O",
            "update_at": 1696486762638
        }
    }
}

Human Readable Output

Team details

allow_open_invite allowed_domains cloud_limits_archived company_name create_at delete_at description display_name email group_constrained id invite_id name policy_id scheme_id type update_at
false   false   1696486762638 0   PANW email false id id panw     O 1696486762638

mattermost-list-channels


Lists channels.

Required Permissions

manage_system

Base Command

mattermost-list-channels

Input

Argument Name Description Required
team The name of the team to list channels from. Default is the team name from the integration configuration. Optional
include_private_channels Whether to include private channels. Default is false. Possible values are: true, false. Optional
page The page number to retrieve. Default value is 0. Optional
page_size The size of the page to retrieve. Default value is 50. Optional
limit How many results to retrieve. Will override the page and page_size arguments if given. Optional

Context Output

Path Type Description
Mattermost.Channel.id String The ID of the channel.
Mattermost.Channel.create_at Unknown When was the channel created.
Mattermost.Channel.update_at Unknown When was the channel updated.
Mattermost.Channel.delete_at Unknown When was the channel deleted.
Mattermost.Channel.display_name String The display name of the channel.
Mattermost.Channel.name String The name of the channel.
Mattermost.Channel.description String The description of the channel.
Mattermost.Channel.header String The header of the channel.
Mattermost.Channel.purpose String The purpose of the channel.
Mattermost.Channel.last_post_at Unknown When was the last post to the channel made.
Mattermost.Channel.total_msg_count Unknown The total massage count of the channel.
Mattermost.Channel.extra_update_at Unknown When was the channel updated.
Mattermost.Channel.creator_id String The creator ID of the channel.

Command example

!mattermost-list-channels limit=2 include_private_channels=true

Context Example

{
    "Mattermost": {
        "Channel": [
            {
                "create_at": 1697024204532,
                "creator_id": "creator_id",
                "delete_at": 0,
                "display_name": "Name",
                "extra_update_at": 0,
                "group_constrained": null,
                "header": "",
                "id": "id",
                "last_post_at": 1712503619042,
                "last_root_post_at": 1712503619042,
                "name": "name",
                "policy_id": null,
                "props": null,
                "purpose": "",
                "scheme_id": null,
                "shared": null,
                "team_id": "team_id",
                "total_msg_count": 58,
                "total_msg_count_root": 56,
                "type": "O",
                "update_at": 1697024204532
            },
            {
                "create_at": 1696486762650,
                "creator_id": "",
                "delete_at": 0,
                "display_name": "Off-Topic",
                "extra_update_at": 0,
                "group_constrained": null,
                "header": "",
                "id": "id",
                "last_post_at": 1712501916866,
                "last_root_post_at": 1712501916866,
                "name": "off-topic",
                "policy_id": null,
                "props": null,
                "purpose": "",
                "scheme_id": null,
                "shared": null,
                "team_id": "team_id",
                "total_msg_count": 4,
                "total_msg_count_root": 4,
                "type": "O",
                "update_at": 1696486762650
            }
        ]
    }
}

Human Readable Output

Channels

name display_name type id
name Display_Name O id
off-topic Off-Topic O id

mattermost-list-private-channels-for-user


Get all the private channels on a team for a user.

Required Permissions

Logged in as the user, or have edit_other_users permission, and view_team permission for the team.

Base Command

mattermost-list-private-channels-for-user

Input

Argument Name Description Required
team_name The name of the team to list channels from. Default is the team name from the integration configuration. Optional
user_id User ID to get channel memberships for. Required

Context Output

Path Type Description
Mattermost.User.Channels Unknown List of channels where the user is member of.
Mattermost.User.id String The ID of the user.

Command example

!mattermost-list-private-channels-for-user user_id=user_id team_name=panw

Context Example

{
    "Mattermost": {
        "User": [
            {
                "channel_id": "channel_id",
                "user_id": "user_id",
                "roles": "Admin",
                "last_viewed_at": 0,
                "msg_count": 0,
                "mention_count": 0,
                "notify_props": {},
                "last_update_at": 0
            }
        ]
    }
}

Human Readable Output

Channels for UserName

name display_name type id
name Display_Name O channel_id

mattermost-create-channel


Creates a channel.

Required Permissions

If creating a public channel, create_public_channel permission is required. If creating a private channel, create_private_channel permission is required.

Base Command

mattermost-create-channel

Input

Argument Name Description Required
display_name The display name of the channel to create. Required
name The name of the channel to create. Required
type The type of the channel to create. Possible values are: public, private. Default is public. Optional
purpose The purpose of the channel to create. Optional
header The header of the channel to create. Optional
team The team name of the channel to create. Default is the team name from the integration configuration. Optional

Context Output

Path Type Description
Mattermost.Channel.id String The ID of the channel.
Mattermost.Channel.create_at Unknown When was the channel created.
Mattermost.Channel.update_at Unknown When was the channel updated.
Mattermost.Channel.delete_at Unknown When was the channel deleted.
Mattermost.Channel.display_name String The display name of the channel.
Mattermost.Channel.name String The name of the channel.
Mattermost.Channel.description String The description of the channel.
Mattermost.Channel.header String The header of the channel.
Mattermost.Channel.purpose String The purpose of the channel.
Mattermost.Channel.last_post_at Unknown When was the last post to the channel made.
Mattermost.Channel.total_msg_count Unknown The total massage count of the channel.
Mattermost.Channel.extra_update_at Unknown When was the channel updated.
Mattermost.Channel.creator_id String The creator ID of the channel.
Mattermost.Channel.scheme_id String The scheme ID of the channel.

Command example

!mattermost-create-channel display_name=channel_name name=channel_name type=Private

Context Example

{
    "Mattermost": {
        "Channel": {
            "create_at": 1712649608411,
            "creator_id": "creator_id",
            "delete_at": 0,
            "display_name": "channel_name",
            "extra_update_at": 0,
            "group_constrained": null,
            "header": "",
            "id": "id",
            "last_post_at": 1712649608426,
            "last_root_post_at": 1712649608426,
            "name": "channel_name",
            "policy_id": null,
            "props": null,
            "purpose": "",
            "scheme_id": null,
            "shared": null,
            "team_id": "team_id",
            "total_msg_count": 0,
            "total_msg_count_root": 0,
            "type": "P",
            "update_at": 1712649608411
        }
    }
}

Human Readable Output

Channel channel_name was created successfully.

mattermost-add-channel-member


Adds a channel member.

Required Permissions

No permissions required.

Base Command

mattermost-add-channel-member

Input

Argument Name Description Required
team The team name of the channel to add the user to. Default is the team name from the integration configuration. Optional
channel The name of the channel to add the user to. Required
user_id The ID of the user to add. Use the command ‘mattermost-list-users’ to fetch the user ID. Required

Context Output

There is no context output for this command.

mattermost-remove-channel-member


Removes a channel member.

Required Permissions

manage_public_channel_members permission if the channel is public. manage_private_channel_members permission if the channel is private.

Base Command

mattermost-remove-channel-member

Input

Argument Name Description Required
team The team name of the channel to add the user to. Default is the team name from the integration configuration. Optional
channel The channel name of the channel to remove the user from. Required
user_id The ID of the user to remove. Use the command ‘mattermost-list-users’ to fetch the user ID. Required

Context Output

There is no context output for this command.

mattermost-list-users


Lists users.

Required Permissions

Requires an active session and (if specified) membership to the channel or team being selected from.

Base Command

mattermost-list-users

Input

Argument Name Description Required
team_name The name of the team to filter users by. Optional
channel The name of the channel to filters users by. If mentioned, a team name must be mentioned as well. Optional
page The page number to retrieve. Should be provided with the page_size argument. Default value is 0. Optional
page_size The size of the page to retrieve. Should be provided with the page argument. Default value is 50. Optional
limit How many results to retrieve. If provided, overrides the page and page_size arguments. Optional

Context Output

Path Type Description
Mattermost.User.id String The ID of the user.
Mattermost.User.create_at Unknown When was the user created.
Mattermost.User.update_at Unknown When was the user updated.
Mattermost.User.delete_at Unknown When was the user deleted.
Mattermost.User.username String The username of the user.
Mattermost.User.auth_data String The authorization data of the user.
Mattermost.User.auth_service String The authorization service of the user.
Mattermost.User.email String The email of the user.
Mattermost.User.nickname String The nickname of the user.
Mattermost.User.first_name Unknown The first name of the user.
Mattermost.User.last_name Unknown The last name of the user.
Mattermost.User.position Unknown The position of the user.
Mattermost.User.roles String The roles of the channel.
Mattermost.User.locale String The locale of the channel.
Mattermost.User.timezone Unknown The timezone of the user.

Command example

!mattermost-list-users limit=2 team_name=panw

Context Example

{
    "Mattermost": {
        "User": [
            {
                "auth_data": "",
                "auth_service": "",
                "create_at": 1696486752272,
                "delete_at": 0,
                "disable_welcome_email": false,
                "email": "email",
                "first_name": "",
                "id": "id",
                "last_name": "",
                "locale": "en",
                "nickname": "",
                "position": "",
                "roles": "system_admin system_user",
                "timezone": {
                    "automaticTimezone": "Asia/Jerusalem",
                    "manualTimezone": "",
                    "useAutomaticTimezone": "true"
                },
                "update_at": 1696486762658,
                "username": "admin"
            },
            {
                "auth_data": "",
                "auth_service": "",
                "create_at": 1696500307646,
                "delete_at": 0,
                "disable_welcome_email": false,
                "email": "email",
                "first_name": "",
                "id": "id",
                "last_name": "",
                "locale": "en",
                "nickname": "",
                "position": "",
                "roles": "system_user system_admin",
                "timezone": {
                    "automaticTimezone": "Asia/Jerusalem",
                    "manualTimezone": "",
                    "useAutomaticTimezone": "true"
                },
                "update_at": 1697354262697,
                "username": "username"
            }
        ]
    }
}

Human Readable Output

Users

username email role id
admin admin@admin.com   8a6t7whumbdbxrawretujh6rre
dev admin@ddev.com   o9hpcwz73fdwxe9adue8jxo16o

mattermost-send-file


Sends a file.

Required Permissions

Must have upload_file permission.

Base Command

mattermost-send-file

Command example

!mattermost-send-file message=check entry_id=85@109 channel=test

Input

Argument Name Description Required
team_name The team name of the channel to send the file to. Default is the team name from the integration configuration. Optional
channel The channel name of the channel to send the file to. Cannot be combined with the to argument. Optional
message The message to send to the channel along with the file. Required
entry_id The entry ID of the file. Required
to The username or email of the user to send the file to. Optional

Context Output

There is no context output for this command.

Human Readable Output

file test.txt was successfully sent to channel test

send-notification


Send a message using a chatbot app.

Required Permissions

Must have create_post permission for the channel the post is being created in.

Base Command

send-notification

Input

Argument Name Description Required
message The message to send. Required
channel The channel name to send the notification to. Default value is the channel configuration parameter. Optional
entry An entry ID to send as a link. Optional
to The username or email of the user to send the file to. Optional
ignoreAddURL Adds the War Room link to the message. Possible values are: true, false. Optional
mattermost_ask The message as a JSON for asking questions to the user. Default value is false. Possible values are: true, false. Optional

Context Output

There is no context output for this command.

mattermost-close-channel


Closes a channel.

Required Permissions

delete_public_channel permission if the channel is public. delete_private_channel permission if the channel is private, or has manage_system permission.

Base Command

mattermost-close-channel

Input

Argument Name Description Required
team_name The team name of the channel to close. Default value is the team name from the integration configuration. Optional
channel The channel name of the channel to close. If not provided, the mirrored investigation channel is archived (if the channel exists). Optional

Context Output

There is no context output for this command.

close-channel


Closes a mirrored MatterMost channel. If not provided, the mirrored investigation channel is archived (if the channel exists).

Required Permissions

delete_public_channel permission if the channel is public. delete_private_channel permission if the channel is private, or has manage_system permission.

Base Command

close-channel

Input

Argument Name Description Required
team_name The team name of the channel to delete. Default value is the team name from the integration configuration. Optional
channel The channel name of the channel to close. Optional

Context Output

There is no context output for this command.

mirror-investigation


Mirrors the investigation between Mattermost and the Cortex XSOAR War Room.

Required Permissions

No permissions required.

Base Command

mirror-investigation

Input

Argument Name Description Required
type The mirroring type. Can be “all”, which mirrors everything, “chat”, which mirrors only chats (not commands), or “none”, which stops all mirroring. Possible values are: all, chat, none. Default is all. Optional
autoclose Whether the channel is auto-closed when an investigation is closed. Possible values are: true, false. Default is true. Optional
direction The mirroring direction. Possible values are: Both, FromDemisto, ToDemisto. Default is Both. Optional
channel The name of the channel. The default is “incident-<incidentID>”. Optional
kickAdmin Whether to remove the admin from the newly created channel. Default value is false. Possible values are: true, false. Default is false. Optional
mirrorTo Mirrors the investigation to a group (private channel) or a public channel. Default is group. Possible values are: group, channel. Default is group. Optional

Context Output

There is no context output for this command.

close-channel


Closes a mirrored Mattermost channel. If not provided, the mirrored investigation channel is archived (if the channel exists).

Base Command

close-channel

Input

Argument Name Description Required
team_name The team name of the channel to delete. Default value is the team name from the integration configuration. Optional
channel_name The channel name of the channel to delete. Optional

Context Output

There is no context output for this command.

mattermost-mirror-investigation


Mirrors the investigation between Mattermost and the Cortex XSOAR War Room.

Required Permissions

No permissions channel.

Base Command

mattermost-mirror-investigation

Input

Argument Name Description Required
type The mirroring type. Can be “all”, which mirrors everything, “chat”, which mirrors only chats (not commands), or “none”, which stops all mirroring. Possible values are: all, chat, none. Default is all. Optional
autoclose Whether the channel is auto-closed when an investigation is closed. Possible values are: true, false. Default is true. Optional
direction The mirroring direction. Possible values are: Both, FromDemisto, ToDemisto. Default is Both. Optional
channel The name of the channel. The default is “incident-<incidentID>”. Optional
kickAdmin Whether to remove the admin from the newly created channel. Default value is false. Possible values are: true, false. Default is false. Optional
mirrorTo Mirrors the investigation to a group (private channel) or a public channel. Possible values are: group, channel. Default is group. Optional

Context Output

There is no context output for this command.

mattermost-list-groups


Lists groups. Groups are available on Enterprise and Professional plans. Minimum server version: 5.11

Required Permissions

No permissions required.

Base Command

mattermost-list-groups

Input

Argument Name Description Required
page The page number to retrieve. Default value is 0. Optional
page_size The size of the page to retrieve. Default value is 50. Optional
limit How many results to retrieve. Will override the page and page_size arguments if given. Optional
group Search for a specific user by this pattern. Optional

Context Output

Path Type Description
Mattermost.Groups.id String The ID of the group.
Mattermost.Groups.create_at Unknown The datetime the group was created.
Mattermost.Groups.update_at Unknown The datetime the group was updated.
Mattermost.Groups.delete_at Unknown The datetime the group was deleted.
Mattermost.Groups.display_name String The display name of the group.
Mattermost.Groups.name String The name of the group.
Mattermost.Groups.description String The description of the group.
Mattermost.Groups.source String The source of the group.
Mattermost.Groups.remote_id String The remote ID of the group.
Mattermost.Groups.has_syncables boolean If the group has any syncables.

Command example


#### Context Example

```json
{
    "Mattermost": {
        "Groups": [
            {
                "id": "0815xyz",
                "name": "name",
                "display_name": "display name",
                "description": "description",
                "source": "custom",
                "remote_id": null,
                "create_at": 0,
                "update_at": 0,
                "delete_at": 0,
                "has_syncables": false
            },
            {
                "id": "0815abc",
                "name": "name",
                "display_name": "display name",
                "description": "",
                "source": "custom",
                "remote_id": null,
                "create_at": 0,
                "update_at": 0,
                "delete_at": 0,
                "has_syncables": false
            }
        ]
    }
}

Human Readable Output

Groups

name display_name description id
name display name   0815abc
name display name description 0815xyz

mattermost-list-group-members


Lists group members. Groups are available on Enterprise and Professional plans. Minimum server version: 5.11

Required Permissions

Must have manage_system permission.

Base Command

mattermost-list-group-members

Input

Argument Name Description Required
page The page number to retrieve. Default value is 0. Optional
page_size The size of the page to retrieve. Default value is 50. Optional
limit How many results to retrieve. Will override the page and page_size arguments if given. Optional
group_id The group ID of the user group to list members for. Use the command ‘mattermost-list-groups’ to fetch the group ID. Required

Context Output

Path Type Description
Mattermost.Members.id String The ID of the group member.
Mattermost.Members.first_name String The first name of the group member.
Mattermost.Members.last_name String The last name of the group member.
Mattermost.Members.username String The username of the group member.

Command example

!mattermost-list-group-members group_id=group_id

Human Readable Output

Group moi9ygz8qby1pr1xgkcfuqww9r members (2/2)

username email id
username1 admin@admin.com 8a6t7whumbdbxrawretujh6rre
username2 admin@ddev.com o9hpcwz73fdwxe9adue8jxo16o

mattermost-add-group-member


Add group member(s). Groups are available on Enterprise and Professional plans. Minimum server version: 6.3

Required Permissions

Must have custom_group_manage_members permission for the given group.

Base Command

mattermost-add-group-member

Input

Argument Name Description Required
group_id The group ID of the user group to list members for. Use the command ‘mattermost-list-groups’ to fetch the group ID. Required
user_ids A comma-separated list of IDs of the users to add. Use the command ‘mattermost-list-users’ to fetch the user ID(s). Required

Context Output

There is no context output for this command.

Command example

!mattermost-add-group-member group_id=group_id user_ids=user_ids

Human Readable Output

The member username was added to the group successfully, with group ID: moi9ygz8qby1pr1xgkcfuqww9r

mattermost-remove-group-member


Remove group member(s). Groups are available on Enterprise and Professional plans. Minimum server version: 6.3

Required Permissions

Must have custom_group_manage_members permission for the given group.

Base Command

mattermost-remove-group-member

Input

Argument Name Description Required
group_id The group ID of the user group to list members for. Use the command ‘mattermost-list-groups’ to fetch the group ID. Required
user_ids A comma-separated list of IDs of the users to remove. Use the command ‘mattermost-list-users’ to fetch the user ID(s). Required

Context Output

There is no context output for this command.

Command example

!mattermost-remove-group-member group_id=group_id user_ids=user_ids

Human Readable Output

The member username was removed from group successfully, with group ID: moi9ygz8qby1pr1xgkcfuqww9r

mattermost-set-channel-role


Update a user’s roles for a channel. The user has to already be a member of the channel.

Required Permissions

Must have manage_channel_roles permission for the channel.

Base Command

mattermost-set-channel-role

Input

Argument Name Description Required
channel_id The channel ID to set the role in. Use the command ‘mattermost-list-channels’ to fetch the channel ID. Required
user_id The ID of the user to set role for. Use the command ‘mattermost-list-users’ to fetch the user ID. Required
role The role to set for the user. Possible values are: Admin, Member. Default is Member. Optional

Context Output

There is no context output for this command.

Breaking changes from the previous version of this integration - Mattermost v2

A new required configuration parameters was added: Bot Access Token.

Configuration parameters

  • url — Server URL (required)
  • bot_access_token — (required)
  • personal_access_token — (required)
  • team_name — Team Name (required)
  • notification_channel — Default Notifications Channel
  • mirroring — Enable Incident Mirroring
  • allow_incidents — Allow external users to create incidents via DM.
  • permitted_notifications — Types of Notifications to Send
  • longRunning — Long running instance. Required for investigation mirroring and direct messages.
  • insecure — Trust any certificate (not secure)
  • proxy — Use system proxy settings

Commands (18)

  • close-channel

    Closes a mirrored Mattermost channel. If not provided, the mirrored investigation channel is archived (if the channel exists).

  • mattermost-add-channel-member

    Adds a channel member.

  • mattermost-add-group-member

    Add group member(s). Groups are available on Enterprise and Professional plans. Minimum server version: 6.3

  • mattermost-close-channel

    Closes a channel.

  • mattermost-create-channel

    Creates a channel.

  • mattermost-get-team

    Gets a team's details.

  • mattermost-list-channels

    Lists channels.

  • mattermost-list-group-members

    Lists group members. Groups are available on Enterprise and Professional plans. Minimum server version: 5.11

  • mattermost-list-groups

    Lists groups. Groups are available on Enterprise and Professional plans. Minimum server version: 5.11

  • mattermost-list-private-channels-for-user

    Get all the private channels on a team for a user.

  • mattermost-list-users

    Lists users.

  • mattermost-mirror-investigation

    Mirrors the investigation between Mattermost and the Cortex XSOAR War Room.

  • mattermost-remove-channel-member

    Removes a channel member.

  • mattermost-remove-group-member

    Remove group member(s). Groups are available on Enterprise and Professional plans. Minimum server version: 6.3

  • mattermost-send-file

    Sends a file.

  • mattermost-set-channel-role

    Update a user's roles for a channel. The user has to already be a member of the channel.

  • mirror-investigation

    Mirrors the investigation between Mattermost and the Cortex XSOAR War Room.

  • send-notification

    Send a message using a chatbot app.

sectionorder:
- Connect
- Collect
category: Messaging and Conferencing
provider: Mattermost Inc
commonfields:
  id: MattermostV2
  version: -1
configuration:
- display: Server URL
  name: url
  required: true
  type: 0
  section: Connect
- displaypassword: Bot Access Token
  additionalinfo: The Bot Access Token to use for connection.
  name: bot_access_token
  required: true
  hiddenusername: true
  type: 9
  section: Connect
- displaypassword: Personal Access Token
  additionalinfo: The Personal Access Token to use for connection.
  name: personal_access_token
  required: true
  hiddenusername: true
  type: 9
  section: Connect
- display: Team Name
  name: team_name
  required: true
  type: 0
  section: Connect
- display: Default Notifications Channel
  name: notification_channel
  advanced: true
  required: false
  type: 0
  section: Connect
  additionalinfo: If Notifications Channel name is not specified, will send notification to incidentNotificationChannel channel.
- defaultvalue: 'true'
  display: Enable Incident Mirroring
  name: mirroring
  type: 8
  section: Collect
  required: false
  advanced: true
- display: Allow external users to create incidents via DM.
  name: allow_incidents
  type: 8
  section: Collect
  advanced: true
  required: false
- display: Types of Notifications to Send
  name: permitted_notifications
  type: 16
  section: Collect
  advanced: true
  required: false
  options:
  - incidentAssigned
  - assign
  - incidentOpened
  - incidentChanged
  - investigationClosed
  - investigationDeleted
  - incidentReminderSLA
  - taskCompleted
  - incidentStatusChanged
  - failedFetchIncidents
  - mentionNew
  - mentionOld
  additionalinfo: Notifications of type 'externalAskSubmit' or 'externalFormSubmit' are not configurable because they are required to allow Ask tasks to be sent correctly.
- display: Long running instance. Required for investigation mirroring and direct messages.
  name: longRunning
  type: 8
  required: false
  section: Connect
  defaultvalue: 'true'
  advanced: true
- display: Trust any certificate (not secure)
  name: insecure
  type: 8
  required: false
  section: Connect
- display: Use system proxy settings
  name: proxy
  type: 8
  required: false
  section: Connect
description: Mattermost is an open-source, self-hostable online chat service with file sharing, search, and integrations. It is designed as an internal chat for organizations and companies.
display: Mattermost v2
name: MattermostV2
script:
  commands:
  - arguments:
    - description: The name of the team to retrieve.
      name: team_name
      required: true
    description: Gets a team's details.
    name: mattermost-get-team
    outputs:
    - contextPath: Mattermost.Team.id
      description: The ID of the team.
      type: String
    - contextPath: Mattermost.Team.create_at
      description: When was the team created.
      type: Unknown
    - contextPath: Mattermost.Team.update_at
      description: When was the team updated.
      type: Unknown
    - contextPath: Mattermost.Team.delete_at
      description: When was the team deleted.
      type: Unknown
    - contextPath: Mattermost.Team.display_name
      description: The display name of the team.
      type: String
    - contextPath: Mattermost.Team.name
      description: The name of the team.
      type: String
    - contextPath: Mattermost.Team.description
      description: The description of the team.
      type: String
    - contextPath: Mattermost.Team.email
      description: The email of the team.
      type: String
    - contextPath: Mattermost.Team.type
      description: The type of the team.
      type: String
    - contextPath: Mattermost.Team.company_name
      description: The company name of the team.
      type: String
    - contextPath: Mattermost.Team.allowed_domains
      description: The allowed domains of the team.
      type: String
    - contextPath: Mattermost.Team.invite_id
      description: The allowed domains of the team.
      type: String
    - contextPath: Mattermost.Team.allow_open_invite
      description: Does the team allow open invites.
      type: Unknown
    - contextPath: Mattermost.Team.scheme_id
      description: The scheme ID of the team.
      type: String
    - contextPath: Mattermost.Team.policy_id
      description: The policy ID of the team.
      type: String
  - arguments:
    - description: The name of the team to list channels from. Default is the team name from the integration configuration.
      name: team
      required: false
    - description: Whether to include private channels. Default is false.
      name: include_private_channels
      required: false
      predefined:
      - 'true'
      - 'false'
      auto: PREDEFINED
    - description: The page number to retrieve. Default value is 0.
      name: page
      required: false
    - description: The size of the page to retrieve. Default value is 50.
      name: page_size
      required: false
    - description: How many results to retrieve. Will override the page and page_size arguments if given.
      name: limit
      required: false
    description: Lists channels.
    name: mattermost-list-channels
    outputs:
    - contextPath: Mattermost.Channel.id
      description: The ID of the channel.
      type: String
    - contextPath: Mattermost.Channel.create_at
      description: When was the channel created.
      type: Unknown
    - contextPath: Mattermost.Channel.update_at
      description: When was the channel updated.
      type: Unknown
    - contextPath: Mattermost.Channel.delete_at
      description: When was the channel deleted.
      type: Unknown
    - contextPath: Mattermost.Channel.display_name
      description: The display name of the channel.
      type: String
    - contextPath: Mattermost.Channel.name
      description: The name of the channel.
      type: String
    - contextPath: Mattermost.Channel.description
      description: The description of the channel.
      type: String
    - contextPath: Mattermost.Channel.header
      description: The header of the channel.
      type: String
    - contextPath: Mattermost.Channel.purpose
      description: The purpose of the channel.
      type: String
    - contextPath: Mattermost.Channel.last_post_at
      description: When was the last post to the channel made.
      type: Unknown
    - contextPath: Mattermost.Channel.total_msg_count
      description: The total massage count of the channel.
      type: Unknown
    - contextPath: Mattermost.Channel.extra_update_at
      description: When was the channel updated.
      type: Unknown
    - contextPath: Mattermost.Channel.creator_id
      description: The creator ID of the channel.
      type: String
  - arguments:
    - name: team_name
      description: The name of the team to list channels from. Default is the team
        name from the integration configuration.
    - name: user_id
      required: true
      description: User ID to get channel memberships for.
    outputs:
    - contextPath: Mattermost.User.Channels
      description: List of channels where the user is a member of.
      type: Unknown
    - contextPath: Mattermost.User.id
      description: The ID of the user.
      type: String
    description: Get all the private channels on a team for a user.
    name: mattermost-list-private-channels-for-user
  - arguments:
    - description: The display name of the channel to create.
      name: display_name
      required: true
    - description: The name of the channel to create.
      name: name
      required: true
    - description: The type of the channel to create.
      name: type
      defaultValue: public
      predefined:
      - public
      - private
      auto: PREDEFINED
      required: false
    - description: The purpose of the channel to create.
      name: purpose
      required: false
    - description: The header of the channel to create.
      name: header
      required: false
    - description: The team name of the channel to create. Default is the team name from the integration configuration.
      name: team
      required: false
    description: Creates a channel.
    name: mattermost-create-channel
    outputs:
    - contextPath: Mattermost.Channel.id
      description: The ID of the channel.
      type: String
    - contextPath: Mattermost.Channel.create_at
      description: When was the channel created.
      type: Unknown
    - contextPath: Mattermost.Channel.update_at
      description: When was the channel updated.
      type: Unknown
    - contextPath: Mattermost.Channel.delete_at
      description: When was the channel deleted.
      type: Unknown
    - contextPath: Mattermost.Channel.display_name
      description: The display name of the channel.
      type: String
    - contextPath: Mattermost.Channel.name
      description: The name of the channel.
      type: String
    - contextPath: Mattermost.Channel.description
      description: The description of the channel.
      type: String
    - contextPath: Mattermost.Channel.header
      description: The header of the channel.
      type: String
    - contextPath: Mattermost.Channel.purpose
      description: The purpose of the channel.
      type: String
    - contextPath: Mattermost.Channel.last_post_at
      description: When was the last post to the channel made.
      type: Unknown
    - contextPath: Mattermost.Channel.total_msg_count
      description: The total massage count of the channel.
      type: Unknown
    - contextPath: Mattermost.Channel.extra_update_at
      description: When was the channel updated.
      type: Unknown
    - contextPath: Mattermost.Channel.creator_id
      description: The creator ID of the channel.
      type: String
    - contextPath: Mattermost.Channel.scheme_id
      description: The scheme ID of the channel.
      type: String
  - arguments:
    - description: The team name of the channel to add the user to. Default is the team name from the integration configuration.
      name: team
      required: false
    - description: The name of the channel to add the user to.
      name: channel
      required: true
    - description: The ID of the user to add. Use the command 'mattermost-list-users' to fetch the user ID.
      name: user_id
      required: true
    description: Adds a channel member.
    name: mattermost-add-channel-member
    outputs: []
  - arguments:
    - description: The team name of the channel to add the user to. Default is the team name from the integration configuration.
      name: team
      required: false
    - description: The channel name of the channel to remove the user from.
      name: channel
      required: true
    - description: The ID of the user to remove. Use the command 'mattermost-list-users' to fetch the user ID.
      name: user_id
      required: true
    description: Removes a channel member.
    name: mattermost-remove-channel-member
    outputs: []
  - arguments:
    - description: The name of the team to filter users by.
      name: team_name
      required: false
    - description: The name of the channel to filters users by. If mentioned, a team name must be mentioned as well.
      name: channel
      required: false
    - description: The page number to retrieve. Should be provided with the page_size argument. Default value is 0.
      name: page
      required: false
    - description: The size of the page to retrieve. Should be provided with the page argument. Default value is 50.
      name: page_size
      required: false
    - description: How many results to retrieve. If provided, overrides the page and page_size arguments.
      name: limit
      required: false
    description: Lists users.
    name: mattermost-list-users
    outputs:
    - contextPath: Mattermost.User.id
      description: The ID of the user.
      type: String
    - contextPath: Mattermost.User.create_at
      description: When was the user created.
      type: Unknown
    - contextPath: Mattermost.User.update_at
      description: When was the user updated.
      type: Unknown
    - contextPath: Mattermost.User.delete_at
      description: When was the user deleted.
      type: Unknown
    - contextPath: Mattermost.User.username
      description: The username of the user.
      type: String
    - contextPath: Mattermost.User.auth_data
      description: The authorization data of the user.
      type: String
    - contextPath: Mattermost.User.auth_service
      description: The authorization service of the user.
      type: String
    - contextPath: Mattermost.User.email
      description: The email of the user.
      type: String
    - contextPath: Mattermost.User.nickname
      description: The nickname of the user.
      type: String
    - contextPath: Mattermost.User.first_name
      description: The first name of the user.
      type: Unknown
    - contextPath: Mattermost.User.last_name
      description: The last name of the user.
      type: Unknown
    - contextPath: Mattermost.User.position
      description: The position of the user.
      type: Unknown
    - contextPath: Mattermost.User.roles
      description: The roles of the channel.
      type: String
    - contextPath: Mattermost.User.locale
      description: The locale of the channel.
      type: String
    - contextPath: Mattermost.User.timezone
      description: The timezone of the user.
      type: Unknown
  - arguments:
    - description: The team name of the channel to send the file to. Default is the Team Name in the integration configuration.
      name: team_name
      required: false
    - description: The channel name of the channel to send the file to. Cannot be combined with the to argument.
      name: channel
      required: false
    - description: The message to send to the channel along with the file.
      name: message
      required: true
    - description: The entry ID of the file.
      name: entry_id
      required: true
    - description: The username or email of the user to send the file to.
      name: to
      required: false
    description: Sends a file.
    name: mattermost-send-file
    outputs: []
  - arguments:
    - description: The message to send.
      name: message
      required: true
    - description: The channel name to send the notification to. Default value is the channel configuration parameter.
      name: channel
      required: false
    - description: An entry ID to send as a link.
      name: entry
      required: false
    - description: The username or email of the user to send the file to.
      isArray: true
      name: to
      required: false
    - description: Adds the War Room link to the message.
      name: ignoreAddURL
      required: false
      predefined:
      - 'true'
      - 'false'
      auto: PREDEFINED
    - name: mattermost_ask
      description: The message as a JSON for asking questions to the user. Default value is false.
      type: boolean
      required: false
      predefined:
      - 'true'
      - 'false'
      auto: PREDEFINED
    description: Send a message using a chatbot app.
    name: send-notification
    outputs: []
  - arguments:
    - description: The team name of the channel to close. Default value is the team name from the integration configuration.
      name: team_name
      required: false
    - description: The channel name of the channel to close. If not provided, the mirrored investigation channel is archived (if the channel exists).
      name: channel
      required: false
    description: Closes a channel.
    name: mattermost-close-channel
    outputs: []
  - arguments:
    - description: The team name of the channel to delete. Default value is the team name from the integration configuration.
      name: team_name
      required: false
    - description: The channel name of the channel to close.
      name: channel
      required: false
    description: Closes a mirrored Mattermost channel. If not provided, the mirrored investigation channel is archived (if the channel exists).
    name: close-channel
    outputs: []
  - arguments:
    - auto: PREDEFINED
      default: true
      defaultValue: all
      description: The mirroring type. Can be "all", which mirrors everything, "chat", which mirrors only chats (not commands), or "none", which stops all mirroring.
      name: type
      predefined:
      - all
      - chat
      - none
    - auto: PREDEFINED
      defaultValue: 'true'
      description: Whether the channel is auto-closed when an investigation is closed.
      name: autoclose
      predefined:
      - 'true'
      - 'false'
    - auto: PREDEFINED
      defaultValue: Both
      description: The mirroring direction.
      name: direction
      predefined:
      - Both
      - FromDemisto
      - ToDemisto
    - description: The name of the channel. The default is "incident-<incidentID>".
      name: channel
    - auto: PREDEFINED
      defaultValue: 'false'
      description: Whether to remove the admin from the newly created channel. Default value is false.
      name: kickAdmin
      predefined:
      - 'true'
      - 'false'
    - auto: PREDEFINED
      defaultValue: 'group'
      description: Mirrors the investigation to a group (private channel) or a public channel. Default is group.
      name: mirrorTo
      predefined:
      - 'group'
      - 'channel'
    description: Mirrors the investigation between Mattermost and the Cortex XSOAR War Room.
    name: mirror-investigation
  - arguments:
    - auto: PREDEFINED
      default: true
      defaultValue: all
      description: The mirroring type. Can be "all", which mirrors everything, "chat", which mirrors only chats (not commands), or "none", which stops all mirroring.
      name: type
      predefined:
      - all
      - chat
      - none
    - auto: PREDEFINED
      defaultValue: 'true'
      description: Whether the channel is auto-closed when an investigation is closed.
      name: autoclose
      predefined:
      - 'true'
      - 'false'
    - auto: PREDEFINED
      defaultValue: Both
      description: The mirroring direction.
      name: direction
      predefined:
      - Both
      - FromDemisto
      - ToDemisto
    - description: The name of the channel. The default is "incident-<incidentID>".
      name: channel
    - auto: PREDEFINED
      defaultValue: 'false'
      description: Whether to remove the admin from the newly created channel. Default value is false.
      name: kickAdmin
      predefined:
      - 'true'
      - 'false'
    - auto: PREDEFINED
      defaultValue: 'group'
      description: Mirrors the investigation to a group (private channel) or a public channel.
      name: mirrorTo
      predefined:
      - 'group'
      - 'channel'
    description: Mirrors the investigation between Mattermost and the Cortex XSOAR War Room.
    name: mattermost-mirror-investigation
  - arguments:
    - name: page
      description: The page number to retrieve. Default value is 0.
    - name: page_size
      description: The size of the page to retrieve. Default value is 50.
    - name: limit
      description: How many results to retrieve. Will override the page and page_size
        arguments if given.
    - name: group
      description: Search for a specific group by this pattern.
    name: mattermost-list-groups
    outputs:
    - contextPath: Mattermost.Groups.id
      description: The ID of the group.
      type: String
    - contextPath: Mattermost.Groups.create_at
      description: The datetime the group was created.
      type: Unknown
    - contextPath: Mattermost.Groups.update_at
      description: The datetime the group was updated.
      type: Unknown
    - contextPath: Mattermost.Groups.delete_at
      description: The datetime the group was deleted.
      type: Unknown
    - contextPath: Mattermost.Groups.display_name
      description: The display name of the group.
      type: String
    - contextPath: Mattermost.Groups.name
      description: The name of the group.
      type: String
    - contextPath: Mattermost.Groups.description
      description: The description of the group.
      type: String
    - contextPath: Mattermost.Groups.source
      description: The source of the group.
      type: String
    - contextPath: Mattermost.Groups.remote_id
      description: The remote ID of the group.
      type: String
    - contextPath: Mattermost.Groups.has_syncables
      description: If the group has any syncables.
      type: boolean
    description: 'Lists groups. Groups are available on Enterprise and Professional plans. Minimum server version: 5.11'
  - name: mattermost-list-group-members
    arguments:
    - name: group_id
      required: true
      description: The group ID of the group to list members for. Use the command
        'mattermost-list-groups' to fetch the group ID.
    - name: page
      description: The page number to retrieve. Default value is 0.
    - name: page_size
      description: The size of the page to retrieve. Default value is 50.
    - name: limit
      description: How many results to retrieve. Will override the page and page_size
        arguments if given.
    outputs:
    - contextPath: Mattermost.Members.id
      description: The ID of the group member.
      type: String
    - contextPath: Mattermost.Members.first_name
      description: The first name of the group member.
      type: String
    - contextPath: Mattermost.Members.last_name
      description: The last name of the group member.
      type: String
    - contextPath: Mattermost.Members.username
      description: The username of the group member.
      type: String
    description: 'Lists group members. Groups are available on Enterprise and Professional plans. Minimum server version: 5.11'
  - name: mattermost-add-group-member
    arguments:
    - name: group_id
      required: true
      description: The group ID of the group to add the user to. Use the command
        'mattermost-list-groups' to fetch the group ID.
    - name: user_ids
      required: true
      isArray: true
      description: A comma-separated list of IDs of the users to add. Use the command 'mattermost-list-users'
        to fetch the user ID(s).
    description: 'Add group member(s). Groups are available on Enterprise and Professional plans. Minimum server version: 6.3'
  - name: mattermost-remove-group-member
    arguments:
    - name: group_id
      required: true
      description: The group ID of the group to remove the user from. Use the command
        'mattermost-list-groups' to fetch the group ID.
    - name: user_ids
      required: true
      isArray: true
      description: A comma-separated list of IDs of the users to remove. Use the command 'mattermost-list-users'
        to fetch the user ID(s).
    description: 'Remove group member(s). Groups are available on Enterprise and Professional plans. Minimum server version: 6.3'
  - name: mattermost-set-channel-role
    arguments:
    - name: channel_id
      required: true
      description: The channel ID to set the role in. Use the command 'mattermost-list-channels'
        to fetch the channel ID.
    - name: user_id
      required: true
      description: The ID of the user to set role for. Use the command 'mattermost-list-users'
        to fetch the user ID.
    - name: role
      auto: PREDEFINED
      predefined:
      - Admin
      - Member
      description: The role to set for the user.
      defaultValue: Member
    description: Update a user's roles for a channel. The user has to already be a member of the channel.
  longRunning: true
  runonce: false
  script: '-'
  type: python
  subtype: python3
  dockerimage: demisto/netutils:1.0.0.10187688
fromversion: 6.10.0
tests:
- MattermostV2 - testplaybook