Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Live Search
spaceKeyHG
additionalpage excerpt
placeholderSearch for a solution
typepage

This guide has been produced for the purpose of providing information on how you can utilise the accessplanit course XML in order
Info

accessplanit’s website XML Feeds are a very flexible, configurable way to integrate your accessplanit

platform

courses into

a website.

Why Integrate?

The two main reasons that organisations choose to integrate accessplanit into their website are:

To be able to show up to date course availability on their website such as which courses

your website.

The XML feeds contain the details of your advertised, future courses and your website developers can use these details to advertise your courses, show your course availability, to give your customers a seamless transition into your accessplanit shopping basket when they click to book!

Why integrate?

There are two main reasons to integrate your courses into your website:

  1. To advertise your course availability
    The HTML plugin displays a table of available, future courses. Your customers can see which courses you are running on what dates,

what locations
  1. where those courses are being run

at
  1. , and if there are still places left.

  2. To allow people to directly book course places online

and pay there and then (if applicable). This

  1. With the HTML plugin you can include a ‘Book’ button which takes your customers straight to your accessplanit shopping basket with that course added, this means you can be taking bookings 24 hours a day, 7 days a week

.
  1. !


Why use the XML Feeds for website integration?

There is a simpler methodology for integrating accessplanit are two core ways to integrate your accessplanit courses into your website, which is via a simple plugin table which we recommend you consider first. However, there are benefits to using the full which XML which are:

  1. Your web developer will have complete freedom about how they choose to display the information on your website, which opens up unlimited design opportunities.
  2. There are more fields you can pull from the XML than within the Plugin Table, so you can integrate more data. 

Caveats to use of the XML Feeds

You will need to

. You can either use accessplanit’s XML feeds which offer a lot of flexibility and functionality for a highly-configured website, or you can use accessplanit’s HTML Plugin for a quick and easy integration, many accessplanit customers opt for the HTML Plugin route as a long-term integration, and some have also chosen this route as a temporary solution while their website developers work on their final website using the XML Feeds.

The benefits to using the XML Feeds are:

  1. Flexibility, the XML Feeds provide your web developer with the freedom to choose how the information about your courses is displayed on your website, whereas the HTML Plugin is limited to displaying courses in a table format.

  2. More course information available, there is a lot more information about your courses available in the XML feeds compared to the HTML Plugin, for example the XML Feeds contain your course description text (Aims, Objectives, Summary) and the External ID for your Courses, this information is not available in the HTML Plugin.


Caveats to use of the XML Feeds

  1. You will need to have the expertise in-house, or be willing to employ an external web developer capable to interpreting the XML feed and performing the actual integration work. This can be time consuming, and if you outsource this work you’ll need to factor in the associated costs.

  2. If you run sessional courses and want to show the child sessions linked to the head course on your website then this is very difficult to achieve using the XML.


What

is available in the XML

XML feeds are available?

We offer There are three XML feeds available, all of which all return slightly different data sets . A brief description of what is within each feed is shown within the screenshot below:

To access these feeds, use the following URL, replacing 'coursemanagerdemo' with your platform's config:

http://coursemanagerdemo.accessplanit.com/accessplan/services/WebIntegration.asmx

It should be noted that most all data contained within the GetCourses feed is also contained within the GetCoursesPackage and GetCoursesPackageWithCourseDateText feeds, apart from ImageURL and WICategory. Likewise, all the data contained within the GetCoursesPackage feed is contained with the GetCoursesPackageWithCourseDateText feed.

 Image Removed

The GetCourses feed will show information related to Course Templates in the platform and GetCoursesPackage and GetCoursesPackageWithCourseDateText will show data for the specific scheduled dates. Therefore if there are no dates scheduled for a Course Template, only the GetCourses feed will return data.

Which courses won't show in the feeds?

There are a few reasons why a course might not show in the XML feed:

  • Exclusivity - By default, if a course template or date is exclusive to a certain account or account group, this won't show in the XML feeds. There is a setting that accessplanit can change to allow exclusive course to show, please get in contact with the Helpdesk team if you would like this changed. 
  • Advertising - If both the course template and course date have the "Advertise" field ticked, and the current date is within the "Advertise Start/End Dates" date range, then the course will show in the feed.
  • Dates - By default, only future courses will show, however there is a setting that accessplanit can change to allow courses for a certain number of days in the past to appear in the feed. Please get in contact with the Helpdesk team if you would like this changed. 

To learn more about course management. Please click here. 

What data is returned within each feed?

Listed below are all the fields which are contained within each of the three feeds with a description of what each of these fields relates to with  accessplanit. They are as follows:

All three feeds

Course ID: This pertains to the course template ID in Course Manager. If system-generated it will be a series of alphanumeric characters or the client can provide their own Course IDs if they prefer – up to 10 characters in length, with no special characters allowed.

Label: This is the course title. It can be any length.

Text1: This corresponds to an area within Course Manager where users can input “Objectives”. This is input within a full HTML editor and the feed will provide the full HTML input within this text field. Website developers would typically ignore everything apart from the text as they would wish to apply their own fonts and formatting.

