HelpDocs supports SCIM 2.0, so you can connect any identity provider (IdP) that can provision users over SCIM. That includes JumpCloud, OneLogin, Ping Identity, and Rippling. See Provision users with SCIM first.
There are separate guides for Okta and Microsoft Entra ID. Google Workspace isn't supported yet.
What you need
Setting | Value |
Base URL |
|
Authentication | Bearer token in the |
Token | A SCIM token from HelpDocs. It starts with |
Unique user identifier |
|
Your IdP may call the base URL the "SCIM base URL", "SCIM connector URL", or "Tenant URL". It may call the token an "API token", "Bearer token", or "Secret token".
Set it up
userName.Endpoints
All paths are relative to the base URL. Every request needs a valid token, including the discovery endpoints.
Endpoint | Methods |
| GET |
| GET |
| GET |
| GET, POST |
| GET, PUT, PATCH, DELETE |
| GET, POST |
| GET, PUT, PATCH, DELETE |
Responses use Content-Type: application/scim+json. Requests can use application/scim+json or application/json.
User attributes
Show the user attribute reference
Attribute | Notes |
| The HelpDocs user ID. Read only. |
| Required. The person's email address. |
| Optional. Your IdP's ID for the person. Unique in your account. |
| Optional. |
| Optional. Used as the person's name in HelpDocs. If it's missing, HelpDocs uses the given and family names. |
| Read only in practice. HelpDocs always returns the |
|
|
| Read only. The person's SCIM groups. |
HelpDocs ignores other attributes and extensions.
Group attributes
Show the group attribute reference
Attribute | Notes |
| The HelpDocs group ID. Read only. |
| Required. 1 to 255 characters. It can't be |
| Optional. Unique in your account. |
|
|
Every member must already be a member, or a deactivated member, of your HelpDocs account. Create the users first.
Group members get full access to the group in HelpDocs.
Linked groups
An admin can link an existing HelpDocs group to a group name before your IdP sends it. See Link existing groups.
When a
POST /Groupshas adisplayNamethat matches a link, ignoring case, HelpDocs doesn't create a new group. It takes over the linked group and returns its existingidwith a201.The group is renamed to the
displayName, and its members are replaced with themembersyou send. HelpDocs staff stay.If the request fails, the link and the group stay as they were.
A
DELETE /Groups/{id}on a linked group removes all its members but keeps the group in HelpDocs, so its article permissions stay. It no longer shows in SCIM.
A displayName that matches no link creates a new group, even if a HelpDocs group with that name already exists.
Filters
HelpDocs supports eq filters only, with one condition. and, or, and other operators aren't supported.
Resource | Filter attribute | Matching |
Users |
| Not case sensitive |
Users |
| Not case sensitive |
Users |
| Exact |
Groups |
| Not case sensitive |
Groups |
| Exact |
For example: GET /Users?filter=userName eq "sam@example.com".
Groups also accept excludedAttributes=members, which leaves members out of the response.
Paging
Use startIndex and count. startIndex starts at 1. count is 100 by default and can't be more than 100.
Updating with PATCH
PATCH is supported for users and groups, with add, remove, and replace operations.
For users, PATCH returns 200 with the updated user.
For groups, PATCH returns 204 with no body.
If any operation in a PATCH fails, nothing changes.
For users you can patch userName, externalId, displayName, name.givenName, name.familyName, and active. Paths can include the User schema URN or leave it out.
For groups you can add, remove, and replace members, and replace displayName and externalId. To remove one member, use the path members[value eq "<user id>"].
PUT replaces the attributes it includes and leaves the others as they are. A PUT without active never reactivates anyone.
What isn't supported
Bulk operations (
/Bulk)ETags and versions
Sorting
Password changes
Filters other than those listed above
Rate limit
Your account can make up to 600 SCIM requests a minute. This limit is shared by all of your account's tokens. Over the limit, HelpDocs returns 429 with a Retry-After header. Most IdPs wait and retry on their own.
Errors
Errors use the SCIM error format:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"status": "401",
"detail": "Invalid or missing SCIM token."
}Status | When |
| The request isn't valid. |
| The token is missing, wrong, rotated, or revoked. |
| SCIM isn't enabled for your account, your account is inactive, you've reached your user limit, or the change isn't allowed. The |
| The user or group doesn't exist in your account. |
|
|
| You've hit the rate limit. |
Some changes are always refused with a 403:
Deactivating or removing the account owner, or changing their email address.
Changing HelpDocs staff.
Adding or reactivating someone when your account is at its user limit.
Changing the email address of someone who also belongs to HelpDocs accounts outside your organization, or whose HelpDocs login SCIM didn't create.
Adding someone, or changing someone's email address, when the address doesn't match the account's Email domains.
While your account is inactive, every SCIM request is refused. While editing is locked on your account, your IdP can read users but can't change them.
A request that changes nothing doesn't write anything or add to your Audit log.