# vILT Connector

Cornerstone's Virtual Instructor Led Training (vILT) Connector allows partners and clients to build integrations to any virtual meeting provider. This connector allows seamless integration with the Cornerstone Learning platform, connecting end users to virtual meeting sessions, capabilities to track attendance, and scheduling tools for instructors.

# Deep Dive

# vILT User Interface Workflow

  1. A vILT administrator adds an instructor to the appropriate vendor by navigating to ILT > Vendors & Instructors within Cornerstone. This action creates an instructor record in the virtual meeting provider's system.
  2. The vILT administrator creates a new Event with a vILT provider selected as the primary or secondary vendor by navigating to ILT > Events and Sessions > Create New Event.
  3. Once the Event has been set up, the vILT administrator creates a new Session under the Event by navigating to ILT > Events and Sessions > Search for Event > Click on the Calendar icon for the Event > Click on Create New Session. While creating the Session, the administrator selects the instructor added in step # 1 above. This action creates a Session in the virtual meeting provider's system.
  4. Depending on the configuration of the Session and portal rules, end users can either search for, and register for the Session or the Session can be assigned to them by their manager or a learning administrator.
  5. On the date and time when the Session is scheduled, the instructor joins the Session through the ILT > View Your Sessions page. At the same time, attendees join the session through their transcript page. Both these actions cause Cornerstone to send a request to the virtual meeting provider's system to acquire the launch URL for the Session. Once the virtual meeting provider's system responds, Cornerstone launches the Session in a new pop-up window.
  6. The instructor conducts the virtual training. Once the Session ends, both the instructor and the attendees close the pop-up window and navigate back to Cornerstone.
  7. Once the Session's end date and time have passed, Cornerstone sends a request to the virtual meeting provider's system to get the list of attendees. There may be a slight delay between a Session ending and the attendance being recorded in Cornerstone.
    • Alternatively, if 24 hours have passed since the Session ended, an instructor can manually trigger a session roster update by clicking the 'Update Roster' button on the Session Roster page. This action causes Cornerstone to send a request to the virtual meeting provider's system to get the list of attendees.

# Useful Online Help Articles

If you are unfamiliar with the concept of Events and Sessions in Cornerstone, we recommend you read through the following articles. You will need to be logged into a Cornerstone portal to access these links.

# vILT Integration Workflow

vilt-integration-workflow

The vILT Connector supports six actions. All actions are outbound (from Cornerstone to virtual meeting provider) and are initiated by Cornerstone. There is no callback action (inbound) required or supported. We expect a virtual meeting provider to support all six actions for the optimum end-user experience.

In the diagram above, the 'Integration Service' could be a middle layer developed by a third party that's distinct from Cornerstone and the virtual meeting provider. This third party would, in essence, develop the integration service or middle layer that orchestrates the APIs calls between Cornerstone and the virtual meeting provider. Alternatively, the virtual meeting provider themselves could develop and host the integration service on their infrastructure.

The contract for the actions is defined here: https://app.swaggerhub.com/apis/csodedge/vILT-Connector/1.0.0. These are the endpoints expected to be implemented by the developer. At various points of the integration workflow, Cornerstone will make calls to these endpoints.

# Add Instructor

This call is used to add a user as a host or instructor in the virtual meeting provider's system. A vILT administrator can trigger this action by adding an instructor to the appropriate vILT vendor in Cornerstone (ILT > Vendors & Instructors).

Upon receiving the request, the virtual meeting provider is expected to create the host or instructor record in their system. Cornerstone sends the instructor's email in the request. This is used as the primary identifier for the instructor's record. We expect the virtual meeting provider to store this email in their system since it will be used in subsequent workflows of the vILT Connector.

# Update Instructor

This call is used to update a user who is identified as a host or instructor in the virtual meeting provider's system. A vILT administrator can trigger this action in Cornerstone by updating the record of an existing instructor who is associated with the vILT vendor (ILT > Vendors & Instructors).

Upon receiving the request, the virtual meeting provider is expected to update the respective host or instructor record in their system.

# Create Session

This call is used to create a new virtual meeting session in the provider's system. A vILT administrator can trigger this action in Cornerstone by creating a new Session under an Event associated with a virtual meeting vendor (ILT > Events and Sessions > Search for Event > Click on the Calendar icon for the Event > Click on Create New Session).

On receiving the request, the virtual meeting provider is expected to create a new meeting instance in their system. In the request to the virtual meeting provider, Cornerstone sends a Session ID which uniquely identifies the Session. Cornerstone expects the provider to store this Session ID in their system since this ID will be used in subsequent workflows of the vILT Connector.