Text2: As per above, but instead refers to the course “Aims” area.

Text3: As per above, but instead refers to the course “Summary” area.

Cost: The course fee – this will always be a number.

Cost Type: There are five options here depending on how the training business charges for their courses. This would either say “candidate”, “hour”, “session”, “day” or “candidateday”. In the vast majority of cases where public courses are being run the cost type is per “candidate”.

Type: Course Manager supports different types of courses – the six options that could be listed here are “Unknown”, “Class”, “eLearning”, “Module”, “Audio Video”, “Documents” or “Web”. In the majority of cases only class, e learning or web are utilised in accessplanit.

Duration: This is the course length – this will always be a number.

Duration Type: This gives meaning to the number above – e.g. is the course one minute, one hour or one day. Note that a number will be produced, so you will need to use the following key to decode this:

  • The number 2 denotes “minutes”
  • The number 1 denotes “hours”
  • The number 0 denotes “days”

Currency: This will be a three letter reference such as “GBP” which is used to denote which currency this course is being charged in. The three letter references we use comply with the ISO 4217 currency standards. This is used for scenarios whereby the Training Provider may charge clients in different currencies. This would usually be the case if they operate out of multiple countries.

CurrencySymbol: This will be the currency symbol associated with the currency given above. For example, GBP would have the associated symbol of “£”.

CategoryIDs: This will be one or more numbers which directly relates to what Category or Categories (if more than one) this course belongs. During the setup of accessplanit Category IDs can either be imported or the platform will create its own Category IDs when the Categories are created.

GetCourses feed only

WICategory: This contains the Category ID and Label of a category that the course relates to. One course may have multiple WICategory sections.

ImageURL: This is the image that is stored against the Course Template in accessplanit.

GetCoursesPackage and GetCoursesPackageWithCourseDateText feed only

CourseDateID: This is the ID number which is unique to this individual occurrence of this course. These IDs are system-generated.

CourseID: This is the Course Template ID provided again. Remember that this is the ID for the Course Template, not for this specific occurrence of the course.

StartDate: This is the start date and time of this occurrence of the course and is provided in the format YYYY-MM-DDT09:00:00. The “T” separates the date and time. A 24 clock time format is presented.

EndDate: As per above, this denotes the end date and end time of the course (data provided in format above).

VenueIDs: This displays one or more Venue IDs which pertain to where this occurrence of the course is taking place. Venue IDs can either be imported at setup or can be automatically generated by the platform as Venues are created. As a web developer you have the option of either using a mapped table of Venue IDs to Venues, but it’s simpler to just use the Venue details which are also parsed in the feed.

TrainerIDs: This displays one or more Trainer IDs which pertain to who is teaching the course. Trainer IDs can either be imported at setup or can be automatically generated by the platform. The feed also includes their forename and surname so the ID would not usually be utilised by a web developer.

SpacesAvailable: This displays the number of available spaces left on the course. Most commercial Training Providers do not display the actual number of spaces left, but the ability to do so is there.

MaxPlaces: This displays the total number of spaces on the course date before bookings are made. This allows you to create availability warnings based on the size of the course.

Status: This will display the course status and will contain one of the following statuses: “Available”, “Cancelled”, “Completed”, “InProgress”, “OnHold”, “FullyBooked” “Unknown” or “Provisional”.

BookNowURL: This is the crucial and unique Booking URL which relates only to this occurrence of the course and so is a unique URL. The URL contained will launch the accessplanit Course Booker/Shopping Basket. See below - “implementing online booking” for more information on this. The Booking Link will only be returned from the XML feed if the Course's Status is in Available or Fully Booked. If the course is in any other status, it will not pull through to the website.

EnquireURL: This is a unique URL for this occurrence of the course which can be used to direct prospective customers to a form they can fill in to express an interest in a course (rather than making a firm booking). From a web developer's perspective, you may choose to have this URL open in a pop-up page once the link is clicked.

Cost: This is the cost for this one off occurrence of the course. It could be different from the usual course cost gained from the GetCourses XML.

Private: This will either be “true” or “false”. Most organisations would choose to NOT display any “true” courses on the website as this denotes courses that are private, and not open to the general public.

Currency: As mentioned earlier this will be a three letter reference such as “GBP” which is used to denote which currency this course is being charged in. This could be different to the currency passed in the GetCourses XML as the platform does support multiple currencies – so this would display the currency that this occurrence of the course is being charged in.

CurrencySymbol: This will be the currency symbol associated with the currency given above. For example GBP would have the associated symbol of “£”.

TrainingPoints: Displays the number of training/CPD Points stored for a Course Template

ExternalID: Displays the external ID of the Course Template and the Course Date separately.

PublishDate: Displays the publish date stored for a Course Template.

DeliveryMethodID: Displays the ID of the delivery method.

Sessional: This displays true or false to indicate if the course is sessional or not.

VenueID: This displays the Venue ID which pertains to where this occurrence of the course is taking place. If more than one Venue is being used then the next ID will be listed below in the feed. Venue IDs can either be imported at setup or can be automatically generated by accessplanit as Venues are created. As a web developer you have the option of either using a mapped table of Venue IDs to Venues but it’s simpler to just use the Venue details below.

