JSON Schema
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
JSON Schema
JSON Schema can be used to define the Workflow Payload and Step Inputs. It provides a strongly-typed way to define the structure of the data that is expected by the Workflow or Step. And also as a contract for changing the Workflow behaviour using the Platform User Interface.
Learn more about JSON Schema at json-schema.org.
Examples
Simple
{
"type": "object",
"required": [
"firstName",
"lastName"
],
"properties": {
"firstName": {
"type": "string",
"title": "First name",
"default": "Chuck"
},
"lastName": {
"type": "string",
"title": "Last name"
},
"age": {
"type": "integer",
"title": "Age"
}
}
}
Nested Array Structure
{
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"title": "Task list title"
},
"tasks": {
"type": "array",
"title": "Tasks",
"items": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"title": "Title",
"description": "A sample title"
},
"details": {
"type": "string",
"title": "Task details",
"description": "Enter the task details"
},
"done": {
"type": "boolean",
"title": "Done?",
"default": false
}
}
}
}
}
}
Reference and Reuse Blocks
{
"definitions": {
"address": {
"type": "object",
"properties": {
"street_address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"street_address",
"city",
"state"
]
},
"node": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/node"
}
}
}
}
},
"type": "object",
"properties": {
"billing_address": {
"title": "Billing address",
"$ref": "#/definitions/address"
},
"shipping_address": {
"title": "Shipping address",
"$ref": "#/definitions/address"
},
"tree": {
"title": "Recursive references",
"$ref": "#/definitions/node"
}
}
}
Any Of Schemas
{
"type": "object",
"properties": {
"age": {
"type": "integer",
"title": "Age"
},
"items": {
"type": "array",
"items": {
"type": "object",
"anyOf": [
{
"properties": {
"foo": {
"type": "string"
}
}
},
{
"properties": {
"bar": {
"type": "string"
}
}
}
]
}
}
},
"anyOf": [
{
"title": "First method of identification",
"properties": {
"firstName": {
"type": "string",
"title": "First name",
"default": "Chuck"
},
"lastName": {
"type": "string",
"title": "Last name"
}
}
},
{
"title": "Second method of identification",
"properties": {
"idCode": {
"type": "string",
"title": "ID code"
}
}
}
]
}
One Of Schema
{
"type": "object",
"oneOf": [
{
"properties": {
"lorem": {
"type": "string"
}
},
"required": [
"lorem"
]
},
{
"properties": {
"ipsum": {
"type": "string"
}
},
"required": [
"ipsum"
]
}
]
}
If Then Else
{
"type": "object",
"properties": {
"animal": {
"enum": [
"Cat",
"Fish"
]
}
},
"allOf": [
{
"if": {
"properties": {
"animal": {
"const": "Cat"
}
}
},
"then": {
"properties": {
"food": {
"type": "string",
"enum": [
"meat",
"grass",
"fish"
]
}
},
"required": [
"food"
]
}
},
{
"if": {
"properties": {
"animal": {
"const": "Fish"
}
}
},
"then": {
"properties": {
"food": {
"type": "string",
"enum": [
"insect",
"worms"
]
},
"water": {
"type": "string",
"enum": [
"lake",
"sea"
]
}
},
"required": [
"food",
"water"
]
}
},
{
"required": [
"animal"
]
}
]
}
Enum Objects
{
"definitions": {
"locations": {
"enumNames": [
"New York",
"Amsterdam",
"Hong Kong"
],
"enum": [
{
"name": "New York",
"lat": 40,
"lon": 74
},
{
"name": "Amsterdam",
"lat": 52,
"lon": 5
},
{
"name": "Hong Kong",
"lat": 22,
"lon": 114
}
]
}
},
"type": "object",
"properties": {
"location": {
"title": "Location",
"$ref": "#/definitions/locations"
},
"locationRadio": {
"title": "Location Radio",
"$ref": "#/definitions/locations"
},
"multiSelect": {
"title": "Locations",
"type": "array",
"uniqueItems": true,
"items": {
"$ref": "#/definitions/locations"
}
},
"checkboxes": {
"title": "Locations Checkboxes",
"type": "array",
"uniqueItems": true,
"items": {
"$ref": "#/definitions/locations"
}
}
}
}
Regex Validation
The following example matches a simple North American telephone number with an optional area code:
{
"type": "object",
"properties": {
"phone": {
"type": "string",
"pattern": "^(\\([0-9]{3}\\))?[0-9]{3}-[0-9]{4}$"
}
}
}
Other Resources
Was this page helpful?