Mattermost Logo
We're hiring!
Edit on GitHub

Using Mattermost with Golang Webhook

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"
        }
      }
    }