Okta and ServiceNow can be set up for Single Sign-On (SSO) and user provisioning, but the magic isn’t in the connection itself, it’s in how Okta’s identity management superpowers can automate ServiceNow’s user lifecycle, making it feel like your user base manages itself.

Let’s see this in action. Imagine a new employee, Alice, joins your company.

First, Alice is added to Okta. She’s assigned to a group, say "Sales Team."

{
  "id": "00g37a2b2c1d4e5f6",
  "type": "user",
  "profile": {
    "firstName": "Alice",
    "lastName": "Smith",
    "email": "alice.smith@example.com",
    "login": "alice.smith@example.com",
    "groups": ["Sales Team"]
  },
  "status": "ACTIVE"
}

Because of an Okta-ServiceNow integration, Alice’s user record is automatically created in ServiceNow within minutes.

This is what the ServiceNow user record might look like:

{
  "sys_id": "a1b2c3d4e5f678901234567890abcdef",
  "user_name": "alice.smith@example.com",
  "first_name": "Alice",
  "last_name": "Smith",
  "email": "alice.smith@example.com",
  "active": true,
  "roles": [
    {"name": "itil"},
    {"name": "snc_internal"}
  ],
  "department": "Sales"
}

Notice how the roles and department fields are populated. This mapping is configured in Okta. When Alice is later moved to the "Marketing Team" group in Okta, her department field in ServiceNow will update, and her roles might change too, all without manual intervention.

The Problem This Solves: Manually creating, updating, and deactivating user accounts in ServiceNow is a huge administrative burden. It’s error-prone, slow, and doesn’t scale. When a user leaves, their ServiceNow access needs to be revoked immediately for security. When they change roles, their permissions need to be adjusted. This integration automates all of it.

How it Works Internally: Okta acts as your "source of truth" for user identities. The Okta-ServiceNow integration uses SCIM (System for Cross-domain Identity Management) protocol. Okta periodically polls ServiceNow or, more commonly, ServiceNow makes API calls to Okta to fetch user data. When Okta detects a change (a new user, a deactivated user, a group membership change), it sends an update to ServiceNow via the SCIM API. ServiceNow then creates, updates, or deactivates the corresponding user record.

The Exact Levers You Control:

  • Provisioning Settings in Okta: This is where you define what gets sent to ServiceNow. You can choose to provision users based on group membership. If a user is assigned to the "ServiceNow Users" group in Okta, they will be provisioned.
  • Attribute Mappings: This is crucial. You map Okta user profile attributes (like firstName, lastName, email, department, groups) to ServiceNow user record fields (like first_name, last_name, email, department, roles). You can set up transformations, like mapping an Okta group to a ServiceNow role or department.
  • Deactivation/De-provisioning: When a user is deactivated in Okta or removed from a provisioning group, Okta tells ServiceNow to make the user inactive or even delete their record, depending on your configuration.

When you set up attribute mappings, you’re not just saying "Okta’s email goes to ServiceNow’s email." You can get granular. For example, you can map an Okta group called "ServiceNow Admins" directly to the admin role in ServiceNow. You can also define default values or use expressions. For instance, if a user’s department attribute in Okta is "Information Technology," you might map that to the IT department in ServiceNow. If the department attribute is missing in Okta, you can set a default value for the ServiceNow record, like "Unassigned."

Many people configure attribute mappings by selecting Okta attributes from a dropdown and then selecting ServiceNow attributes from another. However, the real power comes when you use Okta Expression Language. For example, you could create a mapping for the roles attribute in ServiceNow that looks at the user’s department and jobTitle in Okta. If the department is "Sales" AND the job title contains "Manager," you could assign the "sales_manager" role in ServiceNow. This allows for dynamic role assignment based on complex conditions within Okta, pushing that logic out of ServiceNow itself.

The next hurdle you’ll likely face is handling exceptions and ensuring data consistency when multiple systems are authoritative for different user attributes.

Want structured learning?

Take the full Okta course →