Novu · Schema
LayoutResponseDto
JSON Schema for Novu LayoutResponseDto.
NotificationsMessagingIn AppEmailSMSPushChatWorkflowsOpen SourceSubscribersTopicsInboxWorkflow OrchestrationMulti ChannelDigestMCPFrameworkReact
Properties
| Name | Type | Description |
|---|---|---|
| _id | string | Unique internal identifier of the layout |
| layoutId | string | Unique identifier for the layout |
| slug | string | Slug of the layout |
| name | string | Name of the layout |
| isDefault | boolean | Whether the layout is the default layout |
| isTranslationEnabled | boolean | Whether the layout translations are enabled |
| updatedAt | string | Last updated timestamp |
| updatedBy | object | User who last updated the layout |
| createdAt | string | Creation timestamp |
| origin | string | Origin of the layout |
| type | string | Type of the layout |
| variables | objectnull | The variables JSON Schema for the layout |
| controls | object | Controls metadata for the layout |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/novu/main/json-schema/novu-layout-response-dto-schema.json",
"title": "LayoutResponseDto",
"description": "JSON Schema for Novu LayoutResponseDto.",
"type": "object",
"properties": {
"_id": {
"type": "string",
"description": "Unique internal identifier of the layout"
},
"layoutId": {
"type": "string",
"description": "Unique identifier for the layout"
},
"slug": {
"type": "string",
"description": "Slug of the layout"
},
"name": {
"type": "string",
"description": "Name of the layout"
},
"isDefault": {
"type": "boolean",
"description": "Whether the layout is the default layout"
},
"isTranslationEnabled": {
"type": "boolean",
"description": "Whether the layout translations are enabled"
},
"updatedAt": {
"type": "string",
"description": "Last updated timestamp"
},
"updatedBy": {
"description": "User who last updated the layout",
"allOf": [
{
"type": "object",
"properties": {
"_id": {
"type": "string",
"description": "User ID"
},
"firstName": {
"type": [
"string",
"null"
],
"description": "User first name"
},
"lastName": {
"type": [
"string",
"null"
],
"description": "User last name"
},
"externalId": {
"type": [
"string",
"null"
],
"description": "User external ID"
}
},
"required": [
"_id"
]
}
]
},
"createdAt": {
"type": "string",
"description": "Creation timestamp"
},
"origin": {
"type": "string",
"description": "Origin of the layout",
"enum": [
"novu-cloud",
"novu-cloud-v1",
"external"
]
},
"type": {
"type": "string",
"description": "Type of the layout",
"enum": [
"REGULAR",
"ECHO",
"BRIDGE"
]
},
"variables": {
"type": [
"object",
"null"
],
"description": "The variables JSON Schema for the layout",
"additionalProperties": true
},
"controls": {
"description": "Controls metadata for the layout",
"allOf": [
{
"type": "object",
"properties": {
"dataSchema": {
"type": "object",
"description": "JSON Schema for data",
"additionalProperties": true
},
"uiSchema": {
"description": "UI Schema for rendering",
"allOf": [
{
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "Group of the UI Schema",
"enum": [
"IN_APP",
"EMAIL",
"DIGEST",
"DELAY",
"THROTTLE",
"SMS",
"CHAT",
"PUSH",
"SKIP",
"LAYOUT",
"HTTP_REQUEST"
]
},
"properties": {
"type": "object",
"description": "Properties of the UI Schema",
"additionalProperties": {
"type": "object",
"properties": {
"placeholder": {
"description": "Placeholder for the UI Schema Property",
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object",
"additionalProperties": true
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object",
"additionalProperties": true
}
]
}
}
]
},
"component": {
"type": "string",
"description": "Component type for the UI Schema Property",
"enum": [
"EMAIL_EDITOR_SELECT",
"LAYOUT_SELECT",
"BLOCK_EDITOR",
"EMAIL_BODY",
"TEXT_FULL_LINE",
"TEXT_INLINE_LABEL",
"IN_APP_BODY",
"IN_APP_AVATAR",
"IN_APP_PRIMARY_SUBJECT",
"IN_APP_BUTTON_DROPDOWN",
"IN_APP_DISABLE_SANITIZATION_SWITCH",
"DISABLE_SANITIZATION_SWITCH",
"URL_TEXT_BOX",
"DIGEST_AMOUNT",
"DIGEST_UNIT",
"DIGEST_TYPE",
"DIGEST_KEY",
"DIGEST_CRON",
"DELAY_AMOUNT",
"DELAY_UNIT",
"DELAY_TYPE",
"DELAY_CRON",
"DELAY_DYNAMIC_KEY",
"THROTTLE_TYPE",
"THROTTLE_WINDOW",
"THROTTLE_UNIT",
"THROTTLE_DYNAMIC_KEY",
"THROTTLE_THRESHOLD",
"THROTTLE_KEY",
"EXTEND_TO_SCHEDULE",
"SMS_BODY",
"CHAT_BODY",
"PUSH_BODY",
"PUSH_SUBJECT",
"QUERY_EDITOR",
"DATA",
"LAYOUT_EMAIL",
"DESTINATION_METHOD",
"DESTINATION_URL",
"DESTINATION_HEADERS",
"DESTINATION_BODY",
"DESTINATION_RESPONSE_BODY_SCHEMA",
"DESTINATION_ENFORCE_SCHEMA_VALIDATION",
"DESTINATION_CONTINUE_ON_FAILURE",
"DESTINATION_TIMEOUT"
]
},
"properties": {
"type": "object",
"description": "Properties of the UI Schema",
"additionalProperties": {
"type": "object",
"description": "Reference to UiSchemaProperty"
}
}
},
"required": [
"component"
]
}
}
}
}
]
},
"values": {
"description": "Email layout controls",
"allOf": [
{
"type": "object",
"properties": {
"email": {
"description": "Email layout controls",
"allOf": [
{
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "Body of the layout."
},
"editorType": {
"type": "string",
"description": "Editor type of the layout.",
"enum": [
"html",
"block"
]
}
},
"required": [
"body",
"editorType"
]
}
]
}
}
}
]
}
},
"required": [
"values"
]
}
]
}
},
"required": [
"_id",
"layoutId",
"slug",
"name",
"isDefault",
"isTranslationEnabled",
"updatedAt",
"createdAt",
"origin",
"type",
"controls"
]
}