Powerful by itself, UpsideLMS gives you more bang for your buck, while reducing the manual efforts, by seamlessly integrating with a bunch of apps, tools and systems.

Salesforce CRM integration for user account creation on UpsideLMS using 'Create/ Update User in LMS' REST API and SSO for users accessing UpsideLMS from Salesforce.com.

Ready integration for Zoom, the leading modern enterprise video communication tool for video and audio conferencing, chat, and webinars, commonly used for Virtual Classroom Training.

Ready integration with WebEx, the leading enterprise solution for video conferencing and web conferencing, commonly used for Virtual Classroom Training.

Ready integration with GoToMeeting, a web conferencing software for online collaboration in real time, commonly used for Virtual Classroom Training.

Ready integration for MS Teams, the leading modern enterprise video communication tool for video and audio conferencing, chat, and webinars, commonly used for Virtual Classroom Training.

UpsideLMS' in-built ecommerce engine is pre-integrated with PayPal, a secure online payment system for buying/ selling training content through the LMS.

UpsideLMS' in-built ecommerce engine is pre-integrated with eway, a secure online omnichannel payment system for buying/ selling training content through the LMS.

UpsideLMS integrates with M-Pesa, a mobile phone-based money transfer service, payments and micro-financing service for buying/ selling training content through the LMS.

UpsideLMS is powered with SAML 2.0 SSO and can act as a Service Provider (SP) through SAML 2.0 (Secure Assertion Markup Language), which allows exchanging of authorisation data between UpsideLMS (SP) and the Identity Provider (IdP) for: Oracle Identity Management, Pingfederate, Microsoft Azure AD, OneLogin, Salesforce.

UpsideLMS also has its own Single Sign On and can act as a Service Provider (SP) enabling exchanging of authorisation data between UpsideLMS (SP) and the Identity Provider (IdP).

Allows users to seamlessly sign in to UpsideLMS using OneLogin SSO.

Allows users to seamlessly sign in to UpsideLMS using Microsoft Azure AD credentials.

Allows users to seamlessly sign in to UpsideLMS using Oracle Identity Management.

Allows users to seamlessly sign in to UpsideLMS using PingFederate.

Integration with DarwinBox using 'Scheduled User Update', a new-age cloud HR Management Suite for managing the entire employee life cycle including employee engagement, talent management and people analytics.

UpsideLMS can be integrated with People Soft HRMS so that all changes in the HR system are automatically updated in the LMS using a 'Scheduled User Update' process.

UpsideLMS can be integrated with your in-house, custom HRIS so that all changes in the HR system are automatically updated in the LMS using a 'Scheduled User Update' process.

UpsideLMS is the best LMS for training companies. Training Companies can easily integrate the 'Training Catalog' in UpsideLMS with their website's catalog page through a 'Catalog' REST API so that individuals can go through the details and purchase the training program of their choice directly from the website.

Details of an individual registering for any training program on a Training Company's website are sent to UpsideLMS through a 'Create/ Update User in LMS' REST API leading to automatic creation of the user's profile in the LMS.

For Training Companies selling training content on their websites, the purchased course(s) is/are automatically assigned to the user within UpsideLMS through automatic 'Curriculum Assignment' REST API, making UpsideLMS the best LMS for selling courses.

Option for Site Manager and Portal-level Administrators to upload videos directly on the Amazon S3 server or provide the links for the already uploaded videos in the standard Video module in UpsideLMS.

Access to Cegos' library of over 200 multi-lingual eLearning courses on soft skills and other business topics through UpsideLMS.

Unlimited access to BizLibrary's multi-device, micro-learning online training library containing more than 6,500 video lessons and courses on a diverse range of topics through UpsideLMS.

UpsideLMS can be integrated with SAP so that all changes in the ERP system are automatically updated in the LMS using a 'Scheduled User Update' process.

UpsideLMS provides redirection to Udemy for course access.

LinkedIn's wide range of eLearning can be delivered through UpsideLMS.

