Create an alert channel
Adds a destination for this website's alerts. Chat and webhook channels need an https URL on a public host, and a chat channel's URL must belong to that service. URLs that point to private or internal addresses are rejected. Each webhook request carries an x-centralcsp-timestamp header and an x-centralcsp-signature header of the form sha256=<hex>: the HMAC-SHA256 of <timestamp>.<raw body>, keyed with your secret. The body is an AlertWebhookPayload, described in this endpoint's alertNotification callback. A Telegram channel takes a bot token and a chat id. An email channel takes the membership ids of workspace members who have access to this website. Counts against the plan's channel limit.
Requires the manager role on the website and the alerting plan feature.
AuthorizationBearer <JWT>An OpenID Connect access token from signing in to CentralCSP, acting as the signed-in user.
workspaceId*stringThe workspace's id.
websiteId*stringThe website's id.
application/json- body
The fields depend on type. Chat channels take an incoming-webhook url and the URL must belong to the chosen service, a webhook channel also takes a signing secret, a telegram channel takes botToken and chatId, and an email channel takes memberIds instead of a URL. Microsoft Teams expects a Power Automate workflow URL.
name*stringDisplay name for the channel.
1 <= length <= 255type*stringA chat service, notified through an incoming webhook.
"slack""google-chat""teams"url*stringAn https URL on a public host. Never returned.
1 <= length <= 2048enabled?booleanDefaults to true.
A destination for alerts.
application/json- response
id*stringThe channel's id.
workspaceId*stringThe workspace's id.
websiteId*stringThe website's id.
name*stringDisplay name.
type*stringThe channel type: slack, google-chat, teams, telegram, webhook or email.
configPreview*stringA masked view of the destination: the URL's origin and last few characters, the Telegram chat id, or the recipients' addresses. Full URLs and secrets are never returned.
hasSecret*booleanWhether a secret is set: a signing secret for a webhook, a bot token for Telegram.
emailRecipients*array<>|The members an email channel notifies. null for other types.
enabled*booleanA disabled channel receives nothing.
disabledReason*|Why the channel was switched off. delivery_failures means it was switched off automatically after repeated failures.
consecutiveFailures*|Failed deliveries in a row. The channel is switched off at five, and the count resets on a success or when you enable it again.
createdAt*stringWhen the channel was created.
date-timeupdatedAt*stringWhen the channel was last changed.
date-timecurl -X POST 'https://api.centralcsp.com/v1/workspaces/01936b7a-6f2e-7c31-9a4d-2f8e1c5b7d90/websites/01936b7a-6f2e-7c31-9a4d-2f8e1c5b7d90/alerts/channels' \ -H 'Content-Type: application/json' \ -d '{ "name": "Security channel", "type": "slack", "url": "https://hooks.slack.com/services/T000/B000/XXXX"}'{ "id": "string", "workspaceId": "string", "websiteId": "string", "name": "Security channel", "type": "slack", "configPreview": "https://hooks.slack.com/…AbCd", "hasSecret": true, "emailRecipients": [ { "memberId": "string", "userId": "string", "hasAccess": true, "email": "string", "firstName": "string", "lastName": "string", "picture": "string" } ], "enabled": true, "disabledReason": "delivery_failures", "consecutiveFailures": 0, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}