Guides

CDR Models Schema

Updated:

Refer to Exports API to understand how the CDR Models Schema data is used.

Different versions may be available for each Dialog Start, Dialog Step, and Dialog End object. Versions will be noted as V1, V2, etc. These are selectable during Export. Export Service User Guide | Subscribe to an Export Service

Dialog Start Object

Dialog Start V1

Dialog Start V1 Schema
JSON
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://omilia.com/cdr/models/dialog-start.schema.json",
  "title": "DialogStartModel",
  "description": "Schema for dialog start messages in CDR models",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "message_type": {
      "type": "string",
      "const": "dialog_start",
      "description": "Type of the message, always 'dialog_start'"
    },
    "time": {
      "type": "integer",
      "existingJavaType": "long",
      "description": "Timestamp of the dialog start (epoch milliseconds)"
    },
    "id": {
      "type": "string",
      "description": "Unique identifier for the dialog"
    },
    "group": {
      "type": "string",
      "description": "Group identifier"
    },
    "session_id": {
      "type": "string",
      "description": "Session identifier"
    },
    "origin_uri": {
      "type": "string",
      "description": "Origin URI of the caller"
    },
    "hashed_origin_uri": {
      "type": "string",
      "description": "Hashed version of the origin URI"
    },
    "destination_uri": {
      "type": "string",
      "description": "Destination URI"
    },
    "connection_id": {
      "type": "string",
      "description": "Connection identifier"
    },
    "channel": {
      "type": "string",
      "description": "Communication channel (e.g., voice, chat)"
    },
    "device_type": {
      "type": "string",
      "description": "Type of device used"
    },
    "direction": {
      "type": "string",
      "description": "Direction of the call (inbound/outbound)"
    },
    "diamant": {
      "$ref": "#/definitions/Diamant"
    },
    "app": {
      "$ref": "#/definitions/App"
    },
    "test_flag": {
      "type": "boolean",
      "description": "Flag indicating if this is a test dialog"
    },
    "flow": {
      "$ref": "#/definitions/Flow"
    }
  },
  "required": [
    "message_type", "time", "id"
  ],
  "definitions": {
    "Flow": {
      "type": "object",
      "description": "Flow configuration and metadata",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Flow identifier"
        },
        "account_id": {
          "type": "string",
          "description": "Account identifier"
        },
        "name": {
          "type": "string",
          "description": "Flow name"
        },
        "type": {
          "type": "string",
          "description": "Flow type"
        },
        "diamant_app_name": {
          "type": "string",
          "description": "Diamant application name"
        },
        "uuid": {
          "type": "string",
          "description": "Flow UUID"
        },
        "organization": {
          "type": "string",
          "description": "Organization name"
        },
        "ocp_organization_id": {
          "type": "string",
          "description": "OCP organization identifier"
        },
        "ocp_group_name": {
          "type": "string",
          "description": "OCP group name"
        },
        "parent_name": {
          "type": "string",
          "description": "Parent flow name"
        },
        "parent_id": {
          "type": "string",
          "description": "Parent flow identifier"
        },
        "parent_step": {
          "type": "integer",
          "description": "Parent step number"
        },
        "root_step": {
          "type": "integer",
          "description": "Root step number"
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Flow path"
        },
        "path_app_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Path application identifiers"
        },
        "reportable": {
          "type": "boolean",
          "description": "Whether the flow is reportable"
        },
        "reporting_type": {
          "type": "string",
          "description": "Reporting type"
        },
        "version_tag": {
          "type": "string",
          "description": "Version tag"
        }
      }
    },
    "App": {
      "type": "object",
      "description": "Application information",
      "additionalProperties": false,
      "properties": {
        "version": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Application version number"
        },
        "name": {
          "type": "string",
          "description": "Application name"
        }
      }
    },
    "Diamant": {
      "type": "object",
      "description": "Diamant system information",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Diamant identifier"
        },
        "version": {
          "type": "string",
          "description": "Diamant version"
        },
        "region": {
          "type": "string",
          "description": "Diamant region"
        }
      }
    }
  }
}

The event unique identifier is the id field. This unique ID can be used when event deduplication is required.

Mandatory Fields

  • message_type

  • time

  • id

Example JSON Dialog Start V1
JSON
{
    "message_type" : "dialog_start",
    "id": "0914D425259F0CD31DBFE2E72D3785E0",
    "group": "78977ae3796d73ce0df345f43df8df075daa54a6.1683276326110.63abf63debd946c4bbd4592bc3d800b",
    "session_id":"21ffc489-2ef6-5b2b-ae47-23cwe2f6f565",
    "time": 1683820113249,
    "origin_uri": "12345678901",
    "hashed_origin_uri": "",
    "destination_uri": "123-456-789",
    "connection_id": "",
    "channel": "omIVR",
    "device_type": "mobile",
    "direction": "inbound",
    "test_flag": false,
    "asr": {
        "mrcp_session_id": "4CF7F72AF04614A4A0FAE63F1A18D20C"
    },
    "diamant": {
        "id": "aws-dev-m-1",
        "version": "10.0.0",
        "region": "aws-us-east-1"
    },
   
    "flow": {
        "id": "4981c99e-6c51-4bd6-9b68-d3c09791d754.Bank3_Test.Banking2.MiniApps.ocp-qa",
        "account_id": "4981c99e-6c51-4bd6-9b68-d3c09791d75",
        "name": "Bank3_Test",
        "type": "Banking2",
        "diamant_app_name": "MiniApps",
        "uuid": "ocp",
        "organization": "ocp",
        "ocp_organization_id": "54evs5d1-de7a-4sw1-aet1-7use1fea6782",
        "ocp_group_name": "ocp",
        "parent_name": "ocp-qa@SND_Card_Payment",
        "parent_id": "ae08b5a59e6a414d83a2556e9bdf160e2e5f97d1.1683276326800.f9e88de990224be7adb50558503bf374",
        "parent_step": 7,
        "root_step": 11,
        "path": [
          "ocp-qa@SND_banking2_flow_DEVAws",
          "ocp-qa@SND_Card_Payment"
        ],
        "path_app_ids": [
            "4981c99e-6c51-4bd6-9b68-d3c09791d75.SND_banking2_flow_DEVAws.Flow.ocp-qa@SND_banking2_flow_DEVAws.ocp-qa",
            "c556e602-a7b5-41cc-86d3-c6f95586339d.SND_Card_Payment.Flow.ocp-qa@SND_Card_Payment.ocp-qa"
        ],
        "reportable": false,
        "reporting_type": ""
    },

    "app": {
        "name": "2011659",
        "version": 200101
    }
}

Dialog End Object

Dialog End V1

