Channels
Slack Integration
Connect NotiGrid to Slack for team notifications
Slack Integration
Send notifications directly to your Slack workspace channels and users.
Prerequisites
- Admin access to your Slack workspace
- NotiGrid account with active subscription
Setup Instructions
1. Create a Slack App
- Go to api.slack.com/apps
- Click Create New App
- Choose From scratch
- Enter app name: "NotiGrid"
- Select your workspace
- Click Create App
2. Configure OAuth Scopes
- In your app settings, go to OAuth & Permissions
- Scroll to Scopes section
- Add the following Bot Token Scopes:
chat:write- Send messages as the botchat:write.public- Send messages to public channels without joiningusers:read- View users in workspacechannels:read- View basic channel infogroups:read- View private channels the bot is in
3. Install App to Workspace
- Scroll to OAuth Tokens for Your Workspace
- Click Install to Workspace
- Review permissions and click Allow
- Copy the Bot User OAuth Token (starts with
xoxb-)
4. Add Credentials to NotiGrid
- Log in to your NotiGrid dashboard
- Navigate to Channels → Slack
- Click Add Slack Workspace
- Enter your workspace details:
- Workspace Name - A friendly name (e.g., "My Company Slack")
- Bot Token - Paste the
xoxb-token from step 3
- Click Save & Test Connection
5. Invite Bot to Channels
For the bot to send messages to a channel, you need to invite it:
- Open the Slack channel
- Type:
/invite @NotiGrid - Or use the channel details → Integrations → Add apps
Sending Notifications
Using the Dashboard
- Go to Notifications → Send
- Select Slack as the channel
- Choose your workspace
- Enter the channel name or user ID
- Write your message
- Click Send
Using the API
curl -X POST https://api.notigrid.com/v1/notifications \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "slack",
"to": "#general",
"body": "Hello from NotiGrid!"
}'Channel Formats
Public/Private Channels:
{
"to": "#channel-name"
}Direct Messages:
{
"to": "@username"
}User ID:
{
"to": "U01A2B3C4D5"
}Message Formatting
Basic Text
{
"channel": "slack",
"to": "#general",
"body": "Simple text message"
}Rich Formatting with Blocks
{
"channel": "slack",
"to": "#general",
"body": "New order received!",
"metadata": {
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "New Order #12345"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Customer:*\nJohn Doe"
},
{
"type": "mrkdwn",
"text": "*Amount:*\n$99.99"
}
]
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "View Order"
},
"url": "https://yoursite.com/orders/12345"
}
]
}
]
}
}Markdown Support
Slack supports markdown-like formatting:
*bold*- bold text_italic_- italic text~strike~-strikethrough`code`-inline code> quote- Block quote- Three backticks - Code block
Templates
Create reusable Slack message templates:
Simple Alert Template
{
"name": "server-alert",
"channel": "slack",
"body": "🚨 Alert: {{alert_type}}\n\n{{message}}\n\nServer: {{server_name}}\nTime: {{timestamp}}"
}Order Notification Template
{
"name": "new-order-slack",
"channel": "slack",
"body": "New order received!",
"metadata": {
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "🛍️ Order {{order_id}}"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Customer:*\n{{customer_name}}"
},
{
"type": "mrkdwn",
"text": "*Total:*\n${{order_total}}"
},
{
"type": "mrkdwn",
"text": "*Items:*\n{{item_count}}"
},
{
"type": "mrkdwn",
"text": "*Status:*\n{{status}}"
}
]
}
]
}
}Advanced Features
Thread Replies
Reply to an existing message thread:
{
"channel": "slack",
"to": "#general",
"body": "Follow-up message",
"metadata": {
"thread_ts": "1234567890.123456"
}
}Mentions
Mention users or channels:
{
"body": "Hey <@U01A2B3C4D5>, check this out! cc: <!channel>"
}Attachments
Add file attachments:
{
"channel": "slack",
"to": "#general",
"body": "Here's the report",
"metadata": {
"attachments": [
{
"fallback": "Monthly Report",
"color": "#36a64f",
"title": "Monthly Sales Report",
"title_link": "https://example.com/report.pdf",
"text": "Sales increased by 15% this month"
}
]
}
}Rate Limits
Slack has rate limits on API calls:
- Tier 1: 1 request per second per workspace
- Tier 2: 20+ requests per minute
- Tier 3: 50+ requests per minute
NotiGrid automatically handles rate limiting and retries.
Troubleshooting
Bot Not Sending Messages
- Check token - Verify the bot token is correct
- Invite bot - Ensure bot is invited to the channel
- Check scopes - Verify OAuth scopes are configured
- Test connection - Use the "Test Connection" button in NotiGrid
Permission Errors
If you see "not_in_channel" error:
- Invite the bot to the channel using
/invite @NotiGrid
If you see "missing_scope" error:
- Add the required OAuth scope in your Slack app settings
- Reinstall the app to your workspace
Finding Channel/User IDs
Channel ID:
- Right-click on channel name
- Select "View channel details"
- Copy the ID at the bottom
User ID:
- Click on user's profile
- Click "More" (three dots)
- Select "Copy member ID"
Best Practices
- Use channels wisely - Create specific channels for different notification types
- Format messages - Use blocks for rich formatting
- Avoid spam - Group similar notifications
- Use threads - Keep conversations organized
- Test first - Always test in a private channel first
Security
- Rotate tokens - Regularly rotate your bot tokens
- Limit scopes - Only request necessary OAuth scopes
- Monitor usage - Review Slack app activity regularly
- Secure storage - Never commit tokens to version control
Support
Need help with Slack integration?
- Slack API Docs: api.slack.com
- NotiGrid Support: support@notigrid.com
- Community: community.notigrid.com