Mattermost

App · 20 actions

Send messages, replies and reactions in Mattermost, search and read channel history, and create, update and archive channels and their members on your own server or Mattermost Cloud.

Actions

ActionWhat it does
Add people to channelAdd one or more people to a channel.
Add reactionReact to a post with an emoji, as the connected account.
Archive channelArchive a public or private channel.
Create channelCreate a public or private channel in a team.
Delete postDelete a post.
Edit postReplace a post's text.
Get channelGet one channel with its name, purpose, header and message count.
Get personGet one person's profile by user id.
Get postGet one post with its text, author, thread and reactions.
Get threadGet a thread, with its first post and every reply, oldest first.
List channel postsList a channel's posts, newest first, a page at a time, or every post created or changed since a moment (up to 1,000).
List my channelsList every channel the connected account is in on a team: public, private, direct and group messages.
List my teamsList every team the connected account is on, with their ids.
Open direct messageOpen the direct-message channel between the connected account and one person, creating it if needed.
Pin postPin a post to its channel, so it shows under the channel's pinned messages.
Remove person from channelRemove someone from a public or private channel.
Search peopleFind people by username, name, nickname or email.
Search postsSearch a team's messages.
Send messagePost a message to a channel, or reply in a thread by giving the thread's first post.
Update channelChange a channel's name, URL name, purpose or header.

Add people to channel

Add one or more people to a channel. They must already be on the channel's team. 'me' adds the connected account.

Inputs

ChannelchanneltextRequired
Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').
PeoplememberslistRequired
User ids to add ('Search people' finds them), or 'me'.

Outputs

channel_idtext
Channel id
countnumber
How many people were added
memberslist
The memberships added
Example output
{
  "channel_id": "cccccccccccccccccccccccccc",
  "count": 1,
  "members": [
    {
      "channel_id": "cccccccccccccccccccccccccc",
      "last_viewed_at": "",
      "mention_count": 0,
      "msg_count": 0,
      "roles": "channel_user",
      "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
    }
  ]
}

Add reaction

React to a post with an emoji, as the connected account.

Inputs

Postpost_idtextRequired
The post's id, or its link from Mattermost (a message's ... menu > Copy Link).
Emojiemoji_nametextRequired
The emoji's name, as typed after a colon in Mattermost, such as thumbsup or white_check_mark.

Outputs

created_attext
When the reaction was added
emoji_nametext
The emoji's name, such as thumbsup
post_idtext
Id of the post reacted to
user_idtext
Id of the person who reacted
Example output
{
  "created_at": "2025-10-14T10:00:00.000Z",
  "emoji_name": "thumbsup",
  "post_id": "pppppppppppppppppppppppppp",
  "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
}

Archive channel

Archive a public or private channel. Its messages are kept, and an admin can restore it in Mattermost.

Inputs

ChannelchanneltextRequired
Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').

Outputs

archivedtrue/false
Always true
channel_idtext
Id of the archived channel
Example output
{
  "archived": true,
  "channel_id": "cccccccccccccccccccccccccc"
}

Create channel

Create a public or private channel in a team. You become its admin.

Inputs

TeamteamtextRequired
Pick one of your teams, or enter a team id.
Channel namedisplay_nametextRequired
The name people see, such as Q3 Launch.
URL namenametext
The name in the channel's link: lowercase letters, digits and hyphens. Made from the channel name when empty.
Who can joinchannel_typetext
Public channels are open to the whole team.One of: O (Public (anyone on the team can join)), P (Private (invite only)). Default: O.
Purposepurposetext
What the channel is for.
Headerheadertext
Text shown at the top of the channel. Markdown works.

Outputs

archivedtrue/false
Whether it is archived
archived_attext
When it was archived, or empty
created_attext
When it was created
creator_idtext
Id of the person who created it
display_nametext
The name people see
headertext
The header shown at the top of the channel
idtext
Channel id
last_post_attext
When the last message was posted
message_countnumber
How many messages it holds
nametext
URL name, as in the channel's link
purposetext
What the channel is for
team_idtext
Id of its team (empty for direct messages)
typetext
O public, P private, D direct or G group message
type_labeltext
The type in words, such as public
updated_attext
When it last changed
Example output
{
  "archived": false,
  "archived_at": "",
  "created_at": "2025-10-14T10:00:00.000Z",
  "creator_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu",
  "display_name": "Releases",
  "header": "Release announcements",
  "id": "cccccccccccccccccccccccccc",
  "last_post_at": "2025-10-14T10:00:00.000Z",
  "message_count": 12,
  "name": "releases",
  "purpose": "Where deploys are announced",
  "team_id": "tttttttttttttttttttttttttt",
  "type": "O",
  "type_label": "public",
  "updated_at": "2025-10-14T10:00:00.000Z"
}

