Okta & SCIM

Set up Okta for single sign-on (OIDC) and optional SCIM provisioning, so people are created, updated, and deactivated in Harriet automatically — and Okta groups map to Harriet roles.

⚠️

SCIM provisioning does not work until the Okta integration has been created in Harriet. Complete the OIDC setup below and select Save first, then configure SCIM in Okta.

Before you start

Create the OIDC app in Okta

  1. Create the app integration. In the Okta Admin Console, go to Applications → Applications, select Create App Integration, choose OIDC - OpenID Connect and Web Application.
  2. Set the redirect URI. Name the app (for example Harriet) and set the sign-in redirect URI to https://harriethq.com/bots/okta/callback/. Under controlled access, assign the users or groups who should sign in to Harriet.
  3. Check grant type and scopes. The app must allow the Authorization Code grant, and requested scopes must include openid, profile, and email.
  4. Note the credentials. Copy the Client ID and Client secret from the app's General tab, and keep your Okta domain handy (for example company.okta.com).

Configure the integration in Harriet

  1. Open Company settings → Integrations and add or open the Okta integration.
  2. Fill in the fields. Domain: your email domain (for example acme.com). Client ID: from the Okta app. Login Domain: your Okta org domain, used for SSO and API requests. Secret key: the Okta application client secret (not your Harriet API token).
  3. (Optional) Enable Disable other login methods (SSO only) if people should sign in only via Okta, and not with a password or the Slack, Google, or Microsoft buttons.
  4. Select Save. This creates the integration record SCIM needs.
  5. Test it. Open the Harriet login page, choose Okta, and sign in with a work email on your domain. If you see No user found with this email, the account is not in Harriet yet: provision it via SCIM or add it manually.

Enable SCIM provisioning

  1. Create a Harriet API token from My preferences → Manage API tokens. Copy it when shown; the full secret is not visible again later.
  2. Install the Harriet app from the Okta Integration Network (Okta Marketplace).
  3. Connect the API. In the Harriet app in Okta, go to Provisioning → Integration, enable API integration, paste the Harriet API token into API Token, and select Save.
  4. Enable provisioning events. Under Provisioning → To App, enable Create Users, Update User Attributes, and Deactivate Users.
  5. Assign people. Assign users or groups to the Harriet application in Okta so provisioning runs for the right population. No additional SCIM configuration is needed on the Harriet side.

Map Okta groups to Harriet roles

To assign Harriet roles automatically, push groups from Okta using these exact names (spaces and capitalization matter):

Okta group nameHarriet role
Harriet Owner GroupOwner
Harriet Admin GroupAdmin
Harriet Support GroupSupport (ticket access)
Harriet Access Personal Data GroupAccess Personal Data
Harriet Access Pay Data GroupAccess Pay Data
Harriet Manage Users GroupManage Users
Harriet Manage Knowledge GroupManage Knowledge
Harriet Manage Workflows GroupManage Workflows
Harriet Manage Embeds GroupManage Embeds
Harriet Access Billing GroupAccess Billing
Harriet Manage Integrations GroupManage Integrations
Harriet Export Data GroupExport Data
Harriet Manage API Keys GroupManage API Keys
Harriet Finance GroupFinance
Harriet Restricted Access GroupRestricted access (disables personal data and other sensitive features, for example for contractors)

Any other group name pushed from Okta creates a matching user group in Harriet without special role assignments, useful for building teams that profiles can target. After changing membership in Okta, use Push Now if people or roles do not update immediately.

What happens on deactivation

With Deactivate Users enabled, deactivating a person in Okta (or removing their assignment to the Harriet app) deactivates their Harriet account through SCIM. They can no longer sign in, including with any non-Okta method. This is the offboarding path: leavers lose Harriet access when they lose Okta access, with no separate checklist step.

Troubleshooting

SymptomWhat to check
SCIM never creates usersThe Harriet Okta integration was saved before SCIM was enabled in Okta; the token in Okta is a Harriet API token, not the OIDC client secret.
SSO redirect errorThe sign-in redirect URI in Okta exactly matches https://harriethq.com/bots/okta/callback/.
No Okta integration found for this domainDomain in Harriet matches the email domain people type at login.
No user found with this emailThe person exists in Harriet with that email (via SCIM or manually). Email matching is not case-sensitive.
Wrong roles after group pushOkta group names match the table above exactly.

For the other ways people sign in, see Single sign-on.