Integrate your course and delegate data with your LMS using the API v2 Feeds

Integrate your course and delegate data with your LMS using the API v2 Feeds

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.

LMS.png

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!

image-20240615-160956.png

 

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

Development

Please see our dedicated developer guide to access information and guidance for working with the API v2 feeds: https://accessplanit.atlassian.net/wiki/spaces/HG/pages/3215425537

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.



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!

Is it your first time contacting the team? Learn how to raise a support ticket.

Follow Us

Facebook|height=20 LinkedIn|height=20 Instagram|height=20 Twitter|height=20

Copyright © 2025 accessplanit.

Social media icons by icons8.com