Payload
API Reference
Subscribers
- 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 global preferences
- 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 message as seen
- 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
Topics
Notification
Workflows
Workflow Overrides
Workflow groups
Integrations
Layouts
Execution Details
Organizations
Payload
Workflow payload is the data passed during the novu.trigger
method. This is useful for ensuring that the payload is correctly formatted and that the data is valid.
Payload Schema
Payload schema is defining the payload passed during the novu.trigger
method. This is useful for ensuring that the payload is correctly formatted and that the data is valid.
workflow('comment-on-post', async ({ step, payload }) => {
await step.email(
'send-email',
async () => {
return {
subject: `You have a new comment from: ${payload.author_name}.`,
body: render(<ReactEmailContent comment={payload.comment} />),
}
});
},
{
payloadSchema: {
// Always `object`
type: 'object',
// Specify the properties to validate. Supports deep nesting.
properties: {
post_id: { type: 'number' },
author_name: { type: 'string' },
comment: { type: 'string', maxLength: 200 },
},
// Specify the array of which properties are required.
required: ['post_id', 'comment'],
// Used to enforce full type strictness, with no rogue properties.
additionalProperties: false,
// The `as const` is important to let Typescript know that this
// type won't change, enabling strong typing on `inputs` via type
// inference of the provided JSON Schema.
} as const,
},
);
Passing Payload
Here is an example of the validated payload during trigger:
novu.trigger('comment-on-post', {
to: 'subscriber_id',
payload: {
post_id: 1234,
author_name: 'John Doe',
comment: 'Looks good!'
}
});
Was this page helpful?
On this page