API Reference
Notifications
Integrations
Subscribers
- GETGet subscribers
- POSTBulk create subscribers
- PUTUpdate subscriber credentials
- PATCHModify subscriber credentials
- DELDelete subscriber credentials by providerId
- PATCHUpdate subscriber online status
- GETGet in-app notification feed for a particular subscriber
- GETGet the unseen in-app notifications count for subscribers feed
- POSTMark a subscriber messages as seen, read, unseen or unread
- 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
- GETSearch for subscribers
- POSTCreate subscriber
- GETGet subscriber
- DELDelete subscriber
- PATCHPatch subscriber
- GETGet subscriber preferences
- PATCHUpdate subscriber global or workflow specific preferences
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/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.triggerBulk({
events: [
{
workflowId: "workflow_identifier",
payload: {
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides: {
"fcm": {
"data": {
"key": "value",
},
},
},
to: {
subscriberId: "<id>",
},
},
{
workflowId: "workflow_identifier",
payload: {
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides: {
"fcm": {
"data": {
"key": "value",
},
},
},
to: [
{
topicKey: "<value>",
type: "Subscriber",
},
],
},
{
workflowId: "workflow_identifier",
payload: {
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides: {
"fcm": {
"data": {
"key": "value",
},
},
},
to: [
"SUBSCRIBER_ID",
"SUBSCRIBER_ID",
],
},
],
});
// Handle the result
console.log(result);
}
run();
[
{
"acknowledged": true,
"status": "error",
"error": [
"<string>"
],
"transactionId": "<string>"
}
]
Authorizations
API key authentication. Allowed headers-- "Authorization: ApiKey <api_key>".
Headers
A header for idempotency purposes
Body
The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page.
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
The email address of the subscriber.
The first name of the subscriber.
The last name of the subscriber.
The phone number of the subscriber.
An HTTP URL to the profile image of your subscriber.
The locale of the subscriber.
An optional payload object that can contain any properties.
An optional array of subscriber channels.
The ID of the chat or push provider.
slack
, discord
, msteams
, mattermost
, ryver
, zulip
, grafana-on-call
, getstream
, rocket-chat
, whatsapp-business
, fcm
, apns
, expo
, one-signal
, pushpad
, push-webhook
, pusher-beams
An optional identifier for the integration.
The timezone of the subscriber.
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
A unique identifier for this transaction, we will generate 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. Existing tenants will be updated with the provided details.
Response
Indicates whether the trigger was acknowledged or not
Status of the trigger
error
, trigger_not_active
, no_workflow_active_steps_defined
, no_workflow_steps_defined
, processed
, no_tenant_found
, invalid_recipients
In case of an error, this field will contain the error message(s)
The returned transaction ID of the trigger
Was this page helpful?
import { Novu } from "@novu/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.triggerBulk({
events: [
{
workflowId: "workflow_identifier",
payload: {
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides: {
"fcm": {
"data": {
"key": "value",
},
},
},
to: {
subscriberId: "<id>",
},
},
{
workflowId: "workflow_identifier",
payload: {
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides: {
"fcm": {
"data": {
"key": "value",
},
},
},
to: [
{
topicKey: "<value>",
type: "Subscriber",
},
],
},
{
workflowId: "workflow_identifier",
payload: {
"comment_id": "string",
"post": {
"text": "string",
},
},
overrides: {
"fcm": {
"data": {
"key": "value",
},
},
},
to: [
"SUBSCRIBER_ID",
"SUBSCRIBER_ID",
],
},
],
});
// Handle the result
console.log(result);
}
run();
[
{
"acknowledged": true,
"status": "error",
"error": [
"<string>"
],
"transactionId": "<string>"
}
]