Delete post

Delete a post. Deleting a thread's first post deletes its replies too.

Inputs

Postpost_idtextRequired
The post's id, or its link from Mattermost (a message's ... menu > Copy Link).

Outputs

deletedtrue/false
Always true
post_idtext
Id of the deleted post
Example output
{
  "deleted": true,
  "post_id": "pppppppppppppppppppppppppp"
}

Edit post

Replace a post's text. Only your own posts, unless the account may edit others' posts.

Inputs

Postpost_idtextRequired
The post's id, or its link from Mattermost (a message's ... menu > Copy Link).
MessagemessagetextRequired
The message text. Markdown, @mentions and emoji like :tada: work.

Outputs

channel_idtext
Id of the channel it is in
created_attext
When it was posted
deletedtrue/false
Whether it has been deleted
edited_attext
When its text was last edited, or empty
file_idslist
Ids of attached files
hashtagslist
Hashtags in the message
idtext
Post id
is_replytrue/false
Whether it is a reply in a thread
messagetext
The message text (Markdown)
prioritytext
standard, important or urgent
reactionslist
Emoji reactions on the post
root_idtext
Id of the thread's first post, for a reply; else empty
typetext
Empty for a normal post, or a system post type
updated_attext
When it last changed
user_idtext
Id of the author
Example output
{
  "channel_id": "cccccccccccccccccccccccccc",
  "created_at": "2025-10-14T10:00:00.000Z",
  "deleted": false,
  "edited_at": "",
  "file_ids": [],
  "hashtags": [
    "#release"
  ],
  "id": "pppppppppppppppppppppppppp",
  "is_reply": false,
  "message": "Deploy finished :tada: #release",
  "priority": "standard",
  "reactions": [],
  "root_id": "",
  "type": "",
  "updated_at": "2025-10-14T10:00:00.000Z",
  "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
}

Get channel

Get one channel with its name, purpose, header and message count.

Inputs

ChannelchanneltextRequired
Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').

Outputs

archivedtrue/false
Whether it is archived
archived_attext
When it was archived, or empty
created_attext
When it was created
creator_idtext
Id of the person who created it
display_nametext
The name people see
headertext
The header shown at the top of the channel
idtext
Channel id
last_post_attext
When the last message was posted
message_countnumber
How many messages it holds
nametext
URL name, as in the channel's link
purposetext
What the channel is for
team_idtext
Id of its team (empty for direct messages)
typetext
O public, P private, D direct or G group message
type_labeltext
The type in words, such as public
updated_attext
When it last changed
Example output
{
  "archived": false,
  "archived_at": "",
  "created_at": "2025-10-14T10:00:00.000Z",
  "creator_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu",
  "display_name": "Releases",
  "header": "Release announcements",
  "id": "cccccccccccccccccccccccccc",
  "last_post_at": "2025-10-14T10:00:00.000Z",
  "message_count": 12,
  "name": "releases",
  "purpose": "Where deploys are announced",
  "team_id": "tttttttttttttttttttttttttt",
  "type": "O",
  "type_label": "public",
  "updated_at": "2025-10-14T10:00:00.000Z"
}

Get person

Get one person's profile by user id. Leave it as 'me' for the connected account.

Inputs

Personpersontext
A user id, or 'me' for the connected account.Default: me.

Outputs

auth_servicetext
How they sign in, empty for email/password
created_attext
When the account was created
deactivatedtrue/false
Whether the account is deactivated
emailtext
Email address, empty if the server hides it
first_nametext
First name
full_nametext
First and last name, or the username
idtext
User id
last_nametext
Last name
localetext
Language, such as en
nicknametext
Nickname
rolestext
System roles, space separated
updated_attext
When it last changed
usernametext
Username, without @
Example output
{
  "auth_service": "",
  "created_at": "2025-10-14T10:00:00.000Z",
  "deactivated": false,
  "email": "jordan@example.com",
  "first_name": "Jordan",
  "full_name": "Jordan Smith",
  "id": "uuuuuuuuuuuuuuuuuuuuuuuuuu",
  "last_name": "Smith",
  "locale": "en",
  "nickname": "",
  "roles": "system_user",
  "updated_at": "2025-10-14T10:00:00.000Z",
  "username": "jordan"
}