UpsideLMS provides redirection to The Ken (an Indian business news website) for a seamless reading experience.
UpsideLMS API and Integration Codes
Description: Fetches Catalog of Curriculums and its Content.
URL: /rest/trainingcatalog
Parameters:
Parameter | Mandatory | Description |
---|---|---|
Portal Key
[lmsportalid] |
Yes |
|
Token ID
[lmstokenid] |
Yes |
|
Content
[contentlist] |
No |
|
Learner ID
[lmslearnerid] |
No |
1) Start Date [String] :
2) End Date [String] :
3) Certification [String] : PARAMETERS : {Yes,No}
4) Access [String] : PARAMETERS : {Private,Public,Paid}
5) Rating : PARAMETERS : {1,2,3,4,5}
6) Validity Days :
7) Order By : PARAMETERS : { curriculum_name_asc, curriculum_name_desc, curriculum_name_default, accessibility, rating, assigned, nominated, Purchased }
|
Paremeter_List
[outputlist] |
No |
The data against the specified field names (received against this input parameter) will only be sent as part of output parameters.
e.g. Below input should be in encrypted format with key same as mentioned below. Parameter_List=curriculum_id,curriculum_name, reference_title PARAMETER LIST TO BE SHARED: { curriculum_id, curriculum_name, reference_title, validity, start_date, end_date, cost_per_person, currency, certification, instructor, seat_hours, seat_mins, created_by, created_date, modified_by, modified_date, curriculum_status, access, cancellation_date, nomination_date, seat_limit, community, assignment_count, completion_count, avgratings, nomination_count, purchase_count } |
Parameter | JSON |
---|---|
JSON Result |
For each curriculum:
Copy Code{ "curriculumCatalogDTO":[ { "instructor":"NA", "modified_date":"NA", "currency":"USD", "curriculum_name":"UL Curriculum", "end_date":"NA", "modified_by":"Upside Admin", "completion_count":"0", "seat_hours":"0", "curriculum_id":"31", "nomination_date":"NA", "Content":[ { "reference_title": "NA", "about_course": "NA", "instructor": "NA", "seat_hours": "NA", "created_on": "04\/05\/2016", "mandatory": "No", "course_name": "Course 001", "course_id": "2", "type": "SCORM 1.2", "content_type": "Course", "seat_mins": "NA", "uploaded_on": "04\/20\/2016" } , { "duration": "10", "title": "Test 001", "instructor": "NA", "navigation": "Practice Mode", "description": "Test 001", "mandatory": "No", "total_attempts": "5", "valid_from_date": "NA", "cutoff": "40", "test_id": "6", "content_type": "Assessment", "valid_till_date": "NA" } , { "instructor": "NA", "reference_material_id": "1", "reference_material_name": "Reference Material 001", "description": "NA", "mandatory": "No", "avain_to": "NA", "avail_from": "NA", "content_type": "Reference Material", "uploaded_on": "04\/05\/2016" } , { "assignment_name": "Assignment 001", "duration": "NA", "instructor": "NA", "objective": "NA", "mandatory": "No", "max_score": "100", "instruction": "NA", "assignment_id": "2", "content_type": "Assignment", "uploaded_on": "04\/20\/2016" } , { "instructor": "NA", "instructions": "NA", "description": "Survey 001", "avain_from": "NA", "mandatory": "No", "survey_name": "Survey 001", "avail_to": "NA", "survey_id": "2", "content_type": "Survey" } , { "instructor": "NA", "video_name": "Video 001", "description": "NA", "mandatory": "No", "video_id": "2", "type": "uploaded", "content_type": "Video", "uploaded_on": "04\/20\/2016" } ], "seat_mins":"NA", "created_by":"Upside Admin", "created_date":"05\/06\/2016", "assignment_count":"0", "nomination_count":"0", "cost_per_person":"10.00", "status":"available", "community":"NA", "cancellation_date":"NA", "access":"private", "reference_title":"UL Curriculum", "certification":"no", "duration":"5", "avg_ratings":"NA", "seat_limit":"NA", "purchased_count":"0", "start_date":"NA" } , { "Token": "Upside@2016" } ] } |
Sample Output Result |
Curriculum with content: Copy Code { "curriculumCatalogDTO":[ { "instructor": "NA", "modified_date": "NA", "currency": "USD", "curriculum_name": "UL Curriculum", "end_date": "NA", "modified_by": "Upside Admin", "completion_count": "0", "seat_hours": "0", "curriculum_id": "31", "nomination_date": "NA", "seat_mins": "NA", "created_by": "Upside Admin", "created_date": "05\/06\/2016", "assignment_count": "0", "nomination_count": "0", "cost_per_person": "10.00", "status": "available", "community": "NA", "cancellation_date": "NA", "access": "private", "reference_title": "UL Curriculum", "certification": "no", "duration": "5", "avg_ratings": "NA", "seat_limit": "NA", "purchased_count": "0", "start_date": "NA" } , { "Token": "Upside@2016" } ] } Curriculum without content: Copy Code { "curriculumCatalogDTO":[ { "instructor":"NA", "modified_date":"NA", "currency":"USD", "curriculum_name":"UL Curriculum", "end_date":"NA", "modified_by":"Upside Admin", "completion_count":"0", "seat_hours":"0", "curriculum_id":"31", "nomination_date":"NA", "Content":[ { "reference_title": "NA", "about_course": "NA", "instructor": "NA", "seat_hours": "NA", "created_on": "04\/05\/2016", "mandatory": "No", "course_name": "Course 001", "course_id": "2", "type": "SCORM 1.2", "content_type": "Course", "seat_mins": "NA", "uploaded_on": "04\/20\/2016" } , { "duration": "10", "title": "Test 001", "instructor": "NA", "navigation": "Practice Mode", "description": "Test 001", "mandatory": "No", "total_attempts": "5", "valid_from_date": "NA", "cutoff": "40", "test_id": "6", "content_type": "Assessment", "valid_till_date": "NA" } , { "instructor": "NA", "reference_material_id": "1", "reference_material_name": "Reference Material 001", "description": "NA", "mandatory": "No", "avain_to": "NA", "avail_from": "NA", "content_type": "Reference Material", "uploaded_on": "04\/05\/2016" } , { "assignment_name": "Assignment 001", "duration": "NA", "instructor": "NA", "objective": "NA", "mandatory": "No", "max_score": "100", "instruction": "NA", "assignment_id": "2", "content_type": "Assignment", "uploaded_on": "04\/20\/2016" } , { "instructor": "NA", "instructions": "NA", "description": "Survey 001", "avain_from": "NA", "mandatory": "No", "survey_name": "Survey 001", "avail_to": "NA", "survey_id": "2", "content_type": "Survey" } , { "instructor": "NA", "video_name": "Video 001", "description": "NA", "mandatory": "No", "video_id": "2", "type": "uploaded", "content_type": "Video", "uploaded_on": "04\/20\/2016" } ], "seat_mins":"NA", "created_by":"Upside Admin", "created_date":"05\/06\/2016", "assignment_count":"0", "nomination_count":"0", "cost_per_person":"10.00", "status":"available", "community":"NA", "cancellation_date":"NA", "access":"private", "reference_title":"UL Curriculum", "certification":"no", "duration":"5", "avg_ratings":"NA", "seat_limit":"NA", "purchased_count":"0", "start_date":"NA" } , { "Token": "Upside@2016" } ] } |
Sr.No. | Parameter | Keyword |
---|---|---|
1 | Curriculum Id | curriculum_id |
2 | Curriculum Name | curriculum_name |
3 | Description | reference_title |
4 | Duration | duration |
5 | Start Date | start_date |
6 | End Date | end_date |
7 | Cost | cost_per_person |
8 | Currency | currency |
9 | Certification | certification |
10 | Instructor | instructor |
11 | Seat Hours | seat_hours |
12 | Seat Minute | seat_mins |
13 | Created by | created_by |
14 | Creation on | created_date |
15 | Modified by | modified_by |
16 | Modified on | modified_date |
17 | Status | status |
18 | Access Type | access |
19 | Last date of Cancellation | cancellation_date |
20 | Last Date of Nomination | nomination_date |
21 | Community Created | community |
22 | Seat Limit | seat_limit |
23 | Number of users to whom this curriculum is assigned | assignment_count |
24 | Number of users who have completed this curriculum | completion_count |
25 | Ratings | avg_ratings |
26 | Number of users to whom this curriculum is nominated | nomination_count |
27 | Number of users who have purchased this curriculum | purchased_count |
Course | Assignment | Assessment | Reference Material | ||||
---|---|---|---|---|---|---|---|
Name | Keyword | Name | Keyword | Name | Keyword | Name | Keyword |
Course Id |
course_id |
Assignment Id |
assignment_id |
Assessment Id |
test_id |
Reference Material Id |
reference_material_id |
Course Name |
course_name |
Assignment Name |
assignment_name |
Assessment Name |
title |
Reference Material Name |
reference_material_name |
Description |
reference_title |
Description |
objective |
Description |
description |
Description |
description |
Content Type |
content_type |
Instruction |
instruction |
Mandatory / Optional |
mandatory |
Mandatory / Optional |
mandatory |
Mandatory / Optional |
mandatory {Yes or No} |
Mandatory / Optional |
mandatory |
Test Duration |
duration |
Uploaded On |
uploaded_on |
Compliance Type |
type |
Maximum Score |
max_score |
Minimum Passing Percentage (Cut Off) |
cutoff |
Instructor |
instructor |
Created On |
created_on |
Duration |
duration |
Number of Attempts |
total_attempts |
Content Type |
content_type |
Uploaded On |
uploaded_on |
Uploaded on |
uploaded_on |
Practice Test / Final Test |
navigation |
||
About Course |
about_course |
Instructor |
instructor |
Instructor |
instructor |
||
Instructor |
instructor |
Content Type |
content_type |
Content Type |
content_type |
||
Seat Hours |
seat_hours |
||||||
Seat Minutes |
seat_mins |
Parameter | Error Code | Error Massage | Scenarios |
---|---|---|---|
Portal Key |
Err001 |
Invalid value received against parameter.(Portal Key) |
- In case of Empty field or Invalid parameter received against portal key. |
Token ID |
Err001 |
Invalid value received against parameter.(Token ID) |
- In case of Empty field or Invalid parameter received against token. |
Learner ID |
Err001 |
Invalid value received against parameter.(Learner ID) |
- In case of Invalid parameter received against Learner Id. |
Content Mode |
Err001 |
Invalid value received against parameter.(Content Mode) |
- In case of Invalid parameter received against content mode. |
Output List |
Err001 |
Invalid value received against parameter.(Output List) |
- In case of Invalid parameter received against output list. |
Access |
Err001 |
Invalid value received against parameter.(Access) |
- In case of Invalid parameter received against access. |
Certification |
Err001 |
Invalid value received against parameter.(Certification) |
- In case of Empty field or Invalid parameter received against certification. |
Rating |
Err001 |
Invalid value received against parameter.(Rating) |
- In case of Empty field or Invalid parameter received against rating. - It should be integer value. |
Validity |
Err001 |
Invalid value received against parameter.(Validity) |
In case of Empty field or Invalid parameter received against validity. - It should be integer value. |
Order By |
Err001 |
Invalid value received against parameter.(Order By) |
- In case of Invalid parameter received against order by. - Parameter naming convention to be followed. |
Start Date |
Err004 |
Invalid Date format.(Start Date) |
- In case of Invalid parameter received against start date as invalid date format. - It should be in MM/DD/YYYY format. |
End Date |
Err004 |
Invalid Date format.(End Date) |
- In case of Invalid parameter received against end date as invalid date format. - It should be in MM/DD/YYYY format. |
No Data |
Msg001 |
No data found. |
In case no data found. |
- Pull the data from web-service once a day and use local storage to store/fetch the data for faster execution.
- Use filters to get faster and appropriate/required data.
- List required fields from curriculum data.
- Do not expose curriculum and content IDs shared by web service.
- Use recommended encryption.
- Use proper order by clause to get ordered data.
- Use valid data while calling web service.
- Errors or exceptions returned in the response by the UpsideLMS should be handled by the API calling system in a required way to ensure API calling system and UpsideLMS are always in sync.
- The API link, public key and portal key should not be exposed with anyone other than the authorised person or team. This might lead to access of unauthorised person to the confidential data residing on UpsideLMS. UpsideLMS will not be able to control or will be responsible for any theft or loss of data due to this.
Description: Fetches Learning Plan of a user with Curriculum(s) and its Content
URL: /rest/trainingplan
Parameters:
Parameter | Mandatory | Description |
---|---|---|
Portal Key
[lmsportalid] |
Yes |
|
Token ID
[lmstokenid] |
Yes |
|
Content
[contentlist] |
No |
|
Learner ID
[lmslearnerid] |
Yes |
|
Curriculum Parameters
[filterby] |
No |
1) Start Date [String] :
2) Certification [String] : PARAMETERS : {Yes,No}
3) Access [String] : PARAMETERS : {Private,Public,Paid} - This parameter can have values "Private" or "Public" or "Paid"
4) Rating : PARAMETERS : {1,2,3,4,5}
5) Validity Days :
6) Order By : PARAMETERS :{ curriculum_name_asc, curriculum_name_desc, curriculum_name_default, accessibility }
7) Expiry Date [String] :
|
Paremeter_List
[outputlist] |
No |
|
Parameter | JSON |
---|---|
JSON Result | For each curriculum: Copy Code { "learningPlanDTO":[ { "last_access_date":"NA", "instructor":"NA", "learner_rating":"NA", "modified_date":"NA", "currency":"USD", "feedback":"NA", "assigned_date":"05\/06\/2016", "curriculum_name":"UL Curriculum", "end_date":"NA", "modified_by":"Upside Admin", "completion_count":"0", "seat_hours":"0", "validity":"5", "curriculum_id":"31", "purchase_count":"0", "nomination_date":"NA", "Content":[ { "about_course": "NA", "instructor": "NA", "created_on": "04\/05\/2016", "mandatory": "No", "course_name": "Course 001", "type": "SCORM 1.2", "timespent": "NA", "completion_status": "NA", "uploaded_on": "04\/20\/2016", "reference_title": "NA", "last_accessed_on": "NA", "completed_on": "NA", "seat_hours": "NA", "attempts": "NA", "course_id": "2", "content_type": "Course", "started_on": "NA", "seat_mins": "NA" } , { "instructor": "NA", "mandatory": "No", "remaining_attempt": "NA", "score": "NA", "valid_from_date": "NA", "total_attempts": "5", "test_id": "6", "cutoff": "40", "completion_status": "NA", "title": "Test 001", "duration": "10", "last_accessed_on": "NA", "completed_on": "NA", "navigation": "Practice Mode", "description": "Test 001", "best_score": "NA", "content_type": "Assessment", "started_on": "NA", "valid_till_date": "NA" } , { "last_accessed_on": "NA", "instructor": "NA", "reference_material_id": "1", "reference_material_name": "Reference Material 001", "description": "NA", "mandatory": "No", "avain_to": "NA", "avail_from": "NA", "content_type": "Reference Material", "completion_status": "NA", "uploaded_on": "04\/05\/2016" } , { "assignment_name": "Assignment 001", "ended_on": "NA", "objective": "NA", "instructor": "NA", "evaluated_date": "NA", "first_accessed_on": "NA", "mandatory": "No", "assignment_id": "2", "completion_status": "NA", "uploaded_on": "04\/20\/2016", "feedback": "NA", "duration": "NA", "last_accessed_on": "NA", "completed_on": "NA", "learner_score": "NA", "max_score": "100", "instruction": "NA", "content_type": "Assignment" } , { "last_accessed_on": "NA", "instructor": "NA", "instructions": "NA", "description": "Survey 001", "avain_from": "NA", "mandatory": "No", "survey_name": "Survey 001", "avail_to": "NA", "survey_id": "2", "content_type": "Survey", "completion_status": "NA" } , { "last_accessed_on": "NA", "instructor": "NA", "video_name": "Video 001", "description": "NA", "mandatory": "No", "video_id": "2", "type": "uploaded", "content_type": "Video", "timespent": "NA", "completion_status": "NA", "uploaded_on": "04\/20\/2016" } ], "expired_date":"NA", "started_on":"NA", "seat_mins":"NA", "created_by":"Upside Admin", "created_date":"05\/06\/2016", "assignment_count":"1", "nomination_count":"0", "cost_per_person":"10.00", "community":"NA", "cancellation_date":"NA", "completion_date":"NA", "access":"private", "reference_title":"UL Curriculum", "certification":"no", "seat_limit":"NA", "avgratings":"NA", "start_date":"NA", "curriculum_completion_status":"not started", "curriculum_status":"available" } , { "Token": "Upside@2016" } ] } |
Sample Output Result | Curriculum with content: Copy Code { "learningPlanDTO":[ { "last_access_date":"NA", "instructor":"NA", "learner_rating":"NA", "modified_date":"NA", "currency":"USD", "feedback":"NA", "assigned_date":"05\/06\/2016", "curriculum_name":"UL Curriculum", "end_date":"NA", "modified_by":"Upside Admin", "completion_count":"0", "seat_hours":"0", "validity":"5", "curriculum_id":"31", "purchase_count":"0", "nomination_date":"NA", "Content":[ { "about_course": "NA", "instructor": "NA", "created_on": "04\/05\/2016", "mandatory": "No", "course_name": "Course 001", "type": "SCORM 1.2", "timespent": "NA", "completion_status": "NA", "uploaded_on": "04\/20\/2016", "reference_title": "NA", "last_accessed_on": "NA", "completed_on": "NA", "seat_hours": "NA", "attempts": "NA", "course_id": "2", "content_type": "Course", "started_on": "NA", "seat_mins": "NA" } , { "instructor": "NA", "mandatory": "No", "remaining_attempt": "NA", "score": "NA", "valid_from_date": "NA", "total_attempts": "5", "test_id": "6", "cutoff": "40", "completion_status": "NA", "title": "Test 001", "duration": "10", "last_accessed_on": "NA", "completed_on": "NA", "navigation": "Practice Mode", "description": "Test 001", "best_score": "NA", "content_type": "Assessment", "started_on": "NA", "valid_till_date": "NA" } , { "last_accessed_on": "NA", "instructor": "NA", "reference_material_id": "1", "reference_material_name": "Reference Material 001", "description": "NA", "mandatory": "No", "avain_to": "NA", "avail_from": "NA", "content_type": "Reference Material", "completion_status": "NA", "uploaded_on": "04\/05\/2016" } , { "assignment_name": "Assignment 001", "ended_on": "NA", "objective": "NA", "instructor": "NA", "evaluated_date": "NA", "first_accessed_on": "NA", "mandatory": "No", "assignment_id": "2", "completion_status": "NA", "uploaded_on": "04\/20\/2016", "feedback": "NA", "duration": "NA", "last_accessed_on": "NA", "completed_on": "NA", "learner_score": "NA", "max_score": "100", "instruction": "NA", "content_type": "Assignment" } , { "last_accessed_on": "NA", "instructor": "NA", "instructions": "NA", "description": "Survey 001", "avain_from": "NA", "mandatory": "No", "survey_name": "Survey 001", "avail_to": "NA", "survey_id": "2", "content_type": "Survey", "completion_status": "NA" } , { "last_accessed_on": "NA", "instructor": "NA", "video_name": "Video 001", "description": "NA", "mandatory": "No", "video_id": "2", "type": "uploaded", "content_type": "Video", "timespent": "NA", "completion_status": "NA", "uploaded_on": "04\/20\/2016" } ], "expired_date":"NA", "started_on":"NA", "seat_mins":"NA", "created_by":"Upside Admin", "created_date":"05\/06\/2016", "assignment_count":"1", "nomination_count":"0", "cost_per_person":"10.00", "community":"NA", "cancellation_date":"NA", "completion_date":"NA", "access":"private", "reference_title":"UL Curriculum", "certification":"no", "seat_limit":"NA", "avgratings":"NA", "start_date":"NA", "curriculum_completion_status":"not started", "curriculum_status":"available" } , { "Token": "Upside@2016" } ] } Curriculum without content: Copy Code { "learningPlanDTO":[ { "last_access_date": "NA", "instructor": "NA", "learner_rating": "NA", "modified_date": "NA", "currency": "USD", "feedback": "NA", "assigned_date": "05\/06\/2016", "curriculum_name": "UL Curriculum", "end_date": "NA", "modified_by": "Upside Admin", "completion_count": "0", "seat_hours": "0", "validity": "5", "curriculum_id": "31", "purchase_count": "0", "nomination_date": "NA", "expired_date": "NA", "started_on": "NA", "seat_mins": "NA", "created_by": "Upside Admin", "created_date": "05\/06\/2016", "assignment_count": "1", "nomination_count": "0", "cost_per_person": "10.00", "community": "NA", "cancellation_date": "NA", "completion_date": "NA", "access": "private", "reference_title": "UL Curriculum", "certification": "no", "seat_limit": "NA", "avgratings": "NA", "start_date": "NA", "curriculum_completion_status": "not started", "curriculum_status": "available" } , { "Token": "Upside@2016" } ] } |
Sr.No. | Parameter | Keyword |
---|---|---|
1 | Curriculum Id | curriculum_id |
2 | Curriculum Name | curriculum_name |
3 | Description | reference_title |
4 | Duration | duration |
5 | Start Date | start_date |
6 | End Date | end_date |
7 | Cost | cost_per_person |
8 | Currency | currency |
9 | Certification | certification |
10 | Instructor | instructor |
11 | Seat Hours | seat_hours |
12 | Seat Minute | seat_mins |
13 | Created by | created_by |
14 | Creation on | created_date |
15 | Modified by | modified_by |
16 | Modified on | modified_date |
17 | Status | status |
18 | Access Type | access |
19 | Last date of Cancellation | cancellation_date |
20 | Last Date of Nomination | nomination_date |
21 | Community Created | community |
22 | Seat Limit | seat_limit |
23 | Number of users to whom this curriculum is assigned. | assignment_count |
24 | Number of users who have completed this curriculum. | completion_count |
25 | Ratings | avg_ratings |
26 | Number of users to whom this curriculum is nominated. | nomination_count |
27 | Number of users who have purchased this curriculum. | purchased_count |
28 |
Date when curriculum was assigned to learner. |
assigned_date |
29 |
Date when learner first accessed the curriculum. |
last_access_date |
30 |
Date when curriculum was completed by Learner. |
completion_date |
31 |
Date when curriculum was expired for that Learner. |
expired_date |
32 |
Feedback given by Learner |
feedback |
33 |
Rating given by Learner |
learner_rating |
34 |
Curriculum Completion Status |
curriculum_completion_status |
Course | Assignment | Assessment | Reference Material | ||||
---|---|---|---|---|---|---|---|
Name | Keyword | Name | Keyword | Name | Keyword | Name | Keyword |
Course Id |
course_id |
Assignment Id |
assignment_id |
Assessment Id |
test_id |
Reference Material Id |
reference_material_id |
Course Name |
course_name |
Assignment Name |
assignment_name |
Assessment Name |
title |
Reference Material Name |
reference_material_name |
Description |
reference_title |
Description |
objective |
Description |
description |
Description |
description |
Content Type |
content_type |
Instruction |
instruction |
Mandatory / Optional |
mandatory |
Mandatory / Optional |
mandatory |
Mandatory / Optional |
mandatory {Yes or No} |
Mandatory / Optional |
mandatory |
Test Duration |
duration |
Uploaded On |
uploaded_on |
Compliance Type |
type |
Maximum Score |
max_score |
Minimum Passing Percentage (Cut Off) |
cutoff |
Instructor |
instructor |
Created On |
created_on |
Duration |
duration |
Number of Attempts |
total_attempts |
Content Type |
content_type |
Uploaded On |
uploaded_on |
Uploaded on |
uploaded_on |
Practice Test / Final Test |
navigation |
Date on which reference material was last viewed by learner |
last_accessed_on |
About Course |
about_course |
Instructor |
instructor |
Instructor |
instructor |
Status of the assessment |
completion_status |
Instructor |
instructor |
Content Type |
content_type |
Content Type |
content_type |
||
Seat Hours |
seat_hours |
Date on which the assignment was first accessed by learner. |
first_accessed_on |
Date on which assessment was first accessed by learner. |
started_on |
||
Seat Minutes |
seat_mins |
Date on which the assignment was last accessed by learner. |
last_accessed_on |
Date on which assessment was last accessed by learner. |
completed_on |
||
Date on which course was first accessed by learner |
started_on |
Date on which the assignment was completed by learner. |
completed_on |
Date on which assessment was completed by learner. |
last_accessed_on |
||
Date on which course was last accessed by learner |
last_accessed_on |
End date for the assignment for the learner. |
ended_on |
Score for that assessment |
score |
||
Date on which course was completed by learner |
completed_on |
Status of assignment for that learner |
completion_status |
Number of attempts remaining for that learner |
remaining_attempt |
||
Number of attempts |
attempts |
Score received by learner |
learner_score |
Best score for the assessment for that learner |
best_score |
||
Time spent by learner to view the course |
timespent |
Date on which assignment was evaluated by learner |
evaluated_date |
Completion Status |
completion_status |
||
Status of the course for that learner |
completion_status |
Feedback received for that learner |
feedback |
Parameter | Error Code | Error Massage | Scenarios |
---|---|---|---|
Portal Key |
Err001 |
Invalid value received against parameter.(Portal Key) |
- In case of Empty field or Invalid parameter received against portal key. |
Token ID |
Err001 |
Invalid value received against parameter.(Token ID) |
- In case of Empty field or Invalid parameter received against token. |
Learner ID |
Err001 |
Invalid value received against parameter.(Learner ID) |
- In case of Invalid parameter received against Learner ID. |
Content Mode |
Err001 |
Invalid value received against parameter.(Content Mode) |
- In case of Invalid parameter received against content mode. |
Output List |
Err001 |
Invalid value received against parameter.(Output List) |
- In case of Invalid parameter received against output list. |
Access |
Err001 |
Invalid value received against parameter.(Access) |
- In case of Invalid parameter received against access. |
Certification |
Err001 |
Invalid value received against parameter.(Certification) |
- In case of Empty field or Invalid parameter received against certification. |
Rating |
Err001 |
Invalid value received against parameter.(Rating) |
- In case of Empty field or Invalid parameter received against rating. - it should be integer. |
Validity |
Err001 |
Invalid value received against parameter.(Validity) |
In case of Empty field or Invalid parameter received against validity. - It should be integer value. |
Order By |
Err001 |
Invalid value received against parameter.(Order By) |
- In case of Invalid parameter received against order by. - Parameter naming convention to be followed. |
Start Date |
Err004 |
Invalid Date format.(Start Date) |
- In case of Invalid parameter received against start date as invalid date format. - It should be in MM/DD/YYYY format |
End Date |
Err004 |
Invalid Date format.(End Date) |
- In case of Invalid parameter received against end date as invalid date format. - It should be in MM/DD/YYYY format |
No Data |
Msg001 |
No data found. |
In case no data found. |
- Pull the data from web-service once a day and use local storage to store/fetch the data for faster execution.
- Use filters to get faster and appropriate/required data.
- List required fields from curriculum data.
- Do not expose curriculum and content IDs shared by web service.
- Use recommended encryption.
- Use proper order by clause to get ordered data.
- Use valid data while calling web service.
- Errors or exceptions returned in the response by the UpsideLMS should be handled by the API calling system in a required way to ensure API calling system and UpsideLMS are always in sync.
- The API link, public key and portal key should not be exposed with anyone other than the authorised person or team. This might lead to access of unauthorised person to the confidential data residing on UpsideLMS. UpsideLMS will not be able to control or will be responsible for any theft or loss of data due to this.
Description: Creates and Updates your user accounts
URL: /rest/manageuser
Parameters:
Parameter | Mandatory | Data Type | Description |
---|---|---|---|
Portal Key
[lmsportalid] |
Yes | String |
|
Token ID
[lmstokenid] |
Yes | String |
|
Data Language
[data_language] |
Yes | String |
|
User Details
[json] |
Yes | JSON |
|
Output | JSON |
---|---|
JSON Result |
If 'lmsportalid' received and is valid then output will be in encrypted format, otherwise it will be in simple json format. Copy Code{ "error_list":[ { "Error Code": "" } , { "Error Code": "" } ], "status":"", "lmstoken_id":"" } |
Sample Output Result |
Copy Code
{ "status": "success", "lmstoken_id": "upsidelmstoken00009" } Copy Code { "error_list":[ { "Err001": "Invalid value received against parameter. (Portal key)" } ], "status":"fail" } Copy Code { "error_list":[ { "Err004": "Invalid Date format. (Date of Birth)" } , { "Err004": "Invalid Date format. (Date of Joining)" } , { "Err001": "Record does not exists in system. (LMS Role)" } ], "status":"fail", "lmstoken_id":"upsidelmstoken00009" } |
Error Code | Error Massage | Example |
---|---|---|
Err001 |
Invalid value received against parameter. |
{"Err001":"Invalid value received against parameter. (LMS Role)"} |
Err002 |
Mandatory Field. |
{"Err002":"Mandatory Field. (First Name)"} |
Err003 |
Record does not exist in system. |
{"Err003":"Record does not exist in system. (Node ID)"} |
Err004 |
Invalid Date format. |
{"Err004":"Invalid Date format. (Date of Joining)"} |
Err005 |
Duplicate record. |
{"Err005":"Duplicate record. (Email)"} |
Err006 |
No Licenses Found. |
{"Err006":"No Licenses Found."} |
Err007 |
Access Disabled |
{"Err007":"Access Disabled"} |
Err500 |
Internal server error. |
{"Err500":"Internal server error."} |
- Strong data encryption algorithm like AES is recommended for sending sensitive data over the network.
- Use of POST method as against GET method in the form is recommended for submitting sensitive data over the network.
- Make sure to sync/update local data with UpsideLMS application, if any of the master records are updated in the API calling system.
- Add/update user API should be called, when any user in the client system is added or updated. This will ensure synchronization between API calling system and UpsideLMS.
- Valid data should be passed in the API call to UpsideLMS.
- Errors or exceptions returned in the response by the UpsideLMS should be handled by the API calling system in a required way to ensure API calling system and UpsideLMS are always in sync.
- The API link should not be exposed with anyone other than the authorised person or team. This might lead to access of unauthorised person to the confidential data residing on UpsideLMS. UpsideLMS will not be able to control or will be responsible for any theft or loss of data due to this.
Description: Designed to assign one or multiple curriculums to one or multiple LMS users.
URL: /rest/assigncurriculum
Parameters:
Parameter | Mandatory | Data Type | Description |
---|---|---|---|
Portal Key
[lmsportal_id] |
Yes | String |
|
Token ID
[lmstoken_id] |
Yes | String |
|
Curriculum-learner Details
[json] |
Yes | JSON |
{ "curr_learner_info": [{"assignment_id":"1","learner_info":"email_id=pallavi.mali@upsidelearning.com~unique_id=4861~username=pallavi","curr_ids":"1~2~3"}, {"assignment_id":"2","learner_info":"unique_id=4201~username=pallavi","curr_ids":"113"}, {"assignment_id":"3","learner_info":"username=pallavi","curr_ids":"113~125"} ]} a) assignment_id * : The Assignment ID will be generated by Client's system and shared against each Learner and Curriculum record to uniquely identify the particular mapping. For example – Record 1 - {"assignment_id":"1", "learner_info":"unique_id=4861~username=Alex", "curr_ids":"1~2~3"}Record 2 – {"assignment_id":"2", "learner_info":"unique_id=4201~username=John", "curr_ids":"113"} b) learner_info * : This parameter will be used to uniquely identify the learner. This unique identifier can be – Unique ID (key : unique_id) or/and Login ID (key : username) or/and Email ID (key : email_id). The Key and the specific value should be separated by "=" sign (as displayed in the example above) If more than one of these unique parameters are shared then they need to be separated by "~" sign (as displayed in the example above) c) curr_ids* : This parameter will be used to share the Curriculum IDS (as stored in LMS database) which are to be assigned to the specified Learners. Multiple Curriculum IDs will be separated by "~" sign (as displayed in the example above) Please Note - Parameters marked with (*) are mandatory. |
Output | JSON |
---|---|
JSON Result |
|
Sample Output Result |
|
Error Code | Error Massage | Example |
---|---|---|
Err001 | Invalid value received against parameter. | {"Err001":"Invalid value received against parameter. (Learner Unique Identifier)"} |
Err002 | Mandatory Field. | {"Err002":"Mandatory Field. (Portal Key)"} |
Err003 | Record does not exist in system. | {"Err003":"Record does not exist in system. (Curriculum ID)"} |
Err500 | Internal server error. | {"Err500":"Internal server error."} |
Err007 | Access Disabled. | {"Err007":"Access Disabled."} |
Err008 | Session within this curriculum conflicts with a session in another Curriculum already assigned to the learner | {"Err008":"Session within this curriculum conflicts with a session in another Curriculum already assigned to the learner"} |
Err009 | Curriculum is expired | {"Err009":"Curriculum is expired"} |
Err010 | Curriculum already assigned | {"Err010":"Curriculum already assigned"} |
Err011 | Session seat limit exceeds | {"Err011":"Session seat limit exceeds"} |
Err012 | Capacity of VCS exceeds | {"Err012":"Capacity of VCS exceeds"} |
Err013 | Curriculum Unavailable | {"Err013":"Curriculum Unavailable"} |
Err014 | Curriculum does not have any Contents | {"Err014":"Curriculum does not have any Contents"} |
Err015 | Curriculum can only be assigned to a user with 'Learner' access. | {"Err015":"Curriculum can only be assigned to a user with 'Learner' access."} |
- This API supports the AES (AES/CBC/PKCS5Padding (key-size : 128)) encryption/decryption Algorithm for sharing user and curriculum data. We strongly recommend usage of this feature for sharing the data across the applications securely.
- Use of POST method as against GET method in the form is recommended for submitting sensitive data over the network.
- We recommend that only valid data should be shared as part of the triggered API, to prevent the failure of transactions.
- Errors or exceptions sent in the response by the UpsideLMS should be handled by the Client's system which triggered the particular API, to ensure that the Client's system and UpsideLMS are always in sync.
- The API URL should not be exposed with any individual other than the authorised personnel or team to avoid security breach of confidential data residing in UpsideLMS. UpsideLMS will not be able to control or will be responsible for any theft or loss of data due to this.
- Using this API, multiple curriculums can be directly assigned to users. It will have all the same impacts as of curriculum assignment through delivery management, like mail notifications sent on curriculum assignment.
- For Paid Curriculums purchased by Users, Client's system is expected to share the data after successful payment, as UpsideLMS will be responsible only for Curriculum Assignment to Users and will not validate if the payment was successful.
- This API does not support un-assignment of Curriculums to Learners. Client Administrator is expected to un-assign curriculums using standard UpsideLMS Delivery Management feature.

