> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paradime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack Tools

> Slack tools let DinoAI agents find a Slack thread, attach a session to it, and post messages and files back to Slack so work stays in one conversation.

export const ToolIds = ({ids = []}) => <div style={{
  margin: '1.25rem 0'
}}>
    <p style={{
  fontSize: '13px',
  fontWeight: 600,
  color: '#6B7280',
  margin: '0 0 8px'
}}>
      Allow-list ids — use in a Programmable Agent's <code>tools.list</code>:
    </p>
    <div style={{
  display: 'flex',
  flexWrap: 'wrap',
  gap: '6px'
}}>
      {ids.map(id => <code key={id} style={{
  fontSize: '12.5px',
  padding: '2px 8px',
  borderRadius: '6px',
  background: 'rgba(114,106,227,0.08)',
  border: '1px solid rgba(114,106,227,0.2)',
  color: '#5943D6'
}}>
          {id}
        </code>)}
    </div>
  </div>;

export const ToolMeta = ({copilot = false, agent = false, backedBy, name, href}) => {
  const pill = on => ({
    display: 'inline-flex',
    alignItems: 'center',
    gap: '5px',
    padding: '2px 10px',
    borderRadius: '9999px',
    fontSize: '13px',
    fontWeight: 500,
    border: '1px solid',
    borderColor: on ? 'rgba(114,106,227,0.35)' : 'rgba(128,128,140,0.22)',
    background: on ? 'rgba(114,106,227,0.12)' : 'transparent',
    color: on ? '#5943D6' : '#9AA0AA'
  });
  return <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    alignItems: 'center',
    gap: '8px',
    margin: '0 0 1.5rem'
  }}>
      <span style={{
    fontSize: '13px',
    fontWeight: 600,
    color: '#6B7280'
  }}>Available in</span>
      <span style={pill(copilot)}>{copilot ? '✓' : '—'} Copilot</span>
      <span style={pill(agent)}>{agent ? '✓' : '—'} Agent</span>
      {backedBy === 'native' && <span style={{
    fontSize: '13px',
    color: '#9AA0AA'
  }}>· Built-in</span>}
      {(backedBy === 'integration' || backedBy === 'connection') && name && <span style={{
    fontSize: '13px',
    color: '#6B7280'
  }}>
          · Backed by {href ? <a href={href}>{name}</a> : name} {backedBy}
        </span>}
    </div>;
};

<ToolMeta agent backedBy="integration" name="Slack" href="/integrations/slack" />

<ToolIds ids={["find_slack_thread", "attach_session_to_slack_thread", "post_slack_message", "upload_file_to_slack"]} />

The Slack Tools let a DinoAI agent operate inside Slack: locate an existing thread (for example a PagerDuty alert or an incident message), attach its session to that thread, and post messages and files back so the whole conversation stays in one place.

<Info>
  These are agent-side tools (Slack Bot / Programmable / Bolt agents), not available in Copilot. `find_slack_thread` and `attach_session_to_slack_thread` are side-effectful, so they're only available when named explicitly in a Programmable Agent's `allowlist`. See the [Tools Reference](/products/dino-ai/programmable-agents/tools-reference) and [YAML Configuration](/products/dino-ai/programmable-agents/yaml-configuration).
</Info>

### Capabilities

| Tool                             | What it does                                                                                                                                                                                       |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `find_slack_thread`              | Search a channel's recent messages for an existing thread to attach to. Returns candidate messages with their thread timestamp, author, and a preview.                                             |
| `attach_session_to_slack_thread` | Bind the session to a thread — all further status updates and `post_slack_message` calls go there, and users can continue the session by @mentioning the bot. A session can only be attached once. |
| `post_slack_message`             | Post a message to the session's Slack thread or channel.                                                                                                                                           |
| `upload_file_to_slack`           | Upload a file to Slack.                                                                                                                                                                            |

<Info>
  **Requires the Slack integration.** These tools are only available when your workspace has connected Slack and the Paradime bot is a member of the target channel. See [Connecting Slack](/integrations/slack).
</Info>


## Related topics

- [Tools Reference](/products/dino-ai/programmable-agents/tools-reference.md)
- [Slack Agent](/products/dino-ai/slack-agent/index.md)
- [Customize the Slack Agent](/products/dino-ai/slack-agent/customize-agent.md)
- [Slack](/integrations/slack.md)
- [Starting a Slack Agent session](/products/dino-ai/slack-agent/starting-a-session.md)
