Slack Integration
Receive notifications in Slack when approval events occur in your project.
Overview
The Slack integration sends notifications to one or more channels of your choice. You can configure multiple channels per project, each with different notification settings.
Available notification events:
- Approval created - A new approval request is generated
- Approval executed - Someone clicks an approval link
- Approval expired - An approval link expires (triggered on access attempt)
- Approval invalidated - An approval is manually invalidated
- PIN failed - Someone entered an incorrect PIN
- Token locked - Token locked after too many failed PIN attempts
Note: Expired, PIN Failed, and Locked notifications are only triggered when someone attempts to use the token. There is no background process monitoring token expiration.
Step 1: Create a Slack App
- Go to api.slack.com/apps
- Click "Create New App"
- Choose "From scratch"
- Enter an app name (e.g., "Ottr Notifications") and select your workspace
- Click "Create App"
Tip: You can customize your app's icon and description later from the "Basic Information" page.
Step 2: Enable Incoming Webhooks
- In your app's settings, click "Incoming Webhooks" in the left sidebar
- Toggle "Activate Incoming Webhooks" to On
- Click "Add New Webhook to Workspace" at the bottom of the page
- Select the channel where you want to receive notifications
- Click "Allow"
Note: You'll need to have permission to add apps to the workspace and channel you select.
Step 3: Copy Your Webhook URL
- After adding the webhook, you'll see a new entry in the "Webhook URLs for Your Workspace" section
- Click "Copy" next to your webhook URL
Your webhook URL will look like this:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXXKeep this URL secret! Anyone with this URL can post messages to your Slack channel. Ottr encrypts your webhook URL at rest.
Step 4: Configure in Ottr
- Go to your Ottr Dashboard
- Select the project you want to integrate with Slack
- Click "Integrations" in the sidebar
- Click "Add Channel" to add a new Slack channel
- Enter a name for this channel configuration (e.g., "ops-alerts")
- Paste your webhook URL in the "Webhook URL" field
- Select which events you want to be notified about for this channel
- Click "Save"
- Click "Test" to verify the webhook is working
Tip: You can add multiple channels with different notification settings. For example, send creation/execution events to #deployments and PIN failures to #security-alerts.
Success! You should see a test message in your Slack channel if everything is configured correctly.
Notification Examples
Here's what notifications look like in Slack:
Approval Created
🔔 New approval request in My Project
Key: myapp/deploy
Info: Deploy to production?
Expires: 2025-01-01T12:30:00Z
Approval Executed
✅ Approval executed in My Project
Key: myapp/deploy
Action: approve
Approval Expired
⏳ Approval expired in My Project
Key: myapp/deploy
Approval Invalidated
❌ Approval invalidated in My Project
Key: myapp/deploy
PIN Failed
🔐 PIN verification failed in My Project
Key: myapp/deploy
Attempts: 3 of 5
Token Locked
🔒 Approval locked in My Project
Key: myapp/deploy
Reason: Too many failed PIN attempts
Troubleshooting
Test message not arriving
- Verify the webhook URL starts with
https://hooks.slack.com/ - Check that your Slack app is still installed in the workspace
- Make sure the channel still exists and the app has access to it
Notifications stopped working
- Webhook URLs can be revoked if someone removes the app from Slack
- Try generating a new webhook URL in your Slack app settings
- Update the URL in your Ottr dashboard
Wrong channel receiving notifications
- Each webhook URL is tied to a specific Slack channel
- Check which channel configuration is enabled in the Integrations page
- You can have multiple channels - enable/disable them individually
- To send to a different channel, create a new webhook URL and add a new channel in Ottr
Some events not triggering notifications
- Check that the specific event type is enabled for your channel
- Remember: expired/PIN failed/locked events only trigger on access attempts
- Ensure the channel is enabled (not just configured)