What This Table Is

The problem table stores Problem Management records — formal investigations into the root causes of incidents, particularly recurring ones. Problems represent the unknown underlying causes of one or more incidents, and drive the creation of Known Errors and workarounds once root cause is identified.

Owned by the ITSM module, the problem table supports the full Problem Management process: problem identification, investigation, root cause analysis, Known Error creation, and permanent solution implementation. It extends the task table, inheriting core workflow fields while adding problem-specific states, categories, and relationship capabilities.

The problem table sits at the center of ITIL Problem Management relationships. It connects to incidents through problem_task many-to-many records, spawns Known Errors in the kb_knowledge table, and can generate Change Requests for permanent fixes. No tables extend the problem table directly.

Enterprise volumes are typically low compared to incidents — large organizations might see 50-200 problems monthly versus thousands of incidents. This lower volume means performance is rarely a concern, but the complex relationships and lengthy lifecycles (problems can remain open for months) create different scripting challenges around state management and data integrity.

When You'll Script Against This Table

You'll script against the problem table primarily in Business Rules for workflow automation, Script Includes for Problem Management integrations, and Scheduled Jobs for SLA monitoring and reporting. Problem state changes trigger complex workflows — Known Error creation, incident linking, Change Request generation — making before/after Business Rules common.

Access requires problem_manager or problem_coordinator roles for full CRUD operations. Standard itil role provides read access. Assignment group-based ACLs restrict update access to assigned teams, similar to incidents but with stricter controls due to the formal nature of Problem Management.

Common scripting patterns:

  • Auto-linking related incidents based on CI, category, or symptom matching
  • Generating Known Error records when problems reach Root Cause Analysis state
  • Creating Change Requests for permanent fixes when solutions are identified
  • Calculating business impact across all related incidents
  • Monitoring SLAs and escalating overdue investigations
  • Updating related incident workarounds when temporary solutions are found
  • Sending notifications to stakeholders when root cause is identified

Table Gotchas

⚠️

The problem_state field uses different values than incident state. Don't assume task state patterns apply — problems have states like 'Root Cause Analysis' and 'Known Error' that don't exist on other task types.

  • The related_incidents field is display-only. Actual incident relationships are stored in the problem_task table, requiring separate queries or GlideRecord joins to access.
⚠️

Problems can remain in 'Work in Progress' state for months. Don't build automation that assumes quick state transitions like incidents — use date-based conditions instead of state change counts.

  • The known_error checkbox doesn't automatically create Knowledge articles. It's a flag that must trigger separate Knowledge Management workflows if you want automatic Known Error creation.
  • Problem assignment groups often span multiple teams (network, server, application). Assignment changes might require complex routing logic that considers technical domains rather than simple workload balancing.
⚠️

Before queries on problem table can be expensive when filtering by related incident fields. The problem_task relationship isn't indexed for reverse lookups — query incidents first, then problems.

Free Newsletter

Enjoying this? Get one deep-dive per week.

Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.

No spam · Unsubscribe anytime

The problem table extends task, inheriting standard workflow fields, assignment logic, and approval processes. This means all task-based Business Rules and Client Scripts affect problems unless specifically filtered out. The inheritance also provides access to task SLA, approval, and activity stream functionality.

Most problem queries involve the problem_task relationship table to find related incidents, and the incident table for impact analysis. The kb_knowledge table connects for Known Error creation, while change_request links to permanent fix implementation.

Configuration Management Database integration is critical — problems typically reference cmdb_ci records to identify affected infrastructure. User and group tables (sys_user, sys_user_group) are commonly joined for assignment and notification logic, especially when problems require escalation to senior technical staff or management.