Dialog End V1 Schema
JSON
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://omilia.com/cdr/models/dialog-end.schema.json",
  "title": "DialogEndModel",
  "description": "Schema for dialog end messages in CDR models",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "message_type": {
      "type": "string",
      "const": "dialog_end",
      "description": "Type of the message, always 'dialog_end'"
    },
    "exported": {
      "type": "boolean",
      "description": "Whether the dialog was exported"
    },
    "test_flag": {
      "type": "boolean",
      "description": "Flag indicating if this is a test dialog"
    },
    "steps_num": {
      "type": "integer",
      "description": "Total number of steps in the dialog"
    },
    "no_inputs": {
      "type": "integer",
      "description": "Number of no-input events"
    },
    "no_matches": {
      "type": "integer",
      "description": "Number of no-match events"
    },
    "rejections": {
      "type": "integer",
      "description": "Number of rejections"
    },
    "same_states": {
      "type": "integer",
      "description": "Number of same-state transitions"
    },
    "agent_request": {
      "type": "integer",
      "description": "Number of agent requests"
    },
    "duration": {
      "type": "integer",
      "existingJavaType": "long",
      "description": "Duration of the dialog in milliseconds"
    },
    "time": {
      "type": "integer",
      "existingJavaType": "long",
      "description": "Timestamp of the dialog end (epoch milliseconds)"
    },
    "id": {
      "type": "string",
      "description": "Unique identifier for the dialog"
    },
    "end_type": {
      "type": "string",
      "description": "Type of dialog ending"
    },
    "exit_point": {
      "type": "string",
      "description": "Exit point of the dialog"
    },
    "transfer_reason": {
      "type": "string",
      "description": "Reason for transfer (if applicable)"
    },
    "events": {
      "type": "string",
      "description": "Events that occurred during the dialog"
    },
    "kvps": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Kvps"
      },
      "description": "Key-value pairs collected during the dialog"
    },
    "channel": {
      "type": "string",
      "description": "Communication channel (e.g., voice, chat)"
    },
    "group": {
      "type": "string",
      "description": "Group identifier"
    },
    "session_id": {
      "type": "string",
      "description": "Session identifier"
    },
    "hashed_origin_uri": {
      "type": "string",
      "description": "Hashed version of the origin URI"
    },
    "origin_uri": {
      "type": "string",
      "description": "Origin URI of the caller"
    },
    "destination_uri": {
      "type": "string",
      "description": "Destination URI"
    },
    "connection_id": {
      "type": "string",
      "description": "Connection identifier"
    },
    "device_type": {
      "type": "string",
      "description": "Type of device used"
    },
    "direction": {
      "type": "string",
      "description": "Direction of the call (inbound/outbound)"
    },
    "locale": {
      "type": "string",
      "description": "Locale of the dialog"
    },
    "diamant": {
      "$ref": "#/definitions/Diamant"
    },
    "app": {
      "$ref": "#/definitions/App"
    },
    "flow": {
      "$ref": "#/definitions/Flow"
    }
  },
  "required": [
    "message_type", "time", "id"
  ],
  "definitions": {
    "Kvps": {
      "type": "object",
      "description": "Key-value pair with step information",
      "additionalProperties": false,
      "properties": {
        "step": {
          "type": "integer",
          "description": "Step number where the KVP was set"
        },
        "key": {
          "type": "string",
          "description": "Key name"
        },
        "value": {
          "type": "string",
          "description": "Value"
        }
      }
    },
    "Flow": {
      "type": "object",
      "description": "Flow configuration and metadata",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Flow identifier"
        },
        "account_id": {
          "type": "string",
          "description": "Account identifier"
        },
        "name": {
          "type": "string",
          "description": "Flow name"
        },
        "type": {
          "type": "string",
          "description": "Flow type"
        },
        "diamant_app_name": {
          "type": "string",
          "description": "Diamant application name"
        },
        "uuid": {
          "type": "string",
          "description": "Flow UUID"
        },
        "organization": {
          "type": "string",
          "description": "Organization name"
        },
        "ocp_organization_id": {
          "type": "string",
          "description": "OCP organization identifier"
        },
        "ocp_group_name": {
          "type": "string",
          "description": "OCP group name"
        },
        "parent_name": {
          "type": "string",
          "description": "Parent flow name"
        },
        "parent_id": {
          "type": "string",
          "description": "Parent flow identifier"
        },
        "parent_step": {
          "type": "integer",
          "description": "Parent step number"
        },
        "root_step": {
          "type": "integer",
          "description": "Root step number"
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Flow path"
        },
        "path_app_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Path application identifiers"
        },
        "reportable": {
          "type": "boolean",
          "description": "Whether the flow is reportable"
        },
        "reporting_type": {
          "type": "string",
          "description": "Reporting type"
        },
        "version_tag": {
          "type": "string",
          "description": "Version tag"
        }
      }
    },
    "App": {
      "type": "object",
      "description": "Application information",
      "additionalProperties": false,
      "properties": {
        "version": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Application version number"
        },
        "name": {
          "type": "string",
          "description": "Application name"
        }
      }
    },
    "Diamant": {
      "type": "object",
      "description": "Diamant system information",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Diamant identifier"
        },
        "version": {
          "type": "string",
          "description": "Diamant version"
        },
        "region": {
          "type": "string",
          "description": "Diamant region"
        }
      }
    }
  }
}

The event unique identifier is the id field. This unique ID can be used when event deduplication is required.

Mandatory Fields

  • message_type

  • time

  • id

Example Dialog End V1
JSON
{
    "message_type": "dialog_end",
    "id": "02dcb1c0fc10b5531546f37c3844684b38b29e44.1683820113249.65dd7a5110d045e28ba47a5891ef928a",
    "group": "02dcb1c0fc10b5531546f37c3844684b38b29e44.1683820113249.65dd7a5110d045e28ba47a5891ef928a",
    "session_id":"21ffc489-2ef6-5b2b-ae47-23cwe2f6f565",
    "time": 1683820113249,
    "origin_uri": "12345678901",
    "hashed_origin_uri": "",
    "destination_uri" : "123-456-789",
    "connection_id" : "sip:1683820112738:0DE14D29-95D9-4E63-882F-421BC934588D",
    "channel": "omIVR",
    "device_type": "mobile",
    "direction": "inbound",
    "steps_num": 4,
    "no_inputs": 1,
    "no_matches" : 0,
    "rejections" : 0,
    "same_states" : 0,
    "agent_request" : 0,
    "duration": 14445,
    "end_type" : "FAR_HUP",
    "exit_point": "0080012345",
    "transfer_reason": "",
    "events": "Intent:Online_Banking",
    "locale": "fr-FR",
    "test_flag": false,
    "asr": {
        "mrcp_session_id": "4CF7F72AF04614A4A0FAE63F1A18D20C"
    },
    "diamant": {
        "id": "aws-staging-m-5",
        "version": "10.0.0",
        "region": "aws-us-east-1"
    },
   
    "flow": {
        "id": "3919ca0c-7299-4600-914d-1ce2022983a1.DateTest_One.Date.MiniApps.ocp-qa",
        "account_id": "3919ca0c-7299-4600-914d-1ce2022983a1",
        "name": "DateTest_One",
        "type": "Date",
        "diamant_app_name": "MiniApps",
        "uuid": "ocp",
        "organization": "ocp",
        "ocp_organization_id": "54evs5d1-de7a-4sw1-aet1-7use1fea6782",
        "ocp_group_name": "ocp",
        "parent_name":"ocp-qa@SND_Card_Payment" ,
        "parent_id": "ae08b5a59e6a414d83a2556e9bdf160e2e5f97d1.1683276326800.f9e88de990224be7adb50558503bf374",
        "parent_step": 2,
        "root_step": 1,
        "path": [
          "ocp-qa@SND_banking2_flow_DEVAws",
          "ocp-qa@SND_Card_Payment"
        ],
        "path_app_ids": [
          "4981c99e-6c51-4bd6-9b68-d3c09791d75.SND_banking2_flow_DEVAws.Flow.ocp-qa@SND_banking2_flow_DEVAws.ocp-qa",
          "c556e602-a7b5-41cc-86d3-c6f95586339d.SND_Card_Payment.Flow.ocp-qa@SND_Card_Payment.ocp-qa"
        ],
        "reportable": false,
        "reporting_type": ""
    },
    "app": {
        "name": "2011659",
        "version": 2011261
    },
    "kvps": [
        {
            "step": 1,
            "key": "appId",
            "value": "sip:1683820112738:0DE14D29-95D9-4E63-882F-421BC934588D"
        }
    ]
}

Dialog Step Object

Dialog Step V1