NOTE: To add more than one session part click the add part button in the parts schedule page of a session. Once you have added multiple parts each will correspond to a different meeting in your preferred vendor. This change will only take effect for sessions created after Oct 30, 2020. Sessions previously created will continue to have only one part.

# Update Session

This call is used to update details of a meeting that's already scheduled in the provider's system. A vILT administrator can trigger this action in Cornerstone by updating an existing vILT Session (ILT > Events and Sessions > Search for Event > Click on the Calendar icon for the Event > Search for your Session).

On receiving the request, the virtual meeting provider is expected to update the meeting's details in their system. In the request to the virtual meeting provider, Cornerstone sends the Session ID that was previously sent in the 'Create Session' request.

# Cancel Session

This call is used to cancel a meeting that's already scheduled in the provider's system. A vILT administrator can trigger this action in Cornerstone by updating an existing vILT Session (ILT > Events and Sessions > Search for Event > Click on the Calendar icon for the Event > Search for your Session > Click the red 'X' on the right side of the screen to cancel your session > Complete the 'Cancel Session' details).

Upon receiving the request, the virtual meeting provider is expected to cancel the meeting in their system. In the request to the virtual meeting provider, Cornerstone sends the Session ID that was previously sent in the 'Create Session' request.

# Launch Session

This call is used to fetch the virtual meeting's launch URL from the provider's system. Cornerstone sends this request to the virtual meeting provider when an instructor launches the Session (ILT > View Your Sessions) or when an attendee launches the Session from their Transcript page.

On receiving the request, the virtual meeting provider is expected to respond with the virtual meeting's launch URL. Cornerstone then redirects the user to the launch URL. In the request to the virtual meeting provider, Cornerstone sends the Session ID that was sent in the 'Create Session' request and a base64 encoded email address. If the virtual meeting provider supports the concept of distinct launch URLs for the instructor and the attendees, the provider can use the email address sent in the request from Cornerstone to determine the user type (instructor vs. attendee) and send the relevant launch URL in the response.

# Get Attendance

This call is used to get a list of attendees from the virtual meeting provider's system. Cornerstone sends this request once a session's end date and time have passed. Alternatively, an instructor can request an update by clicking the 'Update Roster' button on the Session Roster page. This action also causes Cornerstone to send the 'Get Attendance' request to the virtual meeting provider.

On receiving the request, the virtual meeting provider is expected to respond with a list of attendee email addresses. Cornerstone will try to find users in the system whose email address on the user record matches one of the email addresses sent in the response from the virtual meeting provider. If a match is found, Cornerstone marks the user's attendance on the session roster. If a match is not found, Cornerstone ignores that record in the response from the meeting provider.

# Functional Requirements

Upon installing the vILT Connector through Edge, a client administrator will need to configure the following fields in order to successfully set up the vILT integration. For additional details on how to set up the vILT integration in a Cornerstone portal, please refer to the starter guide.

  • Integration Name
  • Username
  • Password
  • Base URL

# Technical Specifications

A virtual meeting provider will need to create a new external service and implement against the contract defined in https://app.swaggerhub.com/apis/csodedge/vILT-Connector/1.0.0.

The external service needs to support TLS 1.2 for its communication with Cornerstone.

# Authorization Workflow

Cornerstone uses Basic Auth for all the actions supported by the vILT Connector. Cornerstone concatenates the Username, Password and Integration Name (configured by a client administrator in Edge) and base64 encodes the concatenated string before sending it in the authorization header. Here's the pattern you will see when you decode the authorization header:

Authorization: Basic {base64Encode(username-integration name:password)}

Each client in Cornerstone has their own portal with their portal URL as {clientname}.csod.com. When a client installs the vILT Connector in their portal through Edge, that creates a new instance of the integration in Cornerstone. We understand that a virtual meeting provider may not have the same setup and may want to create a single base URL to serve integrations with all Cornerstone clients. In such cases, a virtual meeting provider can use the integration name to uniquely identify a client. As stated above, Cornerstone includes the integration name with each request (within the base64 encoded, concatenated authorization header). The virtual meeting provider must store the combination of integration name, username and password on their side and provide the same to the client administrator so that they can configure the three values in Cornerstone Edge.

# Testing and Verification

