---
title: Slack-triggered AI agent
slug: slack-triggered-ai-agent
image: https://archbee-image-uploads.s3.amazonaws.com/oAyFj2GHlBeBVWF5OAir2/I6Uae8yH26pFl5F9RgKxd_triggers-1.png
docTags: 
createdAt: 2026-03-19T10:57:39.450Z
---

This Slack-triggered AI agent scenario watches a Slack channel for new user messages and the agent replies to them.&#x20;

![](https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/M3aaCfhVvfEOLil4pyBmt_slack-trigger-ai-agent.png)

## Prerequisites

- A **Slack account&#x20;**&#x77;ith a **private channel&#x20;**&#x66;or interacting with the agent

:::hint{type="info"}
While a private channel is more convenient for testing, you can use either a private or public channel.
:::

## Step 1. Add a Watch New Events module

The **Slack&#x20;**> **Watch New Events&#x20;**&#x6D;odule watches your Slack channel for new messages, so the agent receives them when they arrive.&#x20;

To add a **Watch New Events&#x20;**&#x6D;odule:&#x20;

:::::WorkflowBlock
:::WorkflowBlockItem
In the Scenario Builder, click the giant plus.&#x20;
:::

:::WorkflowBlockItem
In the app search, search for and click **Slack**.&#x20;
:::

:::WorkflowBlockItem
Click **Watch New Events**.&#x20;
:::

:::WorkflowBlockItem
In **Webhook name**, name your webhook to identify it later.&#x20;
:::

:::WorkflowBlockItem
In **Event type**, select the following from the dropdown:

- **New private channel message** (for a private channel)
- **New channel message** (for a public channel)
:::

:::WorkflowBlockItem
In **Connection**, click **Add&#x20;**&#x74;o create a new Slack connection or select an existing one from the dropdown.&#x20;
:::

:::WorkflowBlockItem
In **Channel**, select the channel that you set up earlier.&#x20;
:::

:::WorkflowBlockItem
Click **Save**.&#x20;
:::

::::WorkflowBlockItem
Test the **Slack&#x20;**> **Watch New Events&#x20;**&#x6D;odule:

1. Click **Run once** on the Scenario toolbar.&#x20;
2. In Slack, send a message in your channel.&#x20;
3. In the Scenario  Builder, click the output bubble next to the module to view the data items in an output bundle. For example, the `Text `value is the user message.&#x20;

:::hint{type="info"}
If you've sent a message to your Slack channel, but the module hasn't received data yet:

- Wait a few minutes. Slack webhooks sometimes delay in detecting messages.&#x20;
- Stop the scenario run and click the down arrow next t&#x6F;**&#x20;Run once** to run the scenario using data from a previous run.&#x20;
:::
::::
:::::

You've now added the **Slack&#x20;**> **Watch New Events&#x20;**&#x6D;odule to your scenario.

## Step 2. Add a Send a Message module

Now that you've added a module that sends new Slack messages to your agent, add a **Slack&#x20;**> **Send a Message** module to allow the agent to reply to them.

To add a **Slack&#x20;**> **Send a Message&#x20;**&#x6D;odule:

:::::WorkflowBlock
:::WorkflowBlockItem
In the Scenario Builder, click the plus icon next to the **Slack&#x20;**> **Watch New Events** module.&#x20;
:::

:::WorkflowBlockItem
In the app search, click **Slack**.
:::

:::WorkflowBlockItem
Search for and click **Send a Message**.&#x20;
:::

:::WorkflowBlockItem
In **Connection**, select your Slack connection.&#x20;
:::

:::WorkflowBlockItem
In **Channel ID or name**, click the field and map the `Channel `value from the **Slack** > **Watch New Events** module.&#x20;
:::

::::WorkflowBlockItem
In **Text**, configure the reply:&#x20;

1. Click the field and map the `Text` value from the **Slack&#x20;**> **Watch New Events** module.&#x20;
2. Before the `Text `value, enter custom text, such as "Agent:", to specify that the reply is from an agent. Without this text, the agent won't distinguish user and agent messages, causing it to reply to itself in an infinite loop. Later, you'll filter messages with the "Agent:" text, so the agent only processes user messages.&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/CTYI_q-OcIz4EKGurxqr--20260210-095628.png" size="50" width="462" height="171" position="center" darkWidth="462" darkHeight="171" showCaption="false"}

