Skip to main content

Slack

Shanone’s Slack integration gives your agent 125 tools spanning everyday messaging, channel administration, Canvases, Lists, and Enterprise Grid admin operations.

Getting Started

1

Connect via OAuth

Ask your agent to do anything with Slack (e.g. “post to #general”), or connect proactively from Integrations in the Shanone dashboard. Either way, you’ll get a connect_link to authorize Shanone’s Slack app against your workspace.
2

Invite the app to private channels

Bot-token operations (posting, reading history, etc.) only work in channels the Slack app has been added to. This usually isn’t required for public channels; for private channels, invite the app explicitly from within Slack.
3

Retry your request

Once connected, ask your agent again — shanone_execute_tool will now succeed instead of returning a connect_link.
Some tools — reminders, stars, search, and DND settings among them — use a Slack user token rather than the bot token, obtained through the same OAuth flow. If these specific tools fail while everything else works, redo the OAuth connection to make sure both tokens were granted. See Acting as the bot vs. as yourself for details.

Acting as the Bot vs. as Yourself

Slack’s OAuth flow issues two tokens: a bot token (xoxb-) and a user token (xoxp-). Shanone stores both, and you can choose which identity to act as per tool via the act_as parameter. Omitting act_as keeps the previous bot-token behavior, so existing usage is unaffected.

When to use which

Prefer the bot

Automated report delivery, CI/CD notifications, recurring reminders. It’s clearly identifiable as automation, which keeps things transparent for your team.

Prefer your own identity

Replying to a colleague’s DM, or speaking on your behalf. Use this when the message should read naturally as coming from you, or to read history in channels the bot hasn’t joined.

Example

The same slack_post_message call changes sender based on act_as alone:
You can also just tell your agent “send this as me” or “notify as the bot” in natural language — it will set act_as accordingly.

Tools that support act_as (31)

Tools where either identity is meaningful — posting, reading history, channel operations, and so on.

Tools that don’t accept act_as

Slack only permits one token type for certain methods. For these, the correct token is selected automatically — passing act_as won’t cause an error.
Slack allows only user tokens here, so these always run as you.
Remote file registration, updates, and deletion are bot-token only because Slack treats those files as owned by the app itself.slack_add_remote_file, slack_update_remote_file, slack_remove_remote_file
The bot can only post where it’s able to join. A one-on-one DM between two people has a fixed two-member roster, and no third party — including the bot — can join it. Posting to such a DM with act_as="bot" returns channel_not_found. Use act_as="user" for DMs with other people.

Setting a default

If passing act_as every time is tedious, use a parameter policy to set a per-tool default. The default_value policy applies only when the agent omits act_as; an explicit value always wins. For example, setting default_value: "user" on act_as for slack_post_message makes your posts default to your own identity.
To enforce a value unconditionally, use the forced_value policy instead — it overrides whatever the agent specifies.

Available Tools

Shanone provides 125 tools for Slack, organized into the categories below:

Common Use Cases

Daily Standups

Schedule automated standup reminders and collect team updates.

Report Distribution

Generate reports and automatically share them to relevant channels.

Knowledge Search

Search past conversations to find decisions, links, and information.

Task Tracking

Use reactions to track task completion and gather feedback.

Troubleshooting

The Slack app needs to be a member of private channels before bot-token tools can post to them. Invite it from within Slack, then retry.
slack_search_messages / slack_search_all / slack_search_files need the OAuth user token, not just the bot token. Reconnect Slack from Integrations to make sure both were granted.
Omitting act_as defaults to the bot identity. Pass act_as="user" to post as yourself (see Acting as the Bot vs. as Yourself). To avoid setting it every time, use a default_value parameter policy to make user the default.
A one-on-one DM between two people has a fixed two-member roster that the bot can’t join. Pass act_as="user" to post under your own identity. The bot can only post in its own DMs, channels it’s been invited to, and group DMs that include it.
The tool may require a scope that your current connection doesn’t include. If a Shanone update added new scopes, reconnecting Slack from Integrations resolves it. Note that Slack requires different scope names for bot and user tokens, so a tool can fail under one identity while working under the other.
Call slack_list_channels first to see all available channels and their IDs. Private channels only show up if the app is a member.
Check that the file path/URL is accessible and that the app has access to the target channel (see above).
Ensure the scheduled time is at least a few seconds in the future and within Slack’s own scheduling window, and that the timestamp format matches what slack_schedule_message’s schema expects (check with shanone_get_tool_schema).