After installing and configuring the vILT connector in a Cornerstone portal and after the virtual meeting provider has completed developing the integration using Cornerstone's vILT Connector, you can test the integration by following the steps below. We strongly suggest validating the integration in either a stage or pilot environment prior to installing/enabling in the production environment.

# Prerequisites

  • The vILT connector is installed and configured properly in your Cornerstone portal.
  • The vILT connector is enabled through the Edge Manage Integrations page.
  • Your Cornerstone user account has access to the following pages:
    • Vendors & Instructors
    • Create New Event
    • Create New Session
    • View Your Sessions
    • Transcript
    • Session Roster

# Step 1: A vILT administrator adds an instructor to a virtual meeting vendor

  1. Navigate to ILT > Vendors & Instructors.
  2. Search for the 'CustomVilt' vendor and click the Instructor's link for the vendor (Cornerstone creates the 'CustomVilt' vendor when you install and enable the connector in Edge).
  3. On the Instructors page, click Add New Instructor.
  4. Search for and add an existing internal user as an instructor (external instructor is not supported by the vILT Connector). User first name, last name, home location and email address are required.
  5. Check the 'Active' checkbox.
  6. Hit Submit.

# Step 1a: A vILT administrator updates an instructor record

  1. Navigate to ILT > Vendors & Instructors.
  2. Search for the 'CustomVilt' vendor and click the Instructor's link for the vendor.
  3. On the Instructors page, search for your instructor. Once you locate your instructor, click the 'Edit' icon.
  4. Make the required changes on the Edit Instructor page and hit Submit.

# Step 2: A vILT administrator creates an Event

  1. Navigate to ILT > Manage Events & Sessions. Alternatively, navigate to Admin > Tools > Learning Catalog Management > Events & Sessions.
  2. Click Create New Event.
  3. Complete the desired Event properties. While selecting a primary or secondary vendor, be sure to choose your virtual meeting vendor. Click Next.
  4. On the Availability tab, define which users can find and register for the Event. Click Next.
  5. If desired you can define pricing and training units, otherwise, you can proceed to the Session Defaults tab.
  6. On the Session Defaults tab, you are required to define Minimum and Maximum Registration. You can complete other fields on this tab as desired.
  7. Hit the Save button.

# Step 3: A vILT administrator creates a Session

  1. Navigate to ILT > Manage Events & Sessions. Alternatively, navigate to Admin > Tools > Learning Catalog Management > Events & Sessions.
  2. Search for the Event you created in Step 2 above.
  3. Click on the Calendar icon for the Event.
  4. Click on Create New Session. Note that this link may instead read as 'Create New {primary vendor name} Session' or 'Create New {secondary vendor name} session'.
  5. On the Schedule Wizard tab, choose your Session's frequency and click Next.
  6. On the Part Schedule tab, enter the desired details. While adding the instructor, be sure to select the instructor you added/edited in Step 1 above.
  7. Click Save Part.
  8. You can update additional details as desired on the Details, Availability, Emails, and Pricing tabs.
  9. Once you navigate to the Summary tab, hit the Save button to create your Session.

# Step 3a: A vILT administrator updates a Session

  1. Navigate to ILT > Manage Events & Sessions. Alternatively, navigate to Admin > Tools > Learning Catalog Management > Events & Sessions.
  2. Search for the Event you created in Step 2 above.
  3. Click on the Calendar icon for the Event.
  4. Search for the Session you created in Step 3 above.
  5. Click the Edit icon for the Session.
  6. Update any details as desired and hit the Save button.

# Step 4: An instructor launches a Session

  1. Navigate to ILT > View Your Sessions.
  2. Search for your Session and click on the time link for your Session. This will launch the virtual meeting session.

# Step 4a: An end user launches a Session

  1. Navigate to the user's transcript page
  2. Search for the session and click on Training Details
  3. Click Launch. This will launch the virtual meeting session.

# Step 5: An instructor reviews and updates the Session roster

  1. Navigate to ILT > Manage Events & Sessions.
  2. Search for your Session.
  3. Click the Roster icon under Session Options for your Session.
  4. Navigate to the Attendance and Scoring tab. If you do not see any attendees on this tab, it's likely that Cornerstone wasn't able to retrieve an attendee list from the virtual meeting provider's system. The amount of time it takes for the attendees to reflect in the Session Roster within Cornerstone will depend on the virtual meeting provider. If 24 hours have passed since the session end date and time, you can force Cornerstone to fetch the attendee list by clicking the Update Roster button.
  5. Once the roster has been updated, click the Submit Roster button to submit the roster and complete the Session.