Label: This is the Venue label – it’s a free text field which supports up to 80 characters.

Address: This is the building name/number and street part of the Venue address.

Town: This is the town the Venue is within.

County: This is the county the Venue is within.

Country: This is the country the Venue is within.

Postcode: This is the Venue postcode.

Longitude: This is the approximate longitude based on the postcode supplied of the Venue.

Latitude: This is the approximate latitude based on the postcode supplied of the Venue.

TrainerID: This displays the Trainer ID which pertains to who is teaching the course. If more than one Trainer is teaching then the next ID will be listed below in the feed. Trainer IDs can either be imported at setup or can be automatically generated by accessplanit. The feed also includes their forename and surname so the ID would not usually be utilised by a web developer.

Forenames: This is the Trainer's forename.

Surname: This is the Trainer's surname..

Category ID: This displays the Category ID. The feed also includes the Category label which would not usually be utilised by a web developer.

Label: This displays the label of the Category.

GetCoursesPackageWithCourseDateText feed only

AdditionalInformation: This pulls information from a HTML editor which is stored against that particular Course Date and is used to store extra details which only pertain to that specific occurrence of a course.

JoiningInstructions: As above, this pulls information from a HTML editor which is stored against that particular Course Date and is used to store extra joining instruction information which only pertains to that specific occurrence of a course. 

What parameters can be used to filter the XML feeds?

GetCourses

The minimum information that needs to be provided in order to return course data is a CompanyID. This will be the accessplanit ID for the Training Provider who is providing the courses. Note that if a company has multiple Training Providers (such as where they operate in multiple countries) then you would need to ensure that the correct Company ID is used when requesting the data.

There are then two further options to filter down the data – this can either be done by including a query on a particular course Category (via the Category ID), or by choosing a particular course (via the Course ID).

Image Removed

GetCoursePackage

The minimum information that needs to be provided in order to return course data is a CompanyID. This will be the accessplanit ID for the Training Provider who is providing the courses. Note that if a company has multiple Training Providers (such as where they operate in multiple countries) then you would need to ensure that the correct Company ID is used when requesting the data.

There are then three further options to filter down the data – this can either be done by including a query on a particular course Category (via the Category ID), by choosing a particular course (via the Course ID), or by choosing a particular Venue (via the Venue ID). This last option is useful where a customer has a website which lists courses by Venue.

Image Removed

GetCoursesPackageWithCourseDateText

As per the GetCoursesPackage, the minimum information that needs to be provided in order to return course data is a CompanyID. This will be the accessplanit ID for the Training Provider who is providing the courses. Note that if a company has multiple Training Providers (such as where they operate in multiple countries) then you would need to ensure that the correct Company ID is used when requesting the data.

There are then three further options to filter down the data – this can either be done by including a query on a particular course Category (via the Category ID) or by choosing a particular course (via the Course ID) or by choosing a particular Venue (via the Venue ID).

 Image Removed

 

How to filter the XML feeds

In the previous section, the screenshots were from an information web page which all customers have access to. Each customer will have a standard  URL which takes the form customername.accessplanit.com.

An example URL for the Web Integration information page is below:

http://coursemanagerdemo.accessplanit.com/accessplan/services/WebIntegration.asmx

Image Removed

As per the screenshot above, by selecting either the GetCourses, GetCoursesPackage or GetCoursesPackageWithCourseDateText you will then be able to query the date, applying whichever filters are applicable.

However! – when using the XML feeds in practice the filtering options can be applied by altering the URL of the request.

For the GetCourses feed, the URL below will provide all course information.

http://customername.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCourses?categoryIDs=OPTIONAL&companyid=MANDATORY&courseids=OPTIONAL

The bold text is where relevant filtering IDs are placed. If this is OPTIONAL, then the field still needs to be in the request URL, but there doesn't need to be a value after the equals sign. If this is MANDATORY, then there must be a value (in this case, the ID of the platform's training provider) for that field in the request itself.

Multiple Category IDs or multiple Course IDs can be supplied by separating them by a pipe (e.g. 87|88|89).

For the GetCoursesPackage and GetCoursesPackageWithCourseDateText the URLS below will provide all course and course date information:

http://customername.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCoursesPackage?venueIDs=OPTIONAL&categoryIDs=OPTIONAL&companyid=MANDATORY&courseIDs=OPTIONAL

http://customername.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCoursesPackageWithCourseDateText?venueIDs=OPTIONAL&categoryIDs=OPTIONAL&companyid=MANDATORY&courseIDs=OPTIONAL

Implementing Online Booking

Once you have chosen what course information to display on the website the next step in most cases is to choose how to implement the ability for people to book (and pay, if applicable) for courses.

The only piece of data required from within the XML feed to allow online booking is the BookNowURL which is within the GetCoursesPackage and GetCoursesPackageWithCourseDateText feeds.

This URL can simply be embedded behind a “book now” piece of text or image and will launch the accessplanit Shopping Basket. The URL will look like this as below. You'll need to change the bolded text to the relevant information for accessplanit:

