Skip to main content
Question

ServiceNow CMDB Integration — Choice Field Type Mismatch for System Criticality

  • July 6, 2026
  • 1 reply
  • 52 views

Environment:

  • Forward Networks (self-hosted)
  • ServiceNow CMDB integration via NQE query
  • Target class: cmdb_ci_ip_firewall

Issue:
When mapping System Criticality (a ServiceNow choice field) from an NQE query to ServiceNow via Forward's native CMDB integration, the field consistently reports "data type mismatched" regardless of the value format used.

Attempted formats — all result in data type mismatched:

  • "System Criticality": "2"
  • "System Criticality": 2
  • "System Criticality": "2 - High"
  • "System Criticality": ["2"]
  • "System Criticality": [2]
  • "System Criticality": ["2 - High"]
  • Top-level named list: systemCriticality = ["2"] referenced in select

Question:
Is ServiceNow choice field type mapping supported in Forward's NQE→CMDB integration? If so, what is the correct NQE syntax or integration configuration to map to a choice field without a type mismatch?

Current workaround being considered:
ServiceNow business rule that sets system_criticality = "2" on insert/update when discovery_source == "Forward Networks", bypassing Forward's integration layer for that field entirely.

Any guidance or confirmation that choice fields are/aren't supported would be appreciated.

1 reply

shyawnkarim
Employee
  • Employee
  • July 7, 2026

Choice fields aren't supported by the native CMDB integration today. That's the reason every format you tried returned the same "data type mismatched" error.

Today, the integration types each value based on its NQE column type and sends it to ServiceNow's IRE. It handles string, integer, float, boolean, and IP address fields. Choice fields aren't in that set, so IRE rejects the payload regardless of the value you send.

That's also why changing the value didn't help. "2" and "2 - High" are both strings, so they go over the wire as the same type. 2 as an integer changes the type but still isn't what the choice element expects. And the array formats aren't valid input for a single-value field. None of them match what IRE wants for a choice field, so you get the same rejection each time.

The error message should have told you the field type was the problem instead of a generic mismatch. That's on us, and it's something we're improving.

Your workaround is the right approach. A business rule that sets system_criticality on insert/update when discovery_source == "Forward Networks" keeps the criticality value in ServiceNow where the choice list lives, and it avoids the integration for that field entirely. This is a sound pattern and how I’d handle this.