APIs and Integration

Website Designs Dots

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

UpsideLMS provides ready integration with Harvard ManageMentor Courses, a leading content provider, to help employees unlock their leadership potential with high-quality, engaging content.

salesforce

Ready integration for Percipio from Skill Soft, a leading content provider, known for its highly engaging content to provide anytime, anywhere learning.

salesforce

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.

zoom

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.

Webex

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

GotoMeeting

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

teams

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.

PayPal

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

eWay

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

mPesa

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.

SAML

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.

sso

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).

onelogin

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

Azure

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

Oracle

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

PingFederate

Allows users to seamlessly sign in to UpsideLMS using PingFederate.

darwinbox

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.

peoplesoft

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.

hris

Integrate Keka with UpsideLMS with the help of REST API integration to sync employee data.

hris

Integrate UpsideLMS with Zing HR, the Cloud HRIS solution with the help of REST API integration to sync employee data.

hris

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.

icon03

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.

icon04

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.

icon05

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.

amazon

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.

cegos

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

bizlibrary

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.

SAP

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.

Udemy

UpsideLMS provides redirection to Udemy for course access.

LI-learning

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

ken

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
  1. The Client Key will be set by SM at LMS portal level.
  2. This is not in encrypted form.
  3. This will be a mandatory parameter for the LMS to identify the LMS portal for which the API is triggered.
Token ID
[lmstokenid]
Yes
  1. Client would generate and send the Token ID against the request for data.
  2. This will be in encrypted form.
  3. This Token ID will be used by Upside to identify the request and will be sent to client's system by UpsideLMS along with the required data.
Content
[contentlist]
No
  1. This parameter will have values like "On" or "Off".
  2. This will be in encrypted form.
  3. If Content = "On", then details of the Learning Content build within the Curriculums in the Catalog will be shared with client's system (as output parameters).
  4. If Content = "Off", then only Curriculum level details will be shared with client's system (as output parameters).
  5. If no data is received against this parameter, then only the Curriculum details (without learning content details) will be sent as part of the output parameters.
  6. e.g
    1) On -> VvBCHVQSd0dNrKy2mqfjjA==
                                                                            2) Off -> iGJtxeqAfNADutGTcjk7og==
Learner ID
[lmslearnerid]
No 1) Start Date [String] :
  1. This parameter will have Date in MM/DD/YYYY format.
  2. This will be in encrypted form.
  3. All the Curriculums starting from that particular date will be shared with client's system.
  4. If no data is received against this parameter, then all curriculums irrespective of start date will be shared with client's System.
  5. e.g
    Start_Date=01/01/2016
    Keyword (Start_Date) should be shared in same format.

2) End Date [String] :
  1. This parameter will have Date in MM/DD/YYYY format.
  2. This will be in encrypted form.
  3. All the Curriculums starting from that particular date will be shared with client's system.
  4. If no data is received against this parameter, then all curriculums irrespective of start date will be shared with client's System.
  5. e.g
    End_Date=01/01/2016
    Keyword (End_Date) should be shared in same format.

3) Certification [String] :
PARAMETERS : {Yes,No}
  1. This parameter can have values "Yes" or "No".
  2. This will be in encrypted form.
  3. If Certification = "Yes", then all the curriculums with Certificate attached will be shared with client's system (as output parameters).
  4. If Certification = "No", then all the curriculums without Certificate attached will be shared with client's system (as output parameters).
  5. If no data is received against this parameter, then all the curriculums irrespective of the certificate will be shared with client's system (as output parameters).
  6. Comma separated multiple values can be shared.
  7. e.g
    Certification=Yes
                                                                  Certification=Yes,No
    - Keyword (Certification) should be shared in same format.

4) Access [String] :
PARAMETERS : {Private,Public,Paid}
  1. This parameter can have values "Private" or "Public" or "Paid".
  2. This will be in encrypted form.
  3. If Accessibility = "Private", then all the curriculums with Access type as Private will be shared with client's system (as output parameters).
  4. If Accessibility = "Public", then all the curriculums with Access type as Public will be shared with client's system (as output parameters).
  5. If Accessibility = "Paid", then all the curriculums with Access type as Paid will be shared with client's system (as output parameters).
  6. If no data is received against this parameter, then all the curriculums
  7. irrespective of access type will be shared with client's system (as output parameters).
  8. Comma separated multiple values can be shared.
  9. e.g
    Accessibility=Public
                                                                  Accessibility=Public,Private,Paid
                                                                  - Keyword (Accessibility) should be shared in same format.

