Skip to content
Last updated

SCIM User Provisioning

The Firstup create user API allows you to integrate with SCIM-compliant providers. This SCIM-compliant data sync allows you to create one user record across multiple applications.

Overview

Create your single-user record in an external SCIM-compliant application, and sync with our API to create a Firstup user record with the same execution.

Firstup supports Just-in-Time (JIT). If your SCIM-compliant provider (e.g. an IDP like Okta) authenticates a user successfully, but they don't yet have a user account with us, Firstup automatically creates a registered user for the Employee Experience.

Review how our Create User API works before integrating.

SCIM User Provisioning From OKTA

These steps guide you through creating your Firstup users from OKTA. Your user record will be a SCIM-compliant record, linked to external applications.

These steps are designed to guide you with Firstup specific information. Refer to Okta's documentation for guidance on their external platform.

There is a current known Okta provisioning error. See our Okta User Group Provisioning Issue guidance below.

Configure Firstup as a SCIM Application in Okta

  1. Sign in to your Okta admin dashboard.
  2. Navigate to Applications > Create App Integration.
  3. Select SCIM 2.0 as the provisioning type.
  4. Enter the following details:
  • Base URL: region specific (see below)
  • Authentication Method: Bearer Token
  • API Token: Enter your Firstup API token
  1. Click Save to apply the settings.

Base URLs:

  • US1: https://auth.socialchorus.com
  • US2: https://auth.us2.onfirstup.com
  • EU: https://auth.onfirstup.eu

Enable SCIM Provisioning

  1. In your Okta admin console, go to Provisioning > Integration.
  2. Click Edit and check the box for Enable SCIM provisioning.
  3. Configure the following actions:
  • Create Users: Enabled
  • Update Users: Enabled (optional, based on your needs)
  • Deactivate Users: Enabled (optional, for user lifecycle management)
  1. Click Save.

Mapping User Attributes

  1. Go to Provisioning > To App.
  2. Click Edit to customize attribute mappings.
  3. Map Okta user attributes to Firstup's SCIM attributes as needed.
  4. Click Save Mappings and apply updates.

Testing User Provisioning

  1. Assign a test user to the Firstup SCIM app in Okta.
  2. Confirm that the user is successfully created in Firstup by checking your Firstup admin portal or using the SCIM API.
  3. If issues arise, review logs in Okta or inspect API responses from Firstup.

Firstup SCIM User Attributes

We recommend including these standard user attributes and the required attributes:

Firstup AttributeRequirementFormatSCIM AttributeDescription
universal_identifierRequiredStringusernameThe user's community login. This is the same for web and mobile experience.
first_nameRecommendedStringgivennameThe user's name. This is recommended especially if you're bulk provisioning users.
last_nameRecommendedStringfamilynameThe user's name. This is recommended especially if you're bulk provisioning users.
emails.valueRecommendedStringemails.valueThe user's email address (external to Firstup). This is recommended so the user receives their community invitation.

Refer to SCIM user attributes for the full table of SCIM compliant user attributes.

Custom User Attributes

Refer to custom user attributes for custom Firstup attributes.

Okta User Group Provisioning Issue

When provisioning a group via OKTA SCIM, if group members are included in the initial group creation (POST) request, OKTA immediately issues a GET to confirm creation.

This GET returns a 404 for 20 minutes, breaking sync.

The issue only occurs with OKTA, not other SCIM providers.

Workaround

  1. Create the group, and untick the memberships box.
  2. Activate the group, and push members. This results in an error.
  3. Remove the group.
  4. Then create thre group again without the users being pushed. This group needs exact same name.
  5. Untick the memberships box.
  6. Push users.

Why This Works

OKTA sometimes delays marking a group as "enabled" if members are included in the initial POST, causing immediate GETs to fail.

By separating group creation and member assignment, you avoid the timing/state issue that leads to 404 errors.