Learn how to use the API Feeds to integrate your training data with your HR System.
Please Note
The API V2 feeds are not yet available, this documentation is available now to support any preparation for future integrations using the feeds.
Integrating your accessplanit platform with your or your customers' HR software can significantly enhance workforce management and customer relationship capabilities. By synchronising your systems, you can ensure that customer data (including training records, certifications, and employee profiles) seamlessly integrates with HR software. This integration reduces duplicate data entry, and enhances data accuracy, which could save your team hours and greatly reduce the chance of human error.
Automating the transfer of customer training and certification data to HR systems streamlines employee onboarding, development, and compliance tracking processes. Real-time updates on employee training progress and qualifications enable HR teams to make informed decisions quickly, ensuring regulatory compliance and workforce readiness!
As your organisation or your customers' businesses grow, the scalability of this integration supports handling increasing volumes of customer data and employee records efficiently. This automation not only simplifies administrative tasks but also enhances customer satisfaction by providing comprehensive and integrated workforce management solutions.
While there are a number of different ways to integrate your training data between your accessplanit platform and your HR software, this guide will focus on how to complete this integration using the accessplanit API v2 feeds. APIs give you real-time access to your data, they keep information consistent, and can grow with your needs, supporting custom data elements. Overall, APIs are a reliable and flexible way to link different systems and services together, making everything work together more easily.
Follow this page to learn the steps to integrate the training data in your accessplanit platform with your HR software using the accessplanit v2 API Feeds.
1. Prerequisites
Before you start planning the details your integration, we recommend that you make sure you have everything you need for an integration
The following steps should be followed:
Ensure your meeting software supports Integrations via an API
Explore your options for how your integration will be created (who will be developing it)
Ensure your connecting software supports Integrations via an API
Before you begin planning your integration, we recommend confirming that your HR software will support the integration.
To confirm that an integration is possible, you should work with an internal expert or product owner, or your key contact from your HR software. Here are several areas to confirm:
Check that the software is capable of supporting API integrations, this includes ensuring it can handle HTTP requests, and it supports data in a JSON data format.
Check if there are any additional licences/fees or permissions required to set up an integration using APIs
Explore your options for how your integration will be created (who will be developing it)
Review your options for who could develop this integration for you; you may have an internal development team, an external third party that you have worked with before, or your meeting software supplier may have developer recommendations or be able to complete the integration themselves.
Here are a few of the considerations when deciding who will work on your integration:
Experience Working with a developer who has worked with HR systems previously is a benefit, particularly if they have experience with your specific HR software and/or accessplanit. They should be proficient in JSON and REST.
Quote and pricing models While it is unlikely that you will be able to request a quote at this stage, understanding their pricing model is important to know, some developers will charge a fixed price for a project, whereas others will charge a daily rate. Ensure that you are aware of what this quote includes, as some quotes also factor in additional services and support.
Reputation/reviews If it is your first time working with a third party developer, you may wish to ask for their reviews and/or testimonials.
Development process Understanding what methodology the developer follows helps to ensure their approach will fit into your process, for example if you need to be able to re-evaluate approaches and iterate throughout the project a ‘waterfall’ approach would not be suitable.
Timeline Understanding the developers availability and lead times is the first step to knowing if they will be able to deliver within your project timeframes, once you have scoped the integration during the next phase in 'planning' you will be able to confirm this.
Support Understand what support will be available to you post-launch (this should include technical assistance and bug fixes), and whether there are any additional charges for these services.
2. Planning your integration
There are two key steps for planning your website integration:
Understand common set-ups and best practice
Define what and how data will be shared within your integration
Understand common set-ups and best practice
Depending on your requirements, there are up to [x] key processes that can be automated for [what] integrations:
User details integration When you have new employees (Users) or changes to your employees, such as change of contact details or job titles, these changes should be shared between your accessplanit platform and your HR system.
Delegate integration Details of the Delegates that register for their Courses in your accessplanit platform can be passed to your HR system, alongside the details of these Courses such as the date/time and location.
User Award integration User Award integration is often two-way between a TMS (such as accessplanit) and a HR system, details of targeted awards for Users can be sent from the HR system to your accessplanit platform, and as Delegates complete their Awards the details of these completions and expiry dates are provided back to the HR system for visibility.
Job Role integration Sharing Job Role details, including which Users have been assigned certain Job Roles between your HR system and your accessplanit platform.
Here are recommendations for each of the above processes, including example filters and data to use with each. For your integration planning, please note these examples are not exhaustive and additional data is available in each of the available endpoints.
a. New User is created in accessplanit
Process triggered
Automatically (via web-hooks), as soon as a User has been created
Filter criteria
Only Users with a status of ‘Enabled’ or ‘New’
Example optional filter: Only Users allocated to a specific Companies
Data included
Use accessplanit API v2 endpoints:
User
Recommended data fields to include:
ID (Unique ID of the User e.g. jasmit)
Forenames (User’s first name e.g. James)
Surname (User’s last name e.g. Smith)
ExternalID (ID of the User as it is stored in another platform, this could be the ID used for the User in the HR system)
MainCompanyID (Unique ID of the User’s Main Employment Company e.g. DOEV908E)
MainCompanyName (Name of the User’s Main Employment Company e.g. Douglas Group)
MainRoleID (ID of the User’s main level of access in the accessplanit platform)
MainRoleLabel (Label of the User’s main level of access in the accessplanit platform)
JobTitle (free text label for the User’s job)
Status (Status of the User e.g. Enabled)
DateCreated (Date & Time the User was created e.g. 2025-02-22T11:01:38.17)
FullAddress (User’s main address e.g. 1 Main Street<br />Lancaster<br />Lancashire<br />United Kingdom<br />LA1 1AB)
Email (User’s main email address)
Phone (User’s phone number)
Mobile (User’s mobile number)
MarketingOptIn (If the user has opted into receive marketing communications e.g. true)
b. New User is created in the HR system
Process triggered
Automatically, as soon as a the User is created in the HR system
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints, make a POST request to:
User
Recommended data fields to include:
Forenames (User’s first name e.g. James)
Surname (User’s last name e.g. Smith)
ExternalID (ID of the User as it is stored in another platform, this could be the ID used for the User in the HR system)
MainCompanyID (Unique ID of the User’s Main Employment Company e.g. DOEV908E)
MainRoleID (ID of the User’s main level of access in the accessplanit platform)
JobTitle (free text label for the User’s job)
Status (Status of the User e.g. Enabled)
Address (User’s Main address e.g. 1 Main Street)
Town (User’s Main Town e.g. 1 Lancaster)
County (User’s Main County e.g. Lancashire)
Postcode (User’s Main Postal/Zip code e.g. LA1 1AB)
Country (User’s Main Country e.g. United Kingdom)
Email (User’s main email address)
Phone (User’s phone number)
Mobile (User’s mobile number)
MarketingOptIn (If the user has opted into receive marketing communications e.g. true)
c. Existing User is updated in accessplanit
Process triggered
Automatically (via web-hooks), as soon as a User has been updated
Filter criteria
Only Users with a status of ‘Enabled’ or ‘New’
Example optional filter: Only Users allocated to a specific Companies
Data included
Use accessplanit API v2 endpoints:
User
Recommended data fields to include:
ID (Unique ID of the User e.g. jasmit)
Forenames (User’s first name e.g. James)
Surname (User’s last name e.g. Smith)
ExternalID (ID of the User as it is stored in another platform, this could be the ID used for the User in the HR system)
MainCompanyID (Unique ID of the User’s Main Employment Company e.g. DOEV908E)
MainCompanyName (Name of the User’s Main Employment Company e.g. Douglas Group)
MainRoleLabel (Label of the User’s main level of access in the accessplanit platform)
Status (Status of the User e.g. Enabled)
JobTitle (free text label for the User’s job)
DateUpdated (Date & Time the User was updated e.g. 2025-02-22T11:01:38.17)
FullAddress (User’s main address e.g. 1 Main Street<br />Lancaster<br />Lancashire<br />United Kingdom<br />LA1 1AB)
Email (User’s main email address)
Phone (User’s phone number)
Mobile (User’s mobile number)
MarketingOptIn (If the user has opted into receive marketing communications e.g. true)
d. Existing User is updated in the HR system
Process triggered
Automatically, as soon as a the User is updated in the HR system
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints, make a PUT request to:
User (using the Unique ID of the User e.g. jasmit)
Recommended data fields to include:
ID (Unique ID of the User e.g. jasmit)
Forenames (User’s first name e.g. James)
Surname (User’s last name e.g. Smith)
ExternalID (ID of the User as it is stored in another platform, this could be the ID used for the User in the HR system)
MainCompanyID (Unique ID of the User’s Main Employment Company e.g. DOEV908E)
MainRoleID (ID of the User’s main level of access in the accessplanit platform)
Status (Status of the User e.g. Enabled)
JobTitle (free text label for the User’s job)
Address (User’s Main address e.g. 1 Main Street)
Town (User’s Main Town e.g. 1 Lancaster)
County (User’s Main County e.g. Lancashire)
Postcode (User’s Main Postal/Zip code e.g. LA1 1AB)
Country (User’s Main Country e.g. United Kingdom)
Email (User’s main email address)
Phone (User’s phone number)
Mobile (User’s mobile number)
MarketingOptIn (If the user has opted into receive marketing communications e.g. true)
e. User makes a Course request in accessplanit
Process triggered
Automatically (via web-hooks), as soon as…. meets the filter criteria
Filter criteria
Only Delegates with a status of Provisional
Only Delegates registered onto Courses with a start date in the future
Data included
Use accessplanit API v2 endpoints:
UserCourseDate
ManagerUserCourseDateAuthorisation (provides an overview of Delegates requiring authentication)
Recommended UserCourseDate data fields to include:
CourseDateID (Unique ID of the Course Date e.g. 12368)
CourseDateDetailsLabel (Label/name and date of the Course e.g. First Aid at Work: 31/01/2025 09:00 - 19:55)
CourseDateStartDate (Start date & time of the Course e.g. 31/01/2025 09:00 - 19:55)
ID (Unique ID of the Delegate e.g. pebrid~12368)
UserID (Unique ID of the User e.g. pebrid)
UserFullName (Full name of the User/Delegate e.g. Peter Bridge)
CandidateEmailAddress (Email address of the User/Delegate e.g. pd1987@email.com)
Status (Delegate status on the Course e.g. ‘Completed’)
CompanyID (Unique ID of the Company/Account the User has booked with)
CompanyName (Name of the Company/Account the User has booked with)
ManagersEmailAddresses (Email address of the User’s manager(s))
DateCreated (Date & Time the Delegate was created, e.g. 2025-02-22T11:01:38.17)
Description (Name of the Delegate, Course, and Course Date, e.g. James Smith- First Aid at Work: 06/12/2025 09:00 - 07/12/2025 13:15)
Recommended ManagerUserCourseDateAuthorisation data fields to include:
UserID (Unique ID of the User e.g. pebrid)
UserForenames (First name of the User/Delegate e.g. Peter)
UserSurname (Last name of the User/Delegate e.g. Bridge)
CourseName
CourseDateStartDate
CourseDateEndDate
VenueName
f. Course request is approved in the HR system
Process triggered
Automatically, as soon as a the request is approved or rejected in the HR system
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints, make a PUT request to:
UserCourseDate
Recommended UserCourseDate data fields to set:
Status (set to ‘Booked’)
g. Delegate is registered onto a Course in accessplanit
Process triggered
Automatically (via web-hooks), as soon as a Delegate has been registered
Filter criteria
Recommended criteria:
Only Delegates with a status of ‘Booked', ‘Provisional’, ‘In Progress’, and 'Completed’
Example optional filter: Only Delegates allocated to a specific Companies
Example optional filter: Only Delegates allocated to a specific Training Providers
Example optional filter: Only Delegates allocated to a specific Courses
Data included
Use accessplanit API v2 endpoints:
UserCourseDate
Recommended data fields to include:
CourseDateID (Unique ID of the Course Date e.g. 12368)
CourseDateDetailsLabel (Label/name and date of the Course e.g. First Aid at Work: 31/01/2025 09:00 - 19:55)
CourseDateStartDate (Start date & time of the Course e.g. 31/01/2025 09:00 - 19:55)
ID (Unique ID of the Delegate e.g. pebrid~12368)
UserID (Unique ID of the User e.g. pebrid)
UserFullName (Full name of the User/Delegate e.g. Peter Bridge)
CandidateEmailAddress (Email address of the User/Delegate e.g. pd1987@email.com)
Status (Delegate status on the Course e.g. ‘Completed’)
DateCreated (Date & Time the Delegate was created, e.g. 2025-02-22T11:01:38.17)
Description (Name of the Delegate, Course, and Course Date, e.g. James Smith- First Aid at Work: 06/12/2025 09:00 - 07/12/2025 13:15)
h. Delegate is updated in accessplanit
Process triggered
Automatically (via web-hooks), as soon as the Delegate meets the filter criteria
Filter criteria
The Delegate’s ‘date updated’ has changed
Example optional filter: Only Delegates allocated to a specific Companies
Example optional filter: Only Delegates allocated to a specific Training Providers
Example optional filter: Only Delegates allocated to a specific Courses
Data included
Use accessplanit API v2 endpoints:
UserCourseDate
Recommended data fields to include:
CourseDateID (Unique ID of the Course Date e.g. 12368)
ID (Unique ID of the Delegate e.g. pebrid~12368)
UserID (Unique ID of the User e.g. pebrid)
UserFullName (Full name of the User/Delegate e.g. Peter Bridge)
CandidateEmailAddress (Email address of the User/Delegate e.g. pd1987@email.com)
Status (Delegate status on the Course e.g. ‘Cancelled’)
DateCreated (Date & Time the Delegate was created, e.g. 2025-02-22T11:01:38.17)
Description (Name of the Delegate, Course, and Course Date, e.g. James Smith- First Aid at Work: 06/12/2025 09:00 - 07/12/2025 13:15)
i. User is Targeted to complete an Award
Process triggered
Automatically via web-hooks, as soon as the User is allocated the User Award Target
Filter criteria
UserAwards with a status of ‘Target’ only
Example optional filter: Only UserAwards with a target date in the future
Data included
Use accessplanit API v2 endpoints:
UserAward
Recommended data fields to include:
AwardID (Unique ID of the Award e.g. HOWTOILEoB)
AwardLabel (Label of the Award, e.g. Safety at Heights Level 1)
TargetDate (Date the user is targeted to achieve the Award by e.g. 2026-06-25T00:00:00)
UserID (Unique ID of the User targeted to achieve the Award e.g. jasmit)
UserFullname (Full name of the User targeted to achieve the Award e.g. Jack Smith)
j. User Achieves an Award
Process triggered
Automatically (via web-hooks), as soon as the User Award meets the filter criteria
Filter criteria
UserAwards with a status of ‘Completed’ only
Example optional filter: Only UserAwards with a expiry date in the future
Data included
Use accessplanit API v2 endpoints:
UserAward
Recommended data fields to include:
AwardID (Unique ID of the Award e.g. HOWTOILEoB)
AwardLabel (Label of the Award, e.g. Safety at Heights Level 1)
UserID (Unique ID of the User targeted to achieve the Award e.g. jasmit)
UserFullname (Full name of the User targeted to achieve the Award e.g. Jack Smith)
CompletedDate (Date the user is achieved the Award by e.g. 2026-06-25T00:00:00)
ExpiryDate (Date the user’s award will expire e.g. 2026-12-25T00:00:00)
k. Users Award Expires
Process triggered
Automatically (via web-hooks), as soon as the User Award meets the filter criteria
Filter criteria
UserAwards with a status of ‘Completed’ only
UserAwards with an expiry date in the past
Example optional filter: Only UserAwards that have not been renewed
Data included
Use accessplanit API v2 endpoints:
UserAward
Recommended data fields to include:
AwardID (Unique ID of the Award e.g. HOWTOILEoB)
AwardLabel (Label of the Award, e.g. Safety at Heights Level 1)
UserID (Unique ID of the User targeted to achieve the Award e.g. jasmit)
UserFullname (Full name of the User targeted to achieve the Award e.g. Jack Smith)
CompletedDate (Date the user is achieved the Award by e.g. 2026-06-25T00:00:00)
ExpiryDate (Date the user’s award will expire e.g. 2026-12-25T00:00:00)
Renewed (If the User has since renewed / achieved the award again)
Renewing (If the User is booked onto a Course to renew / achieve the award again)
l. New Job Role is created in accessplanit
Process triggered
Every hour via a GET request
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints:
UserType
Recommended data fields to include:
ID (Unique ID of the Job Role e.g. LIFEG)
Label (Name of the Job Role e.g. Lifeguard)
Description (Free text description of the Job Role)
m. New Job Role is created in the HR system
Process triggered
Automatically, as soon as a the Job Role is created in the HR system
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints, make a POST request to:
UserType
Recommended UserCourseDate data fields to set:
Label (Name of the Job Role e.g. Lifeguard)
Description (Free text description of the Job Role)
n. User is assigned to a Job Role in accessplanit
Process triggered
Every hour via a GET request
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints:
UserUserType
Recommended data fields to include:
ID (ID of the User having this Job Role e.g. 2)
UserTypeID (Unique ID of the Job Role, e.g. LIFEG)
UserTypeLabel (Label of the Job Role, e.g. Lifeguard)
StartDate (Date the User starts in this role, e.g. "2024-06-26T12:45:00")
EndDate (Date the User ends in this role, e.g. "2027-06-30T12:45:00")
UserID (Unique ID of the User, e.g. pebrid)
UserName (Name of the User, e.g. Peter Bridge)
MainUserType (If this is the User’s main Job Role, e.g. true)
CompanyID (Unique ID of the Company/Account that the User is doing this job with)
CompanyName (Name of the Company/Account that the User is doing this job with)
o. User is assigned to a Job Role in the HR system
Process triggered
Automatically, as soon as a the User is allocated to the Job Role in the HR system
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints:
UserUserType
Recommended data fields to include:
UserTypeID (Unique ID of the Job Role, e.g. LIFEG)
StartDate (Date the User starts in this role, e.g. "2024-06-26T12:45:00")
EndDate (Date the User ends in this role, e.g. "2027-06-30T12:45:00")
UserID (Unique ID of the User, e.g. pebrid)
MainUserType (If this is the User’s main Job Role, e.g. true)
CompanyID (Unique ID of the Company/Account that the User is doing this job with)
Define what and how data will be shared within your integration
Once you have reviewed the common set-ups and best practice for [what] integrations above, you should define the inputs and output for integrating your courses into your website.
Work with your [development] team to define your integration! Here are the steps to follow for each process you want to integrate:
How will your integration for this process be triggered? Will it be triggered based on something being created or updated, e.g. when an [what] is marked as ‘Advertised’? Or will it be triggered periodically, such as once a day or once an hour?
Should any filters be applied? Decide ….
What specific data should be shared and in what format? What information about your [what] would you like to push to your [what software]?
3. Developing & testing your integration
Development
Please see our dedicated developer guide to access information and guidance for working with the API v2 feeds: API v2 - Developer Resources
Testing
Depending on your development methodology, we recommend to start testing early and continue to test during the development phase, rather than leaving testing to the very end of the project. Incorporating a combination of testing types; including Unit Tests, Integration Tests, and Functionality/UAT testing is important to ensure everything is working as expected.
During your Functional testing phase, you will test your integration against it's specific functionality requirements, this testing can be combined with User Acceptance Testing (UAT) which is where your users will complete tests using real-world data to test the integration. Within this tests you should include both valid and invalid data, to ensure correct information is successful, and incorrect information fails.
FAQs
Is the data provided by the API v2 feeds in real-time? Yes, each API GET request you make will return real time data for that moment.
Can I access historical data in the API v2 feeds? Yes, you can adjust your filters of your request to include or exclude historical data.
What data formats are supported by the API v2? JSON
How is the data transmitted via the API to keep it secure? The APIs can only be accessed by users with API permissions, additionally the range of access is them limited by roles, this means that not every API User can access all endpoints.
How do I get access to the API v2 feeds? Your initial API Access will be granted alongside the module purchase. For any additional API Users please speak to your Optimise CSM and they will ensure your access is set up promptly.
Support
Contact Our Team
If you can't find what you're looking for, access our Support Portal, and our team of experts will be happy to help!