Skip to main content

How to set up SCIM integration in Sally AI

SCIM (System for Cross-domain Identity Management) lets you automatically connect Sally with your Identity Provider (IdP). This way, users and groups are always kept in sync without manual updates.

Quick navigation

  1. What is SCIM and why use it with Sally AI?
  2. How do I set up SCIM in Sally AI?
  3. Where do I enter SCIM credentials in my IdP?
  4. Which fields does Sally expect?
  5. Provider specific pitfalls
  6. What is the final configuration step in Sally?
  7. Error messages and what they mean
  8. What happens when users are deactivated or deleted?
  9. FAQ: SCIM in Sally

1. What is SCIM and why use it with Sally AI?

SCIM is an open standard for user and group provisioning. It allows you to automatically transfer account information from your Identity Provider to Sally.

Instead of manually creating, updating, or removing users, SCIM ensures that:

  • New employees get access to Sally immediately.
  • Existing user details stay up to date.
  • Users who leave your company lose access automatically.

By connecting once through SCIM, your IdP becomes the single source of truth. Groups and licenses can still be managed centrally in your IdP, while Sally always reflects the latest state. That means less admin work, fewer mistakes and consistent access for your team.


2. How do I set up SCIM in Sally AI?

  1. Open Settings at the bottom of the left sidebar.
Sally calendar view with the Settings entry highlighted at the bottom left of the sidebar
Figure 1: Open Settings
  1. Under Administration, open User Administration.
  2. Click SCIM integration above the member list on the right.
User Administration with the SCIM integration button in the top right highlighted
Figure 2: Open the SCIM setup
  1. The Connect SCIM integration panel opens on the right. Pick your system under Identity provider and click Set up SCIM, or Cancel to stop.
Connect SCIM integration panel with the identity provider selection and the Set up SCIM button
Figure 3: Choose the identity provider and start the setup
Available integrations
  • Microsoft Entra (Azure AD)
  • Google Workspace
  • Okta
  • OneLogin
  • PingOne
  1. Sally creates the credentials and opens SCIM management: Identity provider. Under Credentials you get the SCIM tenant URL and the Bearer token, each with an icon to copy it. Copy both, you need them in your identity provider in the next step.
SCIM management panel with the SCIM tenant URL and Bearer token credentials highlighted
Figure 4: Copy the SCIM tenant URL and the Bearer token
Continue in your IdP

Now it's time to enter these credentials in your Identity Provider.
Jump directly to the instructions for your tool:


3. Where do I enter SCIM credentials in my IdP?

Until this step is done, groups won't appear in Sally, since the IdP hasn't started syncing yet.

3.1 Microsoft Entra (Azure AD)

Follow these steps to connect Sally via SCIM in Microsoft Entra:

  1. In the Azure portal, go to "Enterprise Applications" and click on "+ New application".
Create new application
Figure 5: Create a new Enterprise Application
  1. Select "Create your own application".
Create your own application
Figure 6: Start creating your own application
  1. Give the app a name (e.g., Sally AI SCIM Integration) and choose "Integrate any other application you don't find in the gallery (Non-gallery)". Then click Create.
Name the application
Figure 7: Name the application and select non-gallery integration
  1. Once the application is created, open it and go to Provisioning.
Microsoft Entra enterprise application with the Provisioning menu opened
Figure 8: Navigate to the Provisioning menu
  1. Click on "+ New configuration".
Add new configuration
Figure 9: Start a new provisioning configuration
  1. In the new configuration screen, enter the Tenant URL and Secret Token you copied from Sally. Click "Test connection" and then Create.
Enter Tenant URL and Token
Figure 10: Add credentials from Sally and test the connection
  1. Before you start provisioning, check the attribute mapping. On the left under Manage, open Provisioning, then Attribute mapping, and switch to the Users tab. The list shows every mapping, with the source attribute from Entra on the left and the target attribute in Sally on the right.

  2. Find the row whose target attribute is externalId. By default the source attribute is mailNickname, which does not work for Sally. Click the pencil at the end of that row.

Attribute mapping list in Microsoft Entra with the row mailNickname to externalId and its edit pencil highlighted
Figure 11: Find the row with the target attribute externalId and open it with the pencil
  1. In Edit attribute mapping, change the Source attribute from mailNickname to objectId. The Mapping type stays Direct.