5) Rating :
PARAMETERS : {1,2,3,4,5}
  1. This parameter will have a positive integer value (1 to 5). Based on this value, the curriculums with rating greater than and equal to the specific rating will be shared with client's system (as output parameters).
  2. This will be in encrypted form.
  3. Comma separated multiple values can be shared.
  4. e.g
    Rating=1
                                                                  Rating=1,2,3,4,5
    - Keyword (Rating) should be shared in same format.

6) Validity Days :
  1. This parameter will have positive integers (Curriculum Duration).
  2. This will be in encrypted form.
  3. All the Curriculums with specified Duration(s) will be shared with client's system (as output parameters).
  4. Comma separated multiple values can be shared.
  5. e.g
    validity_days=1
                                                                  validity_days=1,2,3
    - Keyword (validity_days) should be shared in same format.

7) Order By :
PARAMETERS : { curriculum_name_asc, curriculum_name_desc, curriculum_name_default, accessibility, rating, assigned, nominated, Purchased }
  1. This parameter can have any one of the following values - Curriculum Name - Ascending.
  2. Curriculum Name - Descending.
  3. This will be in encrypted form.
  4. Purchased - Curriculums will be shared in sequence of most purchased curriculums.
  5. Assigned - Curriculums will be shared in sequence of most assigned curriculums.
  6. Nominated - Curriculums will be shared in sequence of most nominated curriculums.
  7. Rating - Curriculums will be shared in sequence of most highly rated curriculums.
  8. This will be in encrypted form.
  9. e.g
    Order_by= curriculum_name_asc
    - Keyword (Order_by) should be shared in same format.
  10. e.g - In case multiple parameter sharing separator '~' (tilde) will be used and whole string will be in encrypted form. Below Input should be in encrypted format : Accessibility=Public ~Status=Available ~Certification=Yes ~Rating=1~validity_days=1 ~Start_Date=01/01/2016 ~End_Date=01/01/2016 ~Order_by=curriculum_name_asc
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.

  1. Pull the data from web-service once a day and use local storage to store/fetch the data for faster execution.
  2. Use filters to get faster and appropriate/required data.
  3. List required fields from curriculum data.
  4. Do not expose curriculum and content IDs shared by web service.
  5. Use recommended encryption.
  6. Use proper order by clause to get ordered data.
  7. Use valid data while calling web service.
  8. 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.
  9. 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
  1. The Client Key will be set by SM at LMS portal level.
  2. This is not in encrypted form.
  3. This will be a mandatory parameter for the LMS to identify the LMS portal for which the API is triggered.
Token ID
[lmstokenid]
Yes
  1. Client would generate and send the Token ID against the request for data.
  2. This will be in encrypted form.
  3. This Token ID will be used by Upside to identify the request and will be sent to client's system by UpsideLMS along with the required data.
Content
[contentlist]
No
  1. This parameter will have values like "On" or "Off".
  2. This will be in encrypted form.
  3. If Content = "On", then details of the Learning Content build within the Curriculum's in the Catalog will be shared with client's system. (as output parameters)
  4. If Content = "Off", then only Curriculum level details will be shared with client's system (as output parameters).
  5. If no data is received against this parameter, then only the Curriculum details (without learning content details) will be sent as part of the output parameters.
  6. e.g
    1) On → VvBCHVQSd0dNrKy2mqfjjA==
                                                        2) Off → iGJtxeqAfNADutGTcjk7og==
Learner ID
[lmslearnerid]
Yes
  1. This parameter will be send from client's system.
  2. This will be in encrypted form.
  3. Learner_ID will be the unique identifier for identification of Learner in LMS database. The unique can be one of Email ID, User name or Unique ID.
  4. Based on the Unique Identifier for that particular client, the value received against this parameter will be used to identify the learner in LMS database and the catalog for that learner will be shared.
  5. e.g
    Email=amrit.ansarwadkar@upsidelearning.com (7ckj8BeXjHxmMMl1p4hyylLq7MKY4EHithdDXxNbObsc/lWk4RbK800LjKTrgpx0)
  6. In case multiple parameter sharing separator '~' (tilde) will be used and whole string will be in encrypted form.
  7. e.g
    Email=amrit.ansarwadkar@upsidelearning.com~Login=amrita~Uniqueid=101
  8. Keys (Email,Login,Uniqueid) should be shared in same format.
