Skip to content
Sendora Cloud
Create account
Operate

Ops Alerts

In-product notification feeds (badge + list + mark-read) shared across web and native. Server-driven, real-time delivery.

Features

  • **Rule-based routing** — match on event type + properties + module; multiple matchers per rule with AND/OR composition.
  • **Slack channels** — incoming webhook URL per channel; payload formatted for Slack's `attachments` shape with module-tinted colour bars.
  • **Generic HTTPS webhooks** — for ops platforms that aren't Slack (Discord, MS Teams via custom adapter, internal incident systems).
  • **Retry worker** — transient 5xx + network errors retried with exponential backoff; `notifications_logs` row tracks every attempt with status code + error body.
  • **Per-channel dispatch log** — every alert routed is recorded so on-call can audit "did we get pinged for X" without grepping Slack.
  • **Test channel button** — verifies your Slack webhook URL is live before you trust a 3am page to it.
  • **Same event source as Automation + Webhooks** — your platform event taxonomy fires alerts, runs workflows, AND notifies subscribed webhook endpoints out of one stream. No second event pipeline.

Common use cases

  • Replace PagerDuty alert routing for ops events you already track in Sendora (delivery failures, anomaly detections, signin storms).
  • Slack channel for every module — `#sendora-email` for bounces, `#sendora-auth` for signin alerts, `#sendora-ops` for everything else.
  • Custom incident integration — POST event payloads to your in-house on-call system from the same rule engine that drives Slack pings.

Notifications

Configure notification channels

FREE

Per-org channel registry. Each channel has a kind (email/push/sms/in_app) + provider config + frequency-cap defaults. Workflow steps reference channels by id.

# Create
curl -X POST https://api.sendoracloud.com/api/v1/orgs/<ORG_UUID>/notifications/channels \
  -H "x-api-key: pk_prod_…" \
  -d '{ "kind": "push", "name": "transactional-push", "frequencyCap": { "perUser": 5, "windowHours": 24 } }'

# List
curl https://api.sendoracloud.com/api/v1/orgs/<ORG_UUID>/notifications/channels \
  -H "x-api-key: pk_prod_…"

# Test (sends a synthetic message through the channel to a test recipient)
curl -X POST https://api.sendoracloud.com/api/v1/orgs/<ORG_UUID>/notifications/channels/<CHANNEL_UUID>/test \
  -H "x-api-key: pk_prod_…" \
  -d '{ "to": "alice@example.com" }'

Create a notification rule

STARTER+

Rules describe trigger event + channel(s) + frequency caps. Workflow engine evaluates on event ingest.

curl -X POST https://api.sendoracloud.com/api/v1/orgs/<ORG_UUID>/notifications/rules \
  -H "x-api-key: pk_prod_…" \
  -d '{
    "key": "welcome",
    "channelIds": ["<CHANNEL_UUID>"],
    "frequencyCap": { "perUser": 1, "windowHours": 24 },
    "quietHoursTz": "America/New_York"
  }'

Read delivery logs

FREE

Per-recipient × channel × rule attempt trail with delivery / open / click events when supported by the channel.

curl "https://api.sendoracloud.com/api/v1/orgs/<ORG_UUID>/notifications/logs?ruleKey=welcome&from=2026-05-01" \
  -H "x-api-key: pk_prod_…"

# Aggregate stats
curl https://api.sendoracloud.com/api/v1/orgs/<ORG_UUID>/notifications/logs/stats \
  -H "x-api-key: pk_prod_…"

Related