All Collections
Smart Features
Other
AlexisHR's System for Cross-domain Identity Management (SCIM)
AlexisHR's System for Cross-domain Identity Management (SCIM)

Information about AlexisHR's SCIM API and how to implement and use it

Mio Mattsson avatar
Written by Mio Mattsson
Updated over a week ago

Click here to jump to the section of how to enable and use AlexisHR's SCIM.

Background

SCIM is a standard for provisioning and deprovisioning users and to update user information in multiple systems. SCIM has been widely adopted and AlexisHR being compatible with SCIM means we are compatible with a long list of services.

AlexisHR's SCIM is accessible via an API endpoint. Meaning you need a service to make use of SCIM. AlexisHR is currently tested to be used by services like Okta, Slack and Google Workspace.

AlexisHR has the possibility to be both a SCIM Client and a SCIM Server. We recommend using AlexisHR as a Client, since updates to employee information happen in Alexis first. An exception is our integration to Okta, where we act as a source of truth but are set up as Server. AlexisHR implements SCIM 2.0 as specified in the RFC documents from the Internet Engineering Task Force:

It is only possible to get information from AlexisHR via SCIM to create accounts in other services. We do not support syncing data back to AlexisHR. This is due to the sensitive nature of AlexisHR's data and changing this via external services could have negative effects to our service.

Prerequisites

  • You need to be an Owner in AlexisHR to be able to create a API-key

  • Make sure your account plan allows you to use SCIM

Supported Features

  • Import users (send AlexisHR data to external services)

Procedure

To use AlexisHR's SCIM API all you need is an API-key. If you can't find this section in your account, contact Customer Success or Support.

If you want a solution that handles more scenarios and enables IT to control their entire employee lifecycle we recommend looking into using our Okta app.


For the latest documentation, see docs.alexishr.com/scim

Authentication

Authenticate your account when using the API by including your secret Access Token in the request.

Authentication is performed by passing the Access Token in the Authorization header.

Authorization: Bearer <token>

Example

This example is if you make a request for a specific userID. Requests to /Users would return all users in your account.

Request

GET /scim/v2/Users/<userID>

Headers

Accept: application/scim+json
Accept-Charset: utf-8
Accept-Encoding: gzip
Authorization: Bearer <token>
Connection: close
Content-Type: application/scim+json; charset=utf-8
Host: api.alexishr.com
User-Agent: AlexisHR SCIM Integration

Response

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"id": "<userID>",
"userName": "[email protected]",
"name": {
"givenName": "Fname",
"familyName": "Lname"
},
"active": true,
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "1",
"organization": "Example AB",
"division": "Division 123",
"costCenter": "CODE-1",
"department": "Tech"
},
"meta": {
"resourceType": "User",
"created": "2021-04-19T09:48:04.317Z",
"lastModified": "2021-04-29T16:47:11.001Z",
"location": null
},
"displayName": "Fname Lname",
"profileUrl": "https://api.alexishr.com/files/upload/LUQVMYtUZcbwycnVUIVGBQboY0H8s9F4OrjgNyCGAzNnkBSDFGrKHntrTmCLE0E0.jpeg",
"title": "CEO",
"emails": [
{
"value": "[email protected]",
"display": "[email protected]",
"type": "work",
"primary": true
},
{
"value": "[email protected]",
"display": "[email protected]",
"type": "home"
}
],
"phoneNumbers": [
{
"value": "+4623456789",
"type": "work",
"primary": true
},
{
"value": "+4612345678",
"type": "home"
}
],
"photos": [
{
"value": "https://api.alexishr.com/files/upload/LUQVMYtUZcbwycnVUIVGBQboY0H8s9F4OrjgNyCGAzNnkBSDFGrKHntrTmCLE0E0.jpeg",
"type": "photo"
}
],
"addresses": [
{
"streetAddress": "Street 1",
"locality": "Stockholm",
"postalCode": "12345",
"country": "SE",
"type": "home",
"primary": true
}
]
}

Did this answer your question?