https://customername.accessplanit.com/accessplan/clientinput/course/coursebooker.aspx?coursedateid=1234

The Shopping Basket looks like this when launched:

Image Removed

From here, the person booking the course will simply follow the onscreen instructions to complete their booking.

Our recommendation is that the “book now URL” opens in a separate blank browser window. You are able to brand your Shopping Basket to match your website look and feel. 

If your "Continue Shopping" button is not visible, please contact the Helpdesk team.  

Example XML Data

Included below are two examples of the actual XML returned from a test environment – one for the GetCourses feed and one for the GetCoursesPackage feed:

Example of GetCourses XML

Filtered to provide details on just one course

<ArrayOfWICourse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="AccessPlanIT.Accessplan.Web.Services">

<WICourse>

<CourseID>ADVANCVHiA</CourseID>

<Label>Advanced Excel</Label>

<Text2>Objectives Text Box</Text2>

<Text2>

<br><span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; ">At the end of this course, as well as consolidating your understanding of Excel's fundamentals, you will be able to perform the most complex calculations and functions, manipulate data using pivot tables and advanced analysis, record macros and integrate with other office applications. Your level of proficiency should enable you to confidently take up our&nbsp;VBA course for Excel.</span><br>

</Text2>

<Text3>Summary Text Box</Text3>

<Cost>55</Cost>

<CostType>Candidate</CostType>

<Type>Class</Type>

<Duration>20.00</Duration>

<DurationType>2</DurationType>

<Currency>GBP</Currency>

<CurrencySymbol>£</CurrencySymbol>

<PublishDate/>

<TrainingPoints/>

<ExternalID>IS4009</ExternalID>

<DeliveryMethodID>2</DeliveryMethodID>

<ImageURL/>

<Categories>

<WICategory>

<CategoryID>164</CategoryID>

<Label>CourseCat1</Label>

</WICategory>

<WICategory>

<CategoryID>169</CategoryID>

<Label>CourseCat2</Label>

</WICategory>

</Categories>

</WICourse>

</ArrayOfWICourse>

Example of GetCoursesPackage XML

Filtered to provide details on just one course

<WICoursesPackage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="AccessPlanIT.Accessplan.Web.Services">

<Courses>

<WICourse>

<CourseID>ADVANCVHiA</CourseID>

<Label>Advanced Excel</Label>

<Text1>Objectives Text Box</Text1>

<Text2>

<br><span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; ">At the end of this course, as well as consolidating your understanding of Excel's fundamentals, you will be able to perform the most complex calculations and functions, manipulate data using pivot tables and advanced analysis, record macros and integrate with other office applications. Your level of proficiency should enable you to confidently take up our&nbsp;VBA course for Excel.</span><br>

</Text2>

<Text3>Summary Text Box</Text3>

<Cost>55</Cost>

<CostType>Candidate</CostType>

<Type>Class</Type>

<Duration>20.00</Duration>

<DurationType>2</DurationType>

<Currency>GBP</Currency>

<CurrencySymbol>£</CurrencySymbol>

<CategoryIDs>34</CategoryIDs>

</WICourse>

</Courses>

<Dates>

<WICourseDate>

<CourseDateID>12328</CourseDateID>

<CourseID>ADVANCVHiA</CourseID>

and you may wish to use a combination of these for your website integration.

The WebIntegration optionsImage Added

  • The GetCourses feed will show the details of your Course Templates in your accessplanit platform

  • The GetCoursesPackage will show the details of your scheduled courses

  • The GetCoursesPackageWithCourseDateText will show the details of your scheduled courses and includes Joining Instructions text that you provide for the course

The most common combination used is the GetCourses feed and the GetCoursesPackage feed. The GetCourses feed is used to display information for each course that you offer (such as the course name, course description and course duration), then the GetCoursesPackage feed is used to display the available dates that your customers can book (including the date of the course, the cost, the number of places available, and the link to book the course). This approach ensures that if there are no course dates available for one of your courses, your course information is still displayed.

It should be noted that most of the information available within the GetCourses feed is also available within the GetCoursesPackage and GetCoursesPackageWithCourseDateText feeds, apart from ImageURL and WICategory. Likewise, all the data contained within the GetCoursesPackage feed is contained with the GetCoursesPackageWithCourseDateText feed. Please see ‘Data available in each XML Feed’ below to read about what information is available in each XML Feed.


Accessing the XML Feeds

To access these XML feeds for your integration, use the following URL, replacing 'configname' with your platform's name:

https://configname.accessplanit.com/accessplan/services/WebIntegration.asmx

The WebIntegration OptionsImage Added

The ‘configname' in the example URL above should be replaced with your accessplanit platform’s name. This is the first part of the URL on your platform and this is typically the name of your company.
For example, if your accessplanit platform was called 'Galaxy’, the URL to access your accessplanit platform would be https://galaxy.accessplanit.com and the script source URL would be
https://galaxy.accessplanit.com/accessplan/services/WebIntegration.asmx

