Slack automation that asks before it acts
Build Slack bots that answer @-mentions from a knowledge base, read threads, post to channels and pause for a one-click approval. Connects by OAuth.
- Category
- Messaging
- Connect
- Connect with one click (OAuth) · managing connections
- Operations
- 11
- Triggers
- 3
Slack is where your team already is, so it is the best place for a workflow to start and the best place for it to finish. In MadMax it does both: a message, an @-mention or an emoji reaction starts a run, and the run can post to a channel, reply in a thread, react to a message, read the thread for context, or pause until a person clicks Approve. Events arrive through MadMax's published Slack app with no URL to copy and no secret to manage, the bot's own posts never start a run, and testing is real: press Run, @-mention the bot, and that event both runs the draft and becomes the step's sample. Describe it in plain English and MadMax wires the Slack steps, picks your connection and previews every outbound post before activation.
What teams build
- An
app_mentionin #help runsget_thread, and an AI agent bound to a knowledge base of your handbook and runbooks answers in the thread, saying so when the answer is not in the docs instead of guessing. - A refund request arrives by webhook, an agent summarizes it with the customer's history, and an approval posts the summary to #approvals with Approve and Reject buttons; approved runs continue to the Stripe refund step, rejected ones reply to the requester.
- A 6 pm schedule runs
get_channel_historyon #incidents, an agent writes the digest,send_messageposts it to #leadership, andadd_reactionmarks each incident message that made the cut.
How it connects
Click Connect on the Slack card, approve the app in Slack, and you are done. The bot token is stored encrypted and refreshed automatically. Optionally set a default channel on the connection, and any Slack step the AI wires without naming a channel posts there. Connections belong to a workspace and each step picks which one it uses in the Inspector; see managing connections for reconnecting, sharing and what happens when you disconnect.
Related
Every Slack operation MadMax can run
Straight from the integration's manifest, so this list is what the steps on the canvas can actually do today.
| Operation | What it does |
|---|---|
| add reaction | Add an emoji reaction to a message, the bot's 'seen' / 'done' acknowledgement. |
| auth test | Verify the connection's token and return its identity: the bot's user id, team id, and team name. |
| get channel history | Read a channel's recent messages (newest first) for 'what was discussed in #ops today' questions. The bot must be a member of the channel. |
| get thread | Read a thread's messages (parent first): the context an agent needs before replying in-thread. |
| get user | Look up a Slack user by id (name, display name, email) to address the person behind an event's `user`. |
| join channel | Join a public channel so the bot can read and react there. This is the self-heal behind not_in_channel. |
| list channels | List the workspace's channels (id + name) to resolve a #name to the id the other ops take. |
| list users | List the workspace's people (id, name, real name, email) to resolve a name to a user id for <@U…> mentions. |
| lookup user by email | Find a Slack user by email. Returns the user id for @-mentions (<@U…>) and DMs. |
| send blocks | Post a Block Kit message (buttons, sections). Used by the approval step for Approve/Reject; `text` is the notification fallback. |
| send message | Post a message to a Slack channel or DM. |
Slack events that can start a workflow
Fires when a user @-mentions the app's bot user in a channel.
Fires when a message is posted to a channel the app is in.
Fires when a member adds an emoji reaction to an item.
Works with
Describe the workflow. MadMax builds it and tests it on your data.
Free to start, no card. Connect your apps, say what should happen in plain English, and watch each step run against real data before anything goes live.