Curriculum Parameters
[filterby]
No 1) Start Date [String] :
  1. This parameter will have Date in MM/DD/YYYY format.
  2. This will be in encrypted form.
  3. All the Curriculums starting from that particular date will be shared with client's system.
  4. If no data is received against this parameter, then all the curriculums irrespective of start date will be shared with client's System.
  5. Only single value can be shared.
  6. e.g
    Start_Date=01/01/2016
  7. Keyword (Start_Date) should be shared in same format.

2) Certification [String] :
PARAMETERS : {Yes,No}
  1. This parameter can have values "Yes" or "No".
  2. This will be in encrypted form.
  3. If Certification = "Yes", then all the curriculums with Certificate attached will be shared with client's system (as output parameters).
  4. If Certification = "No", then all the curriculums without Certificate attached will be shared with client's system (as output parameters).
  5. If no data is received against this parameter, then all the curriculums irrespective of the certificate will be shared with client's system (as output parameters).
  6. Comma separated multiple values can be shared.
  7. e.g
    Certification=Yes
                                                  Certification=Yes,No
  8. Keyword (Certification) should be shared in same format.

3) Access [String] :
PARAMETERS : {Private,Public,Paid}
- This parameter can have values "Private" or "Public" or "Paid"
  1. This will be in encrypted form.
  2. If Accessibility = "Private", then all the curriculums with Access type as Private will be shared with client's system (as output parameters).
  3. If Accessibility = "Public", then all the curriculums with Access type as Public will be shared with client's system (as output parameters).
  4. If Accessibility = "Paid", then all the curriculums with Access type as Paid will be shared with client's system (as output parameters).
  5. If no data is received against this parameter, then all the curriculums irrespective of access type will be shared with client's system (as output parameters).
  6. Comma separated multiple values can be shared.
  7. e.g
    Accessibility=Public
                                                      Accessibility=Public,Private,Paid
  8. Keyword (Accessibility) should be shared in same format.

4) Rating :
PARAMETERS : {1,2,3,4,5}
  1. This parameter will have a positive integer value (1 to 5). Based on this value, the curriculums with rating greater than and equal to the specific rating will be shared with client's system (as output parameters).
  2. This will be in encrypted form.
  3. Comma separated multiple values can be shared.
  4. e.g
    Rating=1
                                                      Rating=1,2,3,4,5
  5. Keyword (Rating) should be shared in same format.

5) Validity Days :
  1. This parameter will have positive integers (Curriculum Duration).
  2. This will be in encrypted form.
  3. All the Curriculums with specified Duration(s) will be shared with client's system (as output parameters).
  4. Comma separated multiple values can be shared.
  5. e.g
    validity_days=1
                                                      validity_days=1,2
  6. Keyword (validity_days) should be shared in same format.

6) Order By :
PARAMETERS :{ curriculum_name_asc, curriculum_name_desc, curriculum_name_default, accessibility }
  1. This parameter can have any one of the following values -
    Curriculum Name - Ascending
    Curriculum Name - Descending
  2. This will be in encrypted form.
  3. Only single value can be shared.
  4. e.g
    Order_by= curriculum_name_asc

7) Expiry Date [String] :
  1. This parameter will have Date in MM/DD/YYYY format.
  2. This will be in encrypted form.
  3. If no data is received against this parameter, then all the curriculums irrespective of start date will be shared with client's System.
  4. Only single value can be shared.
  5. e.g Expiry_Date=01/01/2016
  6. Keyword (Expiry_Date) should be shared in same format.
  7. e.g
    In case multiple parameter sharing separator '~' (tilde) will be used and whole string will be in encrypted form.
  8. Only single value can be shared.
  9. Below Input should be in encrypted format :
    Accessibility = Public~Completion_Status = Completed~Certification = Yes~Rating = 1~validity_days = 1~Start_Date = 01 / 01 / 2016~Expiry_Date = 01 / 01 / 2016~Order_by = curriculum_name_asc

