Notification Channels API
Notification Channels are reusable destination configurations — Slack channels, Teams webhooks, email recipients, or external webhook URLs — that can be applied to any Milestone or Sequence Trigger. Managing channels centrally means you only update a destination in one place when it changes.
GET /notification-channels
List all notification channels for the active Organizational Unit.
Request
No query parameters required.
Response
200 OK
[
{
"id": "ch-abc123",
"unit_id": "ou-xyz",
"name": "Sales Slack - #hot-leads",
"type": "slack",
"config": {
"channel_id": "C01ABCDEF",
"channel_name": "#hot-leads"
},
"created_at": "2025-03-01T10:00:00Z",
"updated_at": "2025-03-15T09:30:00Z"
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for this channel |
unit_id | string | Organizational Unit this channel belongs to |
name | string | Display name for the channel |
type | string | Channel type: slack, teams, webhook, or email |
config | object | Type-specific destination configuration (see below) |
created_at | timestamp | When the channel was created |
updated_at | timestamp | When the channel was last updated |
Config Object by Type
Slack:
| Field | Description |
|---|---|
channel_id | Slack channel ID (e.g., C01ABCDEF) |
channel_name | Display name (e.g., #hot-leads) |
Teams:
| Field | Description |
|---|---|
webhook_url | Incoming webhook URL for the Teams channel |
channel_name | Display name for the channel |
Webhook:
| Field | Description |
|---|---|
url | Endpoint URL that receives POST notifications |
auth_header | Optional authorization header value |
Email:
| Field | Description |
|---|---|
recipients | Comma-separated email addresses |
subject_prefix | Optional prefix for the email subject line |
Example
curl -X GET "https://api.kenbun.io/notification-channels" \
-H "Authorization: Bearer <token>"
POST /notification-channels
Create a new notification channel.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display name for the channel |
type | string | Yes | Channel type: slack, teams, webhook, or email |
config | object | Yes | Type-specific destination settings (see config fields above) |
Example
curl -X POST "https://api.kenbun.io/notification-channels" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "RevOps Weekly Digest",
"type": "email",
"config": {
"recipients": "revops@company.com,sales-mgr@company.com",
"subject_prefix": "[kenbun Alert]"
}
}'
Response
201 Created — Returns the created channel object.
Common Errors
| Status | Meaning | Solution |
|---|---|---|
| 400 | Missing or invalid fields | Ensure name and type are provided and type is one of the valid values |
| 401 | Unauthorized | Check your API credentials |
PUT /notification-channels/{id}
Update an existing notification channel.
Path Parameters
| Parameter | Description |
|---|---|
id | The channel ID to update |
Request Body
Same fields as POST /notification-channels. All fields are replaced on update.
Example
curl -X PUT "https://api.kenbun.io/notification-channels/ch-abc123" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Sales Slack - #qualified-leads",
"type": "slack",
"config": {
"channel_id": "C09ZYXWVU",
"channel_name": "#qualified-leads"
}
}'
Response
200 OK — Returns the updated channel object.
Common Errors
| Status | Meaning | Solution |
|---|---|---|
| 404 | Channel not found | Verify the channel ID exists in your OU |
DELETE /notification-channels/{id}
Delete a notification channel.
Path Parameters
| Parameter | Description |
|---|---|
id | The channel ID to delete |
Response
204 No Content — The channel has been deleted.
Important Note
Deleting a channel does not automatically update triggers that reference it. Any trigger that was using this channel will lose its destination configuration and will need to be reconfigured manually.
Example
curl -X DELETE "https://api.kenbun.io/notification-channels/ch-abc123" \
-H "Authorization: Bearer <token>"
Related Documentation
- Triggers — Use notification channels when configuring Milestone and Sequence Triggers
- API: Milestone Triggers — Milestone trigger endpoints
- API: Sequence Triggers — Sequence trigger endpoints