If you are setting up your integration with your Sandbox accessplanit environment to begin with (before switching the integration to use your Live accessplanit environment), then you will also need to change your URL to reference the sandbox site. To do this change ‘accessplan’ in the URL to ‘accessplansandbox’. For example:
https://galaxy.accessplanit.com/accessplansandbox/services/WebIntegration.asmx

 


Which courses won't show in the feeds?

There are a few reasons why a course might not show in the feeds:

  • Exclusivity - If a course template or date is exclusive to a certain account or account group, this won't show in the plug-in. This is to make sure that only public courses are listed on your website, rather than any courses that you are running specifically for one customer. There is a setting that accessplanit can change to allow exclusive course to show, please get in contact with the accessplanit support team if you would like this changed. 

  • Advertising - If both the course template and course date have the "Advertise" field ticked, and the current date is within the "Advertise Start/End Dates" date range, then the course will show in the feed.

  • Dates - By default, only future courses will show, however there is a setting that accessplanit can change to allow courses that have already started to appear in the feed. Please get in contact with the accessplanit support team if you would like this changed. 

You can learn more about Course Management here. 


Which courses include a Booking Link in the feeds?

The Book Now link is included in the XML Feeds for Courses with the following statuses

  • Available

  • Fully Booked

The Book Now Link is not included in the XML Feeds for Courses with the following statuses

  • Provisional

  • In Progress

  • Fully Booked

  • Cancelled

  • Completed

  • On Hold

  • Failed


Data available in each XML Feed

Here is a list of the information available in each of the XML Feeds, so that you can decide which feeds to use in your integration!

Info

PLEASE NOTE: If your Course Dates & Times are not appearing in the XML feed, this is because the Course ‘Type’ has uppercase letters instead of lowercase. This always must be lowercase!

All three feeds

  • Course ID
    The course ID displays the Course Template ID for the Course Template in your accessplanit platform, this can be up to 10 characters long.

  • Label
    The label displays the Course Template label.

  • Text1
    Text1 displays the course description text that is stored in the ‘Aims’ box for the Course Template. Aims does support HTML (such as making some text bold, and changing the font), and this HTML is included in the XML Feed.

  • Text2
    Text2 displays the course description text that is stored in the ‘Objectives’ box for the Course Template. Objectives does support HTML (such as making some text bold, and changing the font), and this HTML is included in the XML Feed.

  • Text3
    Text3 displays the course description text that is stored in the ‘Summary’ box for the Course Template. Summary does support HTML (such as making some text bold, and changing the font), and this HTML is included in the XML Feed.

  • Cost
    The cost displays the cost of the course, if this is accessed from the <Courses> ... </Courses> part of the feed then the cost will show you the cost stored against the Course Template (the default cost of the course), if this is accessed from the <Dates> ... </Dates> part of the feed then then cost will show you the cost for this specific course date.

  • Cost Type
    The Cost Type displays how cost is calculated for a booking. For public offered courses, the majority courses have the cost type of per “candidate”. The Cost Types available are:

    • Candidate

    • Hour

    • Session

    • Day

    • CandidateDay

  • Type
    The Type tells you what the format of the course is, there are six different types of courses available in the accessplanit platform. The most commonly used types are Class, Web, and eLearning. The Types available are:

    • Class

    • eLearning

    • Module

    • Document

    • Web

  • Duration
    The Duration is the length of the course, the duration is always a number, it is supported by the next field ‘Duration Type’.

  • Duration Type
    The Duration Type supports the previous field ‘Duration’. Courses can either have a duration in days, hours or minutes. Please note that the duration type is displayed as a number in the XML Feed, you can use the below key to understand what each number is for:

    • A duration type of ‘0' means 'Days’

    • A duration type of ‘1' means 'Hours’

    • A duration type of ‘2' means 'Minutes’

  • Currency
    The Currency is typically a three letter currency code such as ‘GBP' or 'USD’, it is used to indicate the currency that this course is being charged in

  • CurrencySymbol
    The Currency Symbol is the symbol associated with the currency in the previous field, for example, GBP would have the associated symbol of '£', and USD would have a associated symbol '$'.

  • CategoryIDs
    The Category IDs displays the IDs of the categories that the Course Template is associated with.

  • Publish Date
    The Publish Date displays the date that the course can be published, this is set up on the Course Template.

  • External ID
    If this is accessed from the <Courses> ... </Courses> part of the feed then the External ID is the ID set up in the Course Template’s External ID option, if this is accessed from the <Dates> ... </Dates> part of the feed then the External ID is the ID set up in the scheduled Course’s External ID option, this is often used to store the ID from another system.

  • Delivery Method
    The Delivery Method displays the ID of the Delivery Method for the Course, the labels for these IDs is available in the GetCoursesPackage feed. If this is accessed from the <Courses> ... </Courses> part of the feed then the Delivery Method is the ID of the Delivery Method set up on the Course Template, if this is accessed from the <Dates> ... </Dates> part of the feed then the Delivery Method is the ID of the Delivery Method set up on the scheduled course.

GetCourses feed only

  • WICategory
    This displays the Category ID and Label of a category that the course relates to. Each Course Template may have multiple WICategory sections, depending on how many categories are associated to it.

  • ImageURL
    This is the link to the image that is stored against the Course Template in accessplanit.