Paremeter_List
[outputlist]
No
  1. The data against the specified field names (received against this input parameter) will only be sent as part of output parameters.
  2. e.g.
    Below input should be in encrypted format with key same as mentioned below.
    Parameter_List = curriculum_id, curriculum_name, reference_title
  3. 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, started_on, last_access_date, assigned_date, expired_date, completion_dateffeedback, learner_rating, curriculum_completion_status }
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.

  1. Pull the data from web-service once a day and use local storage to store/fetch the data for faster execution.
  2. Use filters to get faster and appropriate/required data.
  3. List required fields from curriculum data.
  4. Do not expose curriculum and content IDs shared by web service.
  5. Use recommended encryption.
  6. Use proper order by clause to get ordered data.
  7. Use valid data while calling web service.
  8. 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.
  9. 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
  1. The Client Key will be set by SM at LMS portal level.
  2. This will not be in encrypted form.
  3. This will be a mandatory parameter for the LMS to identify the LMS portal for which the API is triggered.
Token ID
[lmstokenid]
Yes String
  1. Client would generate and send the Token ID against the request for data.
  2. This will be in encrypted form.
  3. This Token ID will be used by Upside to identify the request and will be sent to client's system by UpsideLMS along with response data.
Data Language
[data_language]
Yes String
  1. This parameter is used to get the language in which masters data is going to be received from client's system.
  2. This will be in encrypted form.
  3. Values of this parameter could be {en/ar/fr/cn/sp}.
  4. e.g
    1) en → O+6XoofOQzGhdUk1zPoe1A==   
                                          2) ar → E1eCT0swv5Ft62wwoli73Q==
User Details
[json]
Yes JSON
  1. This parameter will be used to get user details.
  2. This will be in encrypted form.
  3. Unique ID will be the unique identifier for identification of Users in LMS database.
  4. Based on the Unique ID if it is found in LMS database and all the parameters received are valid then respective user details are updated in LMS database. If respective Unique ID not found in LMS database then after validating all the parameters a new user will be created in LMS database.
  5. List of parameters:
    1. unique_id [Unique ID] [Max Length - 10] - String
    2. firstname* [First Name] [Max Length - 30] - String
    3. lastname [Last Name] [Max Length - 30] - String
    4. birth_date [Date of Birth] - String
    5. joining_data [Date of Joining] - String
    6. termination_date [Date of Termination] - String
    7. gender [Gender] - String
    8. email* [Email] [Max Length - 255] - String
    9. username* [Username] [Max Length - 50] - String
    10. password* [Password] - String
    11. alternate_email [Alternate Email] [Max Length - 255] - String
    12. phone [Phone] [Max Length - 50] - String
    13. mobile [Mobile Number] [Max Length - 50] - String
    14. local_address [Address Location (Suburb, Locality or Town)] [Max Length - 450] - String
    15. local_pin_no [Local Postcode] [Max Length - 50] - String
    16. address_line1 [Address Line 1] [Max Length - 450] - String
    17. address_line2 [Address Line 2] [Max Length - 450] - String
    18. city [City] [Max Length - 80] - String
    19. state [State/Territory] [Max Length - 80] - String
    20. country [Country] [Max Length - 80] - String
    21. pin_no [Postcode] [Max Length - 50] - String
    22. grade [Grade] - String
    23. designation [Designation] - String
    24. role [Role] - String
    25. lmsrole [LMS Role] - String
    26. line_manager [Line Manager Email] - String
    27. indirect_line_manager [Indirect Line Manager Email] - String
    28. node_id [Node ID] - String
    29. user_language [Language Code] [Max Length - 10] - String
    30. status [Status] - String
    31. user_expiry_date [Date Of Expiry] - String
  6. Parameters marked with (*) are mandatory.
  7. All date parameters will be in MM/DD/YYYY format.
  8. For adding multiple values like multiple nodes, indirect line managers, etc. parameters will be comma separated.
  9. In case 'Admin Set Password' is set to 'ON' then password field is mandatory.
  10. Number of parameters may vary depending upon the user registration form set from Site Admin side for that client portal.
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."}

  1. Strong data encryption algorithm like AES is recommended for sending sensitive data over the network.
  2. Use of POST method as against GET method in the form is recommended for submitting sensitive data over the network.
  3. Make sure to sync/update local data with UpsideLMS application, if any of the master records are updated in the API calling system.
  4. 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.
  5. Valid data should be passed in the API call to UpsideLMS.
  6. 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.
  7. 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
  1. This parameter value is the Client Key which is set by Site Manager for individual LMS portal.
  2. This parameter should not be in encrypted form.
  3. This will be a mandatory parameter for LMS to identify the specific LMS portal for which the API is triggered.
  4. If 'lmsportal_id' received by LMS is invalid then the error response will be sent across to Client's system in non-encrypted format.
