- API Reference
- Discord Support
- GETGet subscribers
- POSTCreate subscriber
- POSTBulk create subscribers
- GETGet subscriber
- PUTUpdate subscriber
- DELDelete subscriber
- PUTUpdate subscriber credentials
- DELDelete subscriber credentials by providerId
- PATCHUpdate subscriber online status
- GETGet subscriber preferences
- GETGet subscriber preferences by level
- PATCHUpdate subscriber preference
- PATCHUpdate subscriber global preferences
- GETGet in-app notification feed for a particular subscriber
- GETGet the unseen in-app notifications count for subscribers feed
- POSTMark a subscriber feed messages as seen or as read
- POSTMarks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.
- POSTMark message action as seen
- GETHandle providers oauth redirect
- GETHandle chat oauth
- GETFilter topics
- POSTTopic creation
- POSTSubscribers addition
- GETCheck topic subscriber
- POSTSubscribers removal
- GETGet topic
- DELDelete topic
- PATCHRename a topic
- GETGet notifications
- GETGet notification statistics
- GETGet notification graph statistics
- GETGet notification
- GETGet workflows
- POSTCreate workflow
- GETGet workflow
- PUTUpdate workflow
- DELDelete workflow
- PUTUpdate workflow status
- POSTCreate workflow override
- GETGet workflow overrides
- GETGet workflow override
- GETGet workflow override by id
- PUTUpdate workflow override by id
- PUTUpdate workflow override
- DELDelete workflow override
- GETGet workflow groups
- POSTCreate workflow group
- GETGet workflow group
- DELDelete workflow group
- PATCHUpdate workflow group
- GETGet integrations
- POSTCreate integration
- GETGet active integrations
- GETGet webhook support status for provider
- PUTUpdate integration
- DELDelete integration
- POSTSet integration as primary
- GETFilter layouts
- POSTLayout creation
- GETGet layout
- DELDelete layout
- PATCHUpdate a layout
- POSTSet default layout
- GETGet execution details
Subscribers
Topics
Notification
Workflows
Workflow Overrides
Workflow groups
Integrations
Layouts
Execution Details
Bulk trigger event
Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. The bulk API is limited to 100 events per request.
import { Novu } from '@novu/node';
const novu = new Novu("<NOVU_API_KEY>");
await novu.events.bulkTrigger([
{
name: "<WORKFLOW_TRIGGER_IDENTIFIER>",
to: "<UNIQUE_SUBSCRIBER_IDENTIFIER>",
payload: {
customKey: "customValue",
customKey1: {
nestedkey1: "nestedValue1"
}
},
overrides: {
email: {
from: "support@novu.co"
}
},
// actorId is subscriberId of actor
actor: "actorId"
tenant: "tenantIdentifier"
},
{
name: "<WORKFLOW_TRIGGER_IDENTIFIER>",
to: "<UNIQUE_SUBSCRIBER_IDENTIFIER>",
payload: {
customKey: "customValue",
customKey1: {
nestedkey1: "nestedValue1"
}
},
overrides: {
email: {
from: "support@novu.co"
}
},
// actorId is subscriberId of actor
actor: "actorId"
tenant: "tenantIdentifier"
}
])
{
"data": [
{
"acknowledged": true,
"status": "processed",
"transactionId": "string"
}
]
}
Enter your API key in the Authorization
field like the example shown below:
E.g ApiKey 18d2e625f05d80e
Body
The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page.
The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. This data will also be available when fetching the notifications feed from the API to display certain parts of the UI.
This could be used to override provider specific configurations
The recipients list of people who will receive the notification.
The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems
An http url to the profile image of your subscriber
A unique identifier for this transaction, we will generated a UUID if not provided.
It is used to display the Avatar of the provided actor's subscriber id or actor object. If a new actor object is provided, we will create a new subscriber in our system
It is used to specify a tenant context during trigger event. If a new tenant object is provided, we will create a new tenant.
Response
If trigger was acknowledged or not
Status for trigger
error
, trigger_not_active
, no_workflow_active_steps_defined
, no_workflow_steps_defined
, processed
, subscriber_id_missing
, no_tenant_found
In case of an error, this field will contain the error message
Transaction id for trigger
Was this page helpful?
import { Novu } from '@novu/node';
const novu = new Novu("<NOVU_API_KEY>");
await novu.events.bulkTrigger([
{
name: "<WORKFLOW_TRIGGER_IDENTIFIER>",
to: "<UNIQUE_SUBSCRIBER_IDENTIFIER>",
payload: {
customKey: "customValue",
customKey1: {
nestedkey1: "nestedValue1"
}
},
overrides: {
email: {
from: "support@novu.co"
}
},
// actorId is subscriberId of actor
actor: "actorId"
tenant: "tenantIdentifier"
},
{
name: "<WORKFLOW_TRIGGER_IDENTIFIER>",
to: "<UNIQUE_SUBSCRIBER_IDENTIFIER>",
payload: {
customKey: "customValue",
customKey1: {
nestedkey1: "nestedValue1"
}
},
overrides: {
email: {
from: "support@novu.co"
}
},
// actorId is subscriberId of actor
actor: "actorId"
tenant: "tenantIdentifier"
}
])
{
"data": [
{
"acknowledged": true,
"status": "processed",
"transactionId": "string"
}
]
}