Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
Learn how to use the API Feeds to integrate your Course & Delegate details with your LMS.
There are many reasons you might want to integrate your accessplanit platform with an LMS to manage your training courses across both systems. By synchronising your accessplanit platform with your LMS, you can ensure that Course information, Delegates registrations, and Delegate progress are always kept up-to-date in both platforms, reducing the need for manual updates and minimising the risk of errors. This not only saves valuable time for your team but also helps maintain data accuracy.
A real-time integration keeps your Trainers and Delegates informed of any updates, which gives your Delegates a smoother learning experience and enables your Trainers to provide timely support. Additionally, automating data synchronisation between your accessplanit platform and your LMS can significantly reduce human error, leading to more reliable tracking of progress and outcomes.
As your training programmes expand, the scalability of this integration will enable you to handle an increasing number of Courses and Delegates efficiently.
While there are a number of different ways to integrate your Course & Delegate data between your accessplanit platform and your LMS 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 Course scheduling and Delegate data in your accessplanit platform with your Learning Management 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 [what] 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 LMS 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 LMS systems previously is a benefit, particularly if they have experience with your specific LMS 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
In this step you will work with your developer to plan 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 2 key processes that are typically automated for LMS integrations:
Course integrations When both a TMS (such as accessplanit) and an LMS are in use, Course management (including scheduling & updating Courses) is managed in the TMS, integrating these Course details and any updates to the LMS means that Users in the LMS can register onto these Courses and access the relevant information and resources for their booked Courses!
Delegate integrations Delegate integration is often two-way between an LMS and a TMS, details of the Delegates that register for their Courses within the LMS will be pulled into your accessplanit platform, and Delegates registered by administrators in your accessplanit platform will be pushed to your LMS. Additionally, once your Delegates have completed their Courses, automating recording their statuses and scores from your LMS back into your accessplanit platform can save a lot of time!
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 Course is scheduled in accessplanit Please note that eLearning Courses will not be scheduled and will only require Course Template data.
Process triggered
Automatically (via web-hooks - coming soon), as soon as a Course meets the filter criteria
Filter criteria
Only Courses with a status of ‘Available’ or ‘Fully Booked’
Only Courses with a start date in the future
Example optional filter: Only Course Templates offered by a specific Training Provider
Example optional filter: Only Course Templates that are associated to specific Categories
Data included
Use accessplanit API v2 endpoints:
CourseTemplate
CourseDate
Recommended CourseTemplate data fields to include:
CourseLabel (Name of the Course Template e.g. First Aid)
CourseID (Unique ID of the Course Template e.g. FIRS452VR)
CourseType (Course format e.g. Class)
CategoryLabels (Categories this Course is assigned to e.g. Compliance)
Overview (Aims of the Course)
Description (Objectives of the Course)
Summary (Summary of the Course)
Duration (Typical duration of the Course e.g. 1)
DurationType (Typical type of duration e.g. Day)
DeliveryMethodLabel (If the Course is offered publicly or in-house/private)
CompanyName (Name of the Training Provider offering the Course)
Advertise (If the course is advertised for bookings)
ExternalID (ID of the Course Template as it is stored in another platform, this could be the ID used for the Course in the LMS)
Recommended CourseDate data fields to include:
CourseID (Unique ID of the Course Template e.g. FIRS452VR)
ID (Unique ID of the Course Date e.g. 12368)
ExternalID (ID of the Course as it is stored in another platform, this could be the ID used for the Course in the LMS)
Label (Course Alias or Course Template Name e.g. First Aid for Beginners)
StartDate (Course Start Date & Time e.g. 2026-06-10T09:00:00)
EndDate (Course End Date & Time e.g. 2026-06-10T16:00:00)
VenueLabel (Name of the assigned Venue)
VenueTown (Town of the assigned Venue)
Cost (Course Cost e.g. 100.0)
CostType (Type of Cost e.g. per 'Candidate')
Status (Course Status e.g. Available)
SpacesLeft (Remaining places available e.g. 5)
For Sessional courses: include the labels and dates of each of the Sessions by running a GET request on the CourseDate endpoint filtered by ParentCourseDateIDs matching the ID of the Sessional/parent Course)
Course & Course Template Custom Fields
For powerful and customised integrations, in addition to the above recommended fields, you can also access all of your Course & Course Template-based Custom Fields directly using the above feeds.
b. Course details updated update in accessplanit, e.g. 'start time' is updated
Process triggered
Automatically (via web-hooks - coming soon), as soon as the Course meets the filter criteria
Filter criteria
The Course’s ‘date updated’ has changed
Only Courses with a status of ‘Available’ or ‘Fully Booked’
Only Courses with a start date in the future
Example optional filter: Only Course Templates offered by a specific Training Provider
Example optional filter: Only Course Templates that are associated to specific Categories
Data included
Use accessplanit API v2 endpoints:
CourseDate
Recommended data fields to include:
CourseID (Unique ID of the Course Template e.g. FIRS452VR)
ID (Unique ID of the Course Date e.g. 12368)
ExternalID (ID of the Course as it is stored in another platform, this could be the ID used for the Course in the LMS)
Label (Course Alias or Course Template Name e.g. First Aid for Beginners)
StartDate (Course Start Date & Time e.g. 2026-06-10T09:00:00)
EndDate (Course End Date & Time e.g. 2026-06-10T16:00:00)
VenueLabel (Name of the assigned Venue)
VenueTown (Town of the assigned Venue)
Cost (Course Cost e.g. 100.0)
CostType (Type of Cost e.g. per 'Candidate')
Status (Course Status e.g. Available)
SpacesLeft (Remaining places available e.g. 5)
For Sessional courses: include the labels and dates of each of the Sessions by running a GET request on the CourseDate endpoint filtered by ParentCourseDateIDs matching the ID of the Sessional/parent Course)
c. Delegate is registered onto a Class or Web Course in accessplanit
Process triggered
Automatically (via web-hooks - coming soon), 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:
User
UserCourseDate
Recommended User 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 LMS)
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)
Recommended UserCourseDate 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. ‘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)
User & Delegate Custom Fields
For powerful and customised integrations, in addition to the above recommended fields, you can also access all of your User & Delegate-based Custom Fields directly using the above feeds.
d. Delegate is registered onto an eLearning Course in accessplanit
Process triggered
Automatically (via web-hooks - coming soon), as soon as an eLearning Delegate meets the filter criteria
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:
UserCourseDateELearning
Recommended UserCourseDateELearning data fields to include:
CourseName (Name of the Course Template e.g. First Aid)
CourseExternalID (ID of the Course Template as it is stored in another platform, this could be the ID used for the Course in the LMS)
CourseID (Unique ID of the Course Template e.g. FIRS452VR)
CourseCompanyName (Name of the Training Provider offering the Course)
UserFullName (Full name of the User/Delegate e.g. Peter Bridge)
UserID (Unique ID of the User e.g. pebrid)
CompanyName (Name of the Delegate’s Company e.g. Douglas Group)
DateStamp (Date & Time the Delegate was created, e.g. 2025-02-22T11:01:38.17)
PackageStartDate (Date & Time the Delegate can start the Course from, e.g. 2025-02-22T11:01:38.17)
PackageExpiryDate (Date & Time the Delegate should complete the Course by, e.g. 2025-02-22T11:01:38.17)
AllowStart (If the Delegate is allowed access to start eLearning Course)
CompletionStatus (If the Delegate has completed the eLearning Course)
SuccessStatus (If the Delegate has passed the eLearning Course)
Status (Delegate status on the Course e.g. ‘Booked’)
Score (Delegate score on the Course e.g. ‘72’)
e. Delegate is registered onto a Class / Web Course in the LMS
Process triggered
Automatically, as soon as a the Delegate is registered in the LMS
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints, make a POST request to:
User (only required if the User does not yet exist)
UserCourseDate
Recommended User 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 LMS)
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)
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)
Recommended UserCourseDate data fields to include:
CourseDateID (Unique ID of the Course Date e.g. 12368)
UserID (Unique ID of the User e.g. pebrid)
Status (Delegate status on the Course e.g. ‘Booked’)
User & Delegate Custom Fields
For powerful and customised integrations, in addition to the above recommended fields, you can also access all of your User & Delegate-based Custom Fields directly using the above feeds.
f. Delegate is registered onto an eLearning Course in the LMS
Process triggered
Automatically, as soon as a the Delegate is registered in the LMS
Filter criteria
Data included
Use accessplanit API v2 endpoints:
tbc
Recommended data fields to include:
tbc
g. Delegate is updated in accessplanit
Process triggered
Automatically (via web-hooks - coming soon), 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)
h. Delegate is updated in the LMS
Process triggered
Automatically, as soon as a the Delegate is updated in the LMS
Filter criteria
n/a
Data included
Use accessplanit API v2 endpoints, make a PUT request to:
UserCourseDate (using the ID of the Delegate e.g. jasmit~12345)
Recommended UserCourseDate data fields to include:
Status (Delegate status on the Course e.g. ‘Completed’)
Score (Delegate status on the Course e.g. ‘63’)
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
In this step, your developer will create the integration between the two systems
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.
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!