Dialog Step V1 Schema
JSON
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://omilia.com/cdr/models/dialog-step.schema.json",
  "title": "DialogStepModel",
  "description": "Schema for dialog step messages in CDR models",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "message_type": {
      "type": "string",
      "const": "dialog_step",
      "description": "Type of the message, always 'dialog_step'"
    },
    "number": {
      "type": "integer",
      "existingJavaType": "java.lang.Integer",
      "description": "Step number in the dialog"
    },
    "dialog_time": {
      "type": "integer",
      "existingJavaType": "long",
      "description": "Time elapsed since dialog start (milliseconds)"
    },
    "time": {
      "type": "integer",
      "existingJavaType": "long",
      "description": "Timestamp of the step (epoch milliseconds)"
    },
    "id": {
      "type": "string",
      "description": "Unique identifier for the dialog"
    },
    "group": {
      "type": "string",
      "description": "Group identifier"
    },
    "session_id": {
      "type": "string",
      "description": "Session identifier"
    },
    "input_modality": {
      "type": "string",
      "description": "Input modality (e.g., voice, dtmf, text)"
    },
    "locale": {
      "type": "string",
      "description": "Locale of the step"
    },
    "original_utterance": {
      "type": "string",
      "description": "Original user utterance"
    },
    "transcription": {
      "type": "string",
      "description": "Transcription of user input"
    },
    "voice_id": {
      "type": "string",
      "description": "Voice identifier"
    },
    "test_flag": {
      "type": "boolean",
      "description": "Flag indicating if this is a test dialog"
    },
    "target": {
      "$ref": "#/definitions/Target"
    },
    "step_selected_targets": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Target"
      },
      "description": "Selected targets for this step"
    },
    "action": {
      "$ref": "#/definitions/Action"
    },
    "previous_action": {
      "$ref": "#/definitions/Action"
    },
    "asr": {
      "$ref": "#/definitions/Asr"
    },
    "antifraud": {
      "$ref": "#/definitions/AntiFraud"
    },
    "bio": {
      "$ref": "#/definitions/Bio"
    },
    "nlu": {
      "$ref": "#/definitions/Nlu"
    },
    "security": {
      "$ref": "#/definitions/Security"
    },
    "app": {
      "$ref": "#/definitions/App"
    },
    "diamant": {
      "$ref": "#/definitions/Diamant"
    },
    "events": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Event"
      },
      "description": "Events that occurred during this step"
    },
    "WS": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/WS"
      },
      "description": "Web service calls made during this step"
    },
    "channel": {
      "type": "string",
      "description": "Communication channel"
    },
    "flow": {
      "$ref": "#/definitions/Flow"
    }
  },
  "required": [
    "message_type", "time", "id", "number", "dialog_time"
  ],
  "definitions": {
    "Target": {
      "type": "object",
      "description": "Target information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Target name"
        },
        "status": {
          "type": "string",
          "description": "Target status"
        },
        "flow_targets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Target"
          },
          "description": "Nested flow targets"
        }
      }
    },
    "Action": {
      "type": "object",
      "description": "Action information",
      "additionalProperties": false,
      "properties": {
        "timeout": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Action timeout in milliseconds"
        },
        "prompt_duration": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Prompt duration in milliseconds"
        },
        "name": {
          "type": "string",
          "description": "Action name"
        },
        "type": {
          "type": "string",
          "description": "Action type"
        },
        "subtype": {
          "type": "string",
          "description": "Action subtype"
        },
        "pre_action": {
          "type": "string",
          "description": "Pre-action identifier"
        },
        "tag": {
          "type": "string",
          "description": "Action tag"
        },
        "prompt": {
          "type": "string",
          "description": "Prompt text"
        },
        "fields_to_elicit": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FieldsToElicit"
          },
          "description": "Fields to elicit from user"
        },
        "prompts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Prompt"
          },
          "description": "List of prompts"
        },
        "data_models": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataModel"
          },
          "description": "Data models for the action"
        }
      }
    },
    "FieldsToElicit": {
      "type": "object",
      "description": "Field to elicit from user",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Field name"
        },
        "type": {
          "type": "string",
          "description": "Field type"
        }
      }
    },
    "Prompt": {
      "type": "object",
      "description": "Prompt information",
      "additionalProperties": false,
      "properties": {
        "content": {
          "type": "string",
          "description": "Prompt content"
        },
        "prompt_urls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Prompt audio URLs"
        },
        "weighted": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Weighted prompt options"
        }
      }
    },
    "DataModel": {
      "type": "object",
      "description": "Data model for visual/interactive content",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "description": "Data model type"
        },
        "subtype": {
          "type": "string",
          "description": "Data model subtype"
        },
        "direction": {
          "type": "string",
          "description": "Direction (inbound/outbound)"
        },
        "template_name": {
          "type": "string",
          "description": "Template name"
        },
        "subtitle": {
          "type": "string",
          "description": "Subtitle text"
        },
        "fallback": {
          "type": "string",
          "description": "Fallback text"
        },
        "image": {
          "$ref": "#/definitions/Image"
        },
        "interactive_option": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InteractiveOption"
          },
          "description": "Interactive options"
        },
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Entry"
          },
          "description": "Entry items"
        },
        "columns": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Column"
          },
          "description": "Column definitions"
        },
        "open_content": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Open content key-value pairs"
        }
      }
    },
    "Image": {
      "type": "object",
      "description": "Image information",
      "additionalProperties": false,
      "properties": {
        "label": {
          "type": "string",
          "description": "Image label"
        },
        "url": {
          "type": "string",
          "description": "Image URL"
        }
      }
    },
    "InteractiveOption": {
      "type": "object",
      "description": "Interactive option for user selection",
      "additionalProperties": false,
      "properties": {
        "label": {
          "type": "string",
          "description": "Option label"
        },
        "url": {
          "type": "string",
          "description": "Option URL"
        },
        "selection_text": {
          "type": "string",
          "description": "Selection text"
        },
        "image": {
          "$ref": "#/definitions/Image"
        },
        "semantics": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(TODO - DEPRECATE)Semantic key-value pairs"
        }
      }
    },
    "Entry": {
      "type": "object",
      "description": "Entry item",
      "additionalProperties": false,
      "properties": {
        "header": {
          "type": "string",
          "description": "Entry header"
        },
        "details": {
          "type": "string",
          "description": "Entry details"
        },
        "coordinates": {
          "type": "string",
          "description": "Coordinates"
        },
        "image": {
          "$ref": "#/definitions/Image"
        },
        "interactive_option": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InteractiveOption"
          },
          "description": "Interactive options"
        }
      }
    },
    "Column": {
      "type": "object",
      "description": "Column definition",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Column name"
        },
        "label": {
          "type": "string",
          "description": "Column label"
        }
      }
    },
    "Asr": {
      "type": "object",
      "description": "ASR (Automatic Speech Recognition) information for the step",
      "additionalProperties": false,
      "properties": {
        "speech_start": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Speech start time (milliseconds)"
        },
        "speech_duration": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Speech duration (milliseconds)"
        },
        "rec_start": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Recognition start time (milliseconds)"
        },
        "barge_in": {
          "type": "string",
          "description": "Barge-in information"
        },
        "grammar": {
          "type": "string",
          "description": "Grammar used for recognition"
        },
        "audio": {
          "$ref": "#/definitions/Audio"
        }
      }
    },
    "Audio": {
      "type": "object",
      "description": "Audio file information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Audio file name"
        }
      }
    },
    "AntiFraud": {
      "type": "object",
      "description": "Anti-fraud detection information",
      "additionalProperties": false,
      "properties": {
        "liveness_detection": {
          "$ref": "#/definitions/LivenessDetection"
        },
        "blocklisting": {
          "$ref": "#/definitions/Blocklisting"
        }
      }
    },
    "LivenessDetection": {
      "type": "object",
      "description": "Liveness detection results",
      "additionalProperties": false,
      "properties": {
        "global_post": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "description": "Global posterior probability"
        },
        "label": {
          "type": "string",
          "description": "Liveness label"
        },
        "global_llr": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "description": "Global log-likelihood ratio"
        },
        "global_num_frames": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Global number of frames analyzed"
        }
      }
    },
    "Blocklisting": {
      "type": "object",
      "description": "Blocklisting (fraudster detection) results",
      "additionalProperties": false,
      "properties": {
        "status": {
          "type": "string",
          "description": "Blocklisting status"
        },
        "label": {
          "type": "string",
          "description": "Blocklisting label"
        },
        "fraudster_id": {
          "type": "integer",
          "existingJavaType": "java.lang.Long",
          "description": "Fraudster identifier"
        },
        "blocklist_id": {
          "type": "string",
          "description": "Blocklist identifier"
        },
        "score": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "description": "Match score"
        },
        "score_llr": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "javaName": "scoreLLR",
          "description": "Log-likelihood ratio score"
        },
        "score_nllr": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "javaName": "scoreNLLR",
          "description": "Normalized log-likelihood ratio score"
        },
        "speech_frames": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Number of speech frames"
        },
        "risk_level": {
          "type": "string",
          "description": "Risk level"
        },
        "list_size": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Blocklist size"
        },
        "match_count": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Number of matches"
        }
      }
    },
    "Bio": {
      "type": "object",
      "description": "Biometric verification results",
      "additionalProperties": false,
      "properties": {
        "verification_score": {
          "type": "number",
          "existingJavaType": "java.lang.Double",
          "description": "Verification score"
        },
        "verification_result": {
          "type": "string",
          "description": "Verification result"
        },
        "search_result": {
          "type": "string",
          "description": "Search result"
        }
      }
    },
    "Nlu": {
      "type": "object",
      "description": "NLU (Natural Language Understanding) results",
      "additionalProperties": false,
      "properties": {
        "result_count": {
          "type": "integer",
          "description": "Number of results"
        },
        "work_flow_id": {
          "type": "string",
          "description": "Workflow identifier"
        },
        "nlu_app": {
          "type": "string",
          "description": "NLU application name"
        },
        "result_type": {
          "type": "string",
          "description": "Result type"
        },
        "semantic_interpretation": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SemanticInterpretation"
          },
          "description": "Semantic interpretations"
        }
      }
    },
    "SemanticInterpretation": {
      "type": "object",
      "description": "Semantic interpretation of user input",
      "additionalProperties": false,
      "properties": {
        "intent": {
          "$ref": "#/definitions/Intent"
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Interpretation confidence score"
        },
        "utterance": {
          "type": "string",
          "description": "Interpreted utterance"
        },
        "word_confidences": {
          "type": "string",
          "description": "Word-level confidence scores"
        },
        "entities": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NluEntity"
          },
          "description": "Extracted entities"
        }
      }
    },
    "Intent": {
      "type": "object",
      "description": "Intent information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Intent name"
        },
        "status": {
          "type": "string",
          "description": "Intent status"
        },
        "group": {
          "type": "string",
          "description": "Intent group"
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Intent confidence score"
        }
      }
    },
    "NluEntity": {
      "type": "object",
      "description": "NLU entity information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Entity name"
        },
        "sensitivity_level": {
          "type": "string",
          "description": "Sensitivity level"
        },
        "instances": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NluEntityInstance"
          },
          "description": "Entity instances"
        }
      }
    },
    "NluEntityInstance": {
      "type": "object",
      "description": "Instance of an NLU entity",
      "additionalProperties": false,
      "properties": {
        "begin": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Start position in utterance"
        },
        "end": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "End position in utterance"
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Entity confidence score"
        },
        "value": {
          "type": "string",
          "description": "Entity value"
        },
        "covered_text": {
          "type": "string",
          "description": "Text covered by the entity"
        }
      }
    },
    "Security": {
      "type": "object",
      "description": "Security information",
      "additionalProperties": false,
      "properties": {
        "is_encrypted": {
          "type": "integer",
          "description": "Encryption flag (0 or 1)"
        },
        "sensitivity": {
          "type": "string",
          "description": "Sensitivity level"
        },
        "encrypted_key": {
          "type": "string",
          "description": "Encrypted key"
        }
      }
    },
    "App": {
      "type": "object",
      "description": "Application information",
      "additionalProperties": false,
      "properties": {
        "version": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Application version number"
        },
        "name": {
          "type": "string",
          "description": "Application name"
        }
      }
    },
    "Diamant": {
      "type": "object",
      "description": "Diamant system information",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Diamant identifier"
        },
        "version": {
          "type": "string",
          "description": "Diamant version"
        },
        "region": {
          "type": "string",
          "description": "Diamant region"
        }
      }
    },
    "Event": {
      "type": "object",
      "description": "Event information",
      "additionalProperties": false,
      "properties": {
        "index": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Event index"
        },
        "active_intent": {
          "type": "string",
          "description": "Active intent"
        },
        "task_id": {
          "type": "string",
          "description": "Task identifier"
        },
        "intent_group": {
          "type": "string",
          "description": "Intent group"
        },
        "log": {
          "$ref": "#/definitions/Log"
        }
      }
    },
    "Log": {
      "type": "object",
      "description": "Log information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Log name"
        },
        "task": {
          "type": "string",
          "description": "Task name"
        },
        "status": {
          "type": "string",
          "description": "Status"
        },
        "exit_reason": {
          "type": "string",
          "description": "Exit reason"
        },
        "comment": {
          "type": "string",
          "description": "Comment"
        },
        "event": {
          "type": "string",
          "description": "Event type"
        }
      }
    },
    "WS": {
      "type": "object",
      "description": "Web service call information",
      "additionalProperties": false,
      "properties": {
        "date": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Timestamp of the call (epoch milliseconds)"
        },
        "name": {
          "type": "string",
          "description": "Web service name"
        },
        "uri": {
          "type": "string",
          "description": "Web service URI"
        },
        "method": {
          "type": "string",
          "description": "HTTP method"
        },
        "latency": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Latency in milliseconds"
        },
        "request": {
          "type": "string",
          "description": "Request body"
        },
        "response": {
          "type": "string",
          "description": "Response body"
        },
        "inputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(TO DEPRECATE) Input parameters"
        },
        "outputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(TO DEPRECATE) Output values"
        }
      }
    },
    "Flow": {
      "type": "object",
      "description": "Flow configuration and metadata",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Flow identifier"
        },
        "account_id": {
          "type": "string",
          "description": "Account identifier"
        },
        "name": {
          "type": "string",
          "description": "Flow name"
        },
        "type": {
          "type": "string",
          "description": "Flow type"
        },
        "diamant_app_name": {
          "type": "string",
          "description": "Diamant application name"
        },
        "uuid": {
          "type": "string",
          "description": "Flow UUID"
        },
        "organization": {
          "type": "string",
          "description": "Organization name"
        },
        "ocp_organization_id": {
          "type": "string",
          "description": "OCP organization identifier"
        },
        "ocp_group_name": {
          "type": "string",
          "description": "OCP group name"
        },
        "parent_name": {
          "type": "string",
          "description": "Parent flow name"
        },
        "parent_id": {
          "type": "string",
          "description": "Parent flow identifier"
        },
        "parent_step": {
          "type": "integer",
          "description": "Parent step number"
        },
        "root_step": {
          "type": "integer",
          "description": "Root step number"
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Flow path"
        },
        "path_app_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Path application identifiers"
        },
        "reportable": {
          "type": "boolean",
          "description": "Whether the flow is reportable"
        },
        "reporting_type": {
          "type": "string",
          "description": "Reporting type"
        },
        "version_tag": {
          "type": "string",
          "description": "Version tag"
        }
      }
    }
  }
}

