Add Notifications
curl --request POST \
--url https://api.velt.dev/v2/notifications/add \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"organizationId": "<string>",
"createOrganization": true,
"documentId": "<string>",
"createDocument": true,
"actionUser": {},
"verifyUserPermissions": true,
"notificationId": "<string>",
"isNotificationResolverUsed": true,
"displayHeadlineMessageTemplate": "<string>",
"displayHeadlineMessageTemplateData": {
"actionUser": {},
"recipientUser": "<string>",
"yourCustomField": "<string>"
},
"displayBodyMessage": "<string>",
"notifyUsers": [
{}
],
"notifyAll": true,
"notificationSource": "<string>",
"notificationSourceData": {},
"context": {
"access": {}
}
}
}
'{
"result": {
"status": "success",
"message": "Notification added successfully.",
"data": {
"success": true,
"message": "Notification added successfully."
}
}
}
Notifications
Add Notifications
POST
/
v2
/
notifications
/
add
Add Notifications
curl --request POST \
--url https://api.velt.dev/v2/notifications/add \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"organizationId": "<string>",
"createOrganization": true,
"documentId": "<string>",
"createDocument": true,
"actionUser": {},
"verifyUserPermissions": true,
"notificationId": "<string>",
"isNotificationResolverUsed": true,
"displayHeadlineMessageTemplate": "<string>",
"displayHeadlineMessageTemplateData": {
"actionUser": {},
"recipientUser": "<string>",
"yourCustomField": "<string>"
},
"displayBodyMessage": "<string>",
"notifyUsers": [
{}
],
"notifyAll": true,
"notificationSource": "<string>",
"notificationSourceData": {},
"context": {
"access": {}
}
}
}
'{
"result": {
"status": "success",
"message": "Notification added successfully.",
"data": {
"success": true,
"message": "Notification added successfully."
}
}
}
Use this API to add notifications.
Endpoint
POST https://api.velt.dev/v2/notifications/add
Headers
Your API key.
Your Auth Token.
Body
Params
Show properties
Show properties
Organization ID
If set to true, a new organization will be created (if it doesn’t exist) before the notification is created.
Document ID
If set to true, a new document will be created before the notification is created.
User who took the action
When enabled, notifications are only created for users who have access to the specified document.
This ensures notifications respect document access permissions configured via Access Control or Permission Provider.Default:
falseNotification ID. If not provided, Velt will generate a random ID.
Use this if you want more control on the ID being set and prevent duplicate notifications.
Only the special characters
_, - are allowed.Set to
true to enable Notification Resolver mode.
When enabled, displayHeadlineMessageTemplate and displayBodyMessage are not required — notification content is resolved from your own infrastructure at read time.Display Headline Message Template. Required unless
isNotificationResolverUsed is true.Display Body Message. Required unless
isNotificationResolverUsed is true.Array of Notify Users
Default is true.
If set to true, the notification will be sent to all users in the organization.
If set to false, the notification will be sent to only the users specified in the
notifyUsers array.Source identifier for the notification. Set to
'custom' for notifications that should be routed through the Notification Resolver. Other values include 'comment', 'huddle', and 'crdt'.Any custom object to be stored with the notification.
When the user clicks on the notification, this data will be sent in the callback.
Use this for self-hosting notification data. Set to
true if you are using the notification resolver data provider in the SDK. When true, indicates that PII has been stripped from the notification record and the record is pending resolver re-hydration.Context for filtering notifications. Use this to enable context-based filtering of notifications.
Show properties
Show properties
Key-value pairs for filtering. Keys are custom field names, values are strings or numbers.
Show example
Show example
{
"entityId": "numberOfVisitors",
"dashboardId": "myDashboard"
}
Example Request
{
"data": {
"organizationId": "yourOrganizationId",
"documentId": "yourDocumentId",
"actionUser": {
"userId": "yourUserId",
"name": "User Name",
"email": "user@example.com"
},
"displayHeadlineMessageTemplate": "This is main template, you can pass variables using curly brackets like this: {actionUser}, {recipientUser}, {yourCustomVariableWithStringValue}",
"displayHeadlineMessageTemplateData": {
"actionUser": {
"userId": "yourUserId",
"name": "User Name",
"email": "user@example.com"
},
"recipientUser": {
"userId": "recipientUserId",
"name": "Recipient Name",
"email": "recipient@example.com"
},
"yourCustomField": "Variable will be replaced with this text"
},
"displayBodyMessage": "This is body message (Secondary message)",
"notifyUsers": [
{
"email": "test@example.com",
"userId": "testingUserId"
},
{
"userId": "yourUserId",
"name": "User Name",
"email": "user@example.com"
}
]
}
}
Example Request with Permission Verification
{
"data": {
"organizationId": "org1",
"documentId": "document3",
"actionUser": {
"userId": "1.1"
},
"verifyUserPermissions": true,
"displayHeadlineMessageTemplate": "This is main template, you can pass variables using curly brackets like this: {actionUser}, {recipientUser}",
"displayHeadlineMessageTemplateData": {
"actionUser": {
"userId": "1.1"
},
"recipientUser": {
"userId": "2.2"
}
},
"displayBodyMessage": "This is body message (Secondary message)",
"notifyUsers": [
{
"userId": "2.2"
}
],
"notifyAll": false
}
}
When
verifyUserPermissions is enabled, the API checks document access for each user before creating notifications. Only users with access to the document will receive notifications.Example Request with Context
{
"data": {
"organizationId": "org1",
"documentId": "document3",
"actionUser": {
"userId": "1.1",
"name": "User One",
"email": "user1@example.com"
},
"context": {
"access": {
"entityId": "numberOfVisitors",
"dashboardId": "myDashboard"
}
},
"displayHeadlineMessageTemplate": "New comment on {entityName}",
"displayHeadlineMessageTemplateData": {
"entityName": "Visitor Analytics"
},
"displayBodyMessage": "A new comment has been added to the visitor analytics dashboard",
"notifyUsers": [
{
"userId": "2.2"
}
],
"notifyAll": false
}
}
When context is provided, notifications will be filtered based on the specified context fields. Users will only receive notifications that match their context permissions.
Example Request with Notification Resolver
Use this when notification content (headline, body) is stored on your own infrastructure and resolved at read time via the Notification Resolver. OmitdisplayHeadlineMessageTemplate and displayBodyMessage and set notificationSource to 'custom'.
{
"data": {
"organizationId": "yourOrganizationId",
"documentId": "yourDocumentId",
"actionUser": {
"userId": "yourUserId",
"name": "User Name",
"email": "user@example.com"
},
"notificationId": "custom-notif-001",
"isNotificationResolverUsed": true,
"notificationSource": "custom",
"notifyUsers": [
{
"userId": "recipientUserId",
"email": "recipient@example.com"
}
],
"notifyAll": false
}
}
When
isNotificationResolverUsed is true, displayHeadlineMessageTemplate and displayBodyMessage are not required. Notification content is fetched from your configured data provider at read time.Response
Success Response
{
"result": {
"status": "success",
"message": "Notification added successfully.",
"data": {
"success": true,
"message": "Notification added successfully."
}
}
}
Failure Response
{
"error": {
"message": "ERROR_MESSAGE",
"status": "INVALID_ARGUMENT"
}
}
{
"result": {
"status": "success",
"message": "Notification added successfully.",
"data": {
"success": true,
"message": "Notification added successfully."
}
}
}
Was this page helpful?
⌘I