- Configure UpsideLMS SSO
- It has two mandatory text fields:
- LMS Redirection URL (Non editable)
- LMS Logout Redirection URL
- Parameter Details link would display list of parameters required by LMS to authenticate user.
- LMS will accept all the parameters in encrypted format except Client key.
- All encrypted fields must be encrypted using AES 128 algorithm with password.
- Form method to be used is POST.
Parameter | Parameter Id | Mandatory/Optional | Data Type | AES Encrypted |
---|---|---|---|---|
Client Key [*] |
clientKey |
Mandatory |
String |
No |
Curriculum Id |
curriculumId |
Optional |
String |
Yes |
User Id |
uniqueIdentifier1 |
Optional |
String |
Yes |
User Name |
uniqueIdentifier2 |
Optional |
String |
Yes |
Email Id |
uniqueIdentifier3 |
Optional |
String |
Yes |
Based on parameters provided here is the list scenarios:
- If 'clientKey', 'curriculumId' and any of the 'uniqueidentifiers' are provided then the controller will validate the user with combinations of 'uniqueidentifiers' and checks whether provided curriculum is present in user's plan then redirect to Learning Plan page, if not then controller check whether user has Catalog access to that curriculum then redirect to Catalog, and if not then redirect to default landing page.
- If 'clientKey' and any of the 'uniqueidentifiers' are provided then after validation, controller just redirects user to default landing page.
- If controller finds any of the parameter invalid then it redirects to 'common_errorPage.jsp' with error message.
- LMS will accept all the parameters in encrypted format except Client key.
- All encrypted fields must be encrypted using AES 128 algorithm with password.
- Form method to be used is POST.
Parameter | Parameter Id | Mandatory/Optional | Data Type | AES Encrypted |
---|---|---|---|---|
Client Key [*] | clientKey | Mandatory | String | No |
Curriculum Id | curriculumId | Optional | String | Yes |
Based on parameters provided here is the list scenarios:
- If only 'clientKey' provided then controllers validates the client key and redirects user to respective client login page.
- If 'clientKey' and 'curriculumId' are provided then controller decrypts the curriculum id and stores it in session and redirects user to client login page.
- If controller finds any of the parameter invalid then it redirects to 'common_errorPage.jsp' with error message.
<form name="navigationForm" id="navigationForm" method="POST" action="{Context_path}/navigationcontroller" target="_blank">
<label>Client Key: </label>
<input type="text" name="clientKey" id="clientKey"><br>
<label>Curriculum Id: </label>
<input type="text" name="curriculumId" id="curriculumId"> <br>
<label>User Id: </label>
<input type="text" name="uniqueIdentifier1"> <br>
<label>User Name: </label>
<input type="text" name="uniqueIdentifier2"> <br>
<label>Email: </label>
<input type="text" name="uniqueIdentifier3">
<input type="submit" name="submit" value="Go">
</form>
- Use AES algorithm to encrypt values to be sent via form
- Sample Data:
- action: http://localhost:8080/lmsv7.1/navigationcontroller
- clientKey: upsidelearning71
- curriculumId
- Actual value: 1 Encrypted: MexmjtH8sbAbHCIFr/Y9/w==
- Actual value: 1 Encrypted: MexmjtH8sbAbHCIFr/Y9/w==
- Actual value: 2 Encrypted: EgmNBXILCppdFtCqcdg36Q==
- Actual value: 3 Encrypted: HtaSvQ4p+Bb5m+V/oR0dgg==
- uniqueIdentifier1
- Actual value: 404 Encrypted: Cn+dHbpVHr7U+IQG7brCIQ==
- uniqueIdentifier2
- Actual value: aasif Encrypted: SD8/6XxGX0xGdz3VANhjlA==
- uniqueIdentifier3
- Actual value: aasif.iqbal@upsidelearning.com Encrypted: eOexakogmIho1ax30vnilRSPs3XJvBnUSEt3+aoHsgQ=
Note : All these values are encrypted using AES password 'Upside@2016'.
- Schedule an update process daily, weekly or monthly as per your requirement.
- Easily map user profile data (exported in MS excel or CSV format) from your SAP or any other system in UpsideLMS.
- Easily to map users within an organisation hierarchy.
- Receive an email with details of user records that were updated successfully or failed, with details of failure.
- Does not require any modifications or API integrations on client system, other than ensuring updated user record file is placed on the agreed location at scheduled intervals.