Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Live Search | ||||||||
---|---|---|---|---|---|---|---|---|
|
Info |
---|
accessplanit’s website XML Feeds are a very flexible, configurable way to integrate your accessplanit |
courses into |
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 coursesyour 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:
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,
where those courses are being run
, and if there are still places left.
To allow people to directly book course places online
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
!
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:
- Your web developer will have complete freedom about how they choose to display the information on your website, which opens up unlimited design opportunities.
- 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:
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.
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
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.
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 XMLXML 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.
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:
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:
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 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 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.
Image 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
Image 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 inCurrencySymbol
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 VenueAddress
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
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.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.
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
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.
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.
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.
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
Change the ‘configname' to your accessplanit platform’s name
Change the ‘accessplan’ to ‘accessplansandbox’ if you are using the Sandbox environment instead of the Live environment
Include the IDs of the categories that you would like to filter on
If you do not want to filter on the category, you must still include the ‘categoryIDs=’ text
If you want to filter on multiple categories, you can include multiple IDs and separate them with a pipe
Include the ID of the training provider after the 'companyID=' text
Include the IDs of the courses that you would like to filter on
If you do not want to filter on the course template ID, you must still include the ‘courseIDs=’ text
If you want to filter on multiple courses, you can include multiple IDs and separate them with a pipe
Examples
Example | URL |
---|---|
Only filtering on the mandatory filter for training provider (company ID) | |
Filtering on the training provider and one category | |
Filtering on the training provider and multiple course templates |
GetCoursesPackage & GetCoursesPackageWithCourseDateText
For the GetCoursesPackage & GetCoursesPackageWithCourseDateText feed, use the below URLs and change the text that is bold
GetCoursesPackage
GetCoursesPackageWithCourseDateText
Change the ‘configname' to your accessplanit platform’s name
Change the ‘accessplan’ to ‘accessplansandbox’ if you are using the Sandbox environment instead of the Live environment
Include the IDs of the venues that you would like to filter on
If you do not want to filter on the venue, you must still include the ‘venueIDs=’ text
If you want to filter on multiple venues, you can include multiple IDs and separate them with a pipe
Include the IDs of the categories that you would like to filter on
If you do not want to filter on the category, you must still include the ‘categoryIDs=’ text
If you want to filter on multiple categories, you can include multiple IDs and separate them with a pipe
Include the ID of the training provider after the 'companyID=' text
Include the IDs of the courses that you would like to filter on
If you do not want to filter on the course template ID, you must still include the ‘courseIDs=’ text
If you want to filter on multiple courses templates, you can include multiple IDs and separate them with a pipe
Examples
Example | URL |
---|---|
Only filtering on the mandatory filter for training provider (company ID) | https://galaxy.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCoursesPackage?venueIDs=&categoryIDs=&companyID=DESPIM89&courseIDs= |
Filtering on the training provider and one category | https://galaxy.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCoursesPackage?venueIDs=&categoryIDs=122&companyID=DESPIM89&courseIDs= |
Filtering on the training provider and multiple course templates | https://galaxy.accessplanit.com/accessplan/services/WebIntegration.asmx/GetCoursesPackage?venueIDs=&categoryIDs=&companyID=DESPIM89&courseIDS=INTROT109|FIRSTAL93 |
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:// |
configcode.accessplanit.com/accessplan/clientinput/course/coursebooker.aspx?coursedateid=12328 |
</BookNowURL> |
<EnquireURL> |
http:// |
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.
On this page:
Table of Contents |
---|