The event unique identifier is defined as the combination of id and number fields. This unique identifier can be used when event deduplication is required.

Mandatory Fields

  • message_type

  • time

  • id

  • number

  • dialog_time

Example JSON Dialog Step V1
JSON
{
    "message_type": "dialog_step",
    "id": "0914D425259F0CD31DBFE2E72D3785E0",
    "group": "78977ae3796d73ce0df345f43df8df075daa54a6.1683276326110.63abf63debd946c4bbd4592bc3d800b",
    "session_id": "21ffc489-2ef6-5b2b-ae47-23cwe2f6f565",
    "time": 1683820113249,
    "number": 2,
    "dialog_time": 0,
    "original_utterance": "I want my balance",
    "transcription": "I want my balance",
    "channel": "chat",
    "input_modality": "dtmf",
    "target": {
        "name": "Banking",
        "status": "INITIATED",
        "flow_targets”: []
    },
    "step_selected_targets": [
        {
          "name": "Banking",
          "status": "INITIATED",
          "flow_targets": []
        }
    ],
    "action": {
        "name": "AnnounceIntent",
        "type": "Ask",
        "subtype": "",
        "pre_action": "Reaction: WelcomeMessageEN",
        "tag": "",
        "prompt": "So, please tell me, how may I help you?",
        "prompt_duration": 2300,
        "timeout": 2500,
        "fields_to_elicit": [
            {
                "name": "intent",
                "type": "Banking"
            }
        ],
        "prompts": [
            {
                "content": "So, please tell me, how may I help you today?",
                "prompt_urls": [],
                "weighted": []
            }
        ],
        "data_models": [
            {
                "type": "",
                "subtype": "",
                "direction": "",
                "template_name": "",
                "subtitle": "",
                "fallback": "",
                "image": {
                    "label": "",
                    "url": ""
                },
                "interactive_option": [
                  {
                    "label": "",
                    "url": "",
                    "image": {
                        "label": "",
                        "url": ""
                    },
                    "semantics": {
                        "key_1": "value_1",
                        "key_2": "value_2",
                        "key_3": "value_3"
                    }
                  }
                ],
                "entries": [
                    {
                        "header": "",
                        "details": "",
                        "coordinates": "",
                        "image": {
                            "label": "",
                            "url": ""
                        },
                        "interactive_option": [
                          {
                            "label": "",
                            "url": "",
                            "image": {
                                "label": "",
                                "url": ""
                            },
                            "semantics": {
                                "key_1": "value_1",
                                "key_2": "value_2",
                                "key_3": "value_3"
                            }
                          }
                        ]
                    }
                ]
            }
        ]
    },
    "previous_action" : {},
    "nlu": {
        "result_count": 2,
        "work_flow_id": "",
        "nlu_app": "",
        "result_type": "Recognition",
        "semantic_interpretation": [
            {
                "intent": {
                    "name": "Balance-Inquairy",
                    "status": "Defined",
                    "group": "",
                    "confidence": 100.00
              },
              "confidence": 99.00,
              "utterance": "I want to know my balance",
              "entities": [
                  {
                      "name": "",
                      "sensitivity_level": "",
                      "instances": [
                        {
                          "begin": 0,
                          "end": 12,
                          "confidence": 100.00,
                          "value": "",
                          "covered_text": "",
                          "features": {
                              "name_1": "value_1",
                              "name_2": "value_2"
                          }
                        }
                      ]
                  }
              ]
            }
        ]
    },
    "locale": "en-US",
    "test_flag": false,
    "events": [
        {
            "index": 1,
            "active_intent": "Balance-Inquiry",
            "task_id": "123abc45-12ab-0a00-aa12-1122aa11abc1",
            "intent_group": "Banking",
            "log": {
                "name": "Account_Balance",
                "task": "selfServe",
                "status": "initiated",
                "exit_reason": "Agent Asked",
                "comment": "[AS]",
                "event": "Intent"
            }
        }
    ],
    "WS": [
      {
          "date": 1,
          "latency": 1,
          "name": "",
          "uri": "",
          "method": "",
          "request": "",
          "response": "",
          "inputs": {},
          "outputs": {}
        }
    ],
    "security": {
        "is_encrypted": 1,
        "sensitivity": "envelope",
        "encrypted_key": "aaa9530be937c8a2819ba6ee3ca24361a11be0489e88fe853a926f709b9549f6"
    },
    "bio": {
        "verification_score": 95.00,
        "verification_result": "",
        "search_result": ""
    },
    "asr": {
        "speech_start": 1300,
        "speech_duration": 4500,
        "rec_start": 3000,
        "barge_in": "true",
        "grammar": "demo_generic",
        "audio": {
            "name": ""
        }
    },
    "diamant": {
        "id": "aws-staging-m-1",
        "version": "10.0.0",
        "region": "aws-us-east-1"
    },
   
    "flow": {
        "id": "d9a46db1-8b56-4cf3-b13d-edec6ac51667.Test_Announcements.Announcement.MiniApps.ocp-qa",
        "account_id": "d9a46db1-8b56-4cf3-b13d-edec6ac51664",
        "name": "Test_Announcements",
        "type": "Banking",
        "diamant_app_name": "MiniApps",
        "uuid": "ocp",
        "organization": "ocp",
        "ocp_organization_id": "54evs5d1-de7a-4sw1-aet1-7use1fea6782",
        "ocp_group_name": "ocp",
        "parent_name": "ocp-qa@SND_Transfer_Flow",
        "parent_id": "4c00859146cb0ba8531f2df1602603f31d4c9a0d.1683803585870.9e48fd9193664ab0adf2a0f8119f5d5c",
        "parent_step": 2,
        "root_step": 4,
        "path": [
          "ocp-qa@SND_Card_P",
          "ocp-qa@SND_Transfer_Flow"
        ],
        "path_app_ids": [
            "ocp-qa@SND_Card_P",
            "e6d966c0-069e-4ff2-9120-00b6b9ec09b.SND_Transfer_Flow.Flow.ocp-qa@SND_Transfer_Flow.ocp-qa"
        ],
        "reportable": false,
        "reporting_type": ""
    },
    "antifraud": { 
        "liveness_detection": { 
            "global_post": 0.99, 
            "label": "GENUINE", 
            "global_llr": 0.75, 
            "global_num_frames": 100 
        }, 
        "blocklisting": {        
            "status": "CHECKED", 
            "label": "MATCH", 
            "fraudster_id": 1, 
            "blocklist_id": "4slqwel3",  
            "score": 0.95, 
            "score_llr": 4.2, 
            "score_nllr": 0.3, 
            "speech_frames": 400, 
            "risk_level": "LOW_RISK", 
            "list_size": 15, 
            "match_count": 3 
          } 
    },
    "app": {
        "name": "201126",
        "version": 200101
    }
}

