SuprSend
SuprSend is a built-in Norq provider that fans out a single
notification across every channel (email, SMS, Slack, push,
WhatsApp, MS Teams) through one API call to the SuprSend hub. It’s
the only Norq provider that also handles render operations
(norq preview and norq screenshot) — the hub renders email
previews and email-client screenshots server-side.
Configuration
providers:
suprsend:
config:
workspace_key: ${SUPRSEND_WORKSPACE_KEY}
workspace_secret: ${SUPRSEND_WORKSPACE_SECRET}
# Optional — defaults to https://hub.suprsend.com
base_url: https://hub.suprsend.com
routing:
email: suprsend
sms: suprsend
slack: suprsend
push: suprsend
whatsapp: suprsend
msteams: suprsendworkspace_key and workspace_secret are required. base_url is
optional and defaults to the public hub.
Environment-variable fallback
If providers.suprsend is not declared, Norq registers SuprSend when
these env vars are set:
| Var | Required |
|---|---|
NORQ_SUPRSEND_WORKSPACE_KEY |
yes |
NORQ_SUPRSEND_WORKSPACE_SECRET |
yes |
NORQ_SUPRSEND_BASE_URL |
optional (default https://hub.suprsend.com) |
Capabilities
- Channels: all six — email, SMS, Slack, push (ios/android/web), WhatsApp, MS Teams.
- Batching: supported —
prepare_send_batchposts the array of per-recipientchannelsto/v1/notification/trigger/bulk. Max batch size is 1000 messages per request; the SDK auto-flushes at this limit. - Idempotency: real server-side dedup via the
Idempotency-Keyheader. The SDK auto-generates a UUID v4 when the caller does not supply one. - Render operations: uniquely supports
Preview(quick image, desktop/mobile, dark mode toggle) andScreenshot(device-specific email-client rendering, e.g. Outlook, Gmail iOS) for the email channel. SMS / Slack / push / WhatsApp / MS Teams render is not applicable.
Request shape
Send
-
Body:
application/json. Top-level shape:{ "channels": [ { "channel": "email", "to": "...", "subject": "...", "html": "..." }, { "channel": "sms", "to": "+1...", "body": "..." } ] } -
Auth:
Authorization: Bearer <workspace_key>:<workspace_secret>(the colon-joined token is the literal Bearer value). -
Endpoint (single):
POST {base_url}/v1/notification/trigger. -
Endpoint (batch):
POST {base_url}/v1/notification/trigger/bulk. -
Success:
200/202. Norq extracts the request ID from the response body ($.idor equivalent).
Preview
- Endpoint:
POST {base_url}/v1/render/preview. - Returns: image bytes (PNG) for desktop or mobile, light or dark.
- Used by
norq previewand thenorq_render_previewMCP tool.
Screenshot
- Endpoint:
POST {base_url}/v1/render/screenshot. - Returns: image bytes for a specific email client (e.g. Outlook 2019, Gmail iOS, Apple Mail dark).
- Used by
norq screenshotand thenorq_render_screenshotMCP tool.
Retry
Defaults apply uniformly to send, preview, and screenshot: 429 + 5xx (500, 502, 503, 504), 2 retries, 500ms backoff.