The Slack integration lets your Archie app post messages, alerts, and interactive Block Kit cards into your team’s Slack workspace. Once connected, you call Slack through namespaced GraphQL operations.Documentation Index
Fetch the complete documentation index at: https://archie.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
A typed TypeScript SDK for integrations is coming with the next archie-app release. This page documents the GraphQL operation surface available today.
Enable the integration
Open Integrations in the left sidebar and pick Slack. You’ll need a Slack App with the right scopes installed in your workspace. From the app’s settings:- Bot Token —
xoxb-.... Found under OAuth & Permissions. Needschat:writefor posting; addchat:write.publicif you want to post to channels the bot isn’t a member of. - App Token —
xapp-.... Found under Basic Information → App-Level Tokens. Needed if you use Socket Mode or subscribe to events. - Signing Secret — under Basic Information → App Credentials. Used to verify requests Slack sends to your app.
- Environment — pick which environment this configuration applies to (e.g.
Production,Staging).
What you can do
- Send messages — to channels, threads, or DMs
- Send rich messages — Block Kit blocks, attachments, buttons
- Schedule messages — deliver later at a chosen time
- Update and delete — edit or remove a previously-sent message
- Receive events — slash commands, button clicks, and interactivity callbacks via webhooks
Sending a message
A simple notification
ts is the message timestamp — keep it if you want to update or thread on it later.
Block Kit
For richer messages with buttons or sections, pass a Block Kitblocks array:
Reply in a thread
PassthreadTs to thread under an existing message:
Direct messages
Pass a user ID (U...) as the channel to DM that user. The bot must have the chat:write scope and the user must be in a workspace where the app is installed.
Scheduled messages
Webhooks
If you want to receive events from Slack — slash commands, button clicks, mention events — point your Slack App’s Event Subscriptions request URL and Interactivity request URL at the Archie-generated Slack webhook URL for your project. Archie verifies the signing secret on every event. See Webhooks for handling them in custom functions.FAQ
Channel name vs. channel ID — which should I pass?
Channel name vs. channel ID — which should I pass?
Both work for public channels. Channel IDs (
C0123456789) are more reliable because they don’t change if the channel is renamed. For private channels and DMs, the ID is required and the bot must be a member.My bot can't post to a channel. What's wrong?
My bot can't post to a channel. What's wrong?
The bot has to be invited to the channel —
/invite @yourbot from inside Slack. Public channels can be posted to without joining if you’ve granted the chat:write.public scope, but private channels always require membership.How do I respond to a button click?
How do I respond to a button click?
Can I send DMs to users who aren't in the workspace?
Can I send DMs to users who aren't in the workspace?
No. Slack only allows messaging users who are members of a workspace your app is installed in. For broader notifications, use email (SendGrid) or SMS (Twilio).
What's the rate limit?
What's the rate limit?
Slack’s Web API allows roughly 1 message per second per channel, with short bursts allowed. For high-volume notifications, batch into a single message with multiple Block Kit sections or use a thread to group related updates.