Norq

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: suprsend

workspace_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_batch posts the array of per-recipient channels to /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-Key header. 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) and Screenshot (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 ($.id or equivalent).

Preview

  • Endpoint: POST {base_url}/v1/render/preview.
  • Returns: image bytes (PNG) for desktop or mobile, light or dark.
  • Used by norq preview and the norq_render_preview MCP 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 screenshot and the norq_render_screenshot MCP tool.

Retry

Defaults apply uniformly to send, preview, and screenshot: 429 + 5xx (500, 502, 503, 504), 2 retries, 500ms backoff.