Each training record has a status representing the progress of the training, such as "Enrolled," "In Progress," "Completed," or "Did Not Complete." Data integration from a Learning Management System involves sending completed training information through webhooks or bulk POST
requests to the intelliHR API.
Navigation:
- How to Handle Training Record Data
- Training Statuses
- Creating a Training Record
- Updating a Training Record
- Find a Training by ID
- List all Training-Types
- Find a Training-Provider by ID
- List all Training Providers
- Update a Training
- Response
- Summary
How to Handle Training Record Data
intelliHR training records each hold a status. intelliHR makes it possible to track trainings for employees, including things like the course type, hours invested and so on.
Typically, if you’re building an integration to our trainings feature from your Learning Management System, the flow of data will look like this:
- Employee completes training in LMS
- Completed training/course webhook fires
- POST to save completed training information against employee in intelliHR
If you’re API doesn’t have webhooks or events, you can always perform multiple POST
requests in bulk on our API.
Training Statuses
intelliHR training records each hold a status. The status represent the progress of the training. A list of training statuses can be retrieved from the ⭧List all Training Statuses endpoint.
Statuses can be sent as an Id or name when creating or updating a training record. Current statuses include:
- Enrolled
- In Progress
- Completed
- Did Not Complete
💡 Training status will default to “Enrolled” if not provided, so if you are only sending completed trainings, we recommend hard coding the status to “Completed”
Creating a Training Record
Creating a training record in intelliHR via the API is done by making an HTTP POST
request to the /trainings
endpoint.
"url": https://api.intellihr.io/v1/trainings
"method": 'POST'
"headers": {
"Content-Type": 'application/json',
"Accept": 'application/json',
"Authorization": `Bearer ${apikey}`,
"Tenant": tenantname
}
"body": {
"coordinatorPerson": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "Bruce Wayne",
"primaryEmailAddress": "bruce.wayne@example.com",
"employeeNumber": "00001",
"autoIncrementIntellihrId": "1000"
},
"completionDate": "2015-03-01T22:30:00+00:00",
"cost": "600",
"currency": "AUD",
"hours": "12",
"job": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9"
},
"name": "Accounting Compliance 101",
"person": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "Bruce Wayne",
"primaryEmailAddress": "bruce.wayne@example.com",
"employeeNumber": "00001",
"autoIncrementIntellihrId": "1000"
},
"provider": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "HR Training Team"
},
"type": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "Soft Skills"
},
"status": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "Completed"
}
}
Updating a Training Record
To update a training record in intelliHR via the API is done by making an HTTP PATCH
request to the /trainings
endpoint. However, we need to find the training we want to update first making a GET
request.
Find a Training by ID
In order to make an update to a training record in intelliHR we first need to return the relevant training ID. There are a number of ways that you can do this via the API. This will return a single Training.
"url": https://api.intellihr.io/v1/trainings/{id}
"method": 'GET'
"headers": {
"Content-Type": 'application/json',
"Accept": 'application/json',
"Authorization": `Bearer ${apikey}`,
"Tenant": tenantname
}
List all Training-Types
Using the List All Training-Types endpoint, you can return all Training Types in your intelliHR tenant. The training-types endpoint will return the trainingId
. Using the endpoints powerful filters, you can perform a search of characteristics. One of the more reliable methods of searching for a trainingId
in intelliHR is to use the trainingName
filter, depending all the training names are unique in the system.
"url": https://api.intellihr.io/v1/training-types/{id}
"method": 'GET'
"headers": {
"Content-Type": 'application/json',
"Accept": 'application/json',
"Authorization": `Bearer ${apikey}`,
"Tenant": tenantname
}
Find a Training-Provider by ID
In order to make an update to a training-provider record in intelliHR we first need to return the relevant training-provider ID. There are a number of ways that you can do this via the the API.
List all Training Providers
Using the List All Training Providers endpoint, you can return all Training Providers in your intelliHR tenant. The training-providers endpoint will return the trainingProvidersId
. Using the endpoint’s filters, you can perform a search of training providers based on a number of parameters.
"url": https://api.intellihr.io/v1/training-providers/{id}
"method": 'GET'
"headers": {
"Content-Type": 'application/json',
"Accept": 'application/json',
"Authorization": `Bearer ${apikey}`,
"Tenant": tenantname
}
Update a Training
The update training endpoint allows you to make changes to the employee’s training record. This includes fields like training-types, training-providers, completionDate, cost etc. Using the personID we returned from the Find a training by ID endpoints, we can construct a HTTP PATCH
request to make these updates.
The following change requests that can be made on a person’s training can be found here.
Required field information include is the person’s id
as the resource identifier string.
💡 You only need to include the information you are changing in your request.
In the example below, we are using the POST
endpoint to update the employee’s completionDate
and Training Provider
.
"url": https://api.intellihr.io/v1/trainings/{id}
"method": 'PATCH'
"headers": {
"Content-Type": 'application/json',
"Accept": 'application/json',
"Authorization": `Bearer ${apikey}`,
"Tenant": tenantname
}
"body": {
"person": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "Bruce Wayne"
"primaryEmailAddress": "bruce.wayne@example.com",
"employeeNumber": "00001",
"autoIncrementIntellihrId": "1000"
},
"provider": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "HR Training Team"
},
"completionDate": "2015-03-01T22:30:00+00:00",
"status": {
"id": "8a5f3ea6-ea6b-4425-8a87-3c256bb7b6f9",
"name": "Completed"
}
}
Response
If the request is successful, you should receive a response confirming the training record has been updated. The response might look like this:
{
"status": "success",
"data": {
"id": "67890",
"profileId": "12345",
"title": "Advanced Python Training",
"description": "An in-depth course on advanced Python programming techniques.",
"date": "2024-07-01",
"durationHours": 8,
"location": "Sydney",
"trainer": "John Doe",
"cost": 200.0,
"completionStatus": "completed"
}
}
Summary
- Authenticate your request with the appropriate headers.
- Send a
POST
request tohttps://api.intellihr.io/v1/trainings
. - Include the training record details in the request body.
Ensure you replace placeholder values (like YOUR_API_KEY
and profileId
) with actual data relevant to your use case. For more details, refer to the intelliHR API documentation ⭧here.
💡Tip: For information on how to make use of the person and job API endpoints, contact your friendly intelliHR Integration Team! You can reach them by raising an intelliHR support request ⭧here.
For more information on how to raise support requests please visit these following 2 articles -
- ⭧Benefits of signing in to the intelliHR customer portal
- ⭧Tracking your organization's support requests