Novu
| Schemes | novu:// |
| Cargo feature | service-novu |
| Service | https://novu.co/ |
| Body formats | text, html, markdown (first is the default) |
| Attachments | no |
| Title length | 250 characters |
| Body length | 32,768 characters |
| Body lines | unlimited |
| Request throttle | none |
| Vendor URLs accepted | no |
URL formats
novu://{api_key}/{workflow_id}/{targets}
URL tokens
| Token | Meaning | Type | Required | Default | Notes |
|---|---|---|---|---|---|
{api_key} | API Key | string | yes | secret | |
{targets} | Subscribers | list | yes | separated by /; subscriber id, e-mail or +phone | |
{workflow_id} | Workflow ID | string | yes |
Query parameters
| Parameter | Meaning | Type | Default | Notes |
|---|---|---|---|---|
host | API Host | string | self-hosted API, host[:port][/path] or a full http(s):// URL; wins over region | |
region | Region | choice | us | one of us, eu |
to | Subscribers | list | sets {targets} | |
transaction | Transaction ID | string |
Prefixed parameters:
:name=value: Payload Extras+name=value: HTTP Header
The common URL parameters (format, overflow, verify, redirect, cto, rto, retry, wait, store, tag, tz, user, password, port, optional, emojis) apply as well.
Examples
Accepted URLs (tokens are fake):
novu://apikey/welcome/sub1
novu://apikey/welcome/sub1/user@example.com/+15551234567
novu://apikey/welcome?region=EU&to=a,b
novu://apikey/welcome/sub1?host=http://10.0.0.5:3000
novu://apikey/welcome/sub1?host=novu.example.com:3000/api&transaction=tx-1&:env=prod&+X-Trace=abc
Rejected URLs:
novu://
novu://apikey
novu://apikey/welcome
novu://apikey/welcome/sub1?region=mars
Send one from the command line:
mercurio -t 'Backup' -b 'Finished in 42s' 'novu://apikey/welcome/sub1'
Notes
Novu (novu://): triggers a Novu workflow for subscribers. Written from the Novu API reference (https://docs.novu.co/api-reference/events/trigger-event).
novu://{api_key}/{workflow_id}/{subscriber}[/{subscriber}...]
Options:
?region=euuseshttps://eu.api.novu.co(defaulthttps://api.novu.co).?host=novu.example.com[:port][/path](or a fullhttp(s)://URL) points at a self-hosted Novu API; it wins overregion.?to=a,badds subscribers;?transaction=..setstransactionId.:key=valueaddskeyto the triggerpayload;+Header=valueadds an HTTP header.
Each subscriber is a subscriber id, an e-mail ({"subscriberId": email, "email": email}) or +<phone> ({"subscriberId": phone, "phone": phone}). One POST /v1/events/trigger is sent per 100 subscribers with Authorization: ApiKey {api_key} and {"name": workflow_id, "to": [...], "payload": {"title", "body", "type"}}. Success is any 2xx whose body (or its data object) does not say "acknowledged": false.
Differences with Apprise
- Not in Apprise; written from the vendor documentation (hand-written fixtures).