---
title: "Slack, Discord and Teams messages - Workflow Suite"
description: "Post a message to a Slack, Discord or Microsoft Teams channel from a workflow, through the channel's webhook URL kept in a secret."
canonical: "https://docs.workflow-suite.app/slack-discord-teams"
---

# Slack, Discord and Teams messages

Three ready-made actions post a message to a channel of your team chat: **Send Slack message**, **Send Discord message** and **Send Microsoft Teams message**. All three work through a webhook URL that you create in the chat tool. There is nothing to install and no account to connect.

## 1. Create the webhook URL in your chat tool

- **Slack**: create an incoming webhook for the channel. The URL starts with `https://hooks.slack.com/services/`.
- **Discord**: in the channel's settings, under integrations, create a webhook and copy its URL. It starts with `https://discord.com/api/webhooks/`.
- **Microsoft Teams**: create a Workflows webhook or an incoming webhook for the channel and copy its URL.

The exact menus change from time to time; each tool's own help describes them.

## 2. Save the URL as a secret

Anyone with this URL can post to the channel. Do not paste it into the step.

1. Open **Secrets** and select **Create secret**.
2. Name it, for example `SLACK_WEBHOOK_URL`, and paste the URL as the value.

See [Secrets](https://docs.workflow-suite.app/secrets.md).

## 3. Add the action

1. Press **+** and search for `slack`, `discord` or `teams`. The actions are in the group **Actions**.
2. In **Webhook URL**, reference the secret:

```liquid
{{ secrets.SLACK_WEBHOOK_URL }}
```

3. Write the **Message**, with variables:

```liquid
New order {{ event.payload.name }} for {{ event.payload.total_price }} {{ event.payload.currency }}
```

| Action | Extra fields | Notes |
| --- | --- | --- |
| Send Slack message | none | Slack's own text formatting works in the message |
| Send Discord message | **Sender name** (optional, overrides the webhook's default name) | Discord accepts up to 2,000 characters; longer messages are cut |
| Send Microsoft Teams message | **Title** (optional) | |

## Keep channels readable

A channel that gets a message for every event is muted within a week. Some patterns from the templates:

- **Filter first.** Put a trigger filter on the workflow, so only big orders, low stock or high-risk orders produce a message. See [Trigger filters](https://docs.workflow-suite.app/trigger-filters.md).
- **Count, then tell.** The storefront templates count events in the key-value store and only post when a threshold is reached. See [Key-value store and Storage](https://docs.workflow-suite.app/key-value-store-and-storage.md).
- **Sum up.** A scheduled workflow that posts one daily summary often replaces fifty single messages. See [Schedules](https://docs.workflow-suite.app/schedules.md).

## What happens when it runs

- In a preview, no message is posted. The step shows what it would have sent.
- If the chat tool answers with an error, the step fails with that answer.
- The message may contain personal data if you put it there. Think about who reads the channel.

## Another chat tool?

Any tool that accepts a webhook works with **Post JSON to a URL** or the **HTTP request** step. See [HTTP request](https://docs.workflow-suite.app/http-request.md).

## Related

- [Recipe: low stock alert to Slack](https://docs.workflow-suite.app/recipe-low-stock-alert-to-slack.md)
- [Ready-made Shopify actions](https://docs.workflow-suite.app/shopify-actions.md)