GetCoursesPackage and GetCoursesPackageWithCourseDateText feed only

Info

PLEASE NOTE: If you’re Course Dates & Times are not appearing in the XML feed, this is because the Course ‘Type’ has uppercase letters instead of lowercase. This always must be lowercase!

Dates

  • CourseDateID
    This is the ID number which is unique to this individual occurrence of this course. These IDs are automatically generated in your accessplanit platform and they are numeric.

  • StartDate
    This is the start date and time of this scheduled course, the date is displayed in the format ‘YYYY-MM-DDT00:00:00’, for example '2023-06-17T09:30:00'. The “T” separates the date and time. A 24 clock time format is presented. There will not be a date provided here if the course is not a scheduled course, for example if it is an eLearning course.

  • EndDate
    This is the end date and time of this scheduled course, the date is displayed in the format ‘YYYY-MM-DDT00:00:00’, for example '2023-06-18T17:30:00'. The “T” separates the date and time. A 24 clock time format is presented. There will not be a date provided here if the course is not a scheduled course, for example if it is an eLearning course.

  • StartDateString
    This is the start date of the course only, without the time, the date is displayed in the format DD/MM/YYYY, for example '17/06/2022'.

  • EndDateString
    This is the end date of the course only, without the time, the date is displayed in the format DD/MM/YYYY, for example '18/06/2023'.

  • StartTimeString
    This is the start time of the course only, without the date, the date is displayed in the format HH:MM:SS am/pm, for example '09:30:00 AM'.

  • EndTimeString
    This is the end time of the course only, without the date, the date is displayed in the format HH:MM:SS am/pm, for example '05:30:00 PM'.

  • VenueIDs
    This displays the Venue IDs for each of the venues that the course is assigned to. Each course may have multiple venues, however it is not common for a course to have more than one, details about the venue (such as the venue label and address) are available lower down in the feed.

  • TrainerIDs
    This displays the Trainer IDs for each of the trainers that is leading the course. Each course may have multiple trainers, details about the trainers (such as their forename and surname) are available lower down in the feed.

  • SpacesAvailable
    This displays the number of available spaces left on the course.

  • Status
    This will display the status of the course, the following statuses available are:

    • Available

    • Cancelled

    • Completed

    • InProgress

    • OnHold

    • FullyBooked

    • Unknown

    • Provisional

  • BookNowURL
    This is the unique booking URL for your customers to book this course. Following this URL will add the course to your customer’s accessplanit shopping basket.

  • EnquireURL
    This is a unique enquiry URL for this course which can be used to direct prospective customers to a form they can fill in to express an interest in a course (rather than making a firm booking). From a web developer's perspective, you may choose to have this URL open in a pop-up page once the link is clicked. Please note that accessplanit has an enquiry form plugin which is often used instead of the EnquireURL.

  • Private
    This will either be ‘true’ or ‘false’, and relates to a legacy setting that is no longer widely used. If this is in use, most organisations choose to not display any courses that have private set to “true” on their website as these relate to courses that are not available to the general public.

  • Alias
    The Alias is a the label given to the scheduled course, as an override to the Course Template Label.

  • MaxPlaces
    This displays the total number of spaces that were available on the course before bookings were made. This allows you to create availability warnings based on the size of the course (MaxPlaces) and the SpacesAvailable.

  • Sessional
    This displays ‘true’ or ‘false’ to indicate if the course is sessional or not, a sessional course is one which is made up of multiple parts, such as a blended learning course or a course which runs each Monday for four weeks.

Venues

  • VenueID
    This displays the ID of the Venue and can be used as a reference to the Venue IDs displayed against each date.

  • Label
    This is the label of the Venue

  • Address
    This is the building name/number and street part of the Venue address.

  • Town
    This is the town the Venue is within.

  • County
    This is the county the Venue is within.

  • Country
    This is the country the Venue is within.

  • Postcode
    This is the Venue postcode.

  • Longitude
    This is the approximate longitude based on the postcode supplied of the Venue.

  • Latitude
    This is the approximate latitude based on the postcode supplied of the Venue.

Trainers

  • TrainerID
    This displays the ID of the Trainer and can be used as a reference to the Trainer IDs displayed against each date.

  • Forenames
    This is the Trainer's first name.

  • Surname
    This is the Trainer's last name.

Categories

  • Category ID
    This displays the ID of the Category and can be used as a reference to the Category IDs displayed against each date.

  • Label
    This is the label of the Category.

Delivery Methods

  • Delivery Method ID
    This displays the ID of the Delivery Method and can be used as a reference to the Delivery Method IDs displayed against each date.

  • Label
    This is the label of the Delivery Method.

GetCoursesPackageWithCourseDateText feed only

  • AdditionalInformation
    AdditionalInformation displays any text that is stored in the ‘Additional Information’ box for the scheduled course. Additional Information does support HTML (such as making some text bold, and changing the font), and this HTML is included in the XML Feed.

  • JoiningInstructions
    JoiningInstructions displays any text that is stored in the ‘Joining Instructions’ box for the scheduled course. Joining Instructions does support HTML (such as making some text bold, and changing the font), and this HTML is included in the XML Feed. 


