Skip to main content

Slack & Teams Integration

Integrate ASCEND with Slack and Microsoft Teams to receive real-time notifications for approval requests, policy violations, and security alerts.

Supported Platforms

PlatformFeaturesStatus
SlackWebhooks, Interactive MessagesSupported
Microsoft TeamsWebhooks, Adaptive CardsSupported

Notification Types

EventDescriptionDefault Channel
Approval RequiredAction needs human approval#approvals
Action ApprovedAction was approved#approvals
Action RejectedAction was rejected#approvals
Policy ViolationPolicy rule triggered#security-alerts
High Risk AlertHigh-risk action detected#security-alerts
System AlertSystem health notification#ops

Slack Configuration

1. Create Slack App

  1. Go to api.slack.com/apps
  2. Click Create New AppFrom scratch
  3. Name: ASCEND Governance
  4. Select your workspace

2. Enable Incoming Webhooks

  1. Navigate to Incoming Webhooks
  2. Toggle Activate Incoming Webhooks to On
  3. Click Add New Webhook to Workspace
  4. Select the channel for notifications
  5. Copy the Webhook URL

3. Configure in Ascend

curl -X POST https://pilot.owkai.app/api/api/notifications/channels \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"name": "Security Team Slack",
"type": "slack",
"config": {
"webhook_url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXX"
},
"events": ["approval_required", "policy_violation", "high_risk_alert"]
}'

Slack Message Format

{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Approval Required"
}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Agent:*\ncustomer-service-agent"},
{"type": "mrkdwn", "text": "*Action:*\ndatabase_query"},
{"type": "mrkdwn", "text": "*Resource:*\ncustomer_database"},
{"type": "mrkdwn", "text": "*Risk Score:*\n75 (High)"}
]
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {"type": "plain_text", "text": "Approve"},
"style": "primary",
"url": "https://pilot.owkai.app/approvals/act_xyz789"
},
{
"type": "button",
"text": {"type": "plain_text", "text": "View Details"},
"url": "https://pilot.owkai.app/actions/act_xyz789"
}
]
}
]
}

Microsoft Teams Configuration

1. Create Incoming Webhook

  1. Open Microsoft Teams
  2. Navigate to the target channel
  3. Click ...Connectors
  4. Find Incoming Webhook and click Configure
  5. Name: ASCEND Governance
  6. Upload icon (optional)
  7. Click Create and copy the webhook URL

2. Configure in Ascend

curl -X POST https://pilot.owkai.app/api/api/notifications/channels \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"name": "Security Team Teams",
"type": "teams",
"config": {
"webhook_url": "https://outlook.office.com/webhook/xxx/IncomingWebhook/yyy/zzz"
},
"events": ["approval_required", "policy_violation"]
}'

Teams Adaptive Card Format

{
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "Approval Required",
"weight": "bolder",
"size": "large"
},
{
"type": "FactSet",
"facts": [
{"title": "Agent", "value": "customer-service-agent"},
{"title": "Action", "value": "database_query"},
{"title": "Resource", "value": "customer_database"},
{"title": "Risk Score", "value": "75 (High)"}
]
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Approve",
"url": "https://pilot.owkai.app/approvals/act_xyz789"
},
{
"type": "Action.OpenUrl",
"title": "View Details",
"url": "https://pilot.owkai.app/actions/act_xyz789"
}
]
}
}
]
}

API Endpoints

EndpointMethodDescription
/api/notifications/channelsPOSTCreate notification channel
/api/notifications/channelsGETList channels
/api/notifications/channels/{id}PUTUpdate channel
/api/notifications/channels/{id}DELETEDelete channel
/api/notifications/test/{id}POSTSend test notification

Event Configuration

Configure Events per Channel

curl -X PUT https://pilot.owkai.app/api/api/notifications/channels/chan_123 \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"events": [
"approval_required",
"action_approved",
"action_rejected",
"policy_violation",
"high_risk_alert"
],
"filters": {
"min_risk_score": 60,
"action_types": ["database_query", "api_call", "file_access"]
}
}'

Event Filtering

FilterDescription
min_risk_scoreOnly notify for actions above threshold
action_typesFilter by specific action types
agentsFilter by specific agents
severityFilter by severity level

Templates

Custom Message Templates

curl -X POST https://pilot.owkai.app/api/api/notifications/templates \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"name": "approval_required_custom",
"type": "slack",
"template": {
"text": "Action requires approval: {{action_type}} on {{resource}}",
"blocks": [...]
}
}'

Testing

Send Test Notification

curl -X POST https://pilot.owkai.app/api/api/notifications/test/chan_123 \
-b cookies.txt

Troubleshooting

Notifications Not Arriving

  1. Verify webhook URL is correct
  2. Check channel permissions
  3. Test webhook directly:
    curl -X POST "your-webhook-url" \
    -H "Content-Type: application/json" \
    -d '{"text": "Test from ASCEND"}'

Rate Limiting

  • Slack: 1 message per second per webhook
  • Teams: 4 messages per second per webhook

ASCEND automatically queues and throttles messages to respect limits.

Next Steps