- 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 global preferences
- PATCHUpdate subscriber preference
- PATCHUpdate subscriber global preference
- 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
- 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 overrides
- 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
Workflows
Create workflow
POST
/
v1
/
workflows
Authorization
string
*
Authorization
Required
string
object
*
name
string
*
name
Required
string
notificationGroupId
string
*
notificationGroupId
Required
string
notificationGroup
object
notificationGroup
object
tags
array
tags
array
description
string
description
string
steps
array
*
steps
Required
array
active
boolean
active
boolean
draft
boolean, deprecated
draft
Deprecated
boolean
critical
boolean
critical
boolean
preferenceSettings
object
preferenceSettings
object
email
boolean
email
boolean
sms
boolean
sms
boolean
in_app
boolean
in_app
boolean
chat
boolean
chat
boolean
push
boolean
push
boolean
blueprintId
string
blueprintId
string
data
object
data
object
curl --request POST \
--url https://api.novu.co/v1/workflows \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{
"name": "<name>",
"notificationGroupId":"<notificationGroupId>",
"steps": [{ "steps" }]
}'
{
"data": {
"_id": "string",
"name": "string",
"description": "string",
"active": true,
"draft": true,
"preferenceSettings": {
"email": true,
"sms": true,
"in_app": true,
"chat": true,
"push": true
},
"critical": true,
"tags": [
"string"
],
"steps": [
{
"_id": "string",
"uuid": "string",
"name": "string",
"_templateId": "string",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"type": "BOOLEAN",
"value": "AND",
"children": [
{
"field": "string",
"value": "string",
"operator": "LARGER",
"on": "subscriber"
}
]
}
],
"_parentId": {},
"metadata": {
"amount": 0,
"unit": "seconds",
"digestKey": "string",
"type": "regular",
"backoff": true,
"backoffAmount": 0,
"backoffUnit": "seconds",
"updateMode": true
},
"replyCallback": {}
}
],
"_organizationId": "string",
"_creatorId": "string",
"_environmentId": "string",
"triggers": [
{
"type": "string",
"identifier": "string",
"variables": [
{
"name": "string"
}
],
"subscriberVariables": [
{
"name": "string"
}
]
}
],
"_notificationGroupId": "string",
"_parentId": "string",
"deleted": true,
"deletedAt": "string",
"deletedBy": "string",
"notificationGroup": {
"_id": "string",
"name": "string",
"_environmentId": "string",
"_organizationId": "string",
"_parentId": "string"
},
"data": {},
"workflowIntegrationStatus": {}
}
}
Enter your API key in the Authorization
field like the example shown below:
E.g ApiKey 18d2e625f05d80e
Body
application/json
name
string
requirednotificationGroupId
string
requirednotificationGroup
object
tags
string[]
description
string
steps
object[]
requiredsteps._id
string
steps.uuid
string
steps.name
string
steps._templateId
string
steps.active
boolean
steps.shouldStopOnFail
boolean
steps.template
object
steps.filters
object[]
steps.filters.isNegated
boolean
requiredsteps.filters.type
enum<string>
requiredAvailable options:
BOOLEAN
, TEXT
, DATE
, NUMBER
, STATEMENT
, LIST
, MULTI_LIST
, GROUP
steps.filters.value
enum<string>
requiredAvailable options:
AND
, OR
steps.filters.children
object[]
requiredsteps.filters.children.field
string
requiredsteps.filters.children.value
string
requiredsteps.filters.children.operator
enum<string>
requiredAvailable options:
LARGER
, SMALLER
, LARGER_EQUAL
, SMALLER_EQUAL
, EQUAL
, NOT_EQUAL
, ALL_IN
, ANY_IN
, NOT_IN
, BETWEEN
, NOT_BETWEEN
, LIKE
, NOT_LIKE
, IN
steps.filters.children.on
enum<string>
requiredAvailable options:
subscriber
, payload
steps._parentId
object
steps.metadata
object
steps.metadata.amount
number
steps.metadata.unit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
steps.metadata.digestKey
string
steps.metadata.type
enum<string>
requiredAvailable options:
regular
, backoff
steps.metadata.backoff
boolean
steps.metadata.backoffAmount
number
steps.metadata.backoffUnit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
steps.metadata.updateMode
boolean
steps.replyCallback
object
steps.variants
object
steps.variants._id
string
steps.variants.uuid
string
steps.variants.name
string
steps.variants._templateId
string
steps.variants.active
boolean
steps.variants.shouldStopOnFail
boolean
steps.variants.template
object
steps.variants.filters
object[]
steps.variants.filters.isNegated
boolean
requiredsteps.variants.filters.type
enum<string>
requiredAvailable options:
BOOLEAN
, TEXT
, DATE
, NUMBER
, STATEMENT
, LIST
, MULTI_LIST
, GROUP
steps.variants.filters.value
enum<string>
requiredAvailable options:
AND
, OR
steps.variants.filters.children
object[]
requiredsteps.variants.filters.children.field
string
requiredsteps.variants.filters.children.value
string
requiredsteps.variants.filters.children.operator
enum<string>
requiredAvailable options:
LARGER
, SMALLER
, LARGER_EQUAL
, SMALLER_EQUAL
, EQUAL
, NOT_EQUAL
, ALL_IN
, ANY_IN
, NOT_IN
, BETWEEN
, NOT_BETWEEN
, LIKE
, NOT_LIKE
, IN
steps.variants.filters.children.on
enum<string>
requiredAvailable options:
subscriber
, payload
steps.variants._parentId
object
steps.variants.metadata
object
steps.variants.metadata.amount
number
steps.variants.metadata.unit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
steps.variants.metadata.digestKey
string
steps.variants.metadata.type
enum<string>
requiredAvailable options:
regular
, backoff
steps.variants.metadata.backoff
boolean
steps.variants.metadata.backoffAmount
number
steps.variants.metadata.backoffUnit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
steps.variants.metadata.updateMode
boolean
steps.variants.replyCallback
object
active
boolean
draft
boolean
deprecatedcritical
boolean
preferenceSettings
object
preferenceSettings.email
boolean
preferenceSettings.sms
boolean
preferenceSettings.in_app
boolean
preferenceSettings.chat
boolean
preferenceSettings.push
boolean
blueprintId
string
data
object
Response
201 - application/json
data
object
data._id
string
data.name
string
requireddata.description
string
requireddata.active
boolean
requireddata.draft
boolean
requireddata.preferenceSettings
object
requireddata.preferenceSettings.email
boolean
data.preferenceSettings.sms
boolean
data.preferenceSettings.in_app
boolean
data.preferenceSettings.chat
boolean
data.preferenceSettings.push
boolean
data.critical
boolean
requireddata.tags
string[]
requireddata.steps
object[]
requireddata.steps._id
string
data.steps.uuid
string
data.steps.name
string
data.steps._templateId
string
data.steps.active
boolean
data.steps.shouldStopOnFail
boolean
data.steps.template
object
data.steps.filters
object[]
data.steps.filters.isNegated
boolean
requireddata.steps.filters.type
enum<string>
requiredAvailable options:
BOOLEAN
, TEXT
, DATE
, NUMBER
, STATEMENT
, LIST
, MULTI_LIST
, GROUP
data.steps.filters.value
enum<string>
requiredAvailable options:
AND
, OR
data.steps.filters.children
object[]
requireddata.steps.filters.children.field
string
requireddata.steps.filters.children.value
string
requireddata.steps.filters.children.operator
enum<string>
requiredAvailable options:
LARGER
, SMALLER
, LARGER_EQUAL
, SMALLER_EQUAL
, EQUAL
, NOT_EQUAL
, ALL_IN
, ANY_IN
, NOT_IN
, BETWEEN
, NOT_BETWEEN
, LIKE
, NOT_LIKE
, IN
data.steps.filters.children.on
enum<string>
requiredAvailable options:
subscriber
, payload
data.steps._parentId
object
data.steps.metadata
object
data.steps.metadata.amount
number
data.steps.metadata.unit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
data.steps.metadata.digestKey
string
data.steps.metadata.type
enum<string>
requiredAvailable options:
regular
, backoff
data.steps.metadata.backoff
boolean
data.steps.metadata.backoffAmount
number
data.steps.metadata.backoffUnit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
data.steps.metadata.updateMode
boolean
data.steps.replyCallback
object
data.steps.variants
object
data.steps.variants._id
string
data.steps.variants.uuid
string
data.steps.variants.name
string
data.steps.variants._templateId
string
data.steps.variants.active
boolean
data.steps.variants.shouldStopOnFail
boolean
data.steps.variants.template
object
data.steps.variants.filters
object[]
data.steps.variants.filters.isNegated
boolean
requireddata.steps.variants.filters.type
enum<string>
requiredAvailable options:
BOOLEAN
, TEXT
, DATE
, NUMBER
, STATEMENT
, LIST
, MULTI_LIST
, GROUP
data.steps.variants.filters.value
enum<string>
requiredAvailable options:
AND
, OR
data.steps.variants.filters.children
object[]
requireddata.steps.variants.filters.children.field
string
requireddata.steps.variants.filters.children.value
string
requireddata.steps.variants.filters.children.operator
enum<string>
requiredAvailable options:
LARGER
, SMALLER
, LARGER_EQUAL
, SMALLER_EQUAL
, EQUAL
, NOT_EQUAL
, ALL_IN
, ANY_IN
, NOT_IN
, BETWEEN
, NOT_BETWEEN
, LIKE
, NOT_LIKE
, IN
data.steps.variants.filters.children.on
enum<string>
requiredAvailable options:
subscriber
, payload
data.steps.variants._parentId
object
data.steps.variants.metadata
object
data.steps.variants.metadata.amount
number
data.steps.variants.metadata.unit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
data.steps.variants.metadata.digestKey
string
data.steps.variants.metadata.type
enum<string>
requiredAvailable options:
regular
, backoff
data.steps.variants.metadata.backoff
boolean
data.steps.variants.metadata.backoffAmount
number
data.steps.variants.metadata.backoffUnit
enum<string>
Available options:
seconds
, minutes
, hours
, days
, weeks
, months
data.steps.variants.metadata.updateMode
boolean
data.steps.variants.replyCallback
object
data._organizationId
string
requireddata._creatorId
string
requireddata._environmentId
string
requireddata.triggers
object[]
requireddata.triggers.type
enum<string>
requiredAvailable options:
event
data.triggers.identifier
string
requireddata.triggers.variables
object[]
requireddata.triggers.variables.name
string
requireddata.triggers.subscriberVariables
object[]
data.triggers.subscriberVariables.name
string
requireddata._notificationGroupId
string
requireddata._parentId
string
data.deleted
boolean
requireddata.deletedAt
string
requireddata.deletedBy
string
requireddata.notificationGroup
object
data.notificationGroup._id
string
data.notificationGroup.name
string
requireddata.notificationGroup._environmentId
string
requireddata.notificationGroup._organizationId
string
requireddata.notificationGroup._parentId
string
data.data
object
data.workflowIntegrationStatus
object
Was this page helpful?
curl --request POST \
--url https://api.novu.co/v1/workflows \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{
"name": "<name>",
"notificationGroupId":"<notificationGroupId>",
"steps": [{ "steps" }]
}'
{
"data": {
"_id": "string",
"name": "string",
"description": "string",
"active": true,
"draft": true,
"preferenceSettings": {
"email": true,
"sms": true,
"in_app": true,
"chat": true,
"push": true
},
"critical": true,
"tags": [
"string"
],
"steps": [
{
"_id": "string",
"uuid": "string",
"name": "string",
"_templateId": "string",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"type": "BOOLEAN",
"value": "AND",
"children": [
{
"field": "string",
"value": "string",
"operator": "LARGER",
"on": "subscriber"
}
]
}
],
"_parentId": {},
"metadata": {
"amount": 0,
"unit": "seconds",
"digestKey": "string",
"type": "regular",
"backoff": true,
"backoffAmount": 0,
"backoffUnit": "seconds",
"updateMode": true
},
"replyCallback": {}
}
],
"_organizationId": "string",
"_creatorId": "string",
"_environmentId": "string",
"triggers": [
{
"type": "string",
"identifier": "string",
"variables": [
{
"name": "string"
}
],
"subscriberVariables": [
{
"name": "string"
}
]
}
],
"_notificationGroupId": "string",
"_parentId": "string",
"deleted": true,
"deletedAt": "string",
"deletedBy": "string",
"notificationGroup": {
"_id": "string",
"name": "string",
"_environmentId": "string",
"_organizationId": "string",
"_parentId": "string"
},
"data": {},
"workflowIntegrationStatus": {}
}
}