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:

    "type": "value",
    "value": "<Outgoing webhook token>",
      "source": "request",
      "name": "token"