Using Mattermost with Webhook

Webhook is a Golang application for setting up webhooks on a server with minimal configuration. It provides a simple way to trigger events on a server while keeping it separate from your web server.

Mattermost’s outgoing webhooks feature can be used with this fairly easily as long as you take a few things into account.

Sending information from Mattermost

Mattermost’s interactive message buttons send information using a parameter called «context.» The easiest way to get all the information from Mattermost is to use the following configuration, which will pass the entire payload to your script as a string:

{
«source»: «entire-payload»

}

Responding to the request

If you don’t respond to the request you’ll see an error in your Mattermost logs that looks like Action integration error [details: err=EOF].

To solve this, use the response-message configuration property to send back a response to prevent this. This response is sent immediately after receiving the webhook.

If your script doesn’t take very long to run you can use the include-command-output-in-response property to send that output to the Mattermost server.

Authenticating Requests

Mattermost can be configured to send a token with an outgoing webhook to make sure that your webhook only responds to authorized requests. To enable this, use the following in your webhook configuration:

«trigger-rule»: {

«match»: {

«type»: «value», «value»: «<Outgoing webhook token>», «parameter»: {

«source»: «request», «name»: «token»

}

}

}