Token ID
[lmstoken_id]
Yes String
  1. This will be a mandatory parameter.
  2. Client would be required to generate and send the Token ID to LMS, every time this API is triggered.
  3. This Token ID will be used to uniquely identify the particular request and will be shared across with Client's system along with response data.
Curriculum-learner Details
[json]
Yes JSON
  1. This will be a mandatory parameter.
  2. This parameter will be used by Client's system to share the User and Curriculum details.
  3. List of parameters within JSON:
    1. curr_learner_info* : It is an array of curriculum and learner details. This array will have specific parameters like – assignment_id , learner_info and curr_ids
  4. Please Note - These parameters will be case-sensitive
  5. Example :
    {
                                            "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"}
                                            ]}
  6. Details of the parameters within an array :

  7. 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
  1. The JSON result will be in encrypted format if the Public Key is set for the particular LMS portal else this will be in non-encrypted format.
  2. This will display the curriculum assignment status along with the error details (if any) for individual learners (as shared in input parameters). Also the status of the entire transaction will be shared.
Sample Output Result
  1. Response – Fail
    Transaction terminated - No Curriculums will be assigned to any Learner
     {
                                                "curr_learner_assignment_info": {
                                                    "assignment_status_info":[ {
                                                        "learner_info": "email_id=pallavi.mali@upsidelearning.com~unique_id=4861~username=pallavi", "Err003": "Record does not exists in system.(Learner Unique Identifier)", "assignment_status": "fail", "assignment_id": "1"
                                                    }
                                                    ,
                                                    {
                                                        "learner_info":"unique_id=4201~username=pallavi",
                                                        "curriculum_assignment_status":[ {
                                                            "status": "fail", "Err009": "Curriculum already assigned", "curr_id": "167"
                                                        }
                                                        ,
                                                        {
                                                            "status": "fail", "Err009": "Curriculum already assigned", "curr_id": "166"
                                                        }
                                                        ],
                                                        "assignment_status":"fail",
                                                        "assignment_id":"2"
                                                    }
                                                    ]
                                                }
                                                ,
                                                "final_status":"fail",
                                                "lmstoken_id":"token 1"
                                            }
    
                                            
  2. 2. Response – Partially Success
    Error in specific Learner or Curriculum record – Particular Curriculum will not be assigned to the particular Learner
     {
                                                "curr_learner_assignment_info": {
                                                    "assignment_status_info":[ {
                                                        "learner_info": "email_id=pallavi.mali@upsidelearning.com~unique_id=4861~username=pallavi", "Err003": "Record does not exists in system.(Learner Unique Identifier)", "assignment_status": "fail", "assignment_id": "1"
                                                    }
                                                    ,
                                                    {
                                                        "learner_info":"unique_id=4201~username=pallavi",
                                                        "curriculum_assignment_status":[ {
                                                            "status": "success", "curr_id": "167"
                                                        }
                                                        ,
                                                        {
                                                            "status": "success", "curr_id": "166"
                                                        }
                                                        ],
                                                        "assignment_status":"success",
                                                        "assignment_id":"2"
                                                    }
                                                    ]
                                                }
                                                ,
                                                "final_status":"partially_success",
                                                "lmstoken_id":"token 1"
                                            }
    
                                            
  3. 3. Response – Success
    Transaction Successful - Curriculums will be successfully assigned to learners
     {
                                                "curr_learner_assignment_info": {
                                                    "assignment_status_info": [ {
                                                        "learner_info":"unique_id=4202",
                                                        "curriculum_assignment_status":[ {
                                                            "status": "success", "curr_id": "167"
                                                        }
                                                        ,
                                                        {
                                                            "status": "success", "curr_id": "166"
                                                        }
                                                        ],
                                                        "assignment_status":"success",
                                                        "assignment_id":"1"
                                                    }
                                                    ,
                                                    {
                                                        "learner_info":"unique_id=4201~username=pallavi",
                                                        "curriculum_assignment_status":[ {
                                                            "status": "success", "curr_id": "167"
                                                        }
                                                        ,
                                                        {
                                                            "status": "success", "curr_id": "166"
                                                        }
                                                        ],
                                                        "assignment_status":"success",
                                                        "assignment_id":"2"
                                                    }
                                                    ]
                                                }
                                                ,
                                                "final_status":"success",
                                                "lmstoken_id":"token 1"
                                            }
    
                                            
  4. 4. Response – Fail
    Transaction terminated - No Curriculums will be assigned to any Learner
     {
                                                "curr_learner_assignment_info": {
                                                    "error_list":[ {
                                                        "Err001": "Invalid value received against parameter.(Portal Key)"
                                                    }
                                                    ]
                                                }
                                                ,
                                                "final_status":"fail",
                                                "lmstoken_id":"token 1"
                                            }
    
                                            
  5. 5. Response – Fail
    Transaction terminated - No Curriculums will be assigned to any Learner
     {
                                                "curr_learner_assignment_info": {
                                                    "error_list":[ {
                                                        "Err002": "Mandatory Field. (Token id)"
                                                    }
                                                    ]
                                                }
                                                ,
                                                "final_status":"fail",
                                                "lmstoken_id":""
                                            }
    
                                            
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."}
  1. 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.
  2. Use of POST method as against GET method in the form is recommended for submitting sensitive data over the network.
  3. We recommend that only valid data should be shared as part of the triggered API, to prevent the failure of transactions.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
