Notifly

Workflows

Model every notification as a multi-step workflow — edited visually, triggered by one API call, with digest and render-time translations.

In Notifly, every notification is a workflow: a named sequence of channel steps you design in the dashboard's visual editor and fire from your code with a single API call.

Triggering a workflow

A trigger names the workflow, addresses one or more recipients, and carries a payload your templates can interpolate:

curl -X POST https://api.notifly.io/v1/events/trigger \
  -H "Authorization: ApiKey $NOTIFLY_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "<workflow-id>",
    "to": { "subscriberId": "<subscriber-id>" },
    "payload": { "body": "Your build finished" }
  }'

The to field accepts a subscriber ID, a full subscriber payload, a topic, or a list of them. Delivery itself is handled asynchronously by dedicated worker processes consuming from Redis-backed queues, so the trigger call returns fast.

Digest

Workflows support digest steps: instead of sending each event immediately, related events are collected and delivered as a single summarized notification. This is the standard defense against notification storms ("57 people liked your post" instead of 57 pushes).

Translations (i18n)

Notifly resolves {{t.key}} translation placeholders at render time, using each subscriber's locale, on the actual delivery path — the same renderer serves both dashboard previews and real deliveries, so what you preview is what ships. Manage translation keys per environment in the dashboard; translation endpoints on the API are environment-scoped.

Environments

Workflows, subscribers, messages, and API keys all belong to exactly one environment (Development and Production by default). You iterate safely in Development and promote to Production when ready — the environment a request operates on is determined by the API key you authenticate with.

Topics

Topics let you fan a single trigger out to a group of subscribers (for example, everyone watching a project) without enumerating recipients in the trigger call. Topics are managed over the API alongside subscribers and workflows.

On this page