Filtering the XML feeds

GetCourses

There are three filters available for the GetCourses feed, only one of these is mandatory

The filter options for the Get Courses feedImage Added

  • CompanyID
    This is the training provider running the courses, this filter is mandatory.
    Please note, if your accessplanit platform has multiple training providers, you will need to run separate requests for each provider, as you cannot comma separate multiple provider IDs to display courses from two or more providers in the feed at the same time. 
    You can find the Company ID inside your accessplanit platform by viewing your Training Provider Account and viewing the ‘Account ID’ option.

  • CategoryIDs
    This is the category of the Course Template, this filter is optional.
    Provide the ID of the category to only return courses that are within this category.
    If you would like to provide multiple category IDs in this filter, pipe-separate them within your request.

Example filter for Category IDsImage Added
  • CourseIDs
    This is the ID of the Course Template, this filter is optional.
    Provide the ID of the Course Template to only return that specific Course Template in your results.
    If you would like to provide multiple category IDs in this filter, pipe-separate them within your request

Example filter for Course IDsImage Added

GetCoursePackage & GetCoursesPackageWithCourseDateText

There are four filters available for the GetCoursesPackage feed, only one of these is mandatory

Image Added

  • CompanyID
    This is the training provider running the courses, this filter is mandatory.
    Please note, if your accessplanit platform has multiple training providers, you will need to run separate requests for each provider, as you cannot comma separate multiple provider IDs to display courses from two or more providers in the feed at the same time. 
    You can find the Company ID inside your accessplanit platform by viewing your Training Provider Account and viewing the ‘Account ID’ option.

  • CourseIDs
    This is the ID of the Course Template, this filter is optional.
    Provide the ID of the Course Template to only return courses for that specific Course Template in your results.
    If you would like to provide multiple category IDs in this filter, pipe-separate them within your request.

Example filter for Course IDsImage Added
  • VenueIDs
    This is the ID of the Venue where the courses are being held, this filter is optional.
    Provide the ID of the Venue to only return courses that are being held at that venue in your results.
    If you would like to provide multiple venue IDs in this filter, pipe-separate them within your request.

Image Added
  • CategoryIDs
    This is the category of the Course Template, this filter is optional.
    Provide the ID of the category to only return courses that are within this category.
    If you would like to provide multiple category IDs in this filter, pipe-separate them within your request.

Example filter for Category IDsImage Added

Filtering the XML Feeds using URLs

The previous section discussed how to use the …/services/WebIntegration.asmx page to filter the results of the XML Feeds. It is also possible to run the feeds and filter them via a URL request.

To use the URL approach, please see the example URLs below and the instructions for which parts of the URL to change

GetCourses

For the GetCourses feed, use the below URL and change the text that is bold

https://configname.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCourses?categoryIDs=OPTIONAL&companyID=MANDATORY&courseIDs=OPTIONAL

  1. Change the ‘configname' to your accessplanit platform’s name

  2. Change the ‘accessplan’ to ‘accessplansandbox’ if you are using the Sandbox environment instead of the Live environment

  3. Include the IDs of the categories that you would like to filter on

    1. If you do not want to filter on the category, you must still include the ‘categoryIDs=’ text

    2. If you want to filter on multiple categories, you can include multiple IDs and separate them with a pipe

  4. Include the ID of the training provider after the 'companyID=' text

  5. Include the IDs of the courses that you would like to filter on

    1. If you do not want to filter on the course template ID, you must still include the ‘courseIDs=’ text

    2. If you want to filter on multiple courses, you can include multiple IDs and separate them with a pipe

Examples

GetCoursesPackage & GetCoursesPackageWithCourseDateText

For the GetCoursesPackage & GetCoursesPackageWithCourseDateText feed, use the below URLs and change the text that is bold
GetCoursesPackage

https://configname.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCoursesPackage?venueIDs=OPTIONAL&categoryIDs=OPTIONAL&companyid=MANDATORY&courseIDs=OPTIONAL

GetCoursesPackageWithCourseDateText

https://configname.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCoursesPackageWithCourseDateText?venueIDs=OPTIONAL&categoryIDs=OPTIONAL&companyid=MANDATORY&courseIDs=OPTIONAL

  1. Change the ‘configname' to your accessplanit platform’s name

  2. Change the ‘accessplan’ to ‘accessplansandbox’ if you are using the Sandbox environment instead of the Live environment

  3. Include the IDs of the venues that you would like to filter on

    1. If you do not want to filter on the venue, you must still include the ‘venueIDs=’ text

    2. If you want to filter on multiple venues, you can include multiple IDs and separate them with a pipe

  4. Include the IDs of the categories that you would like to filter on

    1. If you do not want to filter on the category, you must still include the ‘categoryIDs=’ text

    2. If you want to filter on multiple categories, you can include multiple IDs and separate them with a pipe

  5. Include the ID of the training provider after the 'companyID=' text

  6. Include the IDs of the courses that you would like to filter on

    1. If you do not want to filter on the course template ID, you must still include the ‘courseIDs=’ text

    2. If you want to filter on multiple courses templates, you can include multiple IDs and separate them with a pipe

