OpenAssistantAPI

SCIM provisioning

Automatically provision and deprovision users as your directory changes.

What SCIM does

SCIM (System for Cross-domain Identity Management) lets your identity provider push user and group changes to the platform automatically. When you hire someone, they get an account. When someone leaves, their access is revoked. You manage users once — in your IdP — and the platform stays in sync.

Without SCIM, you provision users manually or rely on just-in-time SSO provisioning. SCIM is the better choice if you have more than a handful of users, or if you need users to be placed in specific teams before their first login.

Prerequisites

  • SSO must be configured first. SCIM supplements SSO — it handles provisioning, SSO handles authentication. See the SSO guide.
  • Your IdP must support SCIM 2.0. Major providers that do: Okta, Microsoft Entra, JumpCloud, OneLogin.

Enabling SCIM

  1. Go to Organization → SSO → SCIM.
  2. Copy the SCIM endpoint URL — it looks like https://app.openassistant.us/api/scim/v2.
  3. Generate a SCIM bearer token by clicking Generate token. Store this somewhere safe — it won't be shown again.
  4. In your IdP, configure SCIM provisioning with the endpoint URL and bearer token.
  5. Enable SCIM in your IdP and run an initial sync.

The initial sync will create accounts for all users in the assigned group or application in your IdP.

What gets synced

IdP eventWhat the platform does
User assigned to appCreates account, sets name and email
User profile updatedUpdates name
User unassigned or deprovisionedSuspends access
Group assignedMaps to a team (if team sync is configured)
Group membership changedAdds or removes user from the mapped team

Email addresses are immutable — SCIM cannot change a user's email after the account is created. If an email changes in your IdP, a new account is created and the old one is suspended.

Team sync

If your IdP sends group membership, you can map IdP groups to teams in Organization → SSO → SCIM → Team mapping. Add a row per group:

IdP group nameTeam
engineeringEngineering
salesSales

Users added to an IdP group are automatically added to the mapped team. Users removed from the group are removed from the team. Team membership managed via SCIM takes precedence over manual team assignment in the dashboard.

Deprovisioning vs deletion

When a user is deprovisioned via SCIM, their account is suspended — they can no longer log in, but their tasks, conversations, and data are retained. This is intentional: task history often has compliance or handoff value.

To fully remove a user (not just suspend them), call the deprovision endpoint directly by their email:

curl https://app.openassistant.us/api/users/deprovision \
  -X POST \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]", "teamId": "<teamId>" }'

This won't go through if the user is their organization's only admin, or owns a team with other active members — reassign that first, then retry. Once it succeeds, the user is removed from the team, and if they have no other team memberships left, their account is deleted entirely.

Troubleshooting

Users aren't being created after sync Check that the IdP application is assigned to the correct users or groups, and that the SCIM token in your IdP matches the one shown in Organization → SSO → SCIM.

Users are suspended but shouldn't be The platform suspends any user your IdP marks as inactive or unassigns from the application. Check the assignment rules in your IdP — it's usually a group membership or activation status issue there, not in the dashboard.

Group sync isn't mapping to teams Make sure the group names in Organization → SSO → SCIM → Team mapping match exactly (case-sensitive) the group display names your IdP sends.