# Mattermost: post message

The **Mattermost: post message** Point template posts a message to a Mattermost channel with a bot account's token, on your own Mattermost instance or Pushwoosh's.

This point authenticates with its own bot token — it doesn't use any account-level integration configured elsewhere in Settings.

## Configure the point

1. Drag **Mattermost: post message** from the **Integrations** section of the left panel onto the canvas.
2. Double-click the point and enter a **Step Name**.
3. In **Instance host**, enter your Mattermost server's host, for example `chat.example.com`. Don't include `https://` or a trailing slash — Pushwoosh adds `https://` and the API path itself.
4. In **Bot token**, enter the token of a bot account that's a member of the target channel. It's stored masked, like a webhook secret header, and Mattermost never returns it back to Pushwoosh.
5. In **Channel ID**, enter the channel's 26-character ID, not its name.
6. In **Message**, enter the text to post. It takes the same macros as any Webhook body: `{{device:hwid}}`, `{{device:user_id}}`, `{{tag:Name}}`.
7. Click **Save**.

<Aside type="caution">
If you configured this point before it took a server host (when it only posted to Pushwoosh's own Mattermost), open it and check **Instance host**. A point carried over from that version can have a full URL in this field instead of a bare host, and Pushwoosh would send the request to `https://` followed by that URL — for example `https://https://chat.example.com`, which fails. Replace it with just the host, without `https://` or a trailing slash.
</Aside>

## Response

After the step runs, the created post's ID is available in later steps as attribute **`mattermost_post_id`** — use it the same way you'd use a [Webhook response attribute](/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables), for example to set a Tag with [Update user profile](/product/customer-journey/journey-elements/flow-controls/update-user-profile/#use-a-value-from-a-webhook-response).

A failed request drops the traveler from the journey — see [Errors and failed requests](/product/customer-journey/journey-elements/integrations/#errors-and-failed-requests).