Get post

Get one post with its text, author, thread and reactions.

Inputs

Postpost_idtextRequired
The post's id, or its link from Mattermost (a message's ... menu > Copy Link).

Outputs

channel_idtext
Id of the channel it is in
created_attext
When it was posted
deletedtrue/false
Whether it has been deleted
edited_attext
When its text was last edited, or empty
file_idslist
Ids of attached files
hashtagslist
Hashtags in the message
idtext
Post id
is_replytrue/false
Whether it is a reply in a thread
messagetext
The message text (Markdown)
prioritytext
standard, important or urgent
reactionslist
Emoji reactions on the post
root_idtext
Id of the thread's first post, for a reply; else empty
typetext
Empty for a normal post, or a system post type
updated_attext
When it last changed
user_idtext
Id of the author
Example output
{
  "channel_id": "cccccccccccccccccccccccccc",
  "created_at": "2025-10-14T10:00:00.000Z",
  "deleted": false,
  "edited_at": "",
  "file_ids": [],
  "hashtags": [
    "#release"
  ],
  "id": "pppppppppppppppppppppppppp",
  "is_reply": false,
  "message": "Deploy finished :tada: #release",
  "priority": "standard",
  "reactions": [],
  "root_id": "",
  "type": "",
  "updated_at": "2025-10-14T10:00:00.000Z",
  "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
}

Get thread

Get a thread, with its first post and every reply, oldest first. Any post in the thread will do.

Inputs

Postpost_idtextRequired
The post's id, or its link from Mattermost (a message's ... menu > Copy Link).

Outputs

countnumber
How many posts were returned
has_nexttrue/false
Whether more posts follow this page
next_post_idtext
Id of the post after this page, if any
postslist
The posts
prev_post_idtext
Id of the post before this page, if any
Example output
{
  "count": 1,
  "has_next": false,
  "next_post_id": "",
  "posts": [
    {
      "channel_id": "cccccccccccccccccccccccccc",
      "created_at": "2025-10-14T10:00:00.000Z",
      "deleted": false,
      "edited_at": "",
      "file_ids": [],
      "hashtags": [
        "#release"
      ],
      "id": "pppppppppppppppppppppppppp",
      "is_reply": false,
      "message": "Deploy finished :tada: #release",
      "priority": "standard",
      "reactions": [],
      "root_id": "",
      "type": "",
      "updated_at": "2025-10-14T10:00:00.000Z",
      "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
    }
  ],
  "prev_post_id": ""
}

List channel posts

List a channel's posts, newest first, a page at a time, or every post created or changed since a moment (up to 1,000).

Inputs

ChannelchanneltextRequired
Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').
Pagepagenumber
Which page to read, starting at 0 for the newest.At least 0. Default: 0.
Posts per pageper_pagenumber
How many posts per page, up to 200.From 1 to 200. Default: 60.
Changed sincesincedate and time
Instead of paging, return posts created or changed after this moment. Cannot be combined with paging.

Outputs

countnumber
How many posts were returned
has_nexttrue/false
Whether more posts follow this page
next_post_idtext
Id of the post after this page, if any
postslist
The posts
prev_post_idtext
Id of the post before this page, if any
Example output
{
  "count": 1,
  "has_next": false,
  "next_post_id": "",
  "posts": [
    {
      "channel_id": "cccccccccccccccccccccccccc",
      "created_at": "2025-10-14T10:00:00.000Z",
      "deleted": false,
      "edited_at": "",
      "file_ids": [],
      "hashtags": [
        "#release"
      ],
      "id": "pppppppppppppppppppppppppp",
      "is_reply": false,
      "message": "Deploy finished :tada: #release",
      "priority": "standard",
      "reactions": [],
      "root_id": "",
      "type": "",
      "updated_at": "2025-10-14T10:00:00.000Z",
      "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
    }
  ],
  "prev_post_id": ""
}

List my channels

List every channel the connected account is in on a team: public, private, direct and group messages.

Inputs

TeamteamtextRequired
Pick one of your teams, or enter a team id.
Include archivedinclude_archivedtrue/false
Also list archived channels.Default: false.

Outputs

