- Home
- Resources
- Integrations
- Mattermost
Mattermost n8n integrationAutomate Mattermost with n8n.
Want every channel, message, and user account synced without opening the Mattermost admin console? The Mattermost n8n integration covers 19 operations across 4 resources, with no trigger of its own: a Schedule Trigger, or a Webhook (a URL another tool calls), starts the workflow instead.
Verified Trustpilot reviews · AI, automation & growth agency
What can the Mattermost n8n integration automate?
The Mattermost node in n8n creates and searches channels, posts and reacts to messages, and manages user accounts through the Mattermost API. It ships with 4 resources, Channel, Message, Reaction, and User, and covers 19 operations in total. The node has no trigger of its own: every workflow that touches Mattermost starts somewhere else, then calls this node to act.
Every morning a Schedule Trigger reads the start dates confirmed in Google Sheets: n8n opens a private channel with channel.create, sends the team invite by email with user.invite, then drops the new hire into the general channel with channel.addUser. The channel is ready before the first stand-up, and nobody copy-pastes a username by hand.
A monitoring tool calls an n8n Webhook when a deploy fails: message.post drops the error into the on-call channel, the stack trace sitting in the attachment's Text field and a red Color so it stands out in the channel list. Teams that also run Slack or Discord for other groups can branch the same workflow to both, and push the same alert to a phone with Pushover for whoever is on call.
A support ticket lands in a shared tracker: n8n posts an ephemeral message to the assigned agent with message.postEphemeral, visible only to them, then adds a reaction.create to the original post so the rest of the channel sees it is being handled, without another line cluttering the thread.
The node does not cover the full Mattermost API: team management, file uploads, and editing a message once it is posted are missing from the 19 operations. For those, the same Mattermost credential, the connection saved once in n8n and picked from a dropdown in every workflow after that, works in an HTTP Request node against any endpoint the dedicated node does not expose. Two more limits are worth knowing before building: several list operations depend on Return All, without it n8n stops at the value set in Limit; and channel.restore expects a raw channel ID, not a name picked from a list like the other channel operations.
Building the first workflow takes longer than reading about it. The n8n review covers what the platform handles well beyond chat, and the n8n training walks through connecting a first tool end to end.
How do you connect Mattermost to n8n?
- 01
Create a personal access token
In Mattermost, go to Profile, then Security, then Personal Access Tokens. Select Create Token, enter a description such as
n8n integrationso it stays recognizable later, save, then copy the Token ID Mattermost returns, ready to paste into the n8n credential in the next step. - 02
Add the Base URL
In n8n, open the Credentials menu and add a new Mattermost credential. Paste the copied value into Access Token, then enter the server's Base URL, the same address used to sign in to Mattermost day to day, such as a company's own Mattermost domain.
- 03
Connect the credential in the node
Save the credential, drop a Mattermost node into the workflow, and pick it from the node's credential dropdown; the same saved credential is reused across every workflow that touches Mattermost. On a self-hosted server without a valid certificate, turn on Ignore SSL Issues so the connection still goes through instead of failing.
What the Mattermost node can do
The Mattermost node exposes 19 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get Many | Delete | Add User | Deactive | Get By Email | Get By ID | Invite | Member | Post | Post Ephemeral | Restore | Search | Statistics |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Channel | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
| Message | ✓ | ✓ | ✓ | |||||||||||
| Reaction | ✓ | ✓ | ✓ | |||||||||||
| User | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Channel
7 operationsAdd a user to a channel
channel.addUserWhat you see in n8n
Notes & use cases
Adds one existing Mattermost user to a channel they are not yet a member of, without going through an invite link.
Key parameters
- Channel Name or ID: the channel to add the user to, picked from the dropdown or set with an expression, the
{{ }}syntax that reads a value off the incoming item, as in{{ $json.channelId }}. - User Name or ID: the user to add, picked the same way, often from a previous
user.getByEmailstep.
user.invite confirms the account exists.Create a channel
channel.createWhat you see in n8n
Notes & use cases
Creates a new Mattermost channel inside a team, public or private.
Key parameters
- Team Name or ID: the team the channel belongs to.
- Display Name: the name shown in the channel list, for example
Announcements. - Name: the unique handle used in the channel's URL, for example
announcements, lowercase and without spaces. - Type: choose
Public, open to the whole team, orPrivate, visible only to members added to it.
Delete a channel
channel.deleteWhat you see in n8n
Notes & use cases
Soft deletes a channel: Mattermost marks it as deleted rather than erasing it outright, so it can be brought back later.
Key parameters
- Channel Name or ID: the channel to remove, picked from the list or passed as an ID.
channel.restore if someone still needs the history.Get a page of members for a channel
channel.membersWhat you see in n8n
Notes & use cases
Reads back who actually sits in a channel, one page at a time.
Key parameters
- Team Name or ID and Channel Name or ID: both are required here, where
channel.deleteandchannel.statisticsask for the channel alone. - Resolve Data: off by default, n8n only returns each member's ID; switch it on to get the full user object for every member in the same call.
- Return All: unchecked, n8n stops at Limit; checked, it pages through every member.
user.deactive has already closed.Restore a soft-deleted channel
channel.restoreWhat you see in n8n
Notes & use cases
Brings back a channel previously removed with channel.delete.
Key parameters
- Channel ID: unlike the other channel operations, this one is a plain string field, not a dropdown, so the exact ID has to be supplied directly rather than picked from a list.
Search for a channel
channel.searchWhat you see in n8n
Notes & use cases
Searches for channels inside one team by matching text against the channel name.
Key parameters
- Team Name or ID: the team to search in.
- Search Term: the text to match, for example
General. - Return All and Limit: the same pagination behavior as the other list operations, useful once a team has more channels than fit on one page.
channel.create makes a duplicate with a slightly different name, or looking up a channel's ID from its name for a later step.Get statistics for a channel
channel.statisticsWhat you see in n8n
Notes & use cases
Returns a quick usage snapshot for one channel, without opening Mattermost itself and without counting anything by hand.
Key parameters
- Channel Name or ID: the channel to read statistics for, picked from the dropdown or passed as an ID.
channel.search returns for a team, then archiving with channel.delete the ones the numbers show nobody posts in anymore.Message
3 operationsDelete a message
message.deleteWhat you see in n8n
Notes & use cases
Marks a post as deleted in the database instead of erasing it, the same treatment channel.delete gives a channel.
Key parameters
- Post ID: the ID of the post to delete, typed in or passed through an expression, since this field has no dropdown to pick from.
message.post has already replaced.Post a message
message.postWhat you see in n8n
Notes & use cases
Posts a message into a channel, with plain text or a richer attachment.
Key parameters
- Channel Name or ID: the destination channel.
- Message: the text of the post, and not a required field; only Channel Name or ID is, so a post can carry an attachment and no text at all.
- Parent Post ID: set it to reply in a thread instead of starting a new post.
- Color and Fallback Text: inside Attachments, the color bar down the left edge and the required plain-text summary shown when the rich formatting cannot render.
Post an ephemeral message
message.postEphemeralWhat you see in n8n
Notes & use cases
One person sees this message and nobody else, since nothing is stored for the rest of the channel.
Key parameters
- User Name or ID: the only person who will see the message.
- Channel Name or ID: the channel the message appears in, for that one person.
- Message: the text to show.
Reaction
3 operationsCreate a reaction
reaction.createWhat you see in n8n
Notes & use cases
Adds an emoji reaction to an existing post.
Key parameters
- User Name or ID: the user the reaction is posted as.
- Post ID: the post to react to, the string that follows
/pl/in its permalink. - Emoji Name: the emoji to use, without the surrounding colons.
Delete a reaction
reaction.deleteWhat you see in n8n
Notes & use cases
Removes one specific reaction from a post, leaving every other reaction on that post exactly as it was.
Key parameters
- User Name or ID: whose reaction to remove.
- Post ID: the post the reaction sits on, read from the
/pl/part of its permalink. - Emoji Name: the exact emoji to remove; other reactions on the same post stay untouched.
reaction.create adds the done one in its place, so a post never carries both at once.Get many reactions
reaction.getAllWhat you see in n8n
Notes & use cases
Reads back the reactions on a post, or on a whole batch of posts at once.
Key parameters
- Post ID: one post ID, or several separated by commas, to read reactions from in a single call.
- Return All and Limit: the same pagination as the other list operations, useful on a post with a long reaction list.
User
6 operationsCreate a user
user.createWhat you see in n8n
Notes & use cases
Adds a new Mattermost user account, with just a username or a full profile.
Key parameters
- Username: the only required field.
- Email and Password: needed together for email authentication; Auth Service switches to
LDAP,SAML,Google,Office365, orGitlabinstead. - First Name, Last Name, Nickname: inside Additional Fields, the profile details shown next to every post.
user.invite adds the person to a team.Deactivate a user
user.deactiveWhat you see in n8n
Notes & use cases
Deactivates a user and revokes every one of their active sessions by archiving the user object; unlike a delete, the account and its history stay in place.
Key parameters
- User ID: the account's GUID, not the username, usually read from a previous
user.getByEmailstep.
Get a user by email
user.getByEmailWhat you see in n8n
Notes & use cases
Looks up a single Mattermost user account from their email address, returning the full user object rather than just an ID.
Key parameters
- Email: the address to search for, matched exactly, for example
name@email.com.
channel.addUser or message.postEphemeral need further down that same workflow, no separate lookup step required.Get a user by ID
user.getByIdWhat you see in n8n
Notes & use cases
Fetches a single user's full profile from their ID, everything channel.members leaves out when Resolve Data is off.
Key parameters
- User IDs: the label reads plural, the operation returns one user, so a single ID goes in the field.
- Since: inside Additional Fields, only returns the user if their profile changed after this Unix timestamp, given in milliseconds.
Get many users
user.getAllWhat you see in n8n
Notes & use cases
Pulls the user directory off the server, with no required field to fill in.
Key parameters
- Return All and Limit: the same pagination as the other list operations.
- In Channel and In Team: inside Additional Fields, narrow the list to one channel or team instead of the whole server.
- Not In Channel and Not In Team: the mirror filters, for listing the people a channel or a team is still missing.
- Sort: order by
username,status,createdAt, orlastActivityAt.
channel.addUser.Invite a user
user.inviteWhat you see in n8n
Notes & use cases
Invites one or more people to a Mattermost team by email, the step that turns an address into an account once someone accepts. The invite covers the team; getting that person into a channel still runs through channel.addUser.
Key parameters
- Team Name or ID: the team the invite is for.
- Emails: one address, or several separated by commas, sent in a single call.
channel.create sets up a new project channel, so the invite and the channel land together.Need help automating Mattermost with n8n?
A person reads every message.