:::hint{type="info"}
Optionally, to clearly distinguish between agents and users, [create a Slack app ](https://apps.make.com/slack#obtain-your-client-credentials-in-slack)and create a Bot connection. This way requires a more complex setup.&#x20;
:::
::::

:::WorkflowBlockItem
Toggle **Advanced settings**.&#x20;
:::

::::WorkflowBlockItem
In **Thread message ID (time stamp)**, enter a function for Slack timestamps:

1. Click the field, and search for and click the `Ifempty` function.&#x20;
2. In the function, before the semicolon, map the `Thread Timestamp` value from the **Slack&#x20;**> **Watch New Events** module.
3. After the semicolon, map the `Timestamp `value from the **Slack&#x20;**>**&#x20;Watch New Events** module. &#x20;

::Image[]{src="https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/EOwSQAgZi9oLg0BPHPotj-20260210-090622.png" size="50" width="475" height="171" position="center" darkWidth="475" darkHeight="171" showCaption="false"}

:::hint{type="info"}
You use a function here so that the agent replies in the Slack thread after receiving the first message. The function covers two types of Slack timestamps:

- `Timestamp`: The identifier of the first message of the Slack thread.
- `Thread timestamp`: The identifier of the Slack thread once the thread has a reply (unavailable for the first message).&#x20;
:::
::::

:::WorkflowBlockItem
Click **Save**.&#x20;
:::

:::WorkflowBlockItem
Click **Save&#x20;**&#x6F;n the Scenario toolbar.&#x20;
:::

:::WorkflowBlockItem
Right-click the route between the modules and select **Set up a filter**.&#x20;
:::

:::WorkflowBlockItem
Set up a filter that allows only user messages to pass through, so the agent doesn't reply to itself in an infinite loop:

1. In **Label**, name your label "Only user messages."
2. In **Condition**, map the `Text `value from the **Slack&#x20;**> **Watch New Events** module, select **Text operators: Does not contain**, and enter "Agent:":

::Image[]{src="https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/89IkB9lZEcQAsjE0fGxYE-20260210-102023.png" size="50" width="513" height="533" position="center" darkWidth="513" darkHeight="533" showCaption="false"}

3. Click **Save**.
:::

:::WorkflowBlockItem
Test the **Slack&#x20;**> **Send a Message** module:

1. Click **Run once** on the Scenario toolbar.&#x20;
2. In Slack, send a message in your channel.&#x20;
3. Check if you see a reply in the same thread beginning with "Agent:" in the same thread. This means the module works.&#x20;
:::

:::WorkflowBlockItem
Toggle **Immediately as data arrives** on the Scenario toolbar to activate the scenario, so that the scenario automatically receives new messages from Slack.
:::

:::WorkflowBlockItem
Click **Save**.
:::

:::WorkflowBlockItem
Click **Save&#x20;**&#x6F;n the Scenario toolbar.&#x20;
:::
:::::

You've now added your Slack modules to your  scenario .&#x20;

## Step 3. Add a Run an agent module

To finish your scenario, add the **Make AI Agent (New)** > **Run an agent&#x20;**&#x6D;odule.&#x20;

To add the **Run an agent&#x20;**&#x6D;odule:

:::::WorkflowBlock
:::WorkflowBlockItem
Right-click the route between the Slack modules and select **Add a module**.
:::

:::WorkflowBlockItem
In the app search, search for and click **Make AI Agent (New)**.&#x20;
:::

:::WorkflowBlockItem
Select the **Run an agent** module.&#x20;
:::

::::WorkflowBlockItem
In the module settings, in **Connection**, select an existing AI provider connection from the dropdown or click **Add&#x20;**&#x74;o create a new one.&#x20;

:::hint{type="info"}
If you don't want to set up an account with an AI provider, select **Make's AI Provider**.&#x20;
:::
::::

:::WorkflowBlockItem
In **Model**, select a small model. Smaller models react quickly to new data, which is ideal for this chat-based AI agent.&#x20;
:::

::::WorkflowBlockItem
In **Instructions**, describe who the agent is and what it does. For example, "You are a helpful agent. Answer with a warm and friendly tone."

:::hint{type="info"}
For now, the sample instructions provided are sufficient. Later, you can tailor them to the agent's workflow.
:::
::::

:::WorkflowBlockItem
In **Input**, map the `Text `value from the **Slack&#x20;**> **Watch New Events** module. This action gives the agent access to incoming Slack messages.&#x20;
:::

:::WorkflowBlockItem
In **Conversation&#x20;**&#x49;D, enter the same function that you added to the **Thread message ID (time stamp)&#x20;**&#x66;ield in the **Add a Send a Message module** step.&#x20;

This action allows the agent to remember previous exchanges with a user, and provide contextual responses when the user asks follow-up questions in the same thread.&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/_d-0AO1dqb0aFSzt6vM_4-20260210-125123.png" size="50" width="471" height="190" position="center" darkWidth="471" darkHeight="190" showCaption="false"}
:::

:::WorkflowBlockItem
Click **Save**.
:::

:::WorkflowBlockItem
Click the **Slack&#x20;**> **Send a Message** module.&#x20;
:::

:::WorkflowBlockItem
In **Text**, keep the custom "Agent:" text and replace the `Text` value with the `Response` value from the **Run an agent&#x20;**&#x6D;odule. This action allows the agent to reply with its own response.&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/oAyFj2GHlBeBVWF5OAir2/90tEWaFa9O-Q78tDUwNpI-20260210-125502.png" size="50" width="471" height="179" position="center" darkWidth="471" darkHeight="179" showCaption="false"}
:::

:::WorkflowBlockItem
Click **Save**.&#x20;
:::

:::WorkflowBlockItem
Click **Save&#x20;**&#x6F;n the Scenario toolbar.
:::

:::WorkflowBlockItem
Send a message to your channel in Slack to check if the agent works.&#x20;
:::
:::::

You've now built a Slack-triggered AI agent scenario.&#x20;
