Mattermost – Sync with existing chat systems

Most of my prospects and customers used a tool for simple chat in the past. Some already have sophisticated collaboration platforms and need to keep two or more systems up and running for a migration period of time. Most of the times this is due to financial aspects “We already paid tool xyz…” or it’s an organizational challenge ” We can’t move everybody immediately!”

So they start questioning how to keep the existing chat system up and running while establishing Mattermost as their new collaboration platform without loosing the other chats. Beside the option to use WebHooks and write a plugin I discovered a tool called: “matterbridge”.

matterbridge allows to create a link between tools like Slack to Mattermost for people who want to migrate.

I created an additional virtual machine to host matterbridge and give it a try. After setting up “Go” properly it was just easy to grab the binaries using:

cd $GOPATH
go get github.com/42wim/matterbridge

Now there’s a matterbridge binary available and the configuration part can begin. In my case I wanted to have everything that’s posted in a Slack channel available in a Mattermost channel (slack-synced). Please note that you have to follow the steps here to create the Slack API token. So my configuration file looks like:

[slack]
[slack.clickedways]
Token="TOKEN"
PrefixMessagesWithNick=true

[mattermost]
[mattermost.work]
Server="MATTERMOST:8065"
NoTLS=true
Team="dach"
Login="USERNAME" sd
Password="PASSWORD"
PrefixMessagesWithNick=true
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

[[gateway]]
name="mygateway"
enable=true
[[gateway.inout]]
account="slack.clickedways"
channel="testchannel"
[[gateway.inout]]
account="mattermost.work"
channel="slack-synced"

Now that matterbridge is configured it’s time to start it:

./matterbridge

With having a successful run you can set matterbridge up as a service, docker container or even as a Mattermost plugin. 

./matterbrige output

Now everything that’s written in the Slack channel (customer) is shown in the Mattermost channel and can be commented or used for further conversations.

Slack channel view

The “RemoteNickFormat” can be customized to your needs in the configuration file.

Mattermost synced message

Right now Matterbridge supports a lot of different message protocols and chat solutions (XMPP, Discord, Telegram, Slack etc.). So while you keep folks happy on the existing system there’s an easy way of keeping everybody in Mattermost up-to-date.

Leave a Reply