NAV Navbar

Dialog Application Specification

The Dialog Application Specification defines a JSON syntax for dialog models. Use Mix Dashboard to export or import dialog models.

This document specifies the syntax of the object literals that constitute a dialog model.

Specification

Project

Project object literal example

{
    "id": "480",
    "name": "my dialog",
    "defaultLocale": "en-US",
    "supportedLocales": ["en-US"],
    "connectorColors": {
        // <channel uuid>: <color code> pairs...
    },
    "baseServiceUrl": "",
    "staticProjectId": "",
    "version": "1.0",
    "supportedChannels": [
        // channels in the project...
    ],
    "supportedCustomChannels": [],
    "richTextChannels": [],
    "globalConfirmations": [],
    "components": [{
            "id": "718ced73-350f-4ed9-b389-823fb405a096",
            "name": "Main",
            "description": "Main component",
            "nodes": [
                // nodes in the main component...
            ],
            "eventHandlers": [
                // global event handlers...
            ],
            "intentId": "",
            "timestamp": "2019-10-21T20:51:08.437Z"
        }, // more components...
    ],
    "recovery": [
        // global and channel-specific recovery behaviors...
    ],
    "variables": [{
            "id": "fcd07c8b-1e13-4840-8363-0d8d630dad15",
            "name": "Location",
            "description": "",
            "possibleValues": ["JFK", "LGA", "EWR"],
            "simpleVariableType": "LIST_TYPE",
            "timestamp": "2019-10-25T00:24:39.416Z"
        }, // more variables...
    ],
    "complexVariableTypes": [
        // complex variable schemas...
    ],
    "promptGroups": [
        // prompt groups (messages) in the project...
    ],
    "parentId": "NONE",
    "ontologyId": "eb9c1ffd-5c1d-4702-a524-27afb9f4e976",
    "ontology": {
        "projectId": "480",
        "intents": [
            // intents in the project...
        ],
        "concepts": [
            // entities in the project...
        ],
        "lastModified": "1970-01-01T00:00:00Z"
    },
    "globalSettings": [],
    "backendConfig": [],
    "upgradeVersion": 3,
    "events": [
        // events in the project...
    ],
    "globalCommandsEntityId": "7628d885-ef5c-4d29-b79a-079afd0aa9b2",
    "globalCommands": [
        // global commands in the project...
    ],
    "dressAliases": [],
    "globalSettingOverrides": [
        // overrides to global settings in the project...
    ],
    "ndfVersion": "",
    "projectIntentMappings": [
        // global intent mappings...
    ],
    "enginePackVersion": "hosted",
    "versionTimestamp": "2020-02-27T01:45:56Z",
    "lastModified": "2020-02-28T01:31:28.933Z"
}

The project element is the top level of the JSON file. For a complete example, refer to the sample file.

Element Type Description
id String Unique identifier for the project
name String Name of the project
defaultLocale String Default locale for the project, as a 4-letter language code (for example, en-US)—refer to Languages and Voices for the list of languages available in the current version of Nuance Mix
supportedLocales Array of strings Supported locales for the project, as 4-letter language codes—refer to Languages and Voices for the list of languages available in the current version of Nuance Mix
connectorColors Object Deprecated
baseServiceUrl String Base application URL—for example, mycompany.com/mix
staticProjectId String ID of the master project, used to link different versions of a project
version String Version number of the project
supportedChannels Array of channels Standard channels to be used to interact with the system (for example, IVR, Web, SMS)
supportedCustomChannels Array Deprecated
richTextChannels Array Deprecated
globalConfirmations Array of confirmations Global and default confirmation behaviors
components Array of components Components in the project
recovery Array of recovery handling objects Global and channel-specific recovery handling
variables Array of variables Variables used in the project
complexVariableTypes Array of schemas Complex variable schemas in the project
promptGroups Array of prompt groups Messages used in the project
parentId String ID of the parent project
ontologyId String UUID of the ontology used for this dialog project
ontology Object Intents and entities for this dialog project
globalSettings Array Deprecated (superseded by globalSettingOverrides)
backendConfig Array of backend connection presets Backend connection presets for the project
upgradeVersion Number Internal version number used as a reference for upgrading the dialog model upon import, to include new features as they become available
events Array of events Global and custom events in the project
globalCommandsEntityId String UUID of the entity used to store a command from the user
globalCommands Array of commands Global commands defined in the project
dressAliases Array of data host aliases Data host aliases
globalSettingOverrides Array of global setting overrides Overrides to the default global settings for the project
ndfVersion String Version of the Dialog runtime service to target when building the application—Future use
projectIntentMappings Array of project intent mapping objects Global mappings from intents to components
enginePackVersion String Engine pack version for projects in self-hosted Mix environments (default is hosted; assumed to be hosted if not specified)—Do not change
versionTimestamp String Creation date and time for this project version, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z
lastModified String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-10-17T20:55:38.488Z

Channel

Channel example

{
    "id": "d1192cc3-6455-49c2-bbc6-45e88cf1a218",
    "displayName": "Digital VA text",
    "codeName": "custom",
    "modes": [],
    "disabled": false,
    "connectorColor": "#F59E47",
    "channelModes": [{
            "id": "27ca8473-0635-41f8-86ea-e9cd6c7db4c8",
            "channelId": "d1192cc3-6455-49c2-bbc6-45e88cf1a218",
            "name": "Interactivity",
            "disabled": false,
            "lastModified": "2022-05-03T00:47:27.854Z"
        }, {
            "id": "68b5983f-afdb-4f8a-91ba-ef23b97392c9",
            "channelId": "d1192cc3-6455-49c2-bbc6-45e88cf1a218",
            "name": "Rich Text",
            "disabled": false,
            "lastModified": "2022-05-03T00:47:27.890Z"
        }
    ],
    "lastModified": "2022-05-03T00:47:27.880Z"
}

Represents a communication channel used to interact with the system (for example, IVR, Web, SMS).

