Channels
Channels define where notifications are delivered. Configure them via the UI, CLI, or API to route events to:
- Slack: Receive messages in specific channels for approvals or alerts.
- HTTP Webhooks: Programmatically process events with custom logic (e.g., auto-approve deployments during business hours).
- Agent: Use this channel to send service actions from nullplatform to your runner.
- GitHub and GitLab: Integrate with your GitHub or GitLab workflows as part of your service provisioning process.
- Azure: Connect Azure Pipelines to your service provisioning process.
You can find full examples and detailed request formats for each channel in our API reference.
You can create and configure notification channels directly from the UI to track operations on entities.
Go to Platform settings > Notifications > Channels and click + New channel.
Slack
To receive notifications on Slack, you'll need to:
-
Install nullplatform's Slack application
Go tohttps://<your-org-slug>.app.nullplatform.io/integrationand click Connect Slack to authorize the application. -
In Slack, invite the nullplatform application to the channels where you want to receive notifications
You can do this with the slash command/invite @nullplatform. -
Set notification channels for your teams, applications, etc.
To create a notification channel for Slack, you can use the UI, the nullplatform CLI, or send a POST request to create a channel.
If multiple teams need notifications (e.g., different approvers per team), create a separate notification channel for each team by specifying the corresponding NRN.
Example request:
- UI (Recommended)
- CLI
- cURL
The easiest way to create a Slack notification channel is through the UI.
- Go to Platform settings → Notifications → Channels.
- Click + New channel.
- Fill in the required fields:
- Description: A human-readable description to help you identify the channel, for example: My Slack channel for approval notifications
- Source: The entity whose activity you want to listen to, for example: approval
- Channel type: Select Slack, then enter the Slack channel name, for example: my-organization-private-channel
- Resource (NRN): Select the resource that will trigger the notifications.
- Filters: Define which events should generate notifications by filtering the incoming data, for example: action equals deployment:create
- Click Create channel to create the notification channel.
curl -L -X POST 'https://api.nullplatform.com/notification/channel' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"nrn": "organization=1:account=2:namespace=3:application=4", // The NRN of the resource where the action will apply.
"description": "My Slack channel for approval notifications",
"source": [
"approval"
],
"type": "slack",
"configuration": {
"channels": [
"my-organization-private-channel"
]
},
"filters": {
"action": "deployment:create"
}
}'
This endpoint returns an ID that you can later use to reconfigure or delete the notification channel using PATCH or DELETE
requests.
np notification channel create \
--body '{
"nrn": "organization=1:account=2:namespace=3:application=4", // The NRN of the resource where the action will apply.
"description": "My Slack channel for approval notifications",
"source": [
"approval"
],
"type": "slack",
"configuration": {
"channels": [
"my-organization-private-channel"
]
},
"filters": {
"action": "deployment:create"
}
}'
This endpoint returns an ID that you can later use to reconfigure or delete the notification channel using PATCH or DELETE
requests.
Once configured, you’ll receive Slack messages to approve or deny requests.
Here's an example:
Agent
Agent notification channels let you trigger actions inside your infrastructure in response to events that happen in nullplatform.
You can use the nullplatform CLI or send a POST request to create a channel.
Example request:
- UI (Recommended)
- CLI
- cURL
The easiest way to create an agent notification channel is through the UI.
- Go to Platform settings → Notifications → Channels.
- Click + New channel.
- Fill in the required fields:
- Description: A human-readable description to help you identify the channel, for example: My Agent channel to receive notifications
- Source: The entity whose activity you want to listen to, for example: telemetry and service.
- Channel type: Select Agent, and enter the configuration data.
- Resource (NRN): Select the resource that will trigger the notifications.
- Filters: Define which events should generate notifications by filtering the incoming data.
- Click Create channel to create the notification channel.
np notification channel create \
--body '{
"nrn": "organization=1:account=2:namespace=3:application=4",
"description": "My Agent channel",
"type": "agent",
"configuration": {
"api_key": "AAAA.1234567890abcdef1234567890abcdefPTs=",
"command": {
"type": "exec",
"data": {
"cmdline": "/root/.np/services/entrypoint --service-path=\"$SERVICE_PATH\",
"environment": {
"NP_ACTION_CONTEXT": "${NOTIFICATION_CONTEXT}"
}
}
},
"selector": { "environment": "local" }
},
"source": ["telemetry", "service"],
"filters": {
"service.specification.slug": "$service-spec-slug"
}
}'
curl -X POST 'https://api.nullplatform.com/notification/channel' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"nrn": "organization=1:account=2:namespace=3:application=4",
"description": "My Agent channel",
"type": "agent",
"configuration": {
"api_key": "AAAA.1234567890abcdef1234567890abcdefPTs=",
"command": {
"type": "exec",
"data": {
"cmdline": "/root/.np/services/entrypoint --service-path=\"$SERVICE_PATH\",
"environment": {
"NP_ACTION_CONTEXT": "${NOTIFICATION_CONTEXT}"
}
}
},
"selector": { "environment": "local" }
},
"source": ["telemetry", "service"],
"filters": {
"service.specification.slug": "$service-spec-slug"
}
}'
HTTP webhook (programmatic)
To have programmatic control over your notifications, you can use HTTP webhooks to allow systems to programmatically respond to approval requests.
This lets you implement custom logic, such as "approve this deployment only if it's business hours and the card is marked as verified by QA".
Configure nullplatform to send POST requests to your custom endpoint using either our API or the CLI.
Embed any token or secret directly in the URL or headers. We currently do not support a refresh token scheme.
- UI (Recommended)
- CLI
- cURL
The easiest way to create a HTTP notification channel is through the UI.
- Go to Platform settings → Notifications → Channels.
- Click + New channel.
- Fill in the required fields:
- Description: A human-readable description to help you identify the channel, for example: My HTTP channel for approval notifications
- Source: The entity whose activity you want to listen to, for example: telemetry and service.
- Channel type: Select HTTP, and enter the configuration URL and headers.
- Resource (NRN): Select the resource that will trigger the notifications.
- Filters: Define which events should generate notifications by filtering the incoming data.
- Click Create channel to create the notification channel.
curl -X POST "https://api.nullplatform.com/notification/channel" \
-H "Content-Type: application/json" \
-d '{
"source": ["approval"],
"description": "My HTTP channel for approval notifications",
"nrn": "organization=1:account=2:namespace=3:application=4",
"type": "http",
"configuration": {
"url": "https://yourdomain.com/your-configured-endpoint",
"headers": {
"Authorization": "Bearer the-token"
}
}
}'
np notification channel create \
--body '{
"source": ["approval"],
"nrn": "organization=1:account=2:namespace=3:application=4",
"description": "My HTTP channel for approval notifications",
"type": "http",
"configuration": {
"url": "https://yourdomain.com/your-configured-endpoint",
"headers": {
"Authorization": "Bearer the-token"
}
}
}'
After setting up your custom notification channel, you'll start receiving requests like these:
{
"id": 123,
"source": "approval",
"created_at": "2022-12-19T20:37:42.109Z",
"notification": {
"approval_id": 1234,
"approve_url": "https://api.nullplatform.com/approval/1234/approve?token=the-token",
"deny_url": "https://api.nullplatform.com/approval/1234/deny?token=the-token",
"requested_by": {
"user_id": 1,
"email": "alex.doe.developer@yourdomain.com",
"first_name": "alex",
"last_name": "doe",
"avatar": null
},
"action": "deployment:create",
"details": {...}
}
}