# Basic Concepts
This section describes the common terms and features referenced throughout the documentation.
# Course Metadata
Course metadata plays an important role in providing a better experience for learners and admins while exploring the content on Cornerstone’s platform.
Some of the course metadata fields are optional but contribute greatly to the user experience. For example, the course’s thumbnail encourages engagement and makes it easy to differentiate between courses. When the thumbnail is not provided, Cornerstone automatically populates a default image for the course, which makes the courses indistinguishable from each other.
Certain metadata fields are required for providers who participate in Cornerstone's Content Anytime and are optional for non-Content Anytime providers. However, those optional fields improve the user experience and are highly recommended.
In the sections that describe the contract for the metadata that your endpoint must observe, we have identified such fields as "REQUIRED for Content Anytime Providers”.
# Inactive Courses
When courses become unavailable on your side, you should communicate that to Cornerstone by using the "IsActive": false
field. Upon receiving "IsActive": false
, Cornerstone will mark the course as inactive in clients’ portals.
# Course Updates
When Cornerstone pulls course data from your endpoints, we update courses on our side when the LastModifiedUTC
or PackageLastModifiedUTC
parameters are newer than the previous Last Modified dates. This allows us to build an efficient integration because we will only update modified courses in clients’ portals.
LastModifiedUTC
refers to the metadata modification date and PackageLastModifiedUTC
refers to the course asset modification date (when applicable).
# Languages
Each course may support multiple languages. You will need to include the list of a course’s available languages in an array. This determines if the course will show in search results in Cornerstone when a user filters by language.
Cornerstone will treat the first valid available language in the array as the course’s default language. If none of the languages are valid and available, Cornerstone will reject the record. See Supported Language Codes for a list of supported language codes.
# Localization
Localization enables support for multiple translations of Title, Description, and Keywords for a course. Learners whose display language in Cornerstone matches one of these translations will see Title, Description, and Keywords in their preferred language when searching and viewing. Learners whose display language does not match a localization language will see Title, Description, and Keywords in the course’s default language.
In your response to Cornerstone’s request for new/updated content, you must include a Course
object. Cornerstone will treat the first item in the Languages
array within the Course
object is the default language for the course. The Title
, Description
, and Keywords
in the Course
Object should be in the default language with the localized values included in the Localization
array.
If the first language in the Languages
array is invalid, the Title
, Description
, and Keywords
in the Course
object are associated with the next valid available language in the list. If none of the languages are valid and available, Cornerstone will reject the record.
The Title
, Description
, and Keywords
in the Localization
array will override those fields in the Course
object if the same language is sent twice – once within the Course
object and once within the Localization
array. For example, if the Course
Object has the title “Title One” in the default language “en-US”, and the Localization
array has the title “Title Two” in “en-US”, the “en-US” title will appear in Cornerstone as “Title Two”.
As a best practice, if a course is available in more than one language, you should list all available languages in the Languages
array with the main/default language appearing first in the list. Ideally, you should also send translations for Title, Description, and Keywords for all available languages (without repeating the same language) in the Localization
array. This ensures that learners in any language have the best experience. See Supported Language Codes for a list of supported language codes.
Note that the list of available languages can vary between client portals in Cornerstone. Localization languages must be “available” in the portal for the record to be accepted.
The table below provides an illustration of localized metadata for a course.
Course ID | Course Title | Course Description | Duration | Keywords | Culture Name |
---|---|---|---|---|---|
A001 | Management | Management... | 0:30:00 | Management, Course | en-US |
A001 | Administración | Administración... | 0:30:00 | Administración, Curso | es-ES |
A001 | ניהול | ...ניהול | 0:30:00 | ניהול, קורס | he-IL |
B002 | Beachtung | Beachtung... | 0:45:00 | Beachtung, Kurs | de-DE |
Here's an example of a JSON response with localization.
// Localization Response
[
{
"ID": "A001",
"Title": "Management",
"Description": "Management...",
"Languages": ["en-US", "es-ES", "he-IL"],
"Duration": "00:30:00",
"Keywords": "Management, Course",
"Localization": [
{
"Language": "en-US",
"Title": "Management",
"Description": "Management...",
"Keywords": "Management, Course"
},
{
"Language": "es-ES",
"Title": "Administración",
"Description": "Administración...",
"Keywords": "Administración, Curso"
},
{
"Language": "he-IL",
"Title": "ניהול",
"Description": "ניהול...",
"Keywords": "ניהול, קורס"
}
]
},
{
"ID": "B001",
"Title": "Beachtung",
"Description": "Beachtung...",
"Languages": ["de-DE"],
"Duration": "00:45:00",
"Keywords": "Beachtung, Kurs",
"Localization": [
{
"Language": "de-DE",
"Title": "Beachtung",
"Description": "Beachtung...",
"Keywords": "Beachtung, Kurs"
}
]
}
]
# Subject Taxonomy
Cornerstone’s Subject Taxonomy enables a better user experience when filtering and searching for courses. Any subjects you include in your course metadata must be a valid subject in Cornerstone’s taxonomy. If you have your own list of subjects, you will need to map your current subjects to the Cornerstone taxonomy.
The table below provides a list of subjects and associated courses.
Subject | Course Examples |
---|---|
Business Skills | Communications, Career Development, Operations, Strategy. |
Office Productivity | Microsoft Suite, Adobe Suite. |
Compliance | Sexual Harassment, OSHA. |
Technology | Web Dev, Big Data, AI, IT Certifications. |
Industry Specific | Healthcare, Finance, etc. |
Leadership & Management | First-time Leadership, Crucial Conversations. |
Sales & Service | Digital Marketing, SEO, SEM, Customer Service. |
Continuing Education & Certifications | Accredited coursework (incl. IT Certifications), Test Prep. |
Health & Wellness | Meditation, Nutrition. |
Personal Development | Language, Lifestyle, Hobbies. |
Creative | Art, Design, Marketing. |
# Modalities
Modalities enable a better user experience when filtering and searching for courses. A single course may be mapped to multiple modalities.
The table below provides a list of the valid modalities
Modality |
---|
Watch |
Attend |
Read |
Collections |
Practice |
Listen |
# Single Sign-On (SSO)
Cornerstone supports SAML 2.0 SSO with both Identity Provider (IdP) Initiated SSO flow and Service Provider (SP) Initiated SSO flow, where Cornerstone is the IdP. The high-level steps include:
- We will exchange and setup the Security Assertion Markup Language (SAML) metadata in advance to establish the trust relationship between Cornerstone and the content partner’s system.
- The user launches the course from their Cornerstone portal.
- The user is then redirected to either the course URL or Cornerstone’s outbound SSO endpoint, depending on the chosen flow.
For more information, including to get started with setting up the SSO, please reach out to your point of contact in the Cornerstone Content Services Team.