Skip to Content

Slack

The Slack integration connects your workspace to TinyOps, enabling rules to send messages to channels, direct-message team members, and upload files. It is the primary notification delivery channel for most teams.

Setup

Open TinyOps and go to Settings then Integrations. Click Add Integration and select Slack.

Authorize with Slack

You will be redirected to Slack to authorize the TinyOps bot. Select the workspace you want to connect and click Allow.

Invite the Bot to Channels

After authorization, invite the TinyOps bot to any channels where it should be able to post. In Slack, type /invite @TinyOps in the desired channel.

Verify Connection

Return to TinyOps and confirm the integration status shows Connected. A test message option is available to verify delivery.

The TinyOps bot must be invited to a channel before it can post there. If a rule targets a channel where the bot is not present, the action will fail with a channel_not_found error.

Available Checks

NameReturn TypeDescription
channel.member_countnumberNumber of members in the channel (requires channel context in the rule)

Available Actions

MethodParamsDescription
send_messagechannel (required), message (required)Sends a message to a Slack channel
send_dmuser (required), message (required)Sends a direct message to a Slack user
upload_filechannel (required), content (required), filename (required)Uploads a text file to a Slack channel

Example Rules

Deployment Alert

Notify the engineering channel when a deployment completes or fails.

deploy-alert.yaml
name: Deployment Alert trigger: event: deployment.status_changed provider: vercel conditions: - check: deployment.status operator: in value: ["READY", "ERROR"] actions: - method: send_message provider: slack params: channel: "#deployments" message: "Deployment status: {{deployment.status}} for {{deployment.domain}}"

Daily Standup Reminder

Send a daily reminder to the team channel before standup.

standup-reminder.yaml
name: Daily Standup Reminder trigger: schedule: "0 9 * * 1-5" actions: - method: send_message provider: slack params: channel: "#engineering" message: "Standup starts in 15 minutes. Please prepare your updates."

CI Failure DM to Author

Direct-message the PR author when their CI run fails.

ci-failure-dm.yaml
name: CI Failure DM to Author trigger: event: workflow_run.completed provider: github conditions: - check: actions.status operator: eq value: failure actions: - method: send_dm provider: slack params: user: "{{pr.author.slack_id}}" message: "Your CI run failed on PR #{{pr.number}}: {{pr.title}}. Check the workflow logs and push a fix."

Troubleshooting

Common issues:

  • channel_not_found error: The TinyOps bot must be invited to the target channel. Use /invite @TinyOps in the channel.
  • DM not delivered: The user param must be a valid Slack user ID (e.g. U01ABC2DEF), not a display name. You can find user IDs in Slack profiles or via the team mapping in TinyOps settings.
  • Message not formatting correctly: Slack uses its own markup syntax (mrkdwn). Use *bold*, _italic_, and backticks for code. HTML tags are not supported.
  • Rate limiting: Slack limits bots to approximately 1 message per second per channel. If multiple rules fire simultaneously, messages may be queued with slight delays.