channelslist
The channels
countnumber
How many channels were returned
Example output
{
  "channels": [
    {
      "archived": false,
      "archived_at": "",
      "created_at": "2025-10-14T10:00:00.000Z",
      "creator_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu",
      "display_name": "Releases",
      "header": "Release announcements",
      "id": "cccccccccccccccccccccccccc",
      "last_post_at": "2025-10-14T10:00:00.000Z",
      "message_count": 12,
      "name": "releases",
      "purpose": "Where deploys are announced",
      "team_id": "tttttttttttttttttttttttttt",
      "type": "O",
      "type_label": "public",
      "updated_at": "2025-10-14T10:00:00.000Z"
    }
  ],
  "count": 1
}

List my teams

List every team the connected account is on, with their ids.

Inputs

None.

Outputs

countnumber
How many teams were returned
teamslist
The teams
Example output
{
  "count": 1,
  "teams": [
    {
      "allow_open_invite": false,
      "created_at": "2025-10-14T10:00:00.000Z",
      "description": "",
      "display_name": "Engineering",
      "id": "tttttttttttttttttttttttttt",
      "name": "engineering",
      "type": "O"
    }
  ]
}

Open direct message

Open the direct-message channel between the connected account and one person, creating it if needed. Send to it with 'Send message' and the returned channel id.

Inputs

PersonmembertextRequired
The user id of the person to message ('Search people' finds it), or 'me' for your own notes channel.

Outputs

archivedtrue/false
Whether it is archived
archived_attext
When it was archived, or empty
created_attext
When it was created
creator_idtext
Id of the person who created it
display_nametext
The name people see
headertext
The header shown at the top of the channel
idtext
Channel id
last_post_attext
When the last message was posted
message_countnumber
How many messages it holds
nametext
URL name, as in the channel's link
purposetext
What the channel is for
team_idtext
Id of its team (empty for direct messages)
typetext
O public, P private, D direct or G group message
type_labeltext
The type in words, such as public
updated_attext
When it last changed
Example output
{
  "archived": false,
  "archived_at": "",
  "created_at": "2025-10-14T10:00:00.000Z",
  "creator_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu",
  "display_name": "Releases",
  "header": "Release announcements",
  "id": "cccccccccccccccccccccccccc",
  "last_post_at": "2025-10-14T10:00:00.000Z",
  "message_count": 12,
  "name": "releases",
  "purpose": "Where deploys are announced",
  "team_id": "tttttttttttttttttttttttttt",
  "type": "D",
  "type_label": "direct message",
  "updated_at": "2025-10-14T10:00:00.000Z"
}

Pin post

Pin a post to its channel, so it shows under the channel's pinned messages.

Inputs

Postpost_idtextRequired
The post's id, or its link from Mattermost (a message's ... menu > Copy Link).

Outputs

pinnedtrue/false
Always true
post_idtext
Id of the pinned post
Example output
{
  "pinned": true,
  "post_id": "pppppppppppppppppppppppppp"
}

Remove person from channel

Remove someone from a public or private channel. 'me' makes the connected account leave it.

Inputs

ChannelchanneltextRequired
Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').
PersonmembertextRequired
The user id of the person to remove, or 'me' to leave.

Outputs

channel_idtext
Channel id
removedtrue/false
Always true
user_idtext
Id of the person removed
Example output
{
  "channel_id": "cccccccccccccccccccccccccc",
  "removed": true,
  "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
}

Search people

Find people by username, name, nickname or email. Use it to look up the user id other actions need.

Inputs

Search fortermtextRequired
Part of a username, name, nickname or email.
Teamteamtext
Only people on this team. Pick one of your teams, or enter a team id.
In channelin_channeltext
Only people in this channel. Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').
Include deactivated peopleinclude_inactivetrue/false
Also return deactivated accounts.Default: false.
Maximum resultslimitnumber
How many people to return, up to 100.From 1 to 100. Default: 100.

Outputs

countnumber
How many people matched
userslist
The matching people
Example output
{
  "count": 1,
  "users": [
    {
      "auth_service": "",
      "created_at": "2025-10-14T10:00:00.000Z",
      "deactivated": false,
      "email": "jordan@example.com",
      "first_name": "Jordan",
      "full_name": "Jordan Smith",
      "id": "uuuuuuuuuuuuuuuuuuuuuuuuuu",
      "last_name": "Smith",
      "locale": "en",
      "nickname": "",
      "roles": "system_user",
      "updated_at": "2025-10-14T10:00:00.000Z",
      "username": "jordan"
    }
  ]
}

Search posts

Search a team's messages. Supports Mattermost's search syntax: "exact phrase", from:username, in:channel-name, before:/after:/on: YYYY-MM-DD and -excluded words.

