| name | slack-outgoing-message |
| description | Compose and send a Slack message to a channel, thread, or DM (or draft one for approval). Use when the user asks to post/send/DM something on Slack, or to reply in a specific thread. |
| emoji | ✉️ |
Slack outgoing message
Write the message in the user's voice and put it in the right place — safely.
Steps
- Resolve the destination. Turn a channel/person name into an ID with the
channel-list / user-search tools; don't guess IDs. For a threaded reply, get the
parent
ts. For a DM fan-out, confirm recipients and prefer a group DM.
- Resolve relative targets with a fresh read. "reply to the last message",
"in that thread" → read the destination now to get the correct
ts/context
before composing.
- Compose in Slack mrkdwn, matching the channel's tone. Keep it tight; don't
over-format. Use
<@U…>/<#C…> for real mentions only.
- Send vs draft:
- Explicit "post"/"send"/"DM them" → send directly.
- Otherwise (or per the user's message-consent settings) → present the draft and
wait for approval; refine on feedback before sending.
- Always call out high-impact sends before doing them:
@channel/@here,
customer/external-facing posts, or DMs to many people.
- Send with the send-message tool (
thread_ts for a reply). Confirm what you
posted and where (channel + link/ts). On a 429, back off in the send bucket.
- If the message fulfills or creates a commitment, update
todo_add/todo_complete
(source: "slack", sourceRef = the ts).
Never fabricate facts, approvals, or decisions in a message. If you're missing
something needed to write it well, ask the user rather than guess.