What This Table Is
The sn_customerservice_case table stores customer service case records within ServiceNow's Customer Service Management (CSM) application. These records represent customer-reported issues, service requests, complaints, and inquiries that require resolution by customer service agents. Each case captures the full lifecycle of a customer interaction, from initial contact through resolution and closure.
The table extends the task table, inheriting core workflow fields like state, assigned_to, and priority, while adding customer-specific fields like account and contact. The CSM module owns this table and uses it to drive agent workspaces, SLA tracking, escalation workflows, and customer communication processes.
Customer service cases integrate heavily with knowledge management, chat transcripts, and customer portals. Unlike incidents which focus on service restoration, cases emphasize customer satisfaction and often involve back-and-forth communication. Cases can spawn child tasks, link to products and entitlements, and trigger complex routing rules based on customer tier and case category.
In large enterprises, this table typically contains 50K-500K+ active records with high insert volume during business hours. Performance considerations include proper indexing on account, state, and opened_at fields, as reporting queries frequently filter on these combinations.
When You'll Script Against This Table
You'll primarily script against sn_customerservice_case in Business Rules for workflow automation, Script Includes for agent workspace customizations, and Scheduled Jobs for SLA monitoring and escalation processing. The sn_customerservice_agent and sn_customerservice_manager roles control most access, with additional ACLs based on assignment group membership and account access.
Portal widgets and Service Portal pages frequently query this table to display customer case histories and status updates. Flow Designer and Workflow also operate on case records for approval processes, notifications, and integration with external CRM systems.
- Auto-assigning cases based on account tier, product, and agent skills
- Escalating overdue cases and triggering manager notifications
- Calculating custom SLA metrics and customer satisfaction scores
- Syncing case status with external CRM systems via REST APIs
- Building custom dashboards and reports for case volume and trends
- Validating entitlements and service level agreements on case creation
- Implementing custom approval workflows for refunds and credits
Table Gotchas
The state field uses different choice values than standard task tables. Cases use New (1), In Progress (2), On Hold (3), Resolved (6), Closed (7) — note that state 4 and 5 are skipped.
The account field has complex ACL behavior — users can only see cases for accounts they have access to, which can cause unexpected empty query results if account access isn't properly configured.
- The
escalationfield auto-increments on SLA breaches, but manually setting it doesn't trigger escalation workflows - Case numbers use a different format than incidents — they're prefixed with 'CS' and don't follow the standard task numbering sequence
Queries on opened_at without proper indexing are expensive — always combine with account or state filters for better performance on large datasets.
- The
contactfield can be null even whencaller_idis populated — they serve different purposes in the customer hierarchy - Business Rules targeting case state changes fire frequently — use conditions carefully to avoid performance issues during bulk updates
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
As an extension of the task table, customer cases inherit all task functionality including workflow, SLAs, and approval capabilities. The most frequent joins occur with customer_account for customer information, customer_contact for contact details, and sys_user for assigned agents.
Cases heavily reference sys_user_group for assignment group routing and task_sla for SLA tracking. The sys_journal_field table captures work notes and customer communications, making it essential for case history reporting and audit trails.
Integration scenarios often involve querying cases alongside kb_knowledge for solution recommendations, cmn_cost_center for departmental reporting, and custom product catalog tables for entitlement validation. Customer satisfaction surveys stored in related tables also drive case closure workflows.