Manage notification channels
After creating notification channels, you can list, inspect, update, and delete them through the UI, CLI, or API.
List channels
Retrieve all notification channels configured for a given resource (NRN).
- UI (Recommended)
- CLI
- cURL
Go to Platform settings > Notifications > Channels to see all configured channels. You can filter by resource using the NRN selector at the top.
np notification channel list \
--nrn "organization=1:account=2:namespace=3"
curl -L 'https://api.nullplatform.com/notification/channel?nrn=organization%3D1%3Aaccount%3D2%3Anamespace%3D3' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
You can optionally filter by channel type by adding the type parameter:
np notification channel list \
--nrn "organization=1:account=2:namespace=3" \
--type "slack"
The response includes a paginated list of channels with their IDs, types, sources, NRNs, and configurations.
Read a channel
Retrieve the full details of a specific channel by its ID.
- UI (Recommended)
- CLI
- cURL
Go to Platform settings > Notifications > Channels and click on a channel to view its details, including its configuration, filters, and source.
np notification channel read --id 789
curl -L 'https://api.nullplatform.com/notification/channel/789' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
Update a channel
Modify an existing channel's configuration, filters, source, or NRN scope. Use the PATCH endpoint with only the fields you want to change.
- UI (Recommended)
- CLI
- cURL
Go to Platform settings > Notifications > Channels, click on the channel you want to modify, update the fields, and click Save.
np notification channel update --id 789 \
--body '{
"filters": {
"$or": [
{ "action": "scope:stop" },
{ "action": "scope:delete" }
]
}
}'
curl -L -X PATCH 'https://api.nullplatform.com/notification/channel/789' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"filters": {
"$or": [
{ "action": "scope:stop" },
{ "action": "scope:delete" }
]
}
}'
Common updates
Change which Slack channel receives notifications:
{
"configuration": {
"channels": ["new-slack-channel-name"]
}
}
Broaden the NRN scope from application-level to namespace-level:
{
"nrn": "organization=1:account=2:namespace=3"
}
Add a source to an existing channel:
{
"source": ["approval", "audit"]
}
The source field replaces the entire array. Include all sources you want the channel to listen to, not just the new one.
Delete a channel
Remove a notification channel permanently.
- UI (Recommended)
- CLI
- cURL
Go to Platform settings > Notifications > Channels, click on the channel, and click Delete.
np notification channel delete --id 789
curl -L -X DELETE 'https://api.nullplatform.com/notification/channel/789' \
-H 'Authorization: Bearer <token>'
Deleting a channel is permanent and cannot be undone. Any events that would have been routed to this channel will no longer be delivered.
Troubleshooting
Notifications aren't arriving
- Check the source. Make sure the channel's
sourcematches the type of event you expect. For example, deployment approvals require"source": ["approval"], not"source": ["audit"]. See Sources & actions for the full reference. - Check the NRN scope. If the channel is scoped to a specific application but the event happens at the namespace level, the channel won't receive it. Try broadening the NRN to the namespace or organization level.
- Check the filters. Overly restrictive filters can silently drop events. Remove the
filtersfield temporarily to confirm the channel works, then add filters back one at a time. - For Slack channels: Verify that the nullplatform Slack app is invited to the target Slack channel. Use
/invite @nullplatformin Slack. - Verify delivery using notification events. Go to Platform settings > Notifications > Events or use the List events API to see whether the event was generated and its delivery status.
Getting too many notifications
- Add filters to narrow which events reach the channel. For example, filter by action (
"action": "deployment:create") or by namespace ("details.namespace.slug": "production"). - Narrow the NRN from organization-level to account or namespace-level to reduce the event scope.
- Split into multiple channels if different teams need different subsets. Each team gets a channel with its own NRN and filters.
Webhook returns errors
- Verify the URL is correct and reachable from the internet.
- Check authorization headers. If your endpoint requires authentication, make sure the token or API key in the channel's
headersconfiguration is valid and not expired. - Test with resend. Use the Resend endpoint to replay a notification event to your webhook and inspect the result. See Notification events for details.
Agent channel not triggering
- Confirm the agent is running and connected to nullplatform. The agent must be online and reachable.
- Check the API key. The
api_keyin the channel configuration must have the correct permissions. - Verify the selector. The
selectortags on the channel must match the tags assigned to your agent. For example, if the channel specifies"selector": { "environment": "production" }, the agent must have theenvironment=productiontag. - Check the command path. The
cmdlinein the channel configuration must point to a valid executable on the agent's machine.