---
title: "Slack: Read Recent Channel Messages"
canonical: https://trickest.com/docs/using-the-app/connectors/slack
description: "Connect Slack, find a channel, and read a small message sample in a workflow."
---

# Slack: Read Recent Channel Messages

Find a Slack channel, then read its recent messages into a workflow. Start with reading; add posting only after you have inspected the destination and prepared text.

## Before you start

You need an Enterprise vault and a vault administrator to authorize Slack. The Slack account must be able to access the intended channel, and the Slack workspace may require an administrator to approve the connection. You also need workflow editing and execution access.

This connector uses Slack's MCP server and the saved Slack account. It is separate from the Channels bot integration. See [Slack's MCP server reference](https://docs.slack.dev/ai/slack-mcp-server/) for account and app approval requirements.

Connector settings and tool discovery also require Managed AI or BYOK access with a verified provider key. Check the [shared access requirements](/docs/using-the-app/connectors#before-you-start) before setup.

## Connect Slack

1. Open **Settings > Infrastructure > Connectors** and choose **Add connector > Slack**, or open an existing Slack connection.
2. Select **Connect to Trickest** or **Reconnect**. Complete Slack authorization for the intended account and workspace.
3. Return to Trickest and wait for discovery. Confirm that channel search and channel reading are available.

The Slack preset uses OAuth. It does not offer a personal access token form. Everyone using this external connection acts through the same saved Slack account.

## Find the channel

Create a workflow and add the channel-search tool (`slack_search_channels`). Name it `find-channel`, keep **Run** set to **Once**, and set **Save as** to **JSON**.

Use **Add option** to expose fields as needed:

| Argument | What to enter |
| --- | --- |
| **Natural language query** (`natural_language_query`) | A description such as `Find the docs review channel` |
| **Keywords** (`keywords`) | The channel name or a distinctive word, using the type shown in the field |
| **Limit** (`limit`) | `5` |

Run the search and inspect the channel name, workspace and ID in the result. A similar name is not sufficient when several workspaces or archived channels are involved. Copy the ID of the intended channel.

## Read ten messages

Add the channel-read tool (`slack_read_channel`) and name it `read-messages`. Open it and set:

| Setting | Value |
| --- | --- |
| **Run** | **Once** |
| **Channel id** (`channel_id`) | The confirmed channel ID from the search |
| **Limit** (`limit`) | `10` |
| **Save as** | **JSON** |

Run the read node and inspect the returned messages, timestamps and any error. This two-node version uses a fixed channel ID after manual review. It does not need a formatter or a repeat loop.

## Pass a channel ID automatically

Once the fixed-ID version works, add a Python step that selects the intended search result and writes one JSON object line with a `channel_id` field to `out/output.txt`. Connect that output to `read-messages` under **Data**, choose **For each line of** that source, and set **Channel id** to `{{item.channel_id}}`. Use a call limit of `1` while testing a single channel.

<Frame editorial maxWidth="540px" darkSrc="https://res.cloudinary.com/db14crach/image/upload/v1792713963/www/docs/release-1-2-1-2026-10-23/product/slack-read-pattern-dark-bd9690152c10b610.png" caption="Part of the saved example: a channel-ID parser feeds the reader. The later Messages as JSONL step failed; stop at the read result for this tutorial.">
  <img src="https://res.cloudinary.com/db14crach/image/upload/v1792713965/www/docs/release-1-2-1-2026-10-23/product/slack-read-pattern-light-40dc40bab8482b6d.png" alt="A channel-ID parser feeds a Slack channel reader; a later JSONL formatter shows a failure." />
</Frame>

## Check scope and recover

Ten recent messages are a sample, not a channel archive. A channel read does not necessarily include every reply in a thread. Check the server's available history and thread tools if your task needs those records.

If search finds the channel but reading fails, verify access for the connected account, including membership for private channels. If the connector asks for sign-in, **Reconnect**. Inspect a formatter failure separately from a successful Slack read; do not discard the raw result or treat the whole workflow as verified.

To send one prepared summary, continue with [HackerOne reports to Slack](/docs/using-the-app/connectors/reports-to-slack#add-one-slack-post-after-review).

Use the [exact-name parser fixture](/docs/using-the-app/connectors/workflow-examples) to test the channel selection before connecting a live result.

---
_Markdown source of https://trickest.com/docs/using-the-app/connectors/slack._