Element Type Description
id String Unique ID of the channel
displayName String Name of the channel—Default is a reserved name for the combination of all channels in a project
codeName String Deprecated
modes Array Deprecated
disabled Boolean true if the channel is disabled; otherwise, false
connectorColor String Color code for the channel (for example, #31B96E)
channelModes Array of modalities Modalities available for messages in this channel
lastModified String Date and time of the last modification

Modality

Represents a modality in a channel.

Element Type Description
id String UUID of the modality
channelId String UUID of the channel
name String One of: Audio Script, TTS, Rich Text, Interactivity, DTMF
disabled Boolean true if the modality is disabled; otherwise, false
lastModified String Date and time of the last modification

Confirmation

Represents a global confirmation behavior.

Element Type Description
id String UUID of the confirmation behavior
globalValue String Deprecated
confirmationRecoveryBehaviors Array of recovery behaviors Error handling for the confirmation behavior
entityType String Information type for this confirmation behavior—one of: DEFAULT, ALPHANUM, DIGITS, DATE, TIME, CURRENCY, YESNO
channelId String UUID of the channel

Recovery handling

Represent a global (default) or channel-specific error recovery handling.

Element Type Description
id String UUID of the recovery behavior
globalValue String Deprecated
RecoveryBehaviors Array of recovery behaviors Error handling for the recovery behavior
channelId String UUID of the channel

Recovery behavior

Recovery behavior example

{
    "event": "nomatch1-pre-prompt",
    "escalationLevel": 0,
    "processingItemsList": {
        // processing items to perform...
    },
    "enabled": true
}

Represents a global or channel-specific recovery behavior for confirmation or error recovery handling.

Element Type Description
event String Event ID—nomatch1-pre-prompt, nomatch1-prompt, yes-prompt, no-prompt, for example
escalationLevel Number Deprecated (event includes the escalation level)
processingItemsList Processing item group object Processing items to perform
enabled Boolean true if the global recovery behavior is enabled; otherwise, false

Event

Global command event example

{
    "id": "295420a0-7675-4917-9329-35e26654ed05",
    "eventString": "event.nuance.dialog.escalate",
    "uiString": "Escalate",
    "throwable": true,
    "reserved": true
}

Global event example

{
    "id": "7cfb8e7a-a9ee-40b6-b660-a66ca0a0f463",
    "eventString": "event.nuance.dialog.odm.maxnomatches",
    "uiString": "MaxNomatch",
    "throwable": false,
    "reserved": true
}

Custom event example

{
    "id": "54d22d9d-1793-472e-ad74-7037b76dacf0",
    "eventString": "event.custom.Ping",
    "uiString": "Ping",
    "throwable": true,
    "reserved": false
}

Represents an event in the project.

Element Type Description
id String UUID of the event
eventString String The event to throw—for example, event.nuance.dialog.escalate
uiString String Display name of the event—for example, Escalate (see Naming guidelines)
throwable Boolean true if the event can be used in a throw action; otherwise, false
reserved Boolean true for predefined events; false for custom events

Command

Global command example

{
    "id": "fffc3887-c8c6-4201-ae30-17d9536ca8ce",
    "entityValue": "agent",
    "event": {
        "id": "295420a0-7675-4917-9329-35e26654ed05",
        "eventString": "event.nuance.dialog.escalate",
        "uiString": "Escalate",
        "throwable": true,
        "reserved": true
    },
    "dtmfValue": "",
    "projectLevelEnabled": true,
    "disabledNodeIds": [],
    "disabledComponentIds": [],
    "timestamp": "2020-04-14T03:55:36.574Z"
}

Represents a global command in the project.

Element Type Description
id String UUID of the command
entityValue String Global command entity value to invoke the command
event Event object Event thrown when this command is invoked
dtmfValue String DTMF value to invoke the command
projectLevelEnabled Boolean true if the command is enabled in this project; otherwise, false
disabledNodeIds Array Nodes where this command is disabled—Future use
disabledComponentIds Array Components where this command is disabled—Future use
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Global setting override

Global setting override example

{
    "id": "8c049c86-3ea4-4ef6-810f-ae1ba17efac3",
    "settingName": "extension",
    "settingType": "AUDIO_SETTINGS",
    "channelId": "3a45d5e0-e0da-4236-98cd-d39cf2881bb7",
    "predefinedName": "PREDEFINE_NOT_SET",
    "value": ".ulaw",
    "language": "",
    "entityId": ""
}

Represents an override to the global settings defaults in the project.

Element Type Description
id String UUID of the setting override
settingName String Name of the setting
settingType String Setting category—one of: COLLECTION_SETTINGS, CONFIRMATION_SETTINGS, DTMF_SETTINGS, TTS_SETTINGS, SPEECH_SETTINGS, CONVERSATION_SETTINGS, AUDIO_SETTINGS, GRAMMAR_SETTINGS, DATA_ACCESS_SETTINGS, INTERNAL_SETTINGS
channelId String UUID of the channel for the override
predefinedName String For an entity-level setting override: type of entity—one of: CUSTOM_LIST_TYPE, REGEX, FREE_FORM, DATE, TIME, YES_NO, NUANCE_AMOUNT, NUANCE_BOOLEAN, NUANCE_CARDINAL_NUMBER, NUANCE_DISTANCE, NUANCE_DOUBLE, NUANCE_EXPIRY_DATE, NUANCE_GENERIC_ORDER, NUANCE_NUMBER, NUANCE_ORDINAL_NUMBER, NUANCE_TEMPERATURE; otherwise, PREDEFINE_NOT_SET
value String Override value
language String Language to which the override applies, as a 4-letter language code (for example, en-US)—refer to Languages and Voices for the list of languages available in the current version of Nuance Mix
entityId String For an entity-level setting override: UUID of the entity to which the override applies; otherwise, empty

Project intent mapping

Project intent mapping example

{
    "id": "95573456-5c8e-4de1-93e2-190fe13a80a7",
    "intentId": "3478f442-8f6e-483d-8efd-8cb53208c49e",
    "destination": {
        "componentId": "ae6c8b59-f7bf-4bae-824f-0ed4e054f35a"
    }
}

Represents the global mapping of one intent to a component. Intent mapper nodes inherit these global mappings and can override them if needed.

Element Type Description
id String UUID of the mapping
intentId String UUID of the intent being mapped
destination Object Key-value pair where the key is componentId and the value is the UUID of the component to which the intent is mapped

Backend connection preset

Backend connection preset example

{
    "id": "895f3667-b02f-4448-84af-2520a4785004",
    "name": "myBackend",
    "urlExtension": "/coffee/price",
    "fetchTimeout": 0,
    "connectTimeout": 0,
    "method": "POST",
    "dressName": "525",
    "headers": [{
            "key": "mytoken",
            "variable": {
                "id": "106de6cc-e3ac-457e-bb92-6ae06ef2e1b5",
                "name": "myToken",
                "description": "",
                "possibleValues": [],
                "uiDefaultValue": "",
                "isReserved": false,
                "masked": false,
                "reportingType": "REPORTING_TYPE_NONE",
                "timestamp": "2021-04-14T02:55:09.340Z"
            }
        }, {
            "key": "apikey",
            "constant": "5678"
        }
    ],
    "dressAliasId": "525"
}

Represents a backend connection preset to be applied to a data access node for server-side integration.

Element Type Description
id String UUID of the preset
name String Name of the preset
urlExtension String URL extension (maximum 2000 characters)
fetchTimeout Number Fetch timeout in milliseconds (default: 0)
connectTimeout Number Connection timeout in milliseconds (default: 0)
method String Method; one of: POST, GET, PUT, DELETE, PATCH, NOT_SET (default)
dressName String Deprecated (superseded by dressAliasId)
headers Array of headers Headers used to query the backend system
dressAliasId String Numeric ID of the connection profile for the backend system

Data host alias

Data host alias example

{
    "id": "525",
    "alias": "COFFEE_APP",
    "defaultValue": "https://coffee.app.com:443"
}

Represents a data host alias for server-side integration.

Element Type Description
id String Numeric ID of the connection profile for the backend system
alias String Alias name for a web service used for backend access in a server-side integration
defaultValue String Default URL for the alias (optional)

Component

Component example (intent component)

{
    "id": "b5e8c00c-6fb4-4a71-9760-1656e303c8d4",
    "name": "BOOK_FLIGHT",
    "description": "intent",
    "nodes": [
        // one or more nodes...
    ],
    "eventHandlers": [],
    "intentId": "9030425b-1c69-45b1-9de2-ef65fc1656a6",
    "timestamp": "2021-04-13T16:31:34.128Z"
}

Represents a group of nodes that make up a flow in the project.

Element Type Description
id String Unique ID of the component
name String Name of the component (see Naming guidelines)
description String “intent” if the component is an intent component; otherwise, empty
nodes Array of nodes Nodes in the component
eventHandlers Array of event handlers Global event handlers, if in Main; component-level event handlers, in other components
intentId String UUID of the intent that is mapped to the component, if this is an intent component; otherwise, empty
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Event handler

Event handler example

{
    "id": "71156f96-a1ac-43eb-8aed-03b97983cdc5",
    "eventId": "295420a0-7675-4917-9329-35e26654ed05",
    "transition": {
        "id": "fc7eacac-95eb-45ff-a844-f60c10cf6978",
        "transitionType": "GO_TO",
        "eventId": "",
        "label": "",
        "eventLog": "",
        "nodeId": "db875195-9f58-41ca-a79c-3668e4104304"
    },
    "reserved": true,
    "transitionId": "fc7eacac-95eb-45ff-a844-f60c10cf6978",
    "componentId": "de19a39d-f5f2-46bb-ad7c-671b13bd045c"
}

Represents a global event handler, if in Main; a component-level event handler, if in another component; or a node-level event handler, if in a node.

Element Type Description
id String UUID of the event handler
eventId String UUID of the event to handle
transition Transition object Transition to perform when the specified event is thrown
transitionId String UUID of the transition to perform
reserved Boolean true, if the handler is for a predefined event; otherwise, false
componentId String For global and component-level event handlers: UUID of the component
nodeId String Only in node-level event handlers: UUID of the node

Node

Node example

{
    "id": "8ca23120-bd08-464f-93b8-c2264b989e89",
    "parentComponentId": "fe8418b9-9448-4ec8-a21d-b74cc7118af7",
    "controllerNode": {
        // content specific to the question router (controllerNode) node...
    },
    "eventHandlers": []
}

Represents a node in a component.

Element Type Description
id String UUID of the node
parentComponentId String UUID of the parent component
node type content Object The key for this field specifies one of the supported node types, and the value is content specific to a node of that type
eventHandlers Array of event handlers Node-level event handlers—override component-level event handlers, and global event handlers

Supported node types

Dialog models support these types of nodes:

Element key Node type
recognitionNode2 Question and answer node
messageNode Message node
decisionNode Decision node
dataAccessNode Data access node
controllerNode Question router node
intentMapperNode2 Intent mapper node
componentNode Component call node
startNode Start or Enter node
externalactionNode External actions node
endNode End node—deprecated
transferNode Transfer node—deprecated

Question and answer node

Question and answer node example (intent collection)

{
    "name": "Get intent",
    "description": "",
    "initialMessage": {
        "id": "310dfa37-16ad-41ba-b3e8-59eeb7654e29",
        "channelProcessingItemsMap": {
            "aceca7f0-26ee-477b-8012-fa34e9794858": {
                "processingItems": [{
                        "condition": {
                            "id": "787d59c7-216c-4220-877d-929767d9120b",
                            "statementType": "ALWAYS_TYPE",
                            "processingItems": [{
                                    "promptGroup": {
                                        "id": "ed882069-96bb-47e8-80f7-7fee1cb38c9a",
                                        "name": "how_can_i_help_you_today?",
                                        "prompts": [{
                                                "payload": {
                                                    "displayText": "How can I help you today?",
                                                    "ttsText": "",
                                                    "audioFile": "",
                                                    "displayTextAnnotations": [],
                                                    "ttsTextAnnotations": [],
                                                    "ttsAudioBackup": "",
                                                    "ttsAudioBackupAnnotations": []
                                                },
                                                "language": "en-US",
                                                "channel": "aceca7f0-26ee-477b-8012-fa34e9794858",
                                                "lastModified": "2021-10-29T00:46:44.963Z"
                                            }
                                        ],
                                        "audioFileId": "",
                                        "bargeinDisabled": false,
                                        "lastModified": "2021-10-29T00:46:44.962Z"
                                    },
                                    "id": "6d5c8032-4817-4c2c-95cd-a2f8fd0d4dcc",
                                    "note": "",
                                    "promptGroupId": "ed882069-96bb-47e8-80f7-7fee1cb38c9a"
                                }
                            ],
                            "expressionId": ""
                        },
                        "id": "8d865006-e9aa-49ae-9f6f-1b025f73d44c",
                        "note": ""
                    }
                ]
            }
        },
        "lastModified": "2021-10-29T00:46:46.089Z",
        "parentNodeId": "2d6a3e9f-23e0-4c9b-bdc6-ddb2781378a0"
    },
    "collectionType": "INTENT_TYPE",
    "actionConfigurations": [],
    "inputManagerReferenceId": "",
    "entityId": "",
    "recoRecoveryBehaviors": [],
    "defaultIntentProcessingItem": {
        "id": "672986ac-23c2-45e5-8474-161733759fc7",
        "channelProcessingItemsMap": {
            "aceca7f0-26ee-477b-8012-fa34e9794858": {
                "processingItems": [{
                        "condition": {
                            "id": "ec83fc2f-a968-4b29-a977-7f231553cad2",
                            "statementType": "ALWAYS_TYPE",
                            "processingItems": [{
                                    "transition": {
                                        "id": "0dbc12e2-89b8-4541-956d-24693383f4ca",
                                        "transitionType": "GO_TO",
                                        "eventId": "",
                                        "label": "Always",
                                        "eventLog": "",
                                        "nodeId": "ed5ec913-f28f-4739-ad69-a32b2d93ffe5"
                                    },
                                    "id": "3c2a9466-4c83-4555-a0f5-05a154d28c94",
                                    "note": ""
                                }
                            ],
                            "expressionId": ""
                        },
                        "id": "fba88f6e-c56f-4420-afdb-0b96734500ed",
                        "note": ""
                    }
                ]
            }
        },
        "lastModified": "2021-10-29T00:46:46.089Z",
        "parentNodeId": "2d6a3e9f-23e0-4c9b-bdc6-ddb2781378a0"
    },
    "clickables": [],
    "view": {
        "name": "",
        "style": ""
    },
    "inputVariablesConcepts": [],
    "nodeSettingOverride": [],
    "recoConfirmationBehaviors": [],
    "dtmfToEntityValueMapping": [],
    "nodeCommandOverrides": [],
    "defaultConceptProcessingId": "",
    "defaultIntentProcessingId": "672986ac-23c2-45e5-8474-161733759fc7",
    "initialProcessingId": "",
    "reentryMessageId": "",
    "initialMessageProcessingItemId": "310dfa37-16ad-41ba-b3e8-59eeb7654e29",
    "timestamp": "2021-10-29T00:46:45.798Z"
}

A question and answer node is the basic node type in dialog applications. It recognizes user input. In a node object literal, the question and answer node element is identified with this key: recognitionNode2.

Element Type Description
name String Name of the node (see Naming guidelines)
description String Description of the node (maximum 1000 characters)
initialMessage Processing item group object Processing items to perform before recognition
collectionType String Type of data to collect—for example, INTENT_TYPE, CUSTOM_LIST_TYPE, YES_NO, NUANCE_ORDINAL_NUMBER; empty for a menu-type entity
actionConfigurations Array of action configurations Processing items to perform for each entity value or ASR value of a menu-type, yes/no or Boolean entity; empty for list-type entities
inputManagerReferenceId String UUID of the question router node handling any user input that is not recognized as the entity this question and answer node is to collect, if any; empty if collectionType is INTENT_TYPE
entityId String UUID of the entity to collect, if any; empty if collectionType is INTENT_TYPE
recoRecoveryBehaviors Array of local recovery behaviors Local recovery behaviors for handling collection events, such as no match, max no match
defaultIntentProcessingItem Processing item group object Only present if collectionType is INTENT_TYPE; processing items to perform after intent recognition
defaultConceptProcessingItem Processing item group object Only present if collectionType is not INTENT_TYPE; processing items to perform after entity recognition
initialProcessingItem Processing item group object Processing items to perform before the value-specific processing items—only present if collectionType is empty, YES_NO or nuance_BOOLEAN
reentryMessage Processing item group object Optional processing items to perform before recognition—instead of initialMessage—, when the dialog flow reenters this node
clickables Array of interactive elements Optional interactive elements for values of the entity to collect, if collectionType is CUSTOM_LIST_TYPE, YES_NO or NUANCE_BOOLEAN, and for values of the global command entity for which an override is defined at this node; otherwise, empty
view View object Formatting information to pass to the client application for messages and interactive elements
inputVariablesConcepts Array of inputs Key-value pairs representing variables, entities, and other objects to pass on to the client application
nodeSettingOverride Array of node setting overrides Overrides to the default global settings for this node
recoConfirmationBehaviors Array of local confirmation behaviors Local behaviors for handling confirmation events, such as a no match, a positive or negative response to a confirmation prompt
dtmfToEntityValueMapping Array of DTMF mappings Mappings between DTMF keys and values of the entity to collect, if collectionType is CUSTOM_LIST_TYPE, YES_NO or NUANCE_BOOLEAN; otherwise, empty
nodeCommandOverrides Array of local command overrides Local handling for specified values of the global command entity
defaultConceptProcessingId String UUID of defaultConceptProcessingItem
defaultIntentProcessingId String UUID of defaultIntentProcessingItem
initialProcessingId String UUID of initialProcessingItem
reentryMessageId String UUID of reentryMessage
initialMessageProcessingItemId String UUID of initialMessage
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Action configuration

Maps a value from a finite set of valid values, and the value-specific actions to perform after this value is collected.

Element Type Description
processingItems Processing item group object Processing items to perform for the entity value (or ASR value)
processingItemsId String UUID of processingItems
One of conceptValue or asrValue String Entity value (or ASR value) associated with the processing items

Local recovery behavior

Local recovery behavior example

{
    "id": "9dea0ea8-9269-400e-ab7e-cf7a0ecb05fb",
    "event": "nomatch1-prompt",
    "escalationLevel": 0,
    "processingItems": {
        // processing items to perform...
    },
    "disabledChannelIds": [],
    "nodeId": "4a2e1934-cfb5-4d71-9ff6-7076e4c60ba2",
    "processingItemId": "0d55acce-0f70-4112-b57e-68678a8dcc68"
}

Represents a local recovery behavior for handling collection events such as no match, max no match.

Element Type Description
id String UUID of the local behavior
event String Event ID—nomatch1-prompt, for example
escalationLevel Number Deprecated (event includes the escalation level)
processingItems Processing item group object Processing items to perform
disabledChannelIds Array of strings UUIDs of the channels for which the behavior is disabled at this node for the specified event
nodeId String UUID of the node
processingItemsId String UUID of processingItems

Local confirmation behavior

Local confirmation behavior example

{
    "id": "ec54c30c-2b9f-40b6-8161-9b3f6d70758f",
    "event": "yes-prompt",
    "processingItems": {
        // processing items to perform...
    },
    "disabledChannelIds": ["085dab9e-0f72-46af-bbac-d234e5f4dc0e"],
    "nodeId": "f0a76820-dfa3-4ff1-bf53-f9d9221fbffb",
    "processingItemsId": "36c4bfee-0b47-4b21-956d-1598bdae4c90"
}

Represents a local behavior for handling confirmation events, such as a no match, a positive or negative response to a confirmation prompt.

Element Type Description
id String UUID of the local behavior
event String Event ID—yes-prompt, for example
processingItems Processing item group object Processing items to perform
disabledChannelIds Array of strings UUIDs of the channels for which the behavior is disabled at this node for the specified event
nodeId String UUID of the node
processingItemsId String UUID of processingItems

Interactive element

Interactive element example (a Yes button)

{
    "id": "34c60614-4c9e-43c5-8931-e9ee17d7ebb5",
    "order": 0,
    "entityValue": "yes",
    "clickableDescription": "The Yes button",
    "imageUrl": "https://my.image.com/icon-check.png",
    "label": "YES",
    "channel": "2f15016c-8809-48ec-9103-4f6673aa371e",
    "language": "en-US",
    "enabled": true,
    "entityId": "b1cb5c79-0640-4220-91b6-a1bdd59e08e7"
}

Represents an element the user can click to answer a question.

Element Type Description
id String UUID of the interactive element
order Number Sequence number of the interactive element
entityValue String Value collected for the entity when a user clicks this element
clickableDescription String Description of the interactive element—optional
imageUrl String Link (URL or relative path) for an image to show on the interactive element—optional if label is specified
label String Text label for the interactive element—optional if imageUrl is specified
channel String Channel for the interactive element
language String Language of the interactive element, as a 4-letter language code (for example, en-US)—refer to Languages and Voices for the list of languages available in the current version of Nuance Mix
enabled Boolean true if the interactive element is enabled; otherwise, false
entityId String UUID of the global command entity, if this interactive element is for a local command override; otherwise, UUID of the entity being collected at this question and answer node

View

Represents formatting information to pass to the client application for messages and interactive elements in question and answer nodes, and for messages in message nodes and in data access nodes.

Element Type Description
name String Type of message or interactive element (such as Buttons, List, or Carousel)
style String Name of a class or inline CSS code to format the message or the interactive elements

DTMF mapping

DTMF mapping example

{
    "id": "2c9fbbdb-23dc-44ee-8f57-b3dcc6719395",
    "nodeId": "4e2de976-63a8-41f5-854c-7f8bfabf8d42",
    "channelId": "df1789df-7329-4472-8b1f-3d731affb4a7",
    "dtmfValue": "9",
    "entityValue": "DIRECTORY",
    "entityId": "7b6c37d9-36d7-4b28-abe5-a7329724be51"
}

Represents the mapping between a DTMF key and a value of the entity to collect at this node—or a value of the global command entity (for a local command override).

Element Type Description
id String UUID of the mapping
nodeId String UUID of the node
channelId String UUID of the channel for the mapping
dtmfValue String DTMF key being mapped
entityValue String Entity value being mapped
entityId String UUID of the global command entity, if this mapping is for a local command override; otherwise, UUID of the entity being collected at this question and answer node

Node setting override

Node setting override example

{
    "id": "d6720d24-2147-4d94-bb8f-58f46f746268",
    "nodeId": "a543a69f-c83c-4216-8dc9-0442dd2e7d53",
    "settingType": "SPEECH_SETTINGS",
    "channelId": "390c240c-3bb7-40db-bff1-11b59131a434",
    "value": "false",
    "settingName": "bargein",
    "language": ""
}

Represents an override to the global settings defaults for a specific question and answer node, for a message node, or for a data access node.

Element Type Description
id String UUID of the setting override
nodeId String UUID of the node
settingType String Setting category—one of: COLLECTION_SETTINGS, CONFIRMATION_SETTINGS, DTMF_SETTINGS, TTS_SETTINGS, SPEECH_SETTINGS, CONVERSATION_SETTINGS, AUDIO_SETTINGS, GRAMMAR_SETTINGS, DATA_ACCESS_SETTINGS, DATA_PRIVACY_SETTINGS
channelId String UUID of the channel for the override
value String Override value
settingName String Name of the setting
language String Language to which the override applies, as a 4-letter language code (for example, en-US)—refer to Languages and Voices for the list of languages available in the current version of Nuance Mix

Local command override

Local command override example

{
    "id": "6600fa54-4a36-45df-a9db-f42b8f57a9b5",
    "nodeId": "1bbfdc61-da14-41af-a0b1-053c634a4e41",
    "entityId": "64f0af61-8977-4ac6-bf7b-a391bcc860e7",
    "entityValue": "agent",
    "processingItems": {
        // processing items to perform...
    },
    "enabled": true,
    "processingItemsId": "788bb74a-39da-4d62-914f-b309c3fe3413"
}

Represents the local handling for a value of the global command entity at this node.

Element Type Description
id String UUID of the override
nodeId String UUID of the node
entityId String UUID of the global command entity (same as globalCommandsEntityId in Project)
entityValue String Entity value being overridden
processingItems Processing item group object Processing items to perform
enabled Boolean true if local handling is enabled for the specified value of the global command entity; otherwise, false
processingItemsId String UUID of processingItems

Message node

Message node example

{
    "name": "Welcome",
    "description": "",
    "processingItems": {
        "id": "e9a92c7c-897c-440b-ad8a-1993a125dcac",
        "channelProcessingItemsMap": {
            "3dd48643-aa14-4914-9776-e41d0cc76de2": {
                "processingItems": [{
                        "condition": {
                            "id": "b761319f-a434-4d20-b0d6-062125bc7330",
                            "statementType": "ALWAYS_TYPE",
                            "processingItems": [{
                                    "promptGroup": {
                                        "id": "43053089-421e-4c3f-be0e-04e01fbcef11",
                                        "name": "welcome_to_coffee_prince",
                                        "prompts": [{
                                                "payload": {
                                                    "displayText": "Welcome to Coffee Prince!",
                                                    "ttsText": "",
                                                    "audioFile": "",
                                                    "displayTextAnnotations": [],
                                                    "ttsTextAnnotations": [],
                                                    "ttsAudioBackup": "",
                                                    "ttsAudioBackupAnnotations": []
                                                },
                                                "language": "en-US",
                                                "channel": "3dd48643-aa14-4914-9776-e41d0cc76de2",
                                                "lastModified": "2020-12-29T19:49:03.934Z"
                                            }
                                        ],
                                        "audioFileId": "",
                                        "bargeinDisabled": false,
                                        "lastModified": "2021-11-01T22:04:04.083Z"
                                    },
                                    "id": "82ab2b7c-d8ec-4760-b654-f481cf092355",
                                    "note": "",
                                    "promptGroupId": "43053089-421e-4c3f-be0e-04e01fbcef11"
                                }
                            ],
                            "expressionId": ""
                        },
                        "id": "d792b25f-088f-4e8d-bcfc-776f27c394bd",
                        "note": ""
                    }, {
                        "condition": {
                            "id": "e36d95a7-c256-490a-972b-8552026ef96e",
                            "statementType": "ALWAYS_TYPE",
                            "processingItems": [{
                                    "transition": {
                                        "id": "e199fe4f-407c-4635-873d-b900c508f716",
                                        "transitionType": "GO_TO",
                                        "eventId": "",
                                        "label": "Always",
                                        "eventLog": "",
                                        "nodeId": "09fc6928-b9b3-4a87-978c-ac31cfefd3a6"
                                    },
                                    "id": "1d6bd040-f780-4210-bf68-7dc792a53331",
                                    "note": ""
                                }
                            ],
                            "expressionId": ""
                        },
                        "id": "5fa9e30f-d9fc-4779-bbcd-7ce0d164fa30",
                        "note": ""
                    }
                ]
            }
        },
        "lastModified": "2020-12-29T19:48:44.710Z",
        "parentNodeId": "869d6d38-d640-4a4d-865a-28dd18babe09"
    },
    "view": {
        "name": "",
        "style": ""
    },
    "nodeSettingOverride": [],
    "processingItemsId": "e9a92c7c-897c-440b-ad8a-1993a125dcac",
    "timestamp": "2020-12-29T19:48:44.978Z"
}

A message node is used to play or display a message. In a node object literal, the message node element is identified with this key: messageNode.

Element Type Description
name String Name of the node (see Naming guidelines)
description String Description of the node (maximum 1000 characters)
processingItems Processing item group object List of processing items
view View object Formatting information to pass to the client application for messages—supported via Dialog gRPC API only
nodeSettingOverride Array of node setting overrides Indicates whether barge-in is disabled at this message node; otherwise, empty
processingItemsId String UUID of the processing item group
timestamp String Date and time of the last modification

Decision node

Decision node example

{
    "name": "Check if special coffee types were returned",
    "description": "",
    "processingItems": {
        "id": "ce6277a4-ddb6-4d62-9c12-c76c51c4ada1",
        "channelProcessingItemsMap": {
            "f75a11d1-aea7-474f-aed2-45e34baa52a4": {
                "processingItems": [{
                        "condition": {
                            "id": "e77de595-920e-4d52-8b30-c02ddffc6acc",
                            "statementType": "IF_TYPE",
                            "expression": {
                                "id": "1c052b41-7c4a-4302-9103-0e6c64d2e181",
                                "leftVariable": {
                                    "id": "7b99d7f5-96d5-43b8-8d55-584bdc6b93de",
                                    "name": "coffeeTypesSpecial",
                                    // ...
                                    "simpleVariableType": "DYNAMIC_ENTITY_DATA",
                                    "timestamp": "2020-07-23T00:05:04.622Z"
                                },
                                "relationalOperator": "NOT_EQUAL_OPERATOR",
                                "lastModified": "2020-07-23T00:05:04.674Z",
                                "rightSpecialOperand": "NULL",
                                "leftVariableId": "7b99d7f5-96d5-43b8-8d55-584bdc6b93de"
                            },
                            "processingItems": [{
                                    "action": {
                                        "assign": {
                                            "lhsVariable": {
                                                "id": "d01be426-5e80-4b2b-8deb-cda3acc83159",
                                                "name": "gotSpecial",
                                                "description": "Look up special coffee types (once per session)",
                                                "possibleValues": ["true", "false"],
                                                // ...
                                                "simpleVariableType": "BOOLEAN_TYPE",
                                                "timestamp": "2020-07-23T00:05:04.603Z"
                                            },
                                            "constant": "true",
                                            "lhsVariableId": "d01be426-5e80-4b2b-8deb-cda3acc83159"
                                        }
                                    },
                                    "id": "c49b2c3e-32b2-4c50-b8d9-8d693673ac24",
                                    "note": ""
                                }
                            ],
                            "expressionId": "1c052b41-7c4a-4302-9103-0e6c64d2e181"
                        },
                        "id": "7e3ef03a-ebb7-485d-ab5a-f1c427d50488",
                        "note": ""
                    }, {
                        "condition": {
                            "id": "6925e82b-eff7-4f13-bf02-3273c0f08094",
                            "statementType": "ALWAYS_TYPE",
                            "processingItems": [{
                                    "transition": {
                                        "id": "8ce216e6-66e1-44ca-844e-9ae567ae625b",
                                        "transitionType": "GO_TO",
                                        "eventId": "",
                                        "label": "GoTo",
                                        "eventLog": "",
                                        "nodeId": "0e9370d2-2ad9-41fd-833b-57b4afa57b60"
                                    },
                                    "id": "b9f6226c-c1f9-4aa1-b549-31ebf8cd578b",
                                    "note": ""
                                }
                            ],
                            "expressionId": ""
                        },
                        "id": "757e0ae7-8f77-433a-adb6-51cd33ab4c89",
                        "note": ""
                    }
                ]
            }
        },
        "lastModified": "2020-07-23T00:05:10.120Z",
        "parentNodeId": "a448428e-a6cc-4539-9e00-c441247226fb"
    },
    "processingItemsId": "ce6277a4-ddb6-4d62-9c12-c76c51c4ada1",
    "timestamp": "2020-07-23T00:05:10.176Z"
}

In a decision node, the application applies logic or conditions to determine what to do next, without doing a data access call, and without speaking/providing output to the user. In a node object literal, the decision node element is identified with this key: decisionNode.

Element Type Description
name String Name of the node (see Naming guidelines)
description String Description of the node (maximum 1000 characters)
processingItems Processing item group object Processing items to perform
processingItemsId String UUID of the processing item group
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Data access node

Data access node example

{
    "name": "getCoffeePrice",
    "description": "",
    "outputVariables": [{
            "id": "47261b77-e96a-426d-a625-c7b6c7f2b405",
            "name": "priceAmount",
            // ...
            "simpleVariableType": "AMOUNT_TYPE",
            "timestamp": "2021-03-25T23:16:20.760Z"
        }
    ],
    "processingItems": {
        "id": "bfc0b157-2336-4802-9335-01dec0e34a1c",
        "channelProcessingItemsMap": {
            "eba94447-9060-4b17-b0ef-b0981b273a40": {
                "processingItems": [{
                        "promptGroup": {
                            "id": "3b8bf2e9-8318-4db4-b6df-9acc726c4286",
                            "name": "please_wait",
                            "prompts": [
                                // details of the latency message...
                            ],
                            "audioFileId": "getCoffeePrice_out_01",
                            "bargeinDisabled": false,
                            "lastModified": "2021-11-01T22:22:37.727Z"
                        },
                        "id": "6bcc1b8b-cbef-4543-8038-70c848afdf82",
                        "note": "",
                        "promptGroupId": "3b8bf2e9-8318-4db4-b6df-9acc726c4286"
                    }
                ]
            }
        },
        "lastModified": "2021-08-26T21:15:41.169Z",
        "parentNodeId": "0c9dab87-670a-42de-b4a1-38d2d052ac6c"
    },
    "serviceName": "getCoffeePrice",
    "externalFetchEnabled": false,
    "successNodeId": "f4041e98-688c-470c-8713-cd56a0e830f7",
    "failureNodeId": "8037e018-9b53-4f58-ab91-edb96d707018",
    "inputVariablesConcepts": [{
            "concept": {
                "id": "8e675ac5-1955-4cf1-b754-689e2c11f043",
                "projectId": "24420",
                "name": "COFFEE_TYPE",
                // ...
            },
            "conceptId": "8e675ac5-1955-4cf1-b754-689e2c11f043"
        }, {
            "concept": {
                "id": "715740fb-41af-4f01-bef0-358e32366756",
                "projectId": "24420",
                "name": "COFFEE_SIZE",
                // ...
            },
            "conceptId": "715740fb-41af-4f01-bef0-358e32366756"
        }
    ],
    "urlExtension": "",
    "fetchTimeout": 0,
    "connectTimeout": 0,
    "methodType": "NOT_SET",
    "sourceExpression": "",
    "headers": {},
    "view": {
        "name": "indicator",
        "style": "progress"
    },
    "backendConfig": {
        "id": "",
        "urlExtension": "/coffee/price",
        "fetchTimeout": 0,
        "connectTimeout": 0,
        "method": "POST",
        "dressName": "522",
        "headers": [{
                "key": "mytoken",
                "variable": {
                    "id": "b25fa304-1f04-4213-afc5-b90586574d29",
                    "name": "myToken",
                    // ...
                    "simpleVariableType": "STRING_TYPE",
                    "timestamp": "2021-03-30T16:49:43.391Z"
                },
                "variableId": "b25fa304-1f04-4213-afc5-b90586574d29"
            }, {
                "key": "apikey",
                "constant": "5678"
            }
        ],
        "dressAliasId": "522"
    },
    "nodeSettingOverride": [],
    "processingItemsId": "bfc0b157-2336-4802-9335-01dec0e34a1c",
    "outputVariableIds": ["47261b77-e96a-426d-a625-c7b6c7f2b405"],
    "timestamp": "2021-08-26T21:49:34.309Z"
}

A data access node exchanges information with an external system, typically by retrieving information from a database or application. In a node object literal, the data access node element is identified with this key: dataAccessNode.

Element Type Description
name String Name of the node (see Naming guidelines)
description String Description of the node (maximum 1000 characters)
outputVariables Array of variables One or more variables to be returned by the backend system
processingItems Processing item group object Data access latency message (maximum one static message, that is, a single prompt group and no annotations in the prompt payloads
serviceName String Deprecated
externalFetchEnabled Boolean true if the data access layer uses an external service to exchange data (client-side integration); otherwise, false (server-side integration)
successNodeId String UUID of the node to transition to if the query to the backend system succeeded
failureNodeId String UUID of the node to transition to if the query to the backend system query failed
inputVariablesConcepts Array of inputs Key-value pairs representing variables, entities, and other objects to pass on to a backend system
urlExtension String Deprecated
fetchTimeout Number Deprecated
connectTimeout Number Deprecated
methodType String Deprecated
sourceExpression String Deprecated
headers String Deprecated
view View object Formatting information to pass to the client application for the latency message
backendConfig Backend connection data object Information required by the dialog service to interact directly with a backend system—used when externalFetchEnabled is false (server-side integration)
nodeSettingOverride Array of node setting overrides Overrides to the default global settings for this node
processingItemsId String UUID of the processing item group
outputVariableIds Array UUIDs of the variables to be returned by the backend system
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Backend connection data

Represents the information to access a backend web service from a data access node.

Element Type Description
id String Not used
urlExtension String URL extension (maximum 2000 characters)
fetchTimeout Number Fetch timeout in milliseconds (default: 0)
connectTimeout Number Connection timeout in milliseconds (default: 0)
method String Method; one of: POST, GET, PUT, DELETE, PATCH, NOT_SET (default)
dressName String Deprecated (superseded by dressAliasId)
headers Array of headers Headers used to query the backend system
dressAliasId String Numeric ID of the connection profile for the backend system

Represents a header in the backend connection data for a data access node, or in a backend connection preset.

Element Type Description
key String Name of the header
header Object Key-value pair representing one of the supported header types.
variableId String Only present for headers of type variable—UUID of the variable
variableExpressionId String Only present for headers of type variableExpression—UUID of the complex variable field

Supported header types

Element key Value type Description
constant String Static header data (maximum 2048 characters)
variable Variable object Variable used as dynamic header data
variableExpression Variable expression object Complex variable field, used as dynamic header data

Supported input types

Represents information to send to a backend system (from a data access node) or to the client application (from an external actions node or from a question and answer node).

Element key Value type Description
variable Variable Variable to pass on to the backend system
variableId String Only present for inputs of type variable—UUID of the variable
concept Entity Entity to pass on to the backend system
conceptId String Only present for inputs of type concept—UUID of the entity
intent String One of: INTENT_VALUE (active intent value), INTENT_LITERAL (active intent literal), INTENT_FORMATTED_LITERAL (formatted version of the active intent literal), INTENT_CONFIDENCE (active intent confidence score)
specialOperand String One of: LAST_COLLECTION_INTERPRETATION (last collection interpretation), LAST_CONFIRMATION_INTERPRETATION (last confirmation interpretation)

Question router node

Question router node example

{
    "name": "Get order details",
    "description": "Skip size for ristretto",
    "initialTransition": {
        "id": "9e800627-6dd6-4192-b916-af290c340b9d",
        "channelProcessingItemsMap": {
            //...
            }
        },
        "lastModified": "2020-12-29T19:48:51.200Z",
        "parentNodeId": "ddc68564-d074-4345-93b2-fb2fdc17cf7d"
    },
    "finalTransition": {
        "id": "fdfa1eaa-17cf-4871-b1a4-e19b67acef05",
        "channelProcessingItemsMap": {
            "3dd48643-aa14-4914-9776-e41d0cc76de2": {
                "processingItems": [{
                        "transition": {
                            "id": "317134e6-9194-4238-932a-b18e359bd8c6",
                            "transitionType": "GO_TO",
                            "eventId": "",
                            "label": "Complete",
                            "eventLog": "",
                            "nodeId": "8994cdd2-75a4-4927-bac0-156721f3f537"
                        },
                        "id": "6c0c6487-1e7b-4f4d-bfd6-19a85b9b92b4",
                        "note": ""
                    }
                ]
            }
        },
        "lastModified": "2020-12-29T19:48:51.421Z",
        "parentNodeId": "ddc68564-d074-4345-93b2-fb2fdc17cf7d"
    },
    "concepts": [{
            "conceptId": "8ec8243b-ca58-4829-b4b8-e2c154b8b1f2",
            "collectGotoNodeId": "1fcb3fa2-67ca-4ceb-b7e2-f09e3178762c",
            "processGotoNodeId": "1fcb3fa2-67ca-4ceb-b7e2-f09e3178762c",
            "conceptName": "",
            "manualComplete": false
        }, {
            "conceptId": "e6b354ea-91f4-4b40-bdcd-13e41e79a9a6",
            "collectGotoNodeId": "8b7fd379-7838-4e73-b8a7-b84e76e222ee",
            "processGotoNodeId": "8b7fd379-7838-4e73-b8a7-b84e76e222ee",
            "conceptName": "",
            "manualComplete": false
        }
    ],
    "intentSwitchingDisabled": false,
    "intentSwitchTransition": {
        "id": "966451b8-c49b-4cd2-9271-5d334db45104",
        "transitionType": "RETURN_TO_INTENT_MAPPER",
        "eventId": "",
        "label": "Intent Switch",
        "eventLog": ""
    },
    "intentSwitchTransitionId": "966451b8-c49b-4cd2-9271-5d334db45104",
    "initialTransitionId": "9e800627-6dd6-4192-b916-af290c340b9d",
    "finalTransitionId": "fdfa1eaa-17cf-4871-b1a4-e19b67acef05",
    "timestamp": "2021-09-29T00:05:35.473Z"
}

A question router node specifies multiple pieces of information to be collected and determines the next node in the dialog flow, based on the information collected so far. In a node object literal, the question router node element is identified with this key: controllerNode.

Element Type Description
name String Name of the node (see Naming guidelines)
description String Description of the node (maximum 1000 characters)
initialTransition Processing item group object Optional transition to execute prior to collection
finalTransition Processing item group object Mandatory transition specifying where the flow will proceed after collection is completed
concepts Array of entity references Entities to handle
intentSwitchingDisabled Boolean true if intent switching is disabled; otherwise, false (default)
intentSwitchTransition Transition Transition to execute when intent switching is detected, and intentSwitchingDisabled is false
intentSwitchTransitionId String UUID of the intent switch transition
initialTransitionId String UUID of the initial transition
finalTransitionId String UUID of the final transition
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Entity reference

Represents an entity to handle in a question router node.

Element Type Description
conceptId String UUID of the entity
collectExpression Expression object Optional expression used to determine that the question router node must not skip collection for the entity
collectGotoNodeId String UUID of the node to go to for collecting the entity
processExpression Expression object Optional expression used to perform after collection
processGotoNodeId String UUID of the node to go to after collection
multiConceptExpression Expression object Optional expression used to determine if the question router node must support multiple mentions for the entity
collectExpressionId String UUID of collectExpression
processExpressionId String UUID of processExpression
multiConceptExpressionId String UUID of multiConceptExpression
conceptName String Name of the entity—legacy element, supported for backward compatibility only
manualComplete Boolean false (default) if the question router node automatically sets completion status and confirmation status for the entity; otherwise, true

Intent mapper node

Intent mapper node example

{
    "name": "Intent Mapper",
    "description": "",
    "intentMappings": [{
            "id": "d597a039-a746-42f3-8343-a658eb944baf",
            "nodeId": "77ecb0e0-a448-4f73-8238-adf5a27b9ee3",
            "intentId": "fe8d8016-5019-4ac5-b053-693eee193b8e",
            "destination": {
                "nodeId": "474409e6-afff-49d9-beca-be3e66ac60f2"
            }
        }
    ],
    "transition": {
        "id": "b9b861b5-aad9-4a03-9e91-7d64a2275e79",
        "transitionType": "GO_TO",
        "eventId": "",
        "label": "On Return",
        "eventLog": "",
        "nodeId": "b6e15b24-3860-43d0-9f50-30fcd80fa019"
    },
    "transitionId": "b9b861b5-aad9-4a03-9e91-7d64a2275e79",
    "timestamp": "2021-09-16T20:11:43.669Z"
}

The intent mapper node handles data for NLU/call routing menus. In a node object literal, the intent mapper node element is identified with this key: intentMapperNode2.

Element Type Description
name String Name of the node (see Naming guidelines)
description String Description of the node (maximum 1000 characters)
intentMappings Array of node intent mappings Intent mappings specific to this intent mapper node (override any corresponding global intent mappings)
transition Transition object Specifies what happens when the dialog flow returns from a mapped component after the interaction associated with a specific intent is complete
transitionId String UUID of the transition to perform upon return from a mapped component
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Node intent mapping

Node intent mapping example

{
    "id": "95573456-5c8e-4de1-93e2-190fe13a80a7",
    "nodeId": "5b5fb24c-8bcb-4c88-bbf5-136f861724cb",
    "intentId": "3478f442-8f6e-483d-8efd-8cb53208c49e",
    "destination": {
        "componentId": "ae6c8b59-f7bf-4bae-824f-0ed4e054f35a"
    }
}

Represents the local mapping of one intent to a component or node set in an intent mapper node.

Element Type Description
id String UUID of the mapping
nodeId String UUID of the Intent mapper node
intentId String UUID of the intent being mapped
destination Mapping destination object Key-value pair mapping the intent and a component or node

Node intent mapping destination

Intent mapping destination example

{
    "componentId": "ae6c8b59-f7bf-4bae-824f-0ed4e054f35a"
}

Dialog models support these destination types for node-level intent mapping overrides:

Element key Value type Description
componentId String UUID of a component
nodeId String UUID of a node

Component call node

Component call node example

{
    "name": "Call USER_AUTH",
    "description": "",
    "componentId": "d702cadc-f8f2-4689-a075-5592361cad07",
    "processingItems": {
        "id": "667b70e9-6e46-4d78-8fba-9952f5a02ec0",
        "channelProcessingItemsMap": {
            "3dd48643-aa14-4914-9776-e41d0cc76de2": {
                "processingItems": [{
                        "condition": {
                            "id": "1ade84da-87bc-44b9-ae24-4103c166853f",
                            "statementType": "ALWAYS_TYPE",
                            "processingItems": [{
                                    "transition": {
                                        "id": "e5a361a6-b167-4ca7-a017-c15b3e5a881e",
                                        "transitionType": "GO_TO",
                                        "eventId": "",
                                        "label": "On Return",
                                        "eventLog": "",
                                        "nodeId": "09fc6928-b9b3-4a87-978c-ac31cfefd3a6"
                                    },
                                    "id": "ccedabf6-96a2-4ed8-bccf-fcebdf94bc5a",
                                    "note": ""
                                }
                            ],
                            "expressionId": ""
                        },
                        "id": "06d15b4c-f8ac-4794-add1-27970ffba3e5",
                        "note": ""
                    }
                ]
            }
        },
        "lastModified": "2021-07-21T20:02:35.139Z",
        "parentNodeId": "9f9e92c3-73b1-4e00-b45a-a4dd8fa34ea0"
    },
    "processingItemsId": "667b70e9-6e46-4d78-8fba-9952f5a02ec0",
    "timestamp": "2021-07-21T20:02:00.036Z"
}

A component call node allows a dialog flow to enter another component and is also the point of return from that component. In a node object literal, the component call node element is identified with this key: componentNode.

Element Type Description
name String Name of the node (see Naming guidelines)
description String Description of the node (maximum 1000 characters)
componentId String UUID of the component to invoke
processingItems Processing item group object Processing items to perform upon return from the component (supports elements of type transition only)
processingItemsId String UUID of the processing item group
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Start or Enter node

Start node example

{
    "name": "start",
    "description": "",
    "processingItems": {
        "id": "9d5f2ee8-f731-4afe-827d-2bfa7ed433df",
        "channelProcessingItemsMap": {},
        "lastModified": "2020-12-29T19:48:49.062Z",
        "parentNodeId": "a1037e8e-909e-4a42-88df-d1c0cf2334e9"
    },
    "nodeId": "869d6d38-d640-4a4d-865a-28dd18babe09",
    "processingItemsId": "9d5f2ee8-f731-4afe-827d-2bfa7ed433df",
    "timestamp": "2020-12-29T19:48:49.305Z"
}

The Start node represents the beginning of an application, and an Enter node represents the beginning of a component. In a node object literal, the Start node and the Enter node are both identified with this key: startNode.

Element Type Description
name String Name of the node (always “start”)
description String Description of the node (maximum 1000 characters)
processingItems Processing item group object Processing items to perform (supports elements of type action only)
nodeId String UUID of the next node in the dialog flow
processingItemsId String UUID of the processing item group
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

External actions node

External actions node example

{
    "inputVariablesConcepts": [],
    "outputVariables": [],
    "successTransition": {
        "id": "e41a0034-9f9f-4502-9daf-476fce3c746f",
        "transitionType": "GO_TO",
        "eventId": "",
        "label": "Success",
        "eventLog": "",
        "nodeId": "65f2dfbd-ce07-43ac-8472-83a60c2e36e7"
    },
    "failureTransition": {
        "id": "68047f5f-cac4-4fc4-9724-65069017f819",
        "transitionType": "GO_TO",
        "eventId": "",
        "label": "Failure",
        "eventLog": "",
        "nodeId": "9abad8bd-da58-4484-9a73-f348048a8d3d"
    },
    "name": "Transfer",
    "actionType": "ESCALATE",
    "description": "",
    "successTransitionId": "e41a0034-9f9f-4502-9daf-476fce3c746f",
    "failureTransitionId": "68047f5f-cac4-4fc4-9724-65069017f819",
    "outputVariableIds": [],
    "timestamp": "2020-07-28T01:29:59.225Z"
}

The external actions node represents actions to be performed when ending a conversation, transferring to another system, or escalating to a live agent. In a node object literal, the external actions node element is identified with this key: externalactionNode.

Element Type Description
name String Name of the node (see Naming guidelines)
actionType String Either END or ESCALATE
description String Description of the node (maximum 1000 characters)
inputVariablesConcepts Array of inputs Key-value pairs representing variables, entities, and other objects to pass on to the client application
outputVariables Array of variables One or more variables to be returned by the client application
successTransition Transition object Only present if actionType is ESCALATE; transition to perform if the client application returns with a success status
failureTransition Transition object Only present if actionType is ESCALATE; transition to perform if the client application returns with a failure status—Not yet supported
successTransitionId String UUID of the transition to perform if the client application returns with a success status
failureTransitionId String UUID of the transition to perform if the client application returns with a failure status
outputVariableIds Array UUIDs of the variables to be returned by the client application
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

End node

The end node is a deprecated element, supported for backward compatibility only. Use external actions nodes instead. In a node object literal, the end node element is identified with this key: endNode.

Transfer node

The transfer node is a deprecated element, supported for backward compatibility only. Use external actions nodes instead. In a node object literal, the transfer node element is identified with this key: transferNode.

Variable

Variable example

{
    "id": "0c124392-a104-4bda-ae1f-68f05814d0fb",
    "name": "isFirstTime",
    "description": "",
    "possibleValues": ["true", "false"],
    "uiDefaultValue": "",
    "isReserved": false,
    "masked": false,
    "reportingType": "REPORTING_TYPE_NONE",
    "simpleVariableType": "BOOLEAN_TYPE",
    "timestamp": "2021-09-10T02:55:03.025Z"
}

Represents a variable used in the project.

Element Type Description
id String UUID of the variable
name String Name of the variable (see Naming guidelines)
description String Description of the variable (maximum 255 characters)
possibleValues Array of strings Valid values for the variable—Not yet supported in Mix.dialog
uiDefaultValue String Value to be used during preview in the in Mix.dialog Try tab
isReserved Boolean true for reserved variables; otherwise, false
masked Boolean true for sensitive variables to be masked in application logs; otherwise, false
reportingType String One of the supported reporting properties
simpleVariableType String Only present for defined simple variables; one of the supported variable types
simpleGenericType String Only present for variables where simpleVariableType is LIST_TYPE; indicates the type of the items in the list
complexGenericTypeId String Only present for variables where simpleVariableType is LIST_TYPE, and the list items are complex variables; UUID of the schema for the items in the list
complexVariableTypeId String Only present for complex variables; UUID of the schema for this complex variable
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Supported variable types

Dialog models support these types of variables:

Value Type
STRING_TYPE String
ALPHANUM_TYPE String of alphanumeric characters
DIGITS_TYPE String of digits
BOOLEAN_TYPE Boolean
INTEGER_TYPE Integer
DECIMAL_TYPE Decimal-point number
AMOUNT_TYPE Amount, including currency (example: “USD 234.56”)
DATE_TYPE Date, in this format: YYYYMMDD (example: “20201030”)
TIME_TYPE Time, in this format: HHMM (example: “2359”)
DISTANCE_TYPE Distance, including unit and modifier (example: “123.4567 km LT”)
TEMPERATURE_TYPE Temperature, including unit (examples: “-12.3 C”, “273.15 K”)
LIST_TYPE List
DYNAMIC_ENTITY_DATA Dynamic entity data—not supported for list items and schema fields

Supported reporting properties

Variables in dialog models support these reporting properties:

Value Description
REPORTING_TYPE_NONE Not marked with a reporting property (default), or marked as sensitive (if masked is also true)
ATTRIBUTE_TYPE Marked as an attribute—Supported for simple variables only
METRIC_TYPE Marked as a metric—Supported for simple variables only
DIMENSION_TYPE Marked as a dimension—Supported for simple variables only

Schema

Schema example

{
    "id": "5f044809-ffad-44cc-ad58-773d6b04bcd3",
    "name": "myOrder",
    "description": "item, quantity, unitPrice, isReady",
    "fields": [
            //   one or more variables...
    ],
    "isReserved": false
}

Represents a complex variable schema in the project.

Element Type Description
id String UUID of the schema
name String Name of the schema (see Naming guidelines)
description String Description of the schema (maximum 255 characters)
fields Array of variables One or more variables
isReserved Boolean True for a reserved schema (for example, DynamicMessageReference); otherwise, false

Prompt group

Prompt group example

{
    "id": "0e1f1917-01cd-4779-a07d-db6963d0d95e",
    "name": "what_can_i_get_you_today?",
    "prompts": [{
            "payload": {
                "displayText": "What can I get you today?",
                "ttsText": "How may I help you?",
                "audioFile": "",
                "displayTextAnnotations": [],
                "ttsTextAnnotations": [],
                "ttsAudioBackup": "",
                "ttsAudioBackupAnnotations": []
            },
            "language": "en-US",
            "channel": "752f65fd-7215-4083-ad29-7fd8bf5ae38a",
            "lastModified": "2020-09-14T03:17:19.565Z"
        }
    ],
    "audioFileId": "",
    "bargeinDisabled": false,
    "lastModified": "2020-09-14T05:40:26.962Z"
}

Represents a group of related prompts used in the project.

Element Type Description
id String UUID of the prompt group
name String Name of the prompt group (see Naming guidelines)
prompts Array of prompts Prompts in the prompt group
audioFileId String Name of the audio file to play for the Audio Script modality (maximum 255 characters, see Naming guidelines)—the file extension is determined in the project settings
bargeinDisabled Boolean false if barge-in is enabled for this prompt group (default); otherwise true
lastModified String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-10-17T20:55:38.488Z

Prompt

Prompt example

{
    "payload": {
        "displayText": "What can I get you today?",
        "ttsText": "How may I help you?",
        "audioFile": "",
        "displayTextAnnotations": [],
        "ttsTextAnnotations": [],
        "ttsAudioBackup": "",
        "ttsAudioBackupAnnotations": []
    },
    "language": "en-US",
    "channel": "752f65fd-7215-4083-ad29-7fd8bf5ae38a",
    "lastModified": "2020-09-14T03:17:19.565Z"
}

Represents a prompt in a prompt group.

Element Type Description
payload Prompt payload object Payload of the prompt
language String Locale of the prompt, as a 4-letter language code (for example, en-US)—refer to Languages and Voices for the list of languages available in the current version of Nuance Mix
channel String UUID of the channel
lastModified String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-10-17T20:55:38.488Z

Prompt payload

Prompt payload example

{
    "displayText": "What can I get you today?",
    "ttsText": "How may I help you?",
    "audioFile": "",
    "displayTextAnnotations": [],
    "ttsTextAnnotations": [],
    "ttsAudioBackup": "",
    "ttsAudioBackupAnnotations": []
}

Represents the payload of a prompt.

Element Type Description
displayText String Text to display; the string may include dynamic placeholders in this format: [placeholder text|uuid of a variable], where the variables are listed in the displayTextAnnotations element
ttsText String Text to render using text-to-speech; the string may include dynamic placeholders in this format: [placeholder text|uuid of a variable], where the variables are listed in the ttsTextAnnotations element
audioFile String Deprecated
displayTextAnnotations Array of annotations Dynamic content to include in the text to display
ttsTextAnnotations Array of annotations Dynamic content to render using text-to-speech
ttsAudioBackup String Backup text to render using text-to-speech when the specified audio file is unavailable; the string may include dynamic placeholders in this format: [placeholder text|uuid of a variable], where the variables are listed in the ttsAudioBackupAnnotations element
ttsAudioBackupAnnotations Array of annotations Dynamic content to include in the audio backup text

Annotation

Annotation example for a simple variable of type string

{
    "variable": {
        "id": "5b8382ef-ce06-45e3-9c2b-e488ffd745c2",
        "name": "customerFirstName",
        "description": "",
        "possibleValues": [],
        "uiDefaultValue": "",
        "simpleVariableType": "STRING_TYPE",
        "timestamp": "2019-11-26T23:11:43.065Z"
    },
    "type": "",
    "properties": {
        "string": "customer"
    },
    "variableId": "5b8382ef-ce06-45e3-9c2b-e488ffd745c2"
}

Represents an dynamic placeholder in a prompt payload.

Element Type Description
annotation payload Object Key-value pair representing one of the supported annotation payload types
variableId String Only present if the annotation payload is of type variable; UUID of the variable
variableExpressionId String Only present if the annotation payload is of type variableExpression; UUID of the element
type String Controls the validation of output formatting properties, if applicable—possible values include alphaNum, currency, date, digits, cardinalNumber
properties Annotation properties object Display attributes for the annotation, and formatting parameters for the value associated with the annotation

Supported annotation payload types

Represents the source of the dynamic value for an annotation.

Element key Type type Description
variable Variable object Variable that contains dynamic content to include in the message
variableExpression Variable expression object Complex variable field, or the result of a supported method against a variable, to include in the message
conceptId String UUID of the entity that contains dynamic content to include in the message
conceptIdLiteral String UUID of the entity whose literal is to include in the message
conceptIdFormattedLiteral String UUID of the entity whose formatted literal is to include in the message
currentEntity String One of: ENTITY_VALUE, ENTITY_LITERAL, ENTITY_FORMATTED_LITERAL, to include in a global confirmation message—Mix.dialog only supports ENTITY_VALUE (current entity value from the last NLU interpretation result)
Intent String One of: INTENT_VALUE (active intent value), INTENT_LITERAL (active intent literal), INTENT_FORMATTED_LITERAL (formatted version of the active intent literal),INTENT_CONFIDENCE (active intent confidence score), to include in the message

Annotation properties

Annotation properties example to format a date value for German recorded audio playback

{
 "formType": "DATE_TYPE",
 "intonation": "medial",
 "string": "myDate",
 "partsOfDate": "mdy",
 "case": "nominative",
 "playDayOfTheWeek": "false"
}

Annotation properties example to format a string value as a phone number for TTS playback

{
    "formType": "STRING_TYPE",
    "string": "userPhoneNumber",
    "ssmlOpenFreeform": "<say-as interpret-as=\"phone\">",
    "ssmlCloseFreeform": "<\/say-as>"
}

Represents output formatting properties for the value associated with the annotation. Only string is required, all other elements are optional and depend on the data type. If only string is present, this means that the raw value is to be included in the message.

Element Type Description
formType String Determines the format editor to use in Mix.dialog for this annotation—one of: ALPHA_NUM_TYPE, CURRENCY_TYPE, DATE_TYPE, DECIMAL_TYPE, DIGITS_TYPE, DISTANCE_TYPE, CARDINAL_NUMBER_TYPE, TEMPERATURE_TYPE, DISTANCE_TYPE, TIME_TYPE
string String Display text for the placeholder in the message
advanced Boolean true if the advanced format editor is to be used in Mix.dialog for this annotation—only for date and time values (in Rich Text messages), and alphanumeric and digits (all message formats)—otherwise, false (default)
pattern String Pattern string to format the value in the message—only for date and time values (in Rich Text messages), and alphanumeric and digits (all message formats)
thousandSeparator Boolean Rich Text only, for amount, decimal, distance, integer, and temperature values: true (default) to show the value with the applicable thousands separator; otherwise, false
playZeroDollars Boolean Amount recorded audio playback only: true (default) to play “zero dollars” (in the session language), when the number of dollars (or selected currency) is zero; otherwise, false
playZeroCents Boolean Amount TTS and recorded audio playback only: true (default) to play “zero cents” (in the session language), when the number of cents (or sub-unit for the selected currency) is zero; otherwise, false
playPrehundred Boolean English (United States) recorded audio playback only, for amount values: true to use different audio recordings for hundreds prior to millions/thousands, and for hundreds prior to tens; false (default) to use the same audio recording for hundreds regardless of their position in amounts
currency String For display purposes only: currency to show on the annotation in Mix.dialog—at runtime (and in preview) the currency is part of the value
partsOfDate String Specifies which parts to play for a date, and the order—examples: mdy to play something like “February 17, 2021”, or my to play something like “August 2023”
playDayOfTheWeek Boolean true to display or play the day of the week (for example, “Sunday”); otherwise, false (default)—only for date values
partsOfTime String For TTS playback only; not exposed in Mix.dialog: Specifies which parts to play for a time value, and the order—default is hms
clock24 String Hour format to use: 12 (default), or 24
decimalPlaces String Number of decimal places to show (0–7, default: 2)—only for decimal, distance, and temperature values
playZeroUnits Boolean Decimal recorded audio playback only: true (default) to play “zero point” (in the session language), when the value is zero; otherwise, false
playZeroDecimals Boolean Decimal TTS and recorded audio playback only: true (default) to play “point zero cents” (in the session language), when the value is zero; otherwise, false
distanceType String For display purposes only: Unit of distance to show on the annotation in Mix.dialog (km, m, cm, mm, mi, yd, ft, in)—at runtime (and in preview) the unit of distance is part of the value
tempType String For display purposes only: Unit of temperature to show on the annotation in Mix.dialog (C, F, K)—at runtime (and in preview) the unit of temperature is part of the value
intonation String Recorded audio playback only: intonation to use for the value in the message: medial (default), or final
case String German recorded audio playback only, for amount, date, and decimal values—Grammatical case to use for the value in the message: nominative (default), or dative
forceTTS Boolean Audio Script message only: true for TTS-formatted annotation (default for languages that don't support dynamic concatenated audio); false (or empty) for dynamic concatenated audio-formatted annotation
ssmlOpenFreeform String String value in TTS or Audio Script message only: SSML tag to use for TTS playback
ssmlCloseFreeform String String value in TTS or Audio Script message only: Closing tag for ssmlOpenFreeform

Processing item group

Processing item group example

{
    "id": "af10e3a6-cb40-44eb-b584-45196ffdaa5c",
    "channelProcessingItemsMap": {
        "b19690e3-d92d-4052-b343-ceac768bf5a9": {
            "processingItems": [{
                    "condition": {
                        "id": "a4048ee6-9ea8-4989-863c-49ccc52f84d7",
                        "statementType": "ALWAYS_TYPE",
                        "processingItems": [{
                                "promptGroup": {
                                    "id": "38e68bc5-6d60-47ea-90c7-574ebcb8c468",
                                    "name": "tell_me_again_how_can_i_help_you_today_or_say_\"wha",
                                    "prompts": [{
                                            "payload": {
                                                "displayText": "I need more information. Would you repeat your question in a different way?",
                                                "ttsText": "Tell me again. How can I help you today? Or say \"what are my options?\"",
                                                "audioFile": "",
                                                "displayTextAnnotations": [],
                                                "ttsTextAnnotations": [],
                                                "ttsAudioBackup": "",
                                                "ttsAudioBackupAnnotations": []
                                            },
                                            "language": "en-US",
                                            "channel": "b19690e3-d92d-4052-b343-ceac768bf5a9",
                                            "lastModified": "2022-05-03T00:47:30.012Z"
                                        }
                                    ],
                                    "audioFileId": "",
                                    "bargeinDisabled": false,
                                    "lastModified": "2022-05-03T00:47:30.010Z"
                                },
                                "id": "f102df4c-266c-4756-8c3e-453244d18375",
                                "note": "",
                                "promptGroupId": "38e68bc5-6d60-47ea-90c7-574ebcb8c468"
                            }
                        ],
                        "expressionId": ""
                    },
                    "id": "be936a1a-6258-40d5-afc2-5fc6c8fe8459",
                    "note": ""
                }
            ]
        }
    },
    "lastModified": "2022-05-03T00:47:31.581Z",
    "parentNodeId": "960162d6-4c7c-437e-bbc0-dbf96bf5fa94"
}

Represents processing items to perform by channel.

Element Type Description
id String UUID of the processing item group
channelProcessingItemsMap Object Key-value pairs where the key is a channel UUID and the value contains a processing item list for the specified channel
lastModified String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z
parentNodeId String UUID of the parent node

Processing item list

Represents the processing items to perform for a specific channel, in a processing item group.

Element Type Description
processingItems Array of processing items Processing items to perform

Processing item

Processing item example of type condition, with an assign action and a prompt group

{
    "condition": {
        "id": "9e435be4-813b-4a79-95c0-22ed25f4b561",
        "statementType": "IF_TYPE",
        "expression": {
            "id": "1f298326-34f5-4d67-840a-3273fabd9bc3",
            "leftVariable": {
                "id": "ee86193a-ee72-406b-a7af-120e40884cf3",
                "name": "isFirstTime",
                "description": "",
                "possibleValues": ["true", "false"],
                "uiDefaultValue": "",
                "isReserved": false,
                "masked": false,
                "reportingType": "REPORTING_TYPE_NONE",
                "simpleVariableType": "BOOLEAN_TYPE",
                "timestamp": "2021-10-26T22:58:53.970Z"
            },
            "relationalOperator": "EQUAL_OPERATOR",
            "rightConstant": "true",
            "lastModified": "2021-10-29T18:39:08.455Z",
            "leftVariableId": "ee86193a-ee72-406b-a7af-120e40884cf3"
        },
        "processingItems": [{
                "action": {
                    "assign": {
                        "lhsVariable": {
                            "id": "ee86193a-ee72-406b-a7af-120e40884cf3",
                            "name": "isFirstTime",
                            "description": "",
                            "possibleValues": ["true", "false"],
                            "uiDefaultValue": "",
                            "isReserved": false,
                            "masked": false,
                            "reportingType": "REPORTING_TYPE_NONE",
                            "simpleVariableType": "BOOLEAN_TYPE",
                            "timestamp": "2021-10-26T22:58:53.970Z"
                        },
                        "constant": "false",
                        "lhsVariableId": "ee86193a-ee72-406b-a7af-120e40884cf3"
                    }
                },
                "id": "4dfcad8b-4c66-483a-ae9c-db01b9509f66",
                "note": ""
            }, {
                "promptGroup": {
                    "id": "a0ad4459-e55e-42b9-ac84-507b3ca2710f",
                    "name": "let_me_get_your_file_",
                    "prompts": [{
                            "payload": {
                                "displayText": "Let me get your file...",
                                "ttsText": "",
                                "audioFile": "",
                                "displayTextAnnotations": [],
                                "ttsTextAnnotations": [],
                                "ttsAudioBackup": "",
                                "ttsAudioBackupAnnotations": []
                            },
                            "language": "en-US",
                            "channel": "9e29ee39-75f9-4f9f-a8af-01a6fb7f5df8",
                            "lastModified": "2021-10-29T18:39:52.982Z"
                        }
                    ],
                    "audioFileId": "",
                    "bargeinDisabled": false,
                    "lastModified": "2021-10-29T18:41:08.984Z"
                },
                "id": "6d14faa4-59aa-4ed3-8992-57478b2112d0",
                "note": "",
                "promptGroupId": "a0ad4459-e55e-42b9-ac84-507b3ca2710f"
            }
        ],
        "expressionId": "1f298326-34f5-4d67-840a-3273fabd9bc3"
    },
    "id": "5e1a9ec5-baf7-4cfd-be09-51b0f8bbd573",
    "note": ""
}

Represents a processing item in a processing item list.

Element Type Description
processing item Object One of the supported processing item types
id String UUID of the processing item
note String Designer notes such as a description or reminder (maximum 4000 characters)
promptGroupId String Only present if the processing item is of type promptGroup; UUID of the prompt group

Supported processing item types

Dialog models support these types of processing item:

Element key Processing item type Description
condition Condition Sets a condition (such as if, else if, else) to control the dialog flow
action Action Performs one of these actions: assign a value to a variable or set a log message
promptGroup Prompt group Sets a prompt
transition Transition Sets a transition to another node or throws an event
placeholderProcessingType String note for designer notes; action for an action that is not yet defined; prompt_tts, prompt_text, or prompt_ttsAudio for a message that is not yet defined

Expression

Expression example (price is not equal to NULL)

{
    "id": "847f16b0-2a48-4406-a903-bbbb5f44a58c",
    "leftVariable": {
        "id": "056a43f7-464f-4068-9d8d-99ea7a7ebf73",
        "name": "price",
        // ...
        "simpleVariableType": "AMOUNT_TYPE",
        "timestamp": "2021-11-01T22:12:44.905Z"
    },
    "relationalOperator": "NOT_EQUAL_OPERATOR",
    "lastModified": "2021-11-01T23:42:53.124Z",
    "rightSpecialOperand": "NULL",
    "leftVariableId": "056a43f7-464f-4068-9d8d-99ea7a7ebf73"
}

Represents an expression used in the project. It can be part of a condition, an assign action, an entity reference, or another expression. It is composed of a left operand, an operator, and a right operand.

Element Type Description
id String UUID of the expression
left operand Object Key-value pair representing one of the supported left operand types
operator Object Key-value pair representing one of the supported operator types
right operand Object Key-value pair representing one of the supported right operand types
lastModified String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-10-17T20:55:38.488Z
leftVariableId String Only present if the left operand is of type leftVariable; UUID of the variable
leftVariableExpressionId String Only present if the left operand is of type leftVariableExpression; UUID of the element
leftExpressionId String Only present if the left operand is of type leftExpression; UUID of the expression
rightVariableId String Only present if the right operand is of type rightVariable; UUID of the variable
rightVariableExpressionId String Only present if the right operand is of type rightVariableExpression; UUID of the element
rightExpressionId String Only present if the right operand is of type rightExpression; UUID of the expression

Supported left operand types

Represents the left operand of an expression.

Element key Value type Description
leftVariable Variable object Variable used as the left operand
leftVariableExpression Variable expression object Complex variable field, or the result of a supported method against a variable, used as the left operand
leftExpression Expression object Expression used as the left operand
leftConceptId String UUID of the entity whose value is used as the left operand
leftConceptIdLiteral String UUID of the entity whose literal is used as the left operand
leftConceptIdFormattedLiteral String UUID of the entity whose formatted literal is used as the left operand
leftIntent String One of: INTENT_VALUE (active intent value), INTENT_LITERAL (active intent literal), INTENT_FORMATTED_LITERAL (formatted version of the active intent literal),INTENT_CONFIDENCE (active intent confidence score)
leftSpecialOperand String One of: LAST_COLLECTION_INTERPRETATION (last collection interpretation), LAST_CONFIRMATION_INTERPRETATION (last confirmation interpretation), NULL

Supported operator types

Represents the operator in an expression.

Element key Value type Description
logicalOperator String One of: NO_LOGICAL_OPERATOR, AND_OPERATOR, OR_OPERATOR
mathematicalOperator String One of: NO_OP, PLUS, MINUS, TIMES, DIVIDE, MOD
relationalOperator String One of: NO_RELATIONAL_OPERATOR, EQUAL_OPERATOR, NOT_EQUAL_OPERATOR, LESS_OPERATOR, GREATER_OPERATOR, LESS_EQUAL_OPERATOR, GREATER_EQUAL_OPERATOR

Supported right operand types

Represents the right operand of an expression.

Element key Value type Description
rightConstant String Constant used as the right operand (maximum 255 characters)
rightVariable Variable object Variable used as the right operand
rightVariableExpression Variable expression object Complex variable field, or the result of a supported method against a variable, used as the right operand
rightExpression Expression object Expression used as the right operand
rightConceptId String UUID of the entity whose value is used as the right operand
rightConceptIdLiteral String UUID of the entity whose literal is used as the right operand
rightConceptIdFormattedLiteral String UUID of the entity whose formatted literal is used as the right operand
rightIntent String One of: INTENT_VALUE (active intent value), INTENT_LITERAL (active intent literal), INTENT_FORMATTED_LITERAL (formatted version of the active intent literal), INTENT_CONFIDENCE (active intent confidence score)
rightSpecialOperand String One of: LAST_COLLECTION_INTERPRETATION (last collection interpretation), LAST_CONFIRMATION_INTERPRETATION (last confirmation interpretation), NULL

Variable expression

Represents a complex variable field, or the result of a supported method against a variable.

Element Type Description
id String UUID of the variable expression
operations Array of variable operations Operations to be performed against the specified variable—multiple operations are chained, that is, each operation is applied to the result of the previous operation
variableId String UUID of the variable
timestamp String Date and time of the last modification, in this format: YYYY-MM-DD hh:mm:ssZ—for example, 2019-08-21T08:34:27Z

Variable operation

Represents an operation in a variable expression.

Element key Value type Description
selectField Object Key-value pair, where the key is fieldVariableId and the value is the UUID of a field in the schema of a complex variable—to select a deeply nested field, use the required number of selectField operations, to be performed in sequence
callMethod Method call object Method to be applied to the specified variable or field

Method call

Represents a method call in a variable operation.

Element key Value type Description
methodName String Name of the method to call (for example, length, random, getDay)—the available methods depend on the type of the variable to which the method is to be applied
parameters Array of method parameters Key-value pairs that represent the parameters for the method, if any; otherwise, empty

Method parameter

Represents a parameter in a method call.

Element key Value type Description
constant String Constant to be passed to the method
variableId String UUID of a variable to be passed to the method
conceptId String UUID of an entity to be passed to the method

Action

In a processing item, an action element is identified with this key: action.

An action object literal represents an assign action, or an entity update action.

Assign action

Assign action example, where the Boolean variable isFirstTime is set to true

{
    "lhsVariable": {
        "id": "ee86193a-ee72-406b-a7af-120e40884cf3",
        "name": "isFirstTime",
        "description": "",
        "possibleValues": ["true", "false"],
        "uiDefaultValue": "",
        "isReserved": false,
        "masked": false,
        "reportingType": "REPORTING_TYPE_NONE",
        "simpleVariableType": "BOOLEAN_TYPE",
        "timestamp": "2021-10-26T22:58:53.970Z"
    },
    "constant": "true",
    "lhsVariableId": "ee86193a-ee72-406b-a7af-120e40884cf3"
}

Assigns a value to a variable, an entity, or the active intent.

In an action object literal, an assign action is identified with this key: assign.

Element Type Description
target Object Key-value pair representing one of the supported operand types for the left-hand side of an assignment
value Object Key-value pair representing one of the supported operand types for the right-hand side of an assignment
lhsVariableId String Only present if the left operand is of type lhsVariable; UUID of the variable to set
lhsVariableExpressionId String Only present if the left operand is of type lhsVariableExpression; UUID of the complex variable field to set
variableId String Only present if the right operand is of type variable; UUID of the variable to use
VariableExpressionId String Only present if the right operand is of type variableExpression; UUID of the element to use
expressionId String Only present if the right operand is of type expression; UUID of the expression to use

Left assignment operand types

Represents the target for an assign action.

Element key Value type Description
lhsVariable Variable object Variable being set
lhsVariableExpression Variable expression object Field being set in a complex variable
lhsConceptId String UUID of the entity whose value is being set
lhsIntent String Always INTENT_VALUE (active intent value)

Right assignment operand types

Represents the value for an assign action.

Element key Value type Description
constant String Constant used as the right operand (maximum 64000 characters)
variable Variable object Variable used as the right operand
variableExpression Variable expression object Complex variable field, or the result of a supported method against a variable, used as the right operand
expression Expression object Expression used as the right operand
conceptId String UUID of the entity whose value is used as the right operand
conceptIdLiteral String UUID of the entity whose literal is used as the right operand
conceptIdFormattedLiteral String UUID of the entity whose formatted literal is used as the right operand
intent String One of: INTENT_VALUE (active intent value), INTENT_LITERAL (active intent literal), INTENT_FORMATTED_LITERAL (formatted version of the active intent literal), INTENT_CONFIDENCE (active intent confidence score)
specialOperand String One of the supported special operands for the right-hand side

Supported special right operand

Assign actions support these special operands for the right-hand side:

Value Description
NULL Makes a variable or an entity null
NEW_OBJECT Initializes a complex variable as a new object with all fields null—not supported for complex variables with fields that are lists; use separate assign actions to preinitialize complex variable fields that are also complex variables

Entity update action

Entity update action example, where an entity is cleared

{
    "conceptId": "1a5559c6-07b8-49af-b150-1a924f6b78f5",
    "clearConcept": true
}

Entity update action example, where the .isCompleted attribute of an entity is set to false

{
    "conceptId": "4282658e-34af-4cec-8e22-d92d953e34d9",
    "conceptUpdate": {
        "requiredStatus": "UNCHANGED",
        "completeStatus": "FALSE",
        "confirmStatus": "UNCHANGED"
    }

Updates the .isRequired, .isCompleted, or .isConfirmed attribute of an entity, or clears the entity completely.

In an action object literal, an entity update action is identified with this key: conceptAction.

Element Type Description
conceptId String UUID of the entity
clearConcept Boolean Only present if the action is to clear the entity; always true
conceptUpdate Object Key-value pair where the keys requiredStatus, completeStatus, and confirmStatus represent the three entity attributes .isRequired, .isCompleted, and .isConfirmed; and the values are one of UNCHANGED, TRUE, or FALSE.

Condition

Condition example

{
    "id": "e77de595-920e-4d52-8b30-c02ddffc6acc",
    "statementType": "IF_TYPE",
    "expression": {
        "id": "1c052b41-7c4a-4302-9103-0e6c64d2e181",
        "leftVariable": {
            "id": "7b99d7f5-96d5-43b8-8d55-584bdc6b93de",
            "name": "coffeeTypesSpecial",
            // ...
            "simpleVariableType": "DYNAMIC_ENTITY_DATA",
            "timestamp": "2020-07-23T00:05:04.622Z"
        },
        "relationalOperator": "NOT_EQUAL_OPERATOR",
        "lastModified": "2020-07-23T00:05:04.674Z",
        "rightSpecialOperand": "NULL",
        "leftVariableId": "7b99d7f5-96d5-43b8-8d55-584bdc6b93de"
    },
    "processingItems": [{
            "action": {
                "assign": {
                    "lhsVariable": {
                        "id": "d01be426-5e80-4b2b-8deb-cda3acc83159",
                        "name": "gotSpecial",
                        "description": "Look up special coffee types (once per session)",
                        "possibleValues": ["true", "false"],
                        // ...
                        "simpleVariableType": "BOOLEAN_TYPE",
                        "timestamp": "2020-07-23T00:05:04.603Z"
                    },
                    "constant": "true",
                    "lhsVariableId": "d01be426-5e80-4b2b-8deb-cda3acc83159"
                }
            },
            "id": "c49b2c3e-32b2-4c50-b8d9-8d693673ac24",
            "note": ""
        }
    ],
    "expressionId": "1c052b41-7c4a-4302-9103-0e6c64d2e181"
}

Represents a condition in a processing item.

Element Type Description
id String UUID of the condition
statementType String Type of condition—one of: NO_TYPE, IF_TYPE, ELSEIF_TYPE, ELSE_TYPE, ALWAYS_TYPE
expression Expression object Only present if statementType is IF_TYPE or ELSEIF_TYPE; expression to evaluate
processingItems Array of processing items Processing items to perform if the condition is true
expressionId String UUID of the expression to evaluate for IF_TYPE and ELSEIF_TYPE conditions; otherwise, empty

Transition

Transition example (GoTo)

{
    "id": "6ea55136-0879-487f-af10-62b83389b2c3",
    "transitionType": "GO_TO",
    "eventId": "",
    "label": "Always",
    "nodeId": "97a91ff7-6e98-49a7-ae2e-f8dc62c9a8b3"
}

Transition example (throw)

{
    "id": "8347f5c0-b755-4526-a3f4-24720e253428",
    "transitionType": "THROW",
    "eventId": "295420a0-7675-4917-9329-35e26654ed05",
    "label": "",
    "eventLog": "Caught generic event"
}

Represents a transition or a throw event action, in a processing item; the transition in an event handler; or the intent switch transition in a question router node.

Element Type Description
id String UUID of the transition
transitionType String Type of transition; one of: GO_TO, GO_BACK_TO, RETURN,RETURN_TO_INTENT_MAPPER, THROW, NO_TRANSITION_TYPE
eventId String For transition type THROW: event string to be thrown and then caught elsewhere
eventLog String For transition type THROW: description or text to be logged when the event is thrown
label String Descriptive label for the transition; limited to 63 characters
nodeId String For transition type GO_TO and GO_BACK_TO: UUID of the destination node

Refer to the Mix.dialog documentation for more information on the transition types.

Ontology

Ontology example

{
    "projectId": "2942",
    "intents": [{
            "id": "9ac597e9-450f-47a5-a3de-a6a9fd0cc2c6",
            "projectId": "2942",
            "name": "NO_INTENT",
            "conceptIds": [],
            "isInBaseOntology": true,
            "lastModified": "1970-01-01T00:00:00Z"
        }, {
            "id": "8397e323-1964-4843-91e8-e11717c4553e",
            "projectId": "2942",
            "name": "ORDER_COFFEE",
            "conceptIds": ["fc5b8a5e-440b-4460-9e29-f8fafa546abd", "7a282252-f57f-4b30-8b92-25129c363490"],
            "isInBaseOntology": false,
            "lastModified": "1970-01-01T00:00:00Z"
        }
    ],
    "concepts": [{
            "id": "ce1aea9d-4825-4041-b2fa-b19e6f8159de",
            "projectId": "2942",
            "name": "AND",
            "isInBaseOntology": true,
            "valuesCount": 0,
            "isDialogType": false,
            "predefinedConceptId": "",
            "isDeprecated": false,
            "lastModified": "1970-01-01T00:00:00Z"
        }, {
            "id": "fc5b8a5e-440b-4460-9e29-f8fafa546abd",
            "projectId": "2942",
            "name": "COFFEE_SIZE",
            "isInBaseOntology": false,
            "valuesCount": 4,
            "isDialogType": false,
            "predefinedConceptId": "",
            "isDeprecated": false,
            "lastModified": "1970-01-01T00:00:00Z"
        },  // more entity types...
           {
            "id": "572bcd5c-e65d-4a5d-b12c-9e6e85f56973",
            "projectId": "2942",
            "name": "nuance_TEMPERATURE",
            "isInBaseOntology": true,
            "valuesCount": 0,
            "isDialogType": false,
            "predefinedConceptId": "",
            "isDeprecated": false,
            "lastModified": "1970-01-01T00:00:00Z"
        }
    ],
    "lastModified": "1970-01-01T00:00:00Z"
}

Represents the ontology used for this project.

Element Type Description
projectId String ID of the project
intents Array of intents Intents in the project
concepts Array of entities Entities in the project
lastModified String Future use

Intent

Represents an intent in the project.

Element Type Description
id String Unique ID of the intent
projectId String ID of the project
name String Name of the intent (see Naming guidelines)
conceptIds Array UUIDs of the entities for the intent
isInBaseOntology Boolean true for a predefined intent; false for a custom intent
lastModified String Not used

Entity

Represents an entity in the project.

Element Type Description
id String UUID of the entity
projectId String ID of the project
name String Name of the entity (see Naming guidelines)
isInBaseOntology Boolean true for a predefined entity; false for a custom entity
valuesCount Number Number of values for the entity
isDialogType Boolean true for a predefined dialog entity; otherwise, false
predefinedConceptId String For an isA relationship entity of a predefined entity or dialog entity, UUID of the highest-level parent entity
isDeprecated Boolean true for a deprecated dialog entity; otherwise, false
isA String Only present for relationship entities; UUID of the parent entity
lastModified String Not used

Sample file

{
    "data": {
        // project object literal...
    }
}

This documentation includes a sample PizzaApp dialog design file. Download PizzaApp.json, to explore its structure. Import it into a project to experiment with the Mix.dialog features.

The sample file contains an object literal with this structure:

Element Type Description
data Project object Top level of the dialog design

Change log

Below are changes made to the Dialog Application Specification documentation since the initial Beta release.

2022-08-17

Updated Interactive element in Question and answer node, to reflect support for language-specific interactivity, and that it is no longer required for an entity value to exist in every language to be able to configure an interactive element for this value

2022-08-05

Added disabled, in Channel and Modality, to reflect changes related with the ability to edit channels

2022-05-02

2022-04-27

Removed obsolete element projectId from Event handler, Transition, Node intent mapping, Expression, Variable expression, and Processing item group

2022-04-25

Removed obsolete element projectId from Event and Command, in Project

2022-04-13

2022-04-07

2022-03-15

Marked the expressions array as deprecated in Project

2022-02-23

2022-01-13

Added UUIDs for expressions in Entity reference

2021-11-22

2021-11-03

Added UUIDs for all packed object literals—for example, variables or transitions, in processing items, event handlers, and expressions

2021-10-22

Marked serviceName as deprecated, in Data access node

2021-10-13

Added ssmlOpenFreeform, and ssmlCloseFreeform, in Annotation properties

2021-09-28

2021-09-09

Added enginePackVersion in Project

2021-07-21

2021-07-14

Removed inputVariables from Data access node to reflect that this deprecated element no longer exists (Mix will skip this element when you import any legacy JSON files where it might appear)

2021-07-07

Removed dialogTypeId and numberOfTypeUsages from Entity to reflect that these elements no longer exist (Mix will skip these when you import any legacy JSON files where they might appear)

2021-06-23

Added placeholderProcessingType to cover designer notes in supported processing item types

2021-05-17

Added intentId to Component

2021-04-28

2021-04-13

2021-03-09

2021-02-17

Updated Annotation to cover output formatting properties for variables and entities in dynamic messages

2021-02-05

Updated Variable to mention that DYNAMIC_ENTITY_DATA is not a supported type for list items and schema fields

2021-01-26

2020-12-09

2020-10-28

2020-10-08

2020-10-01

Updated Expression and Supported input types to add elements that represent the last collection and last confirmation interpretations. Note: These representations do not yet include entity interpretations.

2020-09-04

2020-08-28

Minor updates in Project

2020-07-20

Added JSON example for decision node

2020-07-13

2020-05-26

2020-05-14

2020-05-06

2020-05-01

Added eventHandlers to Node

2020-04-30

2020-04-01

2020-03-04

2020-02-19

2020-02-05

Updated Variable, Schema, and Project sections to match changes in the dialog model structure supporting reserved variables and schemas.

2019-12-11

Updated Processing item section.

2019-12-02

Updated to match changes to the dialog model structure.

2019-11-15

Content reorganized and revised to match changes to the dialog model structure.