Examples


Implementing Online Booking

Once you have chosen what course information to display on the website the next step in most cases is to choose how to implement the ability for people to book (and pay, if applicable) for courses.

The only piece of data required from within the XML feed to allow online booking is the BookNowURL which is within the GetCoursesPackage and GetCoursesPackageWithCourseDateText feeds.

This URL is typically embedded behind a “Book Now” link, button, or image and this will launch the accessplanit Shopping Basket. The URL will look like this as below. You'll need to change the bolded text to the relevant information for accessplanit:

https://configname.accessplanit.com/accessplan/clientinput/course/coursebooker.aspx?coursedateid=1234

From here, the person booking the course will simply follow the onscreen instructions to complete their booking.

Our recommendation is that the “book now URL” opens in a separate blank browser window.

Please note that you are able to brand your Shopping Basket to match your website look and feel, this is very important to provide your customers with a seamless booking journey.


Example XML Data

Included below are two examples of the actual XML returned from a test environment – one for the GetCourses feed and one for the GetCoursesPackage feed:

Example of GetCourses XML

Filtered to provide details on just one course

Code Block
<ArrayOfWICourse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="AccessPlanIT.Accessplan.Web.Services">
<WICourse>
<CourseID>ADVANCVHiA</CourseID>
<Label>Advanced Excel</Label>
<Text1>Aims Text Box</Text2>
<Text2>Objectives Text Box</Text2>
<Text3>Summary Text Box</Text3>
<Cost>55</Cost>
<CostType>Candidate</CostType>
<Type>Class</Type>
<Duration>20.00</Duration>
<DurationType>2</DurationType>
<Currency>GBP</Currency>
<CurrencySymbol>£</CurrencySymbol>
<PublishDate/>
<TrainingPoints/>
<ExternalID>IS4009</ExternalID>
<DeliveryMethodID>2</DeliveryMethodID>
<ImageURL/>
<Categories>
<WICategory>
<CategoryID>164</CategoryID>
<Label>CourseCat1</Label>
</WICategory>
<WICategory>
<CategoryID>169</CategoryID>
<Label>CourseCat2</Label>
</WICategory>
</Categories>
</WICourse>
</ArrayOfWICourse>


Example of GetCoursesPackage XML

Filtered to provide details on just one course

Code Block
<WICoursesPackage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="AccessPlanIT.Accessplan.Web.Services">
<Courses>
<WICourse>
<CourseID>ADVANCVHiA</CourseID>
<Label>Advanced Excel</Label>
<Text1>Aims Text Box</Text1>
<Text2>Objectives Text Box</Text2>
<Text3>Summary Text Box</Text3>
<Cost>55</Cost>
<CostType>Candidate</CostType>
<Type>Class</Type>
<Duration>20.00</Duration>
<DurationType>2</DurationType>
<Currency>GBP</Currency>
<CurrencySymbol>£</CurrencySymbol>
<CategoryIDs>34</CategoryIDs>
</WICourse>
</Courses>
<Dates>
<WICourseDate>
<CourseDateID>12328</CourseDateID>
<CourseID>ADVANCVHiA</CourseID>
<StartDate>2014-12-10T09:00:00</StartDate>

<EndDate>2014-12-10T15:00:00</EndDate>

<VenueIDs>

<string>TRAINI04Y6</string>

</VenueIDs>

<TrainerIDs>

<string>clalle3</string>

</TrainerIDs>

<SpacesAvailable>10</SpacesAvailable>

<Status>Available</Status>

<BookNowURL>

http://
coursemanagerdemo
configcode.accessplanit.com/accessplan/clientinput/course/coursebooker.aspx?coursedateid=12328

</BookNowURL>

<EnquireURL>

http://
coursemanagerdemo
configcode.accessplanit.com/accessplan/clientinput/company/contactcompany.aspx?contacttype=8&coursecalid=12328

</EnquireURL>

<Cost>55</Cost>

<Private>false</Private>

<Currency>GBP</Currency>

<CurrencySymbol>£</CurrencySymbol>

</WICourseDate>

</Dates>

<Venues>

<WIVenue>

<VenueID>TRAINI04Y6</VenueID>

<Label>Training Room 1</Label>

<Address>12 Spring Garden Street</Address>

<Town>Lancaster</Town>

<County>Lancashire</County>

<Country>United Kingdom</Country>

<Postcode>LA1 1RQ</Postcode>

<Longitude>-2.800413</Longitude>

<Latitude>54.046914</Latitude>

</WIVenue>

</Venues>

<Trainers>

<WITrainer>

<TrainerID>clalle3</TrainerID>

<Forenames>Clayton</Forenames>

<Surname>Allen</Surname>

</WITrainer>

</Trainers>

</WICoursesPackage>

Cookies

accessplanit uses cookies to store the content of Users' Shopping Baskets, so that the information is remembered as they navigate around your website and through the basket. 

Once a customer clicks to add a course to their basket, we will store a cookie recording this.

If you do not yet have a cookie policy available on your website, we encourage adding one to inform your customers that cookies will be recorded.