Inputs

TeamteamtextRequired
Pick one of your teams, or enter a team id.
Search fortermstextRequired
Words to find, with optional search modifiers.
Match any wordmatch_anytrue/false
Find posts with any of the words, instead of all of them.Default: false.

Outputs

countnumber
How many posts matched
postslist
The matching posts, newest first
Example output
{
  "count": 1,
  "posts": [
    {
      "channel_id": "cccccccccccccccccccccccccc",
      "created_at": "2025-10-14T10:00:00.000Z",
      "deleted": false,
      "edited_at": "",
      "file_ids": [],
      "hashtags": [
        "#release"
      ],
      "id": "pppppppppppppppppppppppppp",
      "is_reply": false,
      "message": "Deploy finished :tada: #release",
      "priority": "standard",
      "reactions": [],
      "root_id": "",
      "type": "",
      "updated_at": "2025-10-14T10:00:00.000Z",
      "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
    }
  ]
}

Send message

Post a message to a channel, or reply in a thread by giving the thread's first post. Mark it Important or Urgent to highlight it (Entry, Professional and Enterprise servers).

Inputs

ChannelchanneltextRequired
Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').
MessagemessagetextRequired
The message text. Markdown, @mentions and emoji like :tada: work.
Reply to postroot_idtext
To reply in a thread, the id or link of the thread's first post. Leave empty for a new message.
Priorityprioritytext
Important and Urgent add a label to the message. Not available on Team Edition servers.One of: standard, important, urgent. Default: standard.

Outputs

channel_idtext
Id of the channel it is in
created_attext
When it was posted
deletedtrue/false
Whether it has been deleted
edited_attext
When its text was last edited, or empty
file_idslist
Ids of attached files
hashtagslist
Hashtags in the message
idtext
Post id
is_replytrue/false
Whether it is a reply in a thread
messagetext
The message text (Markdown)
prioritytext
standard, important or urgent
reactionslist
Emoji reactions on the post
root_idtext
Id of the thread's first post, for a reply; else empty
typetext
Empty for a normal post, or a system post type
updated_attext
When it last changed
user_idtext
Id of the author
Example output
{
  "channel_id": "cccccccccccccccccccccccccc",
  "created_at": "2025-10-14T10:00:00.000Z",
  "deleted": false,
  "edited_at": "",
  "file_ids": [],
  "hashtags": [
    "#release"
  ],
  "id": "pppppppppppppppppppppppppp",
  "is_reply": false,
  "message": "Deploy finished :tada: #release",
  "priority": "standard",
  "reactions": [],
  "root_id": "",
  "type": "",
  "updated_at": "2025-10-14T10:00:00.000Z",
  "user_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu"
}

Update channel

Change a channel's name, URL name, purpose or header. Fields left empty stay as they are. Direct messages only take a header.

Inputs

ChannelchanneltextRequired
Pick one of your channels, or enter a channel id (from the channel name > View Info in Mattermost, or 'List my channels').
Channel namedisplay_nametext
A new name people see.
URL namenametext
A new name for the channel's link. Old links stop working.
Purposepurposetext
A new purpose.
Headerheadertext
A new header. Markdown works.

Outputs

archivedtrue/false
Whether it is archived
archived_attext
When it was archived, or empty
created_attext
When it was created
creator_idtext
Id of the person who created it
display_nametext
The name people see
headertext
The header shown at the top of the channel
idtext
Channel id
last_post_attext
When the last message was posted
message_countnumber
How many messages it holds
nametext
URL name, as in the channel's link
purposetext
What the channel is for
team_idtext
Id of its team (empty for direct messages)
typetext
O public, P private, D direct or G group message
type_labeltext
The type in words, such as public
updated_attext
When it last changed
Example output
{
  "archived": false,
  "archived_at": "",
  "created_at": "2025-10-14T10:00:00.000Z",
  "creator_id": "uuuuuuuuuuuuuuuuuuuuuuuuuu",
  "display_name": "Releases",
  "header": "Release announcements",
  "id": "cccccccccccccccccccccccccc",
  "last_post_at": "2025-10-14T10:00:00.000Z",
  "message_count": 12,
  "name": "releases",
  "purpose": "Where deploys are announced",
  "team_id": "tttttttttttttttttttttttttt",
  "type": "O",
  "type_label": "public",
  "updated_at": "2025-10-14T10:00:00.000Z"
}

On this page