Skip to main content

Concepts and glossary

The data model​

A Notify tenant owns one or more applications. An application represents one integration in one environment. Its customer accounts represent the organizations inside your product.

The example names are placeholders. Replace them with identifiers from your own system.

Identity and ownership​

TermMeaningExample
Notify tenantThe organization that owns configuration, team access, and applications in NotifyYour company or business unit
ApplicationOne product integration registered in Notify for a particular environment; it is not a browser session or a customer organizationexample-app / staging
EnvironmentThe deployment boundary an application belongs tostaging or production
Customer accountAn organization or workspace inside the integrating productA customer company using your SaaS
external_keyYour stable organization ID when creating a customer accountorg-123
account_keyThe same external account identifier supplied in notification and user-token requestsorg-123
RecipientThe person or destination receiving a notification within an accountA signed-in customer user
external_user_idYour stable user ID in a notification's recipient objectuser-42
recipient_external_idThe same user identifier when requesting a user tokenuser-42

A customer tenant in your SaaS usually maps to a customer account, not another Notify tenant. Use one application per product and environment, then create accounts for its customer organizations.

Use permanent database IDs or UUIDs. Organization names, email addresses, and phone numbers can change and should not be used as stable account or user identifiers.

Delivery vocabulary​

TermMeaningExample
NotificationOne accepted message request for a recipient and business eventAn invoice payment confirmation
DeliveryOne channel-specific attempt stream belonging to that notificationThe email delivery and the in-app delivery
ChannelThe way a message reaches the recipient; channel names are defined by Notifyemail, whatsapp, discord, in_app, web_push
ProviderThe configured external service connection that sends a channel's messagesSMTP for email, WAHA for WhatsApp, a Discord webhook
TemplateReusable message content identified by template_keyinvoice.paid
Template versionPublished content for a channel and localeEmail content for en-US
VariablesValues inserted into template placeholdersInvoice number and customer name
Event keyYour application's name for the business event; you define this vocabularybilling.invoice.paid
Routing ruleNotify configuration mapping an event key to channelsInvoice paid → email and in-app
Idempotency keyA stable identifier that prevents a retried request from creating another notification in the same application/account/environmentinvoice-paid-INV-10001-v1
InboxPersistent in-app messages shown inside your productA notification panel
SSEAn open HTTP stream used to tell a connected frontend about live eventsRefresh the inbox when a new item arrives
Web PushBrowser delivery using a service worker and a push subscriptionAn OS/browser notification
VAPIDServer identity keys used for Web PushA public key exposed to the browser and a private key kept by Notify

A channel and a provider are different: email is the channel; a configured SMTP connection is its provider. In-app delivery is built in and needs no external provider. Web Push needs platform VAPID configuration and a browser subscription.

Security vocabulary​

TermMeaning
CredentialA secret proving which caller is making a request
Application API keyA backend credential bound to one application and a selected set of scopes
ScopeA Notify-defined permission such as notifications:send; see Scopes and permissions
User tokenA short-lived signed credential bound to one application, account, and recipient
Console sessionThe credential created by Console login for Console operations
Platform administrator keyA platform-wide provisioning credential for the Admin API
BearerThe HTTP authorization scheme: Authorization: Bearer <credential>
RoleA collection of permissions for a human Console team member; separate from API-key scopes

Who defines what?​

Notify defines channels, endpoint contracts, supported scopes, and the credential model. Your application supplies its organization IDs, user IDs, business event names, and business authorization rules. An authorized team member selects API-key scopes from Notify's supported list.