Bulk-create, update, activate, or deactivate users in a single request. The endpoint compares the submitted users against existing platform users and determines the correct action for each one automatically.
Identification
Each user is matched against existing users in this priority order:
- External ID
- Username
- Phone number *
If no match is found, the user is treated as new and will be created.
* Phone number caveat: Phone matching only applies to users who have only a phone number on the platform. If two users share a number but have different emails, two separate users are created.
Related Objects
If referenced objects don't exist yet, the endpoint can create them automatically (controlled by the config):
- Departments
- Job Profiles
- Permissions
Note: Existing objects are never updated - only created if missing.
Departments: Created departments are always flat. Parent-child relationships must be set up manually or via the dedicated department endpoints.
Request Size
There's no enforced limit, but requests with 2000+ users may time out. If that happens, processing continues server-side - but the request returns no response.
Config
The config object controls endpoint behavior: whether objects are auto-created, which fields can be overwritten, etc. See the request body section below for full details.
Response
| Field | Type | Description |
|---|---|---|
created | number | New users added to the platform |
updated | number | Existing users with any change applied |
activated | number | Previously deactivated users now activated |
deactivated | number | Previously active users now deactivated |
skipped | number | Users not processed (see below) |
errors | string[] | Per-user error messages |
Skipped users: A user is skipped if (1) they don't exist yet and
isActiveisfalse, or (2) they are missing all three of: email, phone, and username.No-op users: If a user already exists and has nothing to update, they are excluded entirely from all counts.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
New integration? Turn off communications first.If you're building a new integration where users don't yet exist on the platform, we recommend turning off all communications before syncing users. Otherwise, users may receive unintended emails during the initial import.
Learn how to manage user creation communications
