Skip to content
K

Slack

The Slack integration lets Monday Morning post formatted project updates and activity digests to your Slack channels. Your AI agent can share status updates, completed tasks, and periodic summaries directly to your team’s Slack workspace — keeping everyone informed without leaving your coding environment.

  • A Slack workspace where you have permission to install apps
  • A Slack app with a Bot User OAuth Token
  • The bot must be invited to the channels where it will post
  1. Go to api.slack.com/apps
  2. Click Create New App > From scratch
  3. Name the app (e.g., “Monday Morning”) and select your workspace
  4. Under OAuth & Permissions, add the following Bot Token Scopes:
    • channels:read — view basic channel info
    • channels:history — read channel message history
    • groups:history — read private channel history
    • users:read — view user info
    • chat:write — post messages
  5. Click Install to Workspace and authorize the app
  6. Copy the Bot User OAuth Token (starts with xoxb-)

In Slack, invite the bot to each channel where you want it to post:

/invite @Monday Morning

Or open the channel, click the channel name at the top, go to Integrations, and add the app.

Create the integration config file at .mm/integrations/slack.json in your project:

{
"bot_token": "xoxb-your-bot-token-here",
"default_channel": "#engineering"
}

Alternatively, configure it through the Monday Morning desktop app under Settings > Integrations > Slack.

You can also set the token as an environment variable:

Terminal window
export SLACK_BOT_TOKEN="xoxb-your-bot-token-here"

Ask your AI agent to post a test message:

Post a message to Slack saying "Monday Morning is connected"

The agent will call mm_slack_post_update. If configured correctly, you will see the message in your default channel.

ToolDescription
mm_slack_post_updatePost a formatted message to a Slack channel. Supports Slack mrkdwn formatting.
mm_slack_digestGenerate and post a formatted activity digest (daily or weekly) to a Slack channel.

The Slack plugin supports additional project-level settings:

SettingDescriptionDefault
default_channelChannel used when no channel is specified in tool calls
digest_frequencyAutomatic digest frequency: off, daily, or weeklyoff
digest_timeTime of day to post automatic digests (e.g., 17:00)17:00
Post a Slack update to #engineering summarizing what was completed today

The agent gathers recent activity and calls mm_slack_post_update with a formatted summary.

Send a weekly activity digest to the #project-updates channel

The agent calls mm_slack_digest with period: "weekly", which compiles task completions, spec progress, and commit counts into a formatted Slack message.

Post to #client-updates that the API redesign spec is 80% complete

The agent calls mm_slack_post_update with the specified channel, overriding the default.

“not_in_channel” error The bot has not been invited to the target channel. Run /invite @Monday Morning in that channel.

“invalid_auth” error Your bot token is invalid or the app has been uninstalled. Reinstall the app and generate a new token at api.slack.com/apps.

“channel_not_found” error The channel name may be incorrect, or the bot does not have channels:read scope. Double-check the channel name (include the # prefix) and verify scopes.

Messages not appearing Ensure the bot has chat:write scope and has been invited to the channel. Private channels require the groups:history scope as well.

“No channel specified” error Either pass a channel parameter in the tool call or set a default_channel in your Slack config.