What This Table Is
The change_request table stores controlled changes to IT infrastructure and services, supporting the full ITSM change management process from request through implementation. Each record represents a single change with detailed planning, approval workflows, risk assessment, and implementation tracking. The table manages three distinct change types: Normal (full approval process), Emergency (expedited for urgent issues), and Standard (pre-approved templates).
Owned by the ITSM module, this table drives the change advisory board (CAB) process, coordinates with configuration management, and integrates with release management. The change management process typically handles scheduling maintenance windows, coordinating team approvals, managing implementation plans, and tracking success metrics. Each change type follows different business rules for required fields, approval chains, and implementation timelines.
Extends the task table, inheriting core workflow fields like state, assignment_group, and assigned_to. No child tables extend change_request in the base platform, but the table connects to change_task for implementation activities and sysapproval_approver for approval workflows.
Large enterprises typically see 5,000-50,000 change records annually, with Normal changes comprising 60-70%, Emergency changes 5-10%, and Standard changes 20-35%. The table performs well at scale but requires careful indexing on planned_start_date and type fields for dashboard queries. Calendar views and approval reports generate the heaviest query load.
When You'll Script Against This Table
Most scripting happens in Business Rules during state transitions (submitted to approved, approved to implement, implement to review), where you'll validate required fields per change type, trigger approval workflows, or create implementation tasks. Script Includes handle complex approval logic and integration with external change management tools. Scheduled Jobs commonly query this table for SLA monitoring, automated notifications, and metrics reporting.
Access requires itil role minimum for read access, with change_manager role for full CRUD operations. Record-level ACLs restrict visibility based on assignment groups and change type. Emergency changes often have different permission models for after-hours access.
- Validate change-specific required fields based on type (Normal vs Emergency vs Standard)
- Trigger approval workflows when state changes to 'Assess' or 'Authorize'
- Auto-create implementation tasks in change_task table when approved
- Calculate risk scores based on affected CIs and implementation window
- Send notifications to stakeholders for upcoming maintenance windows
- Query for conflict detection against overlapping planned_start_date and affected CIs
- Generate metrics reports for change success rates and SLA compliance
Table Gotchas
The state field uses different values than incident table: -5 (New), -4 (Assess), -3 (Authorize), -2 (Scheduled), -1 (Implement), 0 (Review), 3 (Closed). Don't assume task state values work here.
Change type field drives business rule behavior - changing from Normal to Emergency mid-process can bypass required approvals unexpectedly. Always validate type changes in Business Rules.
- Standard changes require a
std_change_producer_versionreference - without it, they behave like Normal changes - The
cab_requiredfield is calculated based on risk and type, not directly settable in most configurations
Querying by planned_start_date without an end date range will perform poorly. Always use date ranges: gs.dateGenerate() for start and end boundaries.
- Emergency changes can skip approval states entirely - don't assume all changes follow the same state progression
- The
conflict_statusfield is auto-calculated by scheduled jobs, manually setting it gets overwritten
Enjoying this? Get one deep-dive per week.
Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.
Related Tables
Inherits from task table, which provides foundational workflow fields, assignment capabilities, and activity logging. Most task-related Script Includes and utilities work against change requests, but always test state-dependent logic since change states differ from incident/problem states.
The change_task table stores implementation activities linked via change_request field. Query both together for complete change implementation status. The sysapproval_approver table tracks approval chains via source_table and sysapproval references - essential for approval workflow reporting.
User tables (sys_user, sys_user_group) connect through inherited task fields and change-specific roles like requested_by and change_manager. Configuration item tables (cmdb_ci) link through affected CI relationships for impact analysis and conflict detection queries.