What It Is
The sys_user_group table is ServiceNow's implementation of organizational groups — collections of users that can be treated as a single entity for assignment, approval, and access control purposes. Unlike simple distribution lists or email groups found in other IT systems, ServiceNow groups are active participants in business processes, capable of receiving work assignments, making approval decisions, and controlling data access through Access Control Lists (ACLs). Each record in sys_user_group represents a distinct group with its own configuration, membership rules, and operational behavior.
Architecturally, sys_user_group sits at the identity and access management layer of the platform, directly above individual user records but below the process automation layer. Groups enable ServiceNow's workflow engine, assignment rules, and notification system to operate at organizational scale rather than requiring individual user targeting. The table integrates tightly with the assignment engine, approval engine, and security framework, making groups first-class citizens in process design. This architectural positioning allows groups to be referenced in business rules, workflow activities, and assignment rules without requiring custom logic to resolve membership.
From a business function perspective, groups solve the fundamental ITSM problem of routing work to the right people without creating brittle dependencies on specific individuals. In traditional IT service management, work often gets assigned to named individuals, creating bottlenecks when those people are unavailable and requiring constant process updates as staff changes. Groups abstract away individual identity, allowing processes to target functional roles ("Database Administrators") or organizational units ("East Coast Network Team") that persist beyond individual employment. This abstraction enables true business process automation where work flows to available capacity rather than specific people.
ServiceNow designed groups this way because early ITSM implementations consistently failed due to assignment brittleness — processes that worked during testing broke in production when key individuals became unavailable. The platform's founders observed that successful IT organizations think in terms of teams and roles, not individuals, so they built groups as the primary assignment target rather than an afterthought. Alternative approaches like dynamic user queries or role-based assignment exist in the platform, but groups remain the most reliable and performant solution for most use cases. The design deliberately favors explicit membership over computed membership because explicit relationships are easier to audit, troubleshoot, and maintain in enterprise environments.
Different types of users interact with groups in fundamentally different ways. End users typically see groups only as assignment targets or approval bodies — they submit requests that get routed to groups and receive responses from group members. System administrators create and manage group records, define membership, and configure group properties like managers and email addresses. Developers reference groups programmatically in scripts, workflow activities, and assignment rules, treating groups as stable identifiers that abstract organizational complexity. Process owners design workflows around groups as functional units, mapping business processes to organizational capabilities without worrying about individual staff assignments.
Without groups, ServiceNow would require individual user assignment for all work, making process automation nearly impossible in enterprise environments. Assignment rules would need to maintain complex logic to determine available staff, approval workflows would break whenever approvers changed, and access control would require individual user grants that become unmaintainable at scale. The notification system would lack a reliable way to reach functional teams, and reporting on organizational performance would require constant user-to-role mapping. Groups enable the platform's promise of scalable, maintainable process automation by providing stable organizational abstractions that survive individual personnel changes.
Where It Fits in the Platform
Groups occupy a central position in ServiceNow's identity and process automation ecosystem, serving as the bridge between individual users and organizational processes. The sys_user_group table connects directly to the assignment engine, which evaluates group membership when routing work items, and to the approval engine, which uses groups to determine approval chains. Groups also integrate with the notification system for sending alerts to team members and with the access control framework for determining who can view or modify records. This positioning makes groups a dependency for nearly every business process that involves human interaction.
The table sits between the foundational user management layer and the application-specific process layers, making it a platform service that all applications can consume. While individual applications like Incident Management or Change Management define their own assignment logic, they all rely on the same underlying group infrastructure stored in sys_user_group. This architectural decision ensures consistent group behavior across all ServiceNow applications and allows organizations to define groups once and use them everywhere, rather than maintaining separate group structures for different processes.
Key Relationships:
sys_user_grmember— The membership table that creates many-to-many relationships between users and groups. Each record represents one user's membership in one group, with metadata like membership start date and member type.- Task Table — Groups serve as assignment targets for all task-based records through the
assignment_groupfield. This relationship enables work routing and load balancing across team members. - Access Control Lists (ACLs) — Groups can be granted or denied access to tables, fields, and records through ACL rules. This relationship enables role-based security at the group level rather than requiring individual user grants.
- Approval Rules — Groups can be configured as approvers in approval rules and approval chains. The approval engine automatically routes approval requests to group members and manages the approval process.
- Assignment Rules — Business rules and workflow activities can target groups for automatic work assignment. The assignment engine resolves group membership and applies load balancing logic when individual assignment is required.
- Notification System — Groups can receive notifications as a unit, with the system automatically determining which individual users should receive the actual messages based on group membership and notification preferences.
How You Encounter This in Practice
Enjoying this? Get one deep-dive per week.
Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.
Debugging Assignment Issues
You're a ServiceNow administrator and incidents assigned to the "Network Operations" group aren't reaching the right technicians — some team members aren't getting notifications while others receive incidents outside their expertise area. When you investigate, you discover that the group record has an inactive manager, several members with conflicting roles, and notification preferences that don't align with the team's actual operating procedures. The sys_user_group table becomes your diagnostic starting point because group configuration directly controls assignment behavior.
Understanding the group table structure reveals that assignment issues often stem from group configuration rather than assignment rules themselves. The manager field affects escalation paths, the email field controls group notifications, and fields like include_members determine whether individual members receive notifications when work is assigned to the group. Without this knowledge, administrators typically focus on assignment rules and miss the group-level configuration that actually controls behavior.
Implementing Role-Based Access Control
You're a developer tasked with restricting access to sensitive HR records so only HR staff and employee managers can view compensation data. The security team wants role-based controls, but individual role assignments are too granular and don't reflect the actual organizational structure where HR responsibilities are distributed across multiple job titles. You need to create an "HR Data Access" group that can be referenced in ACLs while maintaining flexibility as HR staff changes. The sys_user_group table becomes the foundation for a security model that maps business organization to data access.
Grasping how groups integrate with ACLs reveals that group-based security is more maintainable than role-based security in complex organizations. Groups can represent functional access needs ("HR Data Access") that cross traditional role boundaries, allowing security policies to be written against stable organizational concepts rather than individual roles that change frequently. Developers who understand this relationship build more resilient security models that require less maintenance as the organization evolves, while those who rely solely on roles create brittle access controls that break when job responsibilities shift.
Designing Approval Workflows
You're implementing a change approval process where different types of changes require approval from different organizational groups — network changes need network team approval, database changes need DBA approval, and high-risk changes need both plus management approval. The business wants parallel approvals where possible to speed up processing, but they also need sequential approvals for certain change types. You're configuring approval rules that reference groups, but you need to understand how group membership affects approval timing and what happens when group membership changes during an active approval.
Understanding how sys_user_group records interact with the approval engine reveals that group-based approvals provide more flexibility than individual approvals but require careful configuration of group properties like manager and membership rules. Groups enable approval processes that survive organizational changes, but they also introduce complexity around approval delegation and timeout handling. Process designers who grasp this complexity build robust approval workflows, while those who treat groups as simple user collections create approval bottlenecks when group membership is unclear or when no group members are available.
What People Get Wrong
Groups are just containers for users, so you can change membership anytime without affecting active processes.
Group membership changes have immediate and far-reaching effects on active processes, approvals, and assignment logic that many administrators underestimate. When you add or remove someone from a group, you're not just updating a list — you're changing who can approve pending requests, who receives notifications for active incidents, and who can access records controlled by group-based ACLs. ServiceNow evaluates group membership dynamically for most operations, meaning a user removed from a group immediately loses approval authority for requests they were previously qualified to approve.
This misconception exists because traditional IT systems often batch group membership changes or require restart cycles before changes take effect, leading administrators to assume ServiceNow behaves similarly. In ServiceNow, group membership is evaluated in real-time by the assignment engine, approval engine, and notification system. The platform's real-time evaluation is a feature that enables responsive process automation, but it demands more careful change management than administrators expect.
In production, this misunderstanding leads to approval workflows that stall when approvers are removed from groups during active approval cycles, assignment rules that fail when target groups become empty, and security incidents when users retain access longer than intended because group-based ACLs weren't updated promptly. Organizations that treat group membership casually often experience process disruptions during routine HR changes like departures, role changes, or organizational restructuring. The impact compounds in environments with complex approval chains or intricate assignment logic where group membership affects multiple concurrent processes.
You can use the same group for assignment, approvals, and ACLs since they're all just group-based functions.
Different ServiceNow functions have fundamentally different requirements for group composition and behavior, making multi-purpose groups a source of operational complexity and security risk. Assignment groups need members who can actually perform the assigned work, approval groups need members with decision-making authority, and ACL groups need members who should have data access — these three sets of people are rarely identical in real organizations. When you use the same group for multiple purposes, you're forced to compromise on membership criteria, leading to situations where people receive work assignments they can't complete or gain data access they don't need.
This misconception arises because groups appear to be generic containers in the ServiceNow interface, and the platform allows the same group to be used across different functions without obvious restrictions. Many administrators assume that functional similarities ("they're all network-related") justify shared group membership, not recognizing that operational requirements differ significantly between assignment, approval, and access control. The platform's flexibility in group usage can mask the underlying complexity until problems emerge in production.
In practice, multi-purpose groups create security vulnerabilities where contractors or temporary staff gain inappropriate data access through assignment group membership, approval bottlenecks where technical staff receive approval requests they're not authorized to handle, and assignment problems where managers receive hands-on technical work. These issues become particularly acute during security audits, where auditors struggle to understand why the same group appears in assignment rules, approval chains, and access control lists with different business justifications. Organizations that recognize the distinct purposes of assignment, approval, and access control groups build more maintainable and secure ServiceNow implementations.
Admin vs Developer Perspective
For Admins
Admins spend most of their time configuring group hierarchies, managing membership through sys_user_grmember, and troubleshooting assignment rules that aren't routing correctly. The critical admin decision is understanding when to use groups versus roles—groups are for assignment and approval workflows, while roles control what users can see and do. Admins must carefully consider group inheritance structures because a poorly designed hierarchy can create performance issues in assignment engines and approval chains. The most common troubleshooting involves checking if include_members is correctly configured when assignment rules aren't finding the expected users.
For Developers
Developers script against sys_user_group primarily through GlideRecord queries and the Group API for membership checks. The gs.getUser().isMemberOf() method is the most common scripting pattern, but developers need to understand it respects the include_members hierarchy. Advanced developers use GlideAggregate against sys_user_grmember for complex membership analysis and build custom REST APIs that leverage group-based filtering for performance. The key scripting gotcha is that direct queries against sys_user_grmember don't automatically respect group inheritance—you need the platform APIs for that logic.
How It Connects to Other Concepts
- Assignment Rules — The primary mechanism for automatically routing work to groups through conditions that query
sys_user_grouprecords. Assignment engines evaluate group criteria and can assign to parent groups wheninclude_membersis enabled, making group hierarchy design critical for proper work distribution. - Access Control Lists (ACLs) — Group membership directly controls record-level security through ACL conditions that check if
gs.hasRole()orcurrent.assignment_groupmatches user group membership. The platform evaluates group-based ACLs on every database query, making group structure a performance consideration for large implementations. - Approval Workflows — Approval engines query
sys_user_groupto determine who can approve requests, with group managers automatically becoming approvers when themanagerfield is populated. Workflow activities can route approvals to entire groups or escalate up the group hierarchy when approvals time out. - Knowledge Base — Articles use the
kb_knowledge_basetable's group associations to control which groups can create, edit, and view knowledge articles. The platform automatically filters knowledge search results based on the user's group memberships and the article's assigned groups. - Service Catalog — Catalog items and categories reference
sys_user_grouprecords through entitlement scripts and user criteria to control who can see and order specific items. Fulfillment groups specified in catalog items determine where resulting requests and tasks get assigned. - Reporting and Dashboards — Reports frequently group data by
assignment_groupor filter records visible to specific groups through ACL-aware queries. Dashboard visibility and content filtering rely on comparing the viewer's group membership against report data and widget configuration.
Junior vs Senior Knowledge Gap
Junior admins and developers typically treat groups as simple containers for users, missing the critical distinction between assignment groups and security groups. They'll create flat group structures without understanding how include_members affects assignment and approval routing, leading to tickets that never reach the intended teams. The most common junior mistake is assuming that adding a user to a child group automatically makes them visible to assignment rules targeting the parent group—this only works when include_members is enabled on the parent. Juniors also frequently confuse groups with roles, trying to use groups for application access control instead of leveraging ServiceNow's role-based security model.
The mental shift happens when someone has built a complex multi-tier support model and understands that group hierarchy is about operational workflow, not organizational charts. Senior practitioners know that group design must consider assignment engine performance—deeply nested hierarchies with hundreds of child groups can cause significant performance issues during assignment evaluation. They understand the difference between operational groups (for ticket routing) and business groups (for reporting and organizational structure), often maintaining separate group trees for different purposes.
Senior architects know that sys_user_group membership is cached aggressively by the platform, and membership changes can take time to propagate through all system components. They've learned that direct manipulation of sys_user_grmember records through scripts bypasses important platform validation and can create data inconsistencies. They understand the performance implications of group-based queries and design reporting structures that minimize complex joins between user, group, and assignment tables. Most importantly, they recognize that group structure changes in production require careful coordination because they affect active assignments, approvals in flight, and user access patterns.
Experienced architects ask questions that juniors don't consider: How will this group structure perform when we have 50,000 users? What happens to in-flight approvals if we restructure this group hierarchy? How do we handle groups that exist in multiple business units but need different assignment behaviors? They've learned that group email addresses become critical integration points with external systems, and changing them breaks automated workflows that organizations may have forgotten about. They also understand the compliance implications of group membership, especially in regulated industries where group-based access controls become part of audit trails.
Quick Reference
- The
include_membersfield controls whether assignment and approval engines see child group members as part of the parent group—this is false by default and breaks many expected workflows. - Group managers defined in the
managerfield automatically become approvers for requests assigned to that group, even if they're not group members. - The platform caches group membership queries aggressively—use
gs.flushCache()after bulk membership changes to ensure assignment rules see the updates immediately. - Groups with
activeset to false still appear in assignment rule dropdowns but won't receive new assignments—this creates confusing behavior where rules exist but don't execute. - The
emailfield on groups is used by inbound email processing to automatically assign emails to the correct group, making it a critical integration point. - Assignment engines evaluate groups in the order they appear in assignment rules—if multiple groups match the same conditions, only the first match gets the assignment.
- The
cost_centerfield is automatically inherited by group members and affects financial reporting throughout the platform, including ITFM calculations. - Deleting a group that has historical assignment data breaks reporting—always inactivate groups instead of deleting them to preserve audit trails.
- The
descriptionfield appears in assignment rule UI and group selection widgets—clear descriptions prevent assignment mistakes in complex environments with similar group names. - Group membership through
sys_user_grmemberrecords supports inheritance through theinheritsfield, allowing complex membership hierarchies that mirror organizational structures.