--- title: Operational Technology \(OT\) extension classes description: The CMDB CI Class Models app adds or updates classes for Operational Technology \(OT\). locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/servicenow-platform/cmdb-ci-class-models/cmdb-ci-class-models-operation-technology.html release: australia product: CMDB CI Class Models classification: cmdb-ci-class-models topic_type: concept last_updated: "2026-06-18" reading_time_minutes: 30 breadcrumb: [CMDB CI class models, Configuration Management Database \(CMDB\), Configuration Management, Extend ServiceNow AI Platform capabilities] --- # Operational Technology \(OT\) extension classes The CMDB CI Class Models app adds or updates classes for Operational Technology \(OT\). CMDB CI Class Models is a ServiceNow Store app that adds class models that extend the CMDB class hierarchy. The new or updated classes include class descriptions, identification rules, identifier entries, and, if applicable, dependent relationships. You can use the added classes just like any other CMDB class. Applications such as Discovery and Service Mapping Patterns can use the class extensions to populate CIs and discover technologies and software. See the release notes for all CMDB CI class models. ## Operational Technology \(OT\) data model The Operational Technology \(OT\) data model helps manage OT device data. Operational Technology that controls industrial equipment can be based on IT class hardware \(computers, servers, network gear, and so on\), or on specific hardware profiles not included in the ServiceNow IT class model \(PLCs, HMIs, Engineering Workstations, Historians, and so on\). Therefore, a single OT device in the OT data model includes two primary components: 1. A CI class record. This can be an IT or an OT class CI. 2. An OT device details record. This describes the OT device type \(function\) and other OT-specific attributes. Each OT device in the Configuration Management Database \(CMDB\) can be distinguished as having an **OT Device Details** \[cmdb\_ot\_entity\] reference to an OT device details \[cmdb\_ot\_entity table\] record. This is a bi-directional reference. The ot\_device reference on the cmdb\_ot\_entity table references the CI record. If the cmdb\_ot\_entity reference of a given CI record isn't empty, the CI is considered to be an OT device. A record in any CI class can be designated as an OT device. All OT device records include a record in the OT Entity \[cmdb\_ot\_entity\] table to store OT metadata. In the following example, HMI might be software installed on an IT class CI or might be a proprietary appliance similar to a POS device. - An HMI CI with an OT Device detail record describing its **OT Device type** also as HMI. - A computer CI with an OT Device detail record describing its **OT Device type** as HMI. \[Omitted image "ot-asset-ci-class.png"\] Alt text: OT Device records include a record in the cmdb\_ot\_entity table. You can use this to derive a list of HMIs and a list of all computers in an enterprise. For more information about the OT data model, see [Implementing the CSDM framework for Operational Technology](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/operational-technology/ot-use-case-product-view.md). You can use the added classes as any other CMDB class. Products and applications such as Discovery for OT and Service Graph Connector for Microsoft Excel use these class extensions to populate CIs and discover various technologies and software. To learn more, see the following: - [Operational Technology Discovery](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/operational-technology/operational-technology-discovery-landing.md) - [Service Graph Connector for Microsoft Excel](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/operational-technology/service-graph-connector-for-OT-excel.md) **Note:** CIs used on an OT network to automate an industrial process are often referred to as OT devices. This term shouldn’t be confused with a device record commonly used in Asset Management. ## Operational Technology \(OT\) schema structure \[Omitted image "ClassOperationTechnology.png"\] Alt text: Relationships and references in Operational Technology schema. ## Classes This section lists the classes that the CMDB CI Class Models app adds or updates. See the class columns table for further details about the columns added for each class. For the list of classes in the base system, including classes that this app might extend, see [CMDB tables descriptions](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/servicenow-platform/configuration-management-database-cmdb/cmdb-tables-details.md). CMDB CI Class Models: Release 1.69.0 adds the following classes for OT.
| Class | Description |
|---|---|
| Firmware Installation \[cmdb\_firmware\_install\] | Firmware associated with the OT device. |
| Key Value \[cmdb\_key\_value\] | Additional information related to the OT device that's populated with the available OT integrations and captured as Key value pairs. |
| Software Instance \[cmdb\_sam\_sw\_install\] | Captures the software installed on the OT device if Software Asset Management isn't available. **Note:** If Software Asset Management is installed and entitled, the software installed data is available in the Software Installation related list. |
| Attribute | Description |
|---|---|
| Business criticality | Business criticality assigned in the discovery source. |
| OT Device | Reference to the CI that is on the OT network. |
| OT Device type | The function of the OT Device, regardless of CI class.- For a dedicated HMI appliance, the CI is in the cmdb\_ci\_ot\_hmi class, and the OT Device type should be HMI. - For a computer performing the function of an HMI, the CI is in the cmdb\_ci\_computer class and the OT Device type should be HMI |
| Purdue level | Purdue level of the OT Device. |
| Zone | Zone assigned to the OT Device, usually used in the context of a zone or conduit model. |
| IRE criterion attribute \(ire\_criterion\) | Acts as a criterion attribute for an OT entity-related entry. |
| Attribute | Description |
|---|---|
| Source Class | The class of the source CI. |
| Target CMDB class | The expected ServiceNow class that for the CI. |
| OT Device type | The category type that the OT Device is classified as. The Device type is also the function that the Device plays on the OT network. For example:An IT Device, such as a server, can be converted to an OT Device, and the function it plays on the network is an HMI. Therefore, its class is **server** and its Device type is **HMI**. **Note:** In some cases, there are OT Devices with no OT function or OT Devices where the Device type is unknown. For OT Devices with no OT function, select **No OT Function**. For OT Devices where the Device type is unknown, select **Unknown**. |
| Allow OS classification | When set to **True**, if an operating system is found on the CI, the target is switched away from this table's target class to a ServiceNow class that matches its OS.For example, if Historian is the target class but Windows Server OS is found in the payload, the CI is classified as a Windows Server CI. And its OT device type is set to Historian. |
| Active | When selected, the class mapping is set to **Active** and considered during device classification. |
| Allow Custom Device Naming | When this field is enabled, you can define how the unique device names are generated for the **Device Naming Strategy** field. |
| Device Naming Strategy | Defines the method used to generate unique device names when the **Allow Custom Device Naming** field is enabled. |
| Use Case | Message |
|---|---|
| The Connection and Credential Alias sys\_ids are missing, so the validation can't proceed. | Provide Connection and Credential Alias sys\_id. |
| A Connection and Credential Alias aren't found for the sys\_id. | No Connection and Credential Alias Found for the sys\_id. |
| The connection isn't configured to use a MID Server, so validation is skipped. | Invalid MID selection choice for the Connection associated with the specified Connection and Credential Alias named\{Connection name\} |
| There's an invalid MID Server selection choice for the connection. | Invalid MID selection choice for the HTTP connection associated with the specified Connection and Credential Alias named \{Connection name\} |
| The MID Server validation fails due to an error. | Error occurred during MID Server selection validation: \{Error\} |
| The query for getting the associated username and its associated user account sys\_id based on the MID Server sys\_id. | |
| The MID Server sys\_id is missing from the input, so validation can't proceed. | Provide MID Server sys\_id. |
| If the username isn't populated in the mid.instance.username parameter. | MID Server username is empty in mid.instance.username configuration parameter. |
| The MID Server username configuration parameter is missing for the specified MID Server. | No mid.instance.username configuration parameter found for the MID Server with sys\_id: \{midServerId\} |
| **The query used to get the mid\_server user sys\_id based on the username.** | |
| A user record isn't found for your given username. | No user found for username: \{username\} |
| The MID Server username is found successfully. | User found for username: \{username\} |
| Your sys\_id or username can't be retrieved due to an error. | Exception occurred while fetching MID Server username or user sys\_id: \{error\} |
| A query runs to check that you're assigned the mid\_server role. | |
| Your sys\_id is missing, so role validation can't proceed. | The MID Server role validation failed as user is not found. |
| You aren't assigned the mid\_server role. | The MID Server User does not have 'mid\_server' role. |
| The MID Server user is assigned the mid\_server role. | The MID Server User has 'mid\_server' role. |
| The MID Server user role can't be checked because of an error. | Error occurred while checking MID Server user role: \{error\} |
| The IP address, Running status, and Validation status are under validation. | |
| The MID Server sys\_id is missing from the input, so validation can't proceed. | Provide MID Server sys\_id. |
| The MID Server record is missing from the ServiceNow system. | No MID Server record found for sys\_id:\{midServerId\} |
| The MID Server's IP address isn't set, so it can't be used for connections. | IP Address field is not populated for the MID Server. |
| The MID Server isn't running. | MID Server status is not 'Up'. |
| The MID Server isn't validated. | MID Server is not validated. |
| The MID Server is active and validated. | MID Server is active and validated. |
| The MID Server failed due to an error. | Error occurred while validating MID Server status and IP address: \{error\} |
| You select a specific MID Server. | |
| The Connection and Credential Alias details aren't found as part of the input parameter. | No Connection and Credential Alias found for the sys\_id. |
| A MID Server isn't selected for the Connection. | No MID Server selected for the Connection: \{connectionName\} |
| A MID Server agent record isn't found for the selected MID Server in the HTTP Connection. | No MID Server agent record found for sys\_id:\{midServerId\} |
| All MID Server validation checks are successful. | MID Server with name \{midServerName\} is validated and running. |
| The MID Server validation failed for the selected MID Server. The final message only includes the failed validation checks, separated by a new line. | Validation checks failed for following MID Servers with reasons 1.Old Crucible MID Server \(153.113\): No mid.instance.username configuration parameter found for the MID Server with sys\_id: fc4a4cfe3b6f22909b96dfd0c5e45a6c Unable to retrieve the MID Server user sys\_id because the specified MID Server username is not found MID Server Role validation failed User sys\_id is null IP Address field is not populated for the MID Server MID Server status is not 'Up' |
| The MID Server validation failed due to an error. | Error occurred during specific MID Server validation: \{error\} |
| The **Auto Select MID Server** field is selected. | |
| The Connection and Credential Alias details aren't found as part of the input parameter. | No Connection and Credential Alias found for the sys\_id. |
| A validated and running MID Server isn't found for the Connection.This excludes the role and ip\_address validation checks. | No validated and running MID Server found for Connection:\{connectionName\} |
| The MID Server is running, validated, and passes all validation checks. | Following MID Servers are in a running and validated state: with running and validated state: 1. \{midServerName\} MID Server is active and validated. |
| The MID Server validation failed for the selected MID Server. The final message only includes the failed validation checks, separated by a new line. | Validation checks failed for following MID Servers with reasons 1.Old Crucible MID Server \(153.113\): No mid.instance.username configuration parameter found for the MID Server with sys\_id: fc4a4cfe3b6f22909b96dfd0c5e45a6c Unable to retrieve the MID Server user sys\_id because the specified MID Server username is not found MID Server role validation failed, user sys\_id is null IP Address field is not populated for the MID Server MID Server status is not 'Up' |
| The MID Server validation failed due to an error. | Error occurred during auto-select MID Server validation: \{error\} |
| You select a specific MID Server cluster. | |
| The Connection and Credential Alias details aren't found as part of the input parameter. | No Connection and Credential Alias found for the sys\_id. |
| A MID Server cluster isn't associated with the Connection. | No MID Cluster associated with the Connection:\{connectionName\} |
| A MID Server isn't associated with the MID Server cluster. | No MID Server is associated with the MID cluster referenced to the Connection: \{connectionName\} |
| The MID Server is running, validated, and passes all validation checks. | Following MID Servers associated with MID Cluster are in running and validated state: 1. \{midServerName\} MID Server is active and validated. |
| The MID Server validation failed for the selected MID Server. The final message only includes the failed validation checks, separated by commas. | Validation checks failed for following MID Servers with reasons 1.Old Crucible MID Server \(153.113\): No mid.instance.username configuration parameter found for the MID Server with sys\_id: fc4a4cfe3b6f22909b96dfd0c5e45a6c Unable to retrieve the MID Server user sys\_id because the specified MID Server username is not found MID Server role validation failed User sys\_id is null IP Address field is not populated for the MID Server MID Server status is not 'Up' |
| The MID Server validation failed due to an error. | Error occurred during MID Server cluster validation:\{error\} |