Edit attribute mapping dialog in Microsoft Entra with objectId selected in the highlighted source attribute field and externalId as the target attribute
Figure 12: Switch the source attribute from mailNickname to objectId
Why this step matters

externalId is the immutable identifier Sally uses to recognise a user at sign-in. If the alias mailNickname stays in place, the match never takes effect and provisioned users can end up with a second, empty account at sign-in. There is more on this under Why Sally needs this identifier.

  1. Leave Match objects using this attribute switched off. userName stays the matching attribute, a second one would break the matching.

  2. Confirm with OK and click Save above the mapping list.

  3. While you are in the list, check the first row as well: the target attribute userName should have userPrincipalName as its source attribute.

Changing this on a running setup?

A change to the mappings makes Entra run a full sync on its next cycle. All users that were already provisioned get their object ID delivered afterwards, so nobody has to be created again. Depending on your settings the next cycle starts within about 40 minutes. If you want it faster, use Provision on demand for a single user or Restart provisioning for everyone. To confirm the change went through, open an entry in the Provisioning logs in Entra and check the tab with the transferred attributes: externalId should now hold the object ID and no longer the alias.

  1. Now assign the groups that should be provisioned to Sally to this profile.
Note

Only groups are supported for provisioning to Sally, not single users.

  1. Finally, start the provisioning by clicking on "Start provisioning".
Microsoft Entra provisioning page with the 'Start provisioning' button highlighted
Figure 13: Enable provisioning to start syncing groups to Sally
  1. After provisioning has started, return to Sally and complete the setup by assigning the correct groups and licenses. You can find the detailed instructions in Final step in Sally.

3.2 Google Workspace

  1. Open Admin Console → Apps → Web and mobile apps.
  2. Add a new custom SCIM app.
  3. Enter Tenant URL and Token.
  4. Assign groups for provisioning.
  5. After provisioning has started, return to Sally and complete the setup by assigning the correct groups and licenses. You can find the detailed instructions in Final step in Sally.

3.3 Okta

  1. Go to Applications → select your Sally app.
  2. Open Provisioning tab.
  3. Enter Tenant URL and Token.
  4. Enable provisioning features (create, update, deactivate users).
  5. After provisioning has started, return to Sally and complete the setup by assigning the correct groups and licenses. You can find the detailed instructions in Final step in Sally.

3.4 OneLogin

  1. Navigate to Apps → SCIM Provisioning.
  2. Paste Sally's Tenant URL and Token.
  3. Map groups and save.
  4. After provisioning has started, return to Sally and complete the setup by assigning the correct groups and licenses. You can find the detailed instructions in Final step in Sally.

3.5 PingOne

  1. Go to Connections → Provisioning.
  2. Add a new SCIM connection.
  3. Provide Tenant URL and Token.
  4. Test and activate.
  5. After provisioning has started, return to Sally and complete the setup by assigning the correct groups and licenses. You can find the detailed instructions in Final step in Sally.

4. Which fields does Sally expect?

The instructions above show where you create the connection. For provisioning to actually run through afterwards, the attribute mapping in your identity provider has to match the fields Sally knows. This is where most errors come from: if a required field points to a source that is empty on some accounts, provisioning fails for exactly those accounts, and nobody knows where to look.

4.1 Required fields when a user is created

The two fields that matter

Sally needs two pieces of information from your identity provider, each in a specific form. If one of them is wrong, provisioning appears to run through, but the user is either not created at all or gets a second, empty account at their first sign-in instead of the account that was already provisioned.

1. userName has to be an email address.

Sally takes the value of userName one to one as the user's email address and stores it lowercased. The recommended source is the user principal name (userPrincipalName), because it is filled on every account.

If your provider sends something else here, for example a GUID or a user name without a domain, Sally can neither create the user nor find them again on the next lookup. The lookup is the quiet part: Sally correctly answers "no match" and nothing stands out in the log. The attempt to create the user does fail visibly, with userName must be a valid email address. in your provider's provisioning log, see Error messages.

2. externalId has to be the immutable identifier of the user.

That is the technical identifier your identity provider assigns to a user permanently. It changes neither when the name changes nor when the address changes. In Microsoft Entra ID it is the object ID (objectId), in the form f47ac10b-58cc-4372-a567-0e02b2c3d479.

Your provider sends this same identifier when a user signs in to Sally. Sally compares the two and identifies the user beyond doubt, no matter which address they type into the sign-in window and no matter whether their address has changed in the meantime.

Important for Microsoft Entra ID

Entra does not use the object ID here by default, it uses mailNickname. You have to switch this default to objectId once, otherwise the match never takes effect. The steps are part of the walkthrough for Microsoft Entra (Azure AD).

What Sally expects in externalId per provider

ProviderSet externalId toExample value
Microsoft Entra IDobjectId, the object ID of the userf47ac10b-58cc-4372-a567-0e02b2c3d479
Google Workspacethe immutable user ID from Google104928374651029384756
Okta, OneLogin, PingOnethe immutable user ID of that provider00u1a2b3c4d5E6f7G8h9
Different provider for sign-in and provisioning?

The match through the identifier works when the sign-in to Sally runs through the same provider that does the provisioning. If you provision through Okta, for example, but your users sign in with their Microsoft account, then these are two different identifiers. Sally falls back to comparing the email address automatically, you don't have to do anything for that.

All fields Sally reads when a user is created

SCIM fieldbecomes in SallyRequired
userNameemail address, lowercasedyes, has to contain an @
externalIdimmutable identifier on the membershipstrongly recommended, see above
name.givenNamefirst nameno
name.familyNamelast nameno
activeaccess blocked yes or nono, the default is active
Important

userName has to be mapped to a field that is filled on every account. The usual choice is the user principal name, in other words the primary email address. If the mapping points to a field like mail, every account without a mailbox fails, for example shared and resource accounts.

4.2 Why Sally needs this identifier

Without the identifier, the email address is all Sally has to recognize who is signing in. That works in most cases, but it has three gaps:

  • A user signs in with a different address than the one provisioned through SCIM, for example with an alias or with their old address after a rename.
  • An address is handed to a different user later on.
  • Your provider sends an address at sign-in that is not stored in the directory in that form.

In all of these cases Sally does not find the provisioned account and creates a new, empty one instead. That user then sees neither their license nor their role nor their recordings.

With the identifier this does not happen. Sally compares the identifier from the sign-in with the externalId from provisioning and lands on the right account directly. The address is then only the fallback.

If the externalId is recognizably not an immutable identifier, an alias or an address for example, Sally does not use it for the sign-in and keeps working through the address comparison. Nothing breaks, you only lose the extra certainty.

4.3 Fields Sally accepts and ignores

Sally accepts the following fields but deliberately does not store them:

  • phoneNumbers
  • all fields of the enterprise extension, for example department, manager and employeeNumber

There is no error message for these, the values are simply not stored because Sally has no fields for them. So don't go looking for data that was never meant to arrive.


5. Provider specific pitfalls

5.1 Microsoft Entra (Azure AD)

  • externalId points to mailNickname. That is Entra's default and the most common reason why a user gets a second account at sign-in although they were provisioned through SCIM long ago. mailNickname is the alias in front of the @ and changes along with a rename. Switch the source attribute to objectId, see steps 7 to 12 under Microsoft Entra (Azure AD).
  • userName is mapped to a technical identifier. If userName holds a GUID or a short code instead of an email address, Sally cannot create the user and never finds them again on later lookups. In your provider's log the lookup does not look like an error, because Sally correctly answers "no match".
  • The mapping for userName has to point to the user principal name. If it points to mail, every account without a mailbox fails.
  • Entra additionally sends the schema urn:ietf:params:scim:schemas:extension:enterprise:2.0:User. That is normal, Sally accepts it and ignores it.
  • The scope is usually set to "sync only assigned users and groups". A group that is mapped but not assigned to the enterprise application is not transferred.
  • After a correction, the change only takes effect on the next run, so after roughly 40 minutes. Objects that keep failing go into quarantine, and then only a restart of the provisioning helps.

5.2 Google Workspace

In your mapping, check that userName points to the primary email address and that this field is filled on all provisioned accounts.

5.3 Okta

In your mapping, check that userName points to the primary email address and that this field is filled on all provisioned accounts.

5.4 OneLogin

In your mapping, check that userName points to the primary email address and that this field is filled on all provisioned accounts.

5.5 PingOne

In your mapping, check that userName points to the primary email address and that this field is filled on all provisioned accounts.


6. What is the final configuration step in Sally?

After you have added the Tenant URL and Token to your Identity Provider and started the provisioning, the connection between your IdP and Sally is live.

What is left is to finish the setup in Sally and say which groups and licenses count. Users coming from your IdP then get the right role and license on their own.

Sally lets you assign multiple IdP groups per role and per license tier. You don't have to merge everything into one big umbrella group: you can map several groups from your IdP to the same category and even combine categories (for example, the same group can activate users as standard users and grant them a Pro license).

Follow these steps:

  1. Open User Administration and click Manage SCIM in the top right corner. That is what the button is called once SCIM is set up.
  2. Under Active users + admin role, map your IdP groups to Sally roles:
Info
  • Active Sally user group → Select one or more groups whose members should get access as standard users.
  • Admin group → Select one or more groups whose members should have administrator rights in Sally.
  1. Under License assignment, link IdP groups to the Starter license, the Pro license, or the Enterprise license. You can pick multiple groups per license tier, so membership in any of them controls which license users receive in Sally.
SCIM management panel with the sections for active users plus admin role and license assignment
Figure 14: Map groups to roles and licenses
Important

If the selected groups combined contain more users than the number of available licenses, Sally will automatically purchase additional licenses.
These licenses are billed immediately, so make sure your group sizes align with your subscription plan.

The other way round also matters: a user who is in no license group is still created, but receives no license and cannot record. So make sure every group that gets access is also mapped to a license tier.

  1. Scroll further down the panel to the Behavior section. Send welcome email on creation decides whether Sally sends newly provisioned users a welcome email.
  2. SCIM sync active lets you pause the connection to your identity provider without resetting the token.
  3. Click Save to apply the configuration. As the note at the top of the panel says, saving also applies the changes to existing memberships.
Lower part of the panel with the Behavior section, the welcome email and SCIM sync switches, and the Save button
Figure 15: The Behavior section and the Save button
No groups showing yet?

As long as no groups have arrived from your identity provider, every field reads: "No teams in this organization. Create a team first or wait for the next SCIM group sync from your IdP."

  1. After saving, all members provisioned via SCIM will appear in your user list in Sally.
User Administration with three new members in the Invited status and without a license
Figure 16: New members in the list, still without a name and a license

The new people show up without a name at first, with Invited in the Status column and None under License. Name and license fill in once someone accepts the invitation.

Recommendation: How to structure your groups

Because Sally supports multiple groups per category, you don't need one oversized group for the whole company. A few patterns that work well in practice:

  • Group by department or team: Keep separate IdP groups for Sales, Marketing, Support, etc. Assign all of them as Active Sally user group and, if they all use the same license, also as the matching license group. Adding a new team later is just a new group, not a new configuration.
  • Use a dedicated admin group: Keep Sally admins in a small, focused group (e.g. Sally Admins or IT Leads). Members of that group get admin rights on top of their regular user role.
  • Model license tiers as explicit groups: Create IdP groups like Sally Starter, Sally Pro, Sally Enterprise. Upgrading a user is then a single membership change in your IdP, with no changes needed in Sally.
  • Combine both approaches: Use departmental groups to control who gets access, and a smaller tier group (e.g. Sally Pro) on top to upgrade selected power users to a higher license.

The more granular your groups, the easier it is to change access or licenses later, entirely from within your IdP.


7. Error messages and what they mean

If provisioning fails, your identity provider shows Sally's response in its provisioning log. These are the messages Sally returns and what is behind each one.

MessageMeaningWhat to do
userName is a required field.the field is missing from the requestcheck the mapping, the source has to be filled on every account
userName must be a valid email address.value without an @the mapping points to a name field instead of the address
displayName is a required field.group without a namecheck the group mapping
User … not in directory.the user does not belong to this organizationusually an outdated token
DirectoryId in URL does not match the token.address and token belong to different organizationscopy both again, together

8. What happens when users are deactivated or deleted?

8.1 Deactivating

If your directory sets a user to inactive, their access to this organization is blocked. The account and its recordings are kept. Set the user back to active and access returns immediately.

8.2 Removing someone from a SCIM group

Sally withdraws access. The person is blocked and loses their license, so they can no longer sign in, and the license seat is free for someone else right away.

Their content stays: recordings, summaries and tasks belong to the company account, not to the individual person. Nothing is deleted.

If you add the person back to the group later, they get access and license back automatically on the next sync. You don't have to fill anything in again.

The same applies if you remove the person from the Sally application in your identity provider entirely, or if you delete the group there.

Who this does not affect

  • Members you created in Sally by hand. The rule applies exclusively to members who came in through SCIM. Anyone who never came through SCIM stays untouched and is still managed by your Sally administrators.
  • The owner of the company account. The owner is never locked out. Otherwise a change in your identity provider could lock you out of your own account.

8.3 Keeping someone in Sally anyway

Change what you need on that person by hand: status, role or license in User Administration. As soon as you do that, Sally keeps them as a local member permanently. The directory does not touch them afterwards, so your setting stays and is not overwritten on the next sync. In the Source column they are listed as Local from then on.

The other way round it is locked: as long as someone is in a SCIM group, role, license and status come from your directory, and that is where you change them. A manual change in Sally would otherwise be gone again by the next sync.

If the person comes back into a group in the directory later, SCIM takes them over again.

8.4 Deleting a person along with their data

This is deliberately a separate, manual step and never happens automatically. User Administration has Remove permanently for it. If the person is not a member of any other Sally account afterwards, their user account is deleted irrevocably. This cannot be undone, and your directory will create them as a new user on its next run.

8.5 Which roles the directory can assign

An owner is never managed through the directory. Sally only assigns administrator and member through it. That way an account always keeps someone who cannot be locked out by a change in an external system.


9. FAQ: SCIM in Sally

9.1 What happens if there are more users in a group than available licenses?

If the groups assigned to a license tier contain, in total, more users than you currently have licenses for, Sally will automatically purchase additional licenses.
These licenses are billed immediately to ensure all users get access.


9.2 How does license priority work if a user is in multiple groups?

When a user belongs to multiple SCIM license groups, Sally will always assign the lowest license tier. For example: if a user is in both the Starter group and the Pro group, the user will only receive a Starter license.


9.3 What happens if a user is in no license group at all?

A user who is in none of the license groups is still created in Sally and can sign in, but receives no license. Without a license they cannot record.
So check that every group you assign as an active Sally user group is also mapped to a license tier.


9.4 Can I assign single users instead of groups?

No. SCIM provisioning in Sally works exclusively with groups from your Identity Provider.
This ensures consistency and avoids manual exceptions.


9.5 Do I need to reconfigure SCIM if new groups are added in my IdP?

No. As long as SCIM is active, any new groups created in your Identity Provider can be added directly in Sally under Active users + admin role or License assignment without restarting the setup. You can map as many groups as you need per category, so new teams or license tiers only require picking them in the multi-select.


9.6 How often does the sync run?

Provisioning runs automatically in cycles (based on your IdP's schedule). In Microsoft Entra, for example, provisioning typically runs every 40 minutes.
Changes in your IdP (like adding or removing users) will appear in Sally after the next sync.


9.7 Can I disable SCIM once it's active?

Yes, and there are two ways to do it, both in the SCIM management panel:

  • Switch off SCIM sync active in the Behavior section. That pauses the connection while the token stays in place.
  • Use Disconnect at the bottom of the panel. That deletes the provider, the token, and all group mappings.

Already provisioned users remain in Sally in both cases until you remove them manually. After disconnecting, your identity provider no longer controls status changes in Sally. What happens to individual users on deactivation and deletion is covered in Deactivating and deleting.


9.8 Why does a user get a new, empty account at sign-in?

Most likely because externalId does not hold the immutable identifier of the user, or because they sign in with a different address than the one that was transferred. Switch externalId to the object ID as described under Microsoft Entra (Azure AD) and let provisioning run once. If the second account already exists, get in touch with us and we will move the sign-in over to the right account.


9.9 Do I have to create my users again after switching externalId?

No. A change to the mappings makes Entra run a full sync automatically, and all existing users get the identifier delivered afterwards. With other providers you may have to start a full sync by hand once.


9.10 We provision through Okta but sign in with Microsoft. What do we have to do?

Nothing. The two identifiers are different in that case, Sally detects this and works through the comparison of the email address. Do pay extra attention that the address in userName is the same one your users sign in with.


9.11 What happens if I remove someone from a SCIM group?

Sally blocks their access and frees the license seat, but keeps all content. Adding them back to the group restores access and license on the next sync. The details, including the exceptions and how to keep someone as a local member, are in Deactivating and deleting.