UpsideLMS API and Integration

  1. Configure UpsideLMS SSO
  2. It has two mandatory text fields:
    1. LMS Redirection URL (Non editable)
    2. LMS Logout Redirection URL
  3. Parameter Details link would display list of parameters required by LMS to authenticate user.
  4. LMS will accept all the parameters in encrypted format except Client key.
  5. All encrypted fields must be encrypted using AES 128 algorithm with password.
  6. 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:

  1. 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.
  2. If 'clientKey' and any of the 'uniqueidentifiers' are provided then after validation, controller just redirects user to default landing page.
  3. If controller finds any of the parameter invalid then it redirects to 'common_errorPage.jsp' with error message.
  1. LMS will accept all the parameters in encrypted format except Client key.
  2. All encrypted fields must be encrypted using AES 128 algorithm with password.
  3. 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:

  1. If only 'clientKey' provided then controllers validates the client key and redirects user to respective client login page.
  2. If 'clientKey' and 'curriculumId' are provided then controller decrypts the curriculum id and stores it in session and redirects user to client login page.
  3. 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>
                
              

  1. Use AES algorithm to encrypt values to be sent via form
  2. Sample Data:
    1. action: http://localhost:8080/lmsv7.1/navigationcontroller
    2. clientKey: upsidelearning71
    3. curriculumId
      1. Actual value: 1  Encrypted: MexmjtH8sbAbHCIFr/Y9/w==
      2. Actual value: 1  Encrypted: MexmjtH8sbAbHCIFr/Y9/w==
      3. Actual value: 2  Encrypted: EgmNBXILCppdFtCqcdg36Q==
      4. Actual value: 3  Encrypted: HtaSvQ4p+Bb5m+V/oR0dgg==
    4. uniqueIdentifier1
      1. Actual value: 404  Encrypted: Cn+dHbpVHr7U+IQG7brCIQ==
    5. uniqueIdentifier2
      1. Actual value: aasif  Encrypted: SD8/6XxGX0xGdz3VANhjlA==
    6. uniqueIdentifier3
      1. Actual value: aasif.iqbal@upsidelearning.com   Encrypted: eOexakogmIho1ax30vnilRSPs3XJvBnUSEt3+aoHsgQ=

Note : All these values are encrypted using AES password 'Upside@2016'.

Highlights
  1. Schedule an update process daily, weekly or monthly as per your requirement.
  2. Easily map user profile data (exported in MS excel or CSV format) from your SAP or any other system in UpsideLMS.
  3. Easily to map users within an organisation hierarchy.
  4. Receive an email with details of user records that were updated successfully or failed, with details of failure.
Note:
  1. 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.

We let user reviews speak for us