Automatic Identity Management (AIM) is a pull-based alternative to SCIM provisioning. Instead of waiting for your identity provider to push changes, Generate polls Okta or Microsoft Entra ID on a schedule and creates, updates, or deactivates accounts to match — no bearer token to rotate, and for Entra ID, no shared secret at all.
AIM is configured per SSO provider from Admin Settings → Access → Single Sign-on. Open the provider’s ⋯ menu, choose Manage user provisioning, and find the Automatic identity management row in the Provisioning step.
Automatic identity management row in the Manage user provisioning modal

AIM vs. SCIM

SCIMAIM
DirectionYour identity provider pushes changes to GenerateGenerate pulls from your identity provider on a schedule
CredentialOne-time bearer token you paste into your IdPOkta: API Services private key. Entra ID: no shared secret — a federated credential
LatencyNear real-timeEvery 5 minutes to 24 hours (you set the interval)
Nested groupsNot supported by Okta/Entra’s SCIM pushSupported — group membership is resolved transitively
You can run AIM and SCIM on the same provider, but Generate treats this as advisory-conflicting — a user tagged as SCIM-managed stays under SCIM’s control even while AIM is enabled, to avoid the two systems fighting over the same account. Pick one per provider where you can.

Enable AIM for Okta

1

Create an Okta API Services app

In the Okta Admin Console, go to Applications → Create App Integration → API Services. In the new app’s General Settings → Client Credentials, uncheck “Require Demonstrating Proof of Possession (DPoP) header in token requests.”
2

Open Configure AIM in Generate

On the Automatic identity management row, click Configure. In Step 1 — Configure identity provider, enter your Okta org URL, Client ID, optional Key ID, and the Private key (PEM) from the app you just created.
3

Test the connection

Click Test connection. On success, Generate shows “Connection tested successfully” and you can review a dry-run preview of how many users would be provisioned, updated, deactivated, or denied.
4

Enable AIM

Click Enable AIM. The first sync runs shortly after.

Enable AIM for Microsoft Entra ID

Entra ID’s version of AIM uses Workload Identity Federation instead of a shared secret — Entra verifies tokens signed by Generate using a public key it fetches from Generate’s own JWKS endpoint.
1

Open Configure AIM in Generate

On the Automatic identity management row, click Configure. Generate pre-fills Tenant ID and Client ID from the Microsoft Entra ID SSO provider you already set up, and shows a read-only Issuer and Subject for the next step.
If the Issuer field instead shows “Federation is not configured on this deployment,” ask whoever manages your Generate deployment to enable federation before continuing.
2

Add a federated credential in Entra

In the same App Registration used for SSO, go to Certificates & secrets → Federated credentials → Add credential, choose scenario Other issuer, and paste in the Issuer and Subject values shown in Generate’s modal. Leave Audience at its default.
3

Grant Graph API permissions

On the same App Registration, go to API permissions and add all four Application permissions: User.Read.All, Group.Read.All, GroupMember.Read.All, and Application.Read.All. Click Grant admin consent and confirm each shows as granted.
Federated credentials can take a few minutes to propagate — wait before testing the connection.
4

Test and enable

Click Test connection, then Enable AIM once it succeeds.

Scope and schedule

Both providers share the same scope and cadence controls:
  • Sync group IDs — a comma-separated list of group IDs to restrict which users AIM syncs. Leave empty to sync everyone in the directory.
  • Poll interval (seconds) — how often Generate checks for changes. Ranges from 300 seconds (5 minutes) to 86,400 seconds (24 hours); the default is 900 seconds (15 minutes).

Managing AIM after setup

Once enabled, the management screen shows:
  • Status — Active or Inactive, with Last polled, Next poll, Last success, and Last error timestamps.
  • Recent syncs — a table of each run’s result (Success, Partial, or Failed) and how many users were provisioned, updated, deactivated, or denied.
  • Account Access Denylist — add specific users, groups, or service principals that should be excluded from sync even if they match your scope, with a reason for the record. Removing a deny entry lets the next sync tick re-evaluate that subject.
Generate refuses to save a deny list that would deactivate the last remaining tenant admin.
Click Disable AIM to stop the scheduled poller at any time — accounts already provisioned by AIM stay in Generate; disabling doesn’t deactivate anyone.

AIM and just-in-time (JIT) provisioning

When AIM is enabled, the JIT toggle in the same Manage user provisioning modal locks to Enabled, since AIM already implies that identities are auto-provisioned.