Dialog Step V2

Dialog Step V2 Schema
JSON
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://omilia.com/cdr/models/dialog-step.schema.json",
  "title": "DialogStepModel",
  "description": "Schema for dialog step messages in CDR models",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "message_type": {
      "type": "string",
      "const": "dialog_step",
      "description": "Type of the message, always 'dialog_step'"
    },
    "number": {
      "type": "integer",
      "existingJavaType": "java.lang.Integer",
      "description": "Step number in the dialog"
    },
    "dialog_time": {
      "type": "integer",
      "existingJavaType": "long",
      "description": "Time elapsed since dialog start (milliseconds)"
    },
    "time": {
      "type": "integer",
      "existingJavaType": "long",
      "description": "Timestamp of the step (epoch milliseconds)"
    },
    "id": {
      "type": "string",
      "description": "Unique identifier for the dialog"
    },
    "group": {
      "type": "string",
      "description": "Group identifier"
    },
    "session_id": {
      "type": "string",
      "description": "Session identifier"
    },
    "input_modality": {
      "type": "string",
      "description": "Input modality (e.g., voice, dtmf, text)"
    },
    "locale": {
      "type": "string",
      "description": "Locale of the step"
    },
    "original_utterance": {
      "type": "string",
      "description": "Original user utterance"
    },
    "transcription": {
      "type": "string",
      "description": "Transcription of user input"
    },
    "voice_id": {
      "type": "string",
      "description": "Voice identifier"
    },
    "test_flag": {
      "type": "boolean",
      "description": "Flag indicating if this is a test dialog"
    },
    "target": {
      "$ref": "#/definitions/Target"
    },
    "step_selected_targets": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Target"
      },
      "description": "Selected targets for this step"
    },
    "action": {
      "$ref": "#/definitions/Action"
    },
    "previous_action": {
      "$ref": "#/definitions/Action"
    },
    "asr": {
      "$ref": "#/definitions/Asr"
    },
    "antifraud": {
      "$ref": "#/definitions/AntiFraud"
    },
    "bio": {
      "$ref": "#/definitions/Bio"
    },
    "nlu": {
      "$ref": "#/definitions/Nlu"
    },
    "security": {
      "$ref": "#/definitions/Security"
    },
    "app": {
      "$ref": "#/definitions/App"
    },
    "diamant": {
      "$ref": "#/definitions/Diamant"
    },
    "events": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Event"
      },
      "description": "Events that occurred during this step"
    },
    "WS": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/WS"
      },
      "description": "Web service calls made during this step"
    },
    "channel": {
      "type": "string",
      "description": "Communication channel"
    },
    "flow": {
      "$ref": "#/definitions/Flow"
    },
    "agentic": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Agentic"
      },
      "description": "List of agents"
    }
  },
  "required": [
    "message_type", "time", "id", "number", "dialog_time"
  ],
  "definitions": {
    "Target": {
      "type": "object",
      "description": "Target information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Target name"
        },
        "status": {
          "type": "string",
          "description": "Target status"
        },
        "flow_targets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Target"
          },
          "description": "Nested flow targets"
        }
      }
    },
    "Action": {
      "type": "object",
      "description": "Action information",
      "additionalProperties": false,
      "properties": {
        "timeout": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Action timeout in milliseconds"
        },
        "prompt_duration": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Prompt duration in milliseconds"
        },
        "name": {
          "type": "string",
          "description": "Action name"
        },
        "type": {
          "type": "string",
          "description": "Action type"
        },
        "subtype": {
          "type": "string",
          "description": "Action subtype"
        },
        "pre_action": {
          "type": "string",
          "description": "Pre-action identifier"
        },
        "tag": {
          "type": "string",
          "description": "Action tag"
        },
        "prompt": {
          "type": "string",
          "description": "Prompt text"
        },
        "fields_to_elicit": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FieldsToElicit"
          },
          "description": "Fields to elicit from user"
        },
        "prompts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Prompt"
          },
          "description": "List of prompts"
        },
        "data_models": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataModel"
          },
          "description": "Data models for the action"
        }
      }
    },
    "FieldsToElicit": {
      "type": "object",
      "description": "Field to elicit from user",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Field name"
        },
        "type": {
          "type": "string",
          "description": "Field type"
        }
      }
    },
    "Prompt": {
      "type": "object",
      "description": "Prompt information",
      "additionalProperties": false,
      "properties": {
        "content": {
          "type": "string",
          "description": "Prompt content"
        },
        "prompt_urls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Prompt audio URLs"
        },
        "weighted": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Weighted prompt options"
        }
      }
    },
    "DataModel": {
      "type": "object",
      "description": "Data model for visual/interactive content",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "description": "Data model type"
        },
        "subtype": {
          "type": "string",
          "description": "Data model subtype"
        },
        "direction": {
          "type": "string",
          "description": "Direction (inbound/outbound)"
        },
        "template_name": {
          "type": "string",
          "description": "Template name"
        },
        "subtitle": {
          "type": "string",
          "description": "Subtitle text"
        },
        "fallback": {
          "type": "string",
          "description": "Fallback text"
        },
        "image": {
          "$ref": "#/definitions/Image"
        },
        "interactive_option": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InteractiveOption"
          },
          "description": "Interactive options"
        },
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Entry"
          },
          "description": "Entry items"
        },
        "columns": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Column"
          },
          "description": "Column definitions"
        },
        "open_content": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Open content key-value pairs"
        }
      }
    },
    "Image": {
      "type": "object",
      "description": "Image information",
      "additionalProperties": false,
      "properties": {
        "label": {
          "type": "string",
          "description": "Image label"
        },
        "url": {
          "type": "string",
          "description": "Image URL"
        }
      }
    },
    "InteractiveOption": {
      "type": "object",
      "description": "Interactive option for user selection",
      "additionalProperties": false,
      "properties": {
        "label": {
          "type": "string",
          "description": "Option label"
        },
        "url": {
          "type": "string",
          "description": "Option URL"
        },
        "selection_text": {
          "type": "string",
          "description": "Selection text"
        },
        "image": {
          "$ref": "#/definitions/Image"
        },
        "semantics": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(TODO - DEPRECATE)Semantic key-value pairs"
        }
      }
    },
    "Entry": {
      "type": "object",
      "description": "Entry item",
      "additionalProperties": false,
      "properties": {
        "header": {
          "type": "string",
          "description": "Entry header"
        },
        "details": {
          "type": "string",
          "description": "Entry details"
        },
        "coordinates": {
          "type": "string",
          "description": "Coordinates"
        },
        "image": {
          "$ref": "#/definitions/Image"
        },
        "interactive_option": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InteractiveOption"
          },
          "description": "Interactive options"
        }
      }
    },
    "Column": {
      "type": "object",
      "description": "Column definition",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Column name"
        },
        "label": {
          "type": "string",
          "description": "Column label"
        }
      }
    },
    "Asr": {
      "type": "object",
      "description": "ASR (Automatic Speech Recognition) information for the step",
      "additionalProperties": false,
      "properties": {
        "speech_start": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Speech start time (milliseconds)"
        },
        "speech_duration": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Speech duration (milliseconds)"
        },
        "rec_start": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Recognition start time (milliseconds)"
        },
        "barge_in": {
          "type": "string",
          "description": "Barge-in information"
        },
        "grammar": {
          "type": "string",
          "description": "Grammar used for recognition"
        },
        "audio": {
          "$ref": "#/definitions/Audio"
        }
      }
    },
    "Audio": {
      "type": "object",
      "description": "Audio file information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Audio file name"
        }
      }
    },
    "AntiFraud": {
      "type": "object",
      "description": "Anti-fraud detection information",
      "additionalProperties": false,
      "properties": {
        "liveness_detection": {
          "$ref": "#/definitions/LivenessDetection"
        },
        "blocklisting": {
          "$ref": "#/definitions/Blocklisting"
        }
      }
    },
    "LivenessDetection": {
      "type": "object",
      "description": "Liveness detection results",
      "additionalProperties": false,
      "properties": {
        "global_post": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "description": "Global posterior probability"
        },
        "label": {
          "type": "string",
          "description": "Liveness label"
        },
        "global_llr": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "description": "Global log-likelihood ratio"
        },
        "global_num_frames": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Global number of frames analyzed"
        }
      }
    },
    "Blocklisting": {
      "type": "object",
      "description": "Blocklisting (fraudster detection) results",
      "additionalProperties": false,
      "properties": {
        "status": {
          "type": "string",
          "description": "Blocklisting status"
        },
        "label": {
          "type": "string",
          "description": "Blocklisting label"
        },
        "fraudster_id": {
          "type": "integer",
          "existingJavaType": "java.lang.Long",
          "description": "Fraudster identifier"
        },
        "blocklist_id": {
          "type": "string",
          "description": "Blocklist identifier"
        },
        "score": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "description": "Match score"
        },
        "score_llr": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "javaName": "scoreLLR",
          "description": "Log-likelihood ratio score"
        },
        "score_nllr": {
          "type": "number",
          "existingJavaType": "java.lang.Float",
          "javaName": "scoreNLLR",
          "description": "Normalized log-likelihood ratio score"
        },
        "speech_frames": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Number of speech frames"
        },
        "risk_level": {
          "type": "string",
          "description": "Risk level"
        },
        "list_size": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Blocklist size"
        },
        "match_count": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Number of matches"
        }
      }
    },
    "Bio": {
      "type": "object",
      "description": "Biometric verification results",
      "additionalProperties": false,
      "properties": {
        "verification_score": {
          "type": "number",
          "existingJavaType": "java.lang.Double",
          "description": "Verification score"
        },
        "verification_result": {
          "type": "string",
          "description": "Verification result"
        },
        "search_result": {
          "type": "string",
          "description": "Search result"
        }
      }
    },
    "Nlu": {
      "type": "object",
      "description": "NLU (Natural Language Understanding) results",
      "additionalProperties": false,
      "properties": {
        "result_count": {
          "type": "integer",
          "description": "Number of results"
        },
        "work_flow_id": {
          "type": "string",
          "description": "Workflow identifier"
        },
        "nlu_app": {
          "type": "string",
          "description": "NLU application name"
        },
        "result_type": {
          "type": "string",
          "description": "Result type"
        },
        "semantic_interpretation": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SemanticInterpretation"
          },
          "description": "Semantic interpretations"
        }
      }
    },
    "SemanticInterpretation": {
      "type": "object",
      "description": "Semantic interpretation of user input",
      "additionalProperties": false,
      "properties": {
        "intent": {
          "$ref": "#/definitions/Intent"
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Interpretation confidence score"
        },
        "utterance": {
          "type": "string",
          "description": "Interpreted utterance"
        },
        "word_confidences": {
          "type": "string",
          "description": "Word-level confidence scores"
        },
        "entities": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NluEntity"
          },
          "description": "Extracted entities"
        }
      }
    },
    "Intent": {
      "type": "object",
      "description": "Intent information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Intent name"
        },
        "status": {
          "type": "string",
          "description": "Intent status"
        },
        "group": {
          "type": "string",
          "description": "Intent group"
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Intent confidence score"
        }
      }
    },
    "NluEntity": {
      "type": "object",
      "description": "NLU entity information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Entity name"
        },
        "sensitivity_level": {
          "type": "string",
          "description": "Sensitivity level"
        },
        "instances": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NluEntityInstance"
          },
          "description": "Entity instances"
        }
      }
    },
    "NluEntityInstance": {
      "type": "object",
      "description": "Instance of an NLU entity",
      "additionalProperties": false,
      "properties": {
        "begin": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Start position in utterance"
        },
        "end": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "End position in utterance"
        },
        "confidence": {
          "type": "number",
          "format": "float",
          "description": "Entity confidence score"
        },
        "value": {
          "type": "string",
          "description": "Entity value"
        },
        "covered_text": {
          "type": "string",
          "description": "Text covered by the entity"
        }
      }
    },
    "Security": {
      "type": "object",
      "description": "Security information",
      "additionalProperties": false,
      "properties": {
        "is_encrypted": {
          "type": "integer",
          "description": "Encryption flag (0 or 1)"
        },
        "sensitivity": {
          "type": "string",
          "description": "Sensitivity level"
        },
        "encrypted_key": {
          "type": "string",
          "description": "Encrypted key"
        }
      }
    },
    "App": {
      "type": "object",
      "description": "Application information",
      "additionalProperties": false,
      "properties": {
        "version": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Application version number"
        },
        "name": {
          "type": "string",
          "description": "Application name"
        }
      }
    },
    "Diamant": {
      "type": "object",
      "description": "Diamant system information",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Diamant identifier"
        },
        "version": {
          "type": "string",
          "description": "Diamant version"
        },
        "region": {
          "type": "string",
          "description": "Diamant region"
        }
      }
    },
    "Event": {
      "type": "object",
      "description": "Event information",
      "additionalProperties": false,
      "properties": {
        "index": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Event index"
        },
        "active_intent": {
          "type": "string",
          "description": "Active intent"
        },
        "task_id": {
          "type": "string",
          "description": "Task identifier"
        },
        "intent_group": {
          "type": "string",
          "description": "Intent group"
        },
        "log": {
          "$ref": "#/definitions/Log"
        }
      }
    },
    "Log": {
      "type": "object",
      "description": "Log information",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Log name"
        },
        "task": {
          "type": "string",
          "description": "Task name"
        },
        "status": {
          "type": "string",
          "description": "Status"
        },
        "exit_reason": {
          "type": "string",
          "description": "Exit reason"
        },
        "comment": {
          "type": "string",
          "description": "Comment"
        },
        "event": {
          "type": "string",
          "description": "Event type"
        }
      }
    },
    "WS": {
      "type": "object",
      "description": "Web service call information",
      "additionalProperties": false,
      "properties": {
        "date": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Timestamp of the call (epoch milliseconds)"
        },
        "name": {
          "type": "string",
          "description": "Web service name"
        },
        "uri": {
          "type": "string",
          "description": "Web service URI"
        },
        "method": {
          "type": "string",
          "description": "HTTP method"
        },
        "latency": {
          "type": "integer",
          "existingJavaType": "long",
          "description": "Latency in milliseconds"
        },
        "request": {
          "type": "string",
          "description": "Request body"
        },
        "response": {
          "type": "string",
          "description": "Response body"
        },
        "inputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(TO DEPRECATE) Input parameters"
        },
        "outputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "(TO DEPRECATE) Output values"
        }
      }
    },
    "Flow": {
      "type": "object",
      "description": "Flow configuration and metadata",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "Flow identifier"
        },
        "account_id": {
          "type": "string",
          "description": "Account identifier"
        },
        "name": {
          "type": "string",
          "description": "Flow name"
        },
        "type": {
          "type": "string",
          "description": "Flow type"
        },
        "diamant_app_name": {
          "type": "string",
          "description": "Diamant application name"
        },
        "uuid": {
          "type": "string",
          "description": "Flow UUID"
        },
        "organization": {
          "type": "string",
          "description": "Organization name"
        },
        "ocp_organization_id": {
          "type": "string",
          "description": "OCP organization identifier"
        },
        "ocp_group_name": {
          "type": "string",
          "description": "OCP group name"
        },
        "parent_name": {
          "type": "string",
          "description": "Parent flow name"
        },
        "parent_id": {
          "type": "string",
          "description": "Parent flow identifier"
        },
        "parent_step": {
          "type": "integer",
          "description": "Parent step number"
        },
        "root_step": {
          "type": "integer",
          "description": "Root step number"
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Flow path"
        },
        "path_app_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Path application identifiers"
        },
        "reportable": {
          "type": "boolean",
          "description": "Whether the flow is reportable"
        },
        "reporting_type": {
          "type": "string",
          "description": "Reporting type"
        },
        "version_tag": {
          "type": "string",
          "description": "Version tag"
        }
      }
    },
    "Agentic": {
      "type": "object",
      "description": "Agent execution metadata from Control Plane",
      "additionalProperties": false,
      "properties": {
        "agent_type": {
          "type": "string",
          "description": "Agent type (e.g. task, qna, router, concierge)"
        },
        "agent_id": {
          "type": "string",
          "description": "Agent identifier"
        },
        "agent_name": {
          "type": "string",
          "description": "Agent display name"
        },
        "model_id": {
          "type": "string",
          "description": "LLM model identifier"
        },
        "routing_tag": {
          "$ref": "#/definitions/AgentRoutingTag"
        },
        "tools": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AgentTool"
          },
          "description": "Tools invoked during this agent turn"
        },
        "kb_type": {
          "type": "string",
          "description": "Knowledge base type used by the agent"
        },
        "agent_result": {
          "type": "string",
          "description": "Agent outcome (success or fail)"
        },
        "kb": {
          "$ref": "#/definitions/AgentKb"
        }
      }
    },
    "AgentKb": {
      "type": "object",
      "description": "Knowledge base retrieval details for a Q&A agent turn",
      "additionalProperties": false,
      "properties": {
        "project_id": {
          "type": "string",
          "description": "Knowledge base project id"
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AgentKbDocument"
          },
          "description": "Documents retrieved from the knowledge base"
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/KbFilter"
          },
          "description": "Metadata filters used to query the knowledge base (key-value pairs)"
        },
        "result_count": {
          "type": "integer",
          "existingJavaType": "java.lang.Integer",
          "description": "Number of documents returned by the retrieval (0 when no results)"
        }
      }
    },
    "AgentKbDocument": {
      "type": "object",
      "description": "A single document retrieved from the knowledge base",
      "additionalProperties": false,
      "properties": {
        "doc_id": {
          "type": "string",
          "description": "Knowledge base document identifier"
        },
        "filename": {
          "type": "string",
          "description": "Knowledge base document filename"
        }
      }
    },
    "AgentRoutingTag": {
      "type": "object",
      "description": "Routing tag selected by a router agent",
      "additionalProperties": false,
      "properties": {
        "key": {
          "type": "string",
          "description": "Routing tag key"
        },
        "value": {
          "type": "string",
          "description": "Routing tag value"
        },
        "name": {
          "type": "string",
          "description": "Routing tag display name"
        }
      }
    },
    "AgentTool": {
      "type": "object",
      "description": "Tool invoked by the agent during its turn",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Tool name"
        },
        "type": {
          "type": "string",
          "description": "Tool type (MiniApps, MCP, or Internal)"
        },
        "server": {
          "type": "string",
          "description": "Server or source providing the tool"
        }
      }
    },
    "KbFilter": {
      "type": "object",
      "description": "Key-value pair used as a metadata filter for knowledge base retrieval",
      "additionalProperties": false,
      "properties": {
        "key": {
          "type": "string",
          "description": "Filter key"
        },
        "value": {
          "type": "string",
          "description": "Filter value"
        }
      }
    }
  }
}

Mandatory Fields

  • message_type

  • time

  • id

  • number

  • dialog_time

Example JSON Dialog Step V2
JSON
{
    "message_type": "dialog_step",
    "id": "0914D425259F0CD31DBFE2E72D3785E0",
    "group": "78977ae3796d73ce0df345f43df8df075daa54a6.1683276326110.63abf63debd946c4bbd4592bc3d800b",
    "session_id": "21ffc489-2ef6-5b2b-ae47-23cwe2f6f565",
    "time": 1683820113249,
    "number": 2,
    "dialog_time": 0,
    "original_utterance": "I want my balance",
    "transcription": "I want my balance",
    "channel": "chat",
    "input_modality": "dtmf",
    "target": {
        "name": "Banking",
        "status": "INITIATED",
        "flow_targets": []
    },
    "step_selected_targets": [
        {
            "name": "Banking",
            "status": "INITIATED",
            "flow_targets": []
        }
    ],
    "action": {
        "name": "AnnounceIntent",
        "type": "Ask",
        "subtype": "",
        "pre_action": "Reaction: WelcomeMessageEN",
        "tag": "",
        "prompt": "So, please tell me, how may I help you?",
        "prompt_duration": 2300,
        "timeout": 2500,
        "fields_to_elicit": [
            {
                "name": "intent",
                "type": "Banking"
            }
        ],
        "prompts": [
            {
                "content": "So, please tell me, how may I help you today?",
                "prompt_urls": [],
                "weighted": []
            }
        ],
        "data_models": [
            {
                "type": "",
                "subtype": "",
                "direction": "",
                "template_name": "",
                "subtitle": "",
                "fallback": "",
                "image": {
                    "label": "",
                    "url": ""
                },
                "interactive_option": [
                    {
                        "label": "",
                        "url": "",
                        "image": {
                            "label": "",
                            "url": ""
                        },
                        "semantics": {
                            "key_1": "value_1",
                            "key_2": "value_2",
                            "key_3": "value_3"
                        }
                    }
                ],
                "entries": [
                    {
                        "header": "",
                        "details": "",
                        "coordinates": "",
                        "image": {
                            "label": "",
                            "url": ""
                        },
                        "interactive_option": [
                            {
                                "label": "",
                                "url": "",
                                "image": {
                                    "label": "",
                                    "url": ""
                                },
                                "semantics": {
                                    "key_1": "value_1",
                                    "key_2": "value_2",
                                    "key_3": "value_3"
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "previous_action": {},
    "nlu": {
        "result_count": 2,
        "work_flow_id": "",
        "nlu_app": "",
        "result_type": "Recognition",
        "semantic_interpretation": [
            {
                "intent": {
                    "name": "Balance-Inquairy",
                    "status": "Defined",
                    "group": "",
                    "confidence": 100.00
                },
                "confidence": 99.00,
                "utterance": "I want to know my balance",
                "entities": [
                    {
                        "name": "",
                        "sensitivity_level": "",
                        "instances": [
                            {
                                "begin": 0,
                                "end": 12,
                                "confidence": 100.00,
                                "value": "",
                                "covered_text": "",
                                "features": {
                                    "name_1": "value_1",
                                    "name_2": "value_2"
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "locale": "en-US",
    "test_flag": false,
    "events": [
        {
            "index": 1,
            "active_intent": "Balance-Inquiry",
            "task_id": "123abc45-12ab-0a00-aa12-1122aa11abc1",
            "intent_group": "Banking",
            "log": {
                "name": "Account_Balance",
                "task": "selfServe",
                "status": "initiated",
                "exit_reason": "Agent Asked",
                "comment": "[AS]",
                "event": "Intent"
            }
        }
    ],
    "WS": [
        {
            "date": 1,
            "latency": 1,
            "name": "",
            "uri": "",
            "method": "",
            "request": "",
            "response": "",
            "inputs": {},
            "outputs": {}
        }
    ],
    "security": {
        "is_encrypted": 1,
        "sensitivity": "envelope",
        "encrypted_key": "aaa9530be937c8a2819ba6ee3ca24361a11be0489e88fe853a926f709b9549f6"
    },
    "bio": {
        "verification_score": 95.00,
        "verification_result": "",
        "search_result": ""
    },
    "asr": {
        "speech_start": 1300,
        "speech_duration": 4500,
        "rec_start": 3000,
        "barge_in": "true",
        "grammar": "demo_generic",
        "audio": {
            "name": ""
        }
    },
    "diamant": {
        "id": "aws-staging-m-1",
        "version": "10.0.0",
        "region": "aws-us-east-1"
    },
    "flow": {
        "id": "d9a46db1-8b56-4cf3-b13d-edec6ac51667.Test_Announcements.Announcement.MiniApps.ocp-qa",
        "account_id": "d9a46db1-8b56-4cf3-b13d-edec6ac51664",
        "name": "Test_Announcements",
        "type": "Banking",
        "diamant_app_name": "MiniApps",
        "uuid": "ocp",
        "organization": "ocp",
        "ocp_organization_id": "54evs5d1-de7a-4sw1-aet1-7use1fea6782",
        "ocp_group_name": "ocp",
        "parent_name": "ocp-qa@SND_Transfer_Flow",
        "parent_id": "4c00859146cb0ba8531f2df1602603f31d4c9a0d.1683803585870.9e48fd9193664ab0adf2a0f8119f5d5c",
        "parent_step": 2,
        "root_step": 4,
        "path": [
            "ocp-qa@SND_Card_P",
            "ocp-qa@SND_Transfer_Flow"
        ],
        "path_app_ids": [
            "ocp-qa@SND_Card_P",
            "e6d966c0-069e-4ff2-9120-00b6b9ec09b.SND_Transfer_Flow.Flow.ocp-qa@SND_Transfer_Flow.ocp-qa"
        ],
        "reportable": false,
        "reporting_type": ""
    },
    "antifraud": {
        "liveness_detection": {
            "global_post": 0.99,
            "label": "GENUINE",
            "global_llr": 0.75,
            "global_num_frames": 100
        },
        "blocklisting": {
            "status": "CHECKED",
            "label": "MATCH",
            "fraudster_id": 1,
            "blocklist_id": "4slqwel3",
            "score": 0.95,
            "score_llr": 4.2,
            "score_nllr": 0.3,
            "speech_frames": 400,
            "risk_level": "LOW_RISK",
            "list_size": 15,
            "match_count": 3
        }
    },
    "app": {
        "name": "201126",
        "version": 200101
    },
    "agentic": [
        {
            "agent_type": "qna",
            "agent_id": "agent-001",
            "agent_name": "Agent Name",
            "model_id": "model-id",
            "routing_tag": {
                "key": "key",
                "value": "value",
                "name": "name"
            },
            "tools": [
                {
                    "name": "tool_name",
                    "type": "MCP",
                    "server": "server_name"
                }
            ],
            "kb_type": "kb_type",
            "agent_result": "success",
            "kb": {
                "project_id": "project_id",
                "documents": [
                    {
                        "doc_id": "doc_id",
                        "filename": "filename"
                    }
                ],
                "filters": [
                    {
                        "key": "key",
                        "value": "value"
                    }
                ],
                "result_count": 1
            }
        }
    ]
}

Appendix

Please view the following documents for more information: