Skip to content

PopSQL: limited support.

Migrate now →

Channels

The nine delivery destinations, what each one needs, and what each one can carry. Each has its own page with the setup, the fields and how to test.

What exists

ChannelConfigurationCarries attachments
EmailThe workspace SMTP server, or ours; sender verifiable by domainYes
WhatsAppMeta’s WhatsApp Cloud API: phone number id, access token, and the template they approvedYes — when the approved template declares a DOCUMENT header
TelegramBot token, and the destination’s numeric chat id; the bot has to be in the group or chatYes — sent as a document, with the text as its caption
WebhookURL, optional headers, and a secret for signingYes — the body is the result
SlackIncoming webhook URL; a bot token with files:write for uploadsOnly with a bot token
DiscordWebhook URL of the channelNo — summary and link
PagerDutyEvents API v2 routing key of the serviceNo — it opens an incident
OpsgenieAPI key of an integration, and the region (US or EU)No — it opens an alert

The WhatsApp integration uses Meta’s official Cloud API. Messages outside the 24-hour window need a template they approved — that is Meta’s rule, not ours. On Telegram, a bot only reaches whoever messaged it first: the destination is the numeric chat id, and a person’s @name is not addressable by the Bot API.

Test before depending on it

Every channel has a test button that validates the credentials against the provider without sending a message, and records the outcome — date, status, and the provider’s error when there was one. A channel that has never been tested is flagged in the list. To check delivery end to end, run the report: the run log says which channel each recipient went through and what the provider answered.

Webhook signature

When you set a secret, every POST carries an HMAC-SHA256 signature of the body in a header. Verify it before processing: without that, anyone who discovers the URL can inject a fake report into your system.