send a slack message or thread reply with ai
turn the maintenance calendar into a notice the team can use. a bot can post to an accessible slack channel, direct message or private group, and reply in a thread.
show it the destination and the wording to send. sends ask first by default unless you allow a daily amount. after an uncertain result, open slack before retrying to avoid a duplicate.

where it helps
- maintenance notices: post approved wording to operations.
- delivery questions: reply under the original message.
- a teammate's request: send the address you checked by direct message.
- working sessions: put the agreed agenda in the project channel.
the short version
choose the destination before the wording. name the channel or person and say what to send. ordinary notes use markdown; structured layouts use slack blocks instead.
for a reply, the bot finds the original message. for a direct message, it opens that conversation first. say "keep it in the thread" if you don't want a broadcast to the main channel.
step by step
- choose the workspace. connect slack and allow read and write for posting.
- set ask every time. read the channel or person on the first sending card.
- keep replies where they belong. have the bot read the original and avoid a channel broadcast.
- inspect one post. open the posted message before setting a repeat schedule.
send this to your bot
paste this into a chat with your bot
every wednesday at 16:10, read this week's confirmed maintenance windows on the maintenance calendar. prepare a notice for kilnworks-maintenance in slack. show the exact wording and channel here, then wait for my allow. if there is no confirmed window, stay quiet. report the posting result here. never mention people, broadcast elsewhere or retry an uncertain send without checking if it appeared.- when
- wednesdays at 16:10
- needs
- google calendar access for reading maintenance windows; slack read and write with channel access; sending set to ask every time
what comes back looks like this (an example)
ready for your allow: kilnworks-maintenance
erin confirmed the loading bay maintenance window on the calendar. please use the side entrance during that time.
destination: kilnworks-maintenance, with no mentions.what can go wrong
- careful with Full access: a bot there with no sending rule can send up to 25 a day without asking. give it Ask every time.
- a familiar name doesn't grant access. missing, archived or inaccessible channels can block a post.
- retries can duplicate messages. look for the message in the conversation before sending again.
- if slack asks it to slow down, it waits. repeated sends aren't the fix.
permissions and asking first
dusk bot counts Send message as a send: it reaches people or moves money, so it waits for your Allow (unless you set a daily amount, or the bot is on Full access with no sending rule, which lets it send up to 25 a day). a bot you allow only to read can never call it.
the permissions Slack asks for to run it: chat:write.
inputs
| input | required | what it is |
|---|---|---|
channel | yes | ID or name of the channel, private group, or IM channel to send the message to. |
blocks | no | Use this instead of `markdown_text` only when you need Slack Block Kit capabilities that Markdown cannot express: buttons, approval/reject actions, select menus, checkboxes, radio buttons, date/time pickers, overflow menus, interactive workflow payloads, section accessories, image/video blocks, cont |
thread_ts | no | Timestamp (`ts`) of an existing message to make this a threaded reply. |
unfurl_links | no | Enable unfurling of text-based URLs. |
unfurl_media | no | Enable media previews (images, videos) from URLs. |
fallback_text | no | Optional only when using `blocks`. |
from composio's catalog for Slack (action SLACK_SEND_MESSAGE, read 12 november 20264). your bot fills these in from what you tell it.
try it in 2 minutes
- set sending to ask every time
- name one channel and ask for a short test note
- read the workspace and destination before allow
- open slack and inspect the posted message
quick checklist
- the workspace and channel or person are right
- the reply stays in the intended thread
- mentions and broadcasts are deliberate
- an earlier attempt did not already post
mistakes people make
saying "reply" without naming the thread
link the original and ask to keep the reply there.
retrying after a timeout
open slack first. the first post may already be there.
questions
can it reply without alerting the whole channel?
yes. keep it in the thread. ask the bot to reply beneath the original without broadcasting to the main channel.
can it message a person by name alone?
yes, if it can find the person. it looks them up and opens the direct message. read the person's profile before posting.
sources
drafted with ai help from the dusk bot docs and the sources listed on this page, then checked against them. if something here is wrong or out of date, write to [email protected].
catch up on unread slack posts without posting a reply
a slack assistant that finds the decision in the thread
turn your handover notes into a new slack canvas
claude code from telegram, discord or slack
an end-of-day digest of the slack channels you choose
let a bot acknowledge a slack message with a reaction