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
Navigate to Integrations
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
| Name | Return Type | Description |
|---|---|---|
channel.member_count | number | Number of members in the channel (requires channel context in the rule) |
Available Actions
| Method | Params | Description |
|---|---|---|
send_message | channel (required), message (required) | Sends a message to a Slack channel |
send_dm | user (required), message (required) | Sends a direct message to a Slack user |
upload_file | channel (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.
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.
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.
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_founderror: The TinyOps bot must be invited to the target channel. Use/invite @TinyOpsin the channel.- DM not delivered: The
userparam 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.