LTI (Learning Tools Integration)
  • 06 Oct 2023
  • 20 Minutes to read
  • Contributors
  • Dark
  • PDF

LTI (Learning Tools Integration)

  • Dark
  • PDF

Article Summary

Cirrus' support for 1EdTech's† (aka IMS Global†) standard for Learning Tools Integration (Wikipedia ⧉, IMS Global LTI ⧉) allows you to integrate Cirrus as a "Tool" in any LTI 1.3 compatible LMS or "Platform". Further below we also explain the Key Benefits of using LTI with Cirrus.
Certified examples are Canvas, Blackboard, and Sakai with 100 more in IMS Global's Product Directory.
IMS Global rebranded itself as 1EdTech in 2022.

About LTI support

Many products and systems support LTI without being certified, like Cirrus. Please contact your vendor or IT, as open source LTI 1.3 libraries exist for all major programming languages (e.g. .Net ⧉) so support for the LTI 1.3 specification ⧉ can be added relatively easily to any of your systems.


Key Benefits

Seamless user experience

  • From the LMS candidates can lauch directly into their Cirrus Dashboard or directly into their Exam.
  • Instructors (Authors) can launch directly into Cirrus
  • All this secure without extra login (Single Sign-On)

Results flow back into the LMS

  • Scores published in Cirrus automatically appear in the LMS grade book
  • Cirrus automatically creates grade book column in LMS for Exams

Instructors can reuse LMS course membership

  • Sync Candidates' course membership in LMS for Exams

Minimized administration

  • No need to provision users (Cirrus can create them on-the-fly as they enter from the LMS)
  • New roles and permissions set correctly automatically.

LTI Quick Start

On this page we give a lot of technical / background information. Yet, the actual set up is rather easy so you could skip this and directly go to Setting up LTI in Cirrus.
Though if you then have any questions or perhaps even run into some issue we strongly recommend to read through this page as most frequently asked questions have been addressed, including how to troubleshoot.

Supported Scenarios

At the moment the following scenario's are supported:

ScenarioIMS Standard
Candidate Launch (Single Sign-On) into the Candidate DashboardLTI 1.3 Core
Candidate Launch (Single Sign-On) into a particular Exam (Schedule)LTI 1.3 Core
Instructor (or any other mapped role) Launch into their DashboardLTI 1.3 Core
Multi-role User Launch into Role Selection screenLTI 1.3 Core
Synchronize Candidates in Schedule from LMS RosterLTI Advantage - Names and Role Provisioning Services 2.0
Prepare LMS Grade Book before sending scoresLTI Advantage - Assignment and Grade Services v2.0
Send published candidate Exam score to LMSLTI Advantage - Assignment and Grade Services v2.0

LTI 1.3 vs REST API (vs Hybrid)

We kindly refer you to the REST API vs LTI 1.3 (vs Hybrid) section of our Integrations Overview of our functional Knowledge Base.

LTI1.0/1.1/1.2 no longer supported

LTI 1.x/2.x no longer secure
Following IMS Global's LTI Security Bulletin ⧉ from July 2019, in January 2021 Cirrus has released LTI 1.3 support. As existing Cirrus customers have migrated we have decided to end support for LTI 1.0/1.1/1.2. This in order to safeguard our customer's data.

LTI 1.3 Advantage enables better user experience
The enhanced capabilities of LTI Advantage, see Key Benefits, eliminate some significant drawbacks of LTI 1.x/Core.


Key Features all Done

All important LTI 1.3 Advantage features have been delivered now. Though we'd be keen to support the new LTI Proctoring standard.

During Q3 2021 we have released major enhancements to our LTI 1.3 capabilities giving Cirrus one of the best possible LTI integrations currently on the market. With it a single link into Cirrus gives a great user experience (causing us to also deprioritize Deep Linking). In Q1 2022 we released our Admin UI for LTI and routing via deployment_id for a.o. Blackboard.

In case you're interested in sponsoring "LTI 1.3 Proctoring" (Standard based online proctoring) or are still interested in "Deep Linking v2.0" support please contact us ⧉.

  • DONE: Q1 2022 Routing via deployment_id [CR-17397]
  • DONE: Q1 2022 Admin UI [CR-14784]
  • DONE: Q2 2022 Blackboard test [CR-16543]
  • DONE: Q1 2023 Candidate Sync optional Sakai group filter [CR-19211]
  • Q1 2023 Security: Prevent "Clickjacking" - Framing of Cirrus [CR-19758]
  • Pending an interested customer: Canvas test [CR-16539] (incl. minor 1d fix [CR-16776])
  • Future: LTI 1.3 Proctoring - New standard for online proctoring
  • Future (deprioritised): Deep Linking v2.0 (deprioritized as Cirrus works beautifully with only one single link)

Disclaimer: LMS behaviour is beyond Cirrus' control

E.g. how and where LTI Links can be placed in the LMS and what behaviour they support is beyond the control of the Cirrus Platform.
Please contact your LMS/Platform provider for guidance and support.

LTI Launch

Dashboard launch vs "Exam launch"

Launch into dashboard recommended

Cirrus fully supports the dashboard launch, including sending results back. We recommend to provision the tool once to let candidates land in their Candidate Dashboard (1). This removes the need to link to individual exams, and the odd chance it is inadvertently linked to the wrong Exam schedule in Cirrus.

(1) On the Candidate Dashboard candidates can start active Exams and review completed Exams.

N.B. If your users prefer "Exam launch" instead, this is of course supported. A combination of Dashboard launch and Exam launches is also supported.

Online Proctoring via Dashboard launch

Online Proctoring (e.g. Proctorio) is supported via the dashboard launch. The exam launch does not support online proctoring.

New tab/window - Prevent Clickjacking

IFRAME or framing of Cirrus no longer supported

In accordance with OWASP guidelines Cirrus will add Security headers to prevent IFRAMEs/framing of Cirrus to mitigate Clickjacking attacks (See Roadmap [CR-19758]).

Please always configure your launch links to open in a new tab/window.

Instructor: set up of "Exam launch"

(Please, read Dashboard launch vs "Exam launch" first.)
For the "Candidate Launch (Single Sign-On) into a particular Exam (Schedule) scenario", the LMS and Cirrus both need to know which Schedule is being launched.

In Cirrus, the External ID needs to be copied from the Schedule. And in the LMS added as value of the LTI custom parameter 'schedule_id'.

For example, for Cirrus Schedule "Introduction into Physics" with External ID '2021introphys1', the following LTI custom parameter needs to be configured in the LMS: schedule_id=2021introphys1

LTI Launch Fields

The mandatory LTI field sub containing the user id is the only user field used by Cirrus during launch to look up an existing user via its user id (= User External ID). Following the look up the Role Mapping (see below) is applied.

LMS provisioned grade book column ignored

See Grades Service LMS provisioned grade book column "lineitemurl" ignored

Role Mapping

In Cirrus an administrator can configure the role mapping on the "IMS LIS Mappings" settings page.
As in many LMS'es users can have multiple roles and Cirrus users only one, the Priority column can be used to manage which role Cirrus should assume the LMS user to have.

Double Role: Author+Candidate

Sometimes a person, e.g. a Teacher Assistant, can be both an Instructor in one course, and a Student in another. To support this, you have to:

a) Grant the Participate permission to Author role or any other role that might be granted to users that are also candidates
b) Ensure the Author-type role(s) have a higher Priority (lower numerically) than the Candidate-type roles.

(Cirrus will not grant the Participate permission automatically to enable organisations to stay in full control)

400 Error when not mapped

Ensure "Learner" is mapped to a Cirrus Candidate role or else candidates will get a 400 Error. Likewise ensure "Instructor" is mapped and vice versa for all other roles you intend to use


To support double roles, the LIS Roles are divided in Role Types "Candidate" and "Author":

Role TypeLIS Roles
AuthorAdministrator, Faculty, Guest, Instructor, Member, Mentor, None, Observer, Other, Staff
CandidateLearner, ProspectiveStudent, Student
LMS Launch w/ LTI RolesCandidate or Author partRemarks
"Candidate" onlyCandidate DeliveryUnless user already exists with a role without "Participate" permission, then an error!
"Author" onlyAuthor partNew user gets "Author" type role with the highest priority (lowest numerically). See also Candidate automatically updated to double role below.
MixedRole Selection ScreenMixed means both Candidate and Author like roles.
Candidate automatically updated to double role

If an "Author" launch happens for an existing "Candidate" user in Cirrus. Cirrus will automatically switch the user to that role if it has the "Participate" permission. If such role does not exist Cirrus will give an error.
(The error is to enable your organisation to stay in full control)

Role info is contained in the "" claim of the LTI Launch JSON.

Hierarchy permissions for a Role

See User Role - Hierarchy Permissions mapping how the hierarchy permissions will be automatically set.

On-the-Fly User / Hierarchy Creation

Do not rely on On-the-Fly for Exams!

If very large groups of candidates have to be created at the start of an exam this will severly impact the Cirrus Performance!

For workflow reasons, e.g. to set up the marking workflow, it's strongly adviced to ensure (almost) all candidates are in the schedule ahead of the exam.
Cirrus offers two solutions (in addition to creating the users using the REST API, via manual import, or manually):

Synchronize Candidates via LTI


"Get Acquainted with Cirrus" Exam

You can open a long schedule "Get Acquainted with Cirrus" Exam and monitor the majority of candidates have launched it before an actual Exam.

On-the-fly scheduling

If your users for some reason cannot organize to have the candidates scheduled in advance, Cirrus LTI offers on-the-fly scheduling but for above mentioned reasons we advice to avoid using this because of its negative implications on a.o. the marking workflow.

LTI User Field Mapping

Only used if a Cirrus user needs to be created on-the-fly.

Enable send Names and Email

Normally you want the candidates to be known by name in Cirrus and have their email, so do not forget to enabled "Send Names" and "Send Email" options in your LMS. (Or else you have to manually update this user information.)

LTI FieldCirrusRemarks
subusernameOnly field required by LTI. NOTE: If sub contains a '/' it and everything before it is removed so only the last part is kept of a sub in the form of a URI.
subuser_idCirrus External ID Primary Key, same as username
given_namefirstnameOptional in LTI, if given_name is empty Cirrus will fill firstname with "["+sub+"]". Most LMS have a "Send Names" option that is best enabled.
family_namelastnameOptional in LTI, if family_name is empty Cirrus will fill lastname with "["+sub+"]". Most LMS have a "Send Names" option that is best enabled.
namefull name from LTI is ignored as Cirrus does not have a full name field
emailemailMost LMS have a "Send Email" option that is best enabled.
Existing users are not updated

The on-the-fly creation does not updated existing user's name or email for performance reasons. So it's best to enable "Send Names" and "Send Email" LMS options from the start.

LTI Context - Hierarchy Field Mapping

Only used if a Cirrus Hierarchy needs to be created on-the-fly.

LTI FieldCirrusRemarks
context.idHierarchy “Organisation ID”“Organisation ID” is the External ID of a Cirrus Hierarchy
context.labelHierarchy Name
context.nameSee context.labelIgnored if context.label filled
Synchronization keyGUID (so cannot be filled with
Root levelAlways Enabled to limit the access of users
Allow relationship with Scheduled assessmentsAlways Enabled

Context info is contained in the "" claim of the LTI Launch JSON.

User Role - Hierarchy Permissions mapping

Besides creating the user and the hierarchy, Cirrus also sets the user's hierarchy permissions. Cirrus does this by taking the mapped Cirrus user role and context(s) from the launch:

If Cirrus Role has … permissionthen … must be checked/enabled on Hierarchies (1) for this user
View Coordinator tabCoordinator
View Audit tabReports
View Rescoring tabRescoring
Manage usersAdministration
(1) NOTE: Only for the hierarchy (or hierarchies) from the context(s) of the current LTI launch being processed.

Grades Service

Cirrus can send the published result back to the LMS that supports LTI Advantage - Assignment and Grade Services v2.0 ⧉.

Correct LMS configuration for Grade Services

Cirrus can only send back results if and only if in the LMS:
a) The Grade Service is enabled (in general)
b) Tool is allowed to create grade book columns (aka line items).

Of course the exact naming of these settings depends on your Platform/LMS.

The Create LineItem (Grade Book Column) Service allows Cirrus to create the right grade book columns for Exams with the correct name from Cirrus, and chose the correct grade book column dependent on the Exam taken in Cirrus.

LMS provisioned grade book column "line_item_url" ignored

When placing a link the LMS (Consumer) will provision a grade book column. During the launch the LMS (Consumer) will sent the "line_item_url" to this auto provisioned gradebook column.
In order for Cirrus to ensure results for the different Exams are send into the correct grade book column, Cirrus will ignore this "line_item_url", auto provisioned line item URL, and only use grade book columns (line items) provisioned by Cirrus. This may cause empty grade book columns (though most LMSes hide these) though tiny disadvantage does not outweight the huge benefits.

Create LineItem (Grade Book Column) Service

Cirrus will create line items or Grade Book columns

Cirrus will create a line item (= Grade Book column) for each schedule. This enables Cirrus to give the grade book column the correct name

Cirrus autogenerates External ID against duplicate Grade Book Columns

In Cirrus the Schedule Name may be reused and is thus not unique. To prevent duplicate Grade Book Columns Cirrus will automatically fill the Schedule's External ID with a generated shortcode if it happens to be empty when sending the results.

LTI Line Item - Schedule Field Mapping

LTI FieldCirrusRemarks
resourceId (1)External ID of SchedulePrimary Key for Cirrus Integrations. (1) Many LMSes require resourceId to be filled. NOTE: As it is not mandatory, if empty during sending grades Cirrus will create a short code and fill Schedule's External ID.
context.idHierarchy “Organisation ID”“Organisation ID” is the External ID of a Cirrus Hierarchy
label"Schedule Name (External ID)"The Schedule's External ID is filled it is appended to prevent duplicate errors (as Schedule Name is not unique in Cirrus). NOTE: If the External ID is empty, Cirrus will automatically generate a short code and fill the Schedule's External ID.
scoreMaximumMaximum scoreFor Random forms Cirrus will update the scoreMaximum if a candidate obtained a higher score. See Maximum score with advanced usage below.
startDateTimeSchedule start date/timeOnly send if filled
endDateTimeSchedule end date/timeOnly send if filled
resourceLinkIdNever send. Deprecated LTI field. Any resourceLinkId from the launch is currently ignored by Cirrus
Maximum score with advanced usage

With Random forms on non-evenly scored question pools, Cirrus cannot know in advance the maximum score for a candidate. Creating a grade book column per maximum score could lead to as many columns as there are candidates, for this reason Cirrus will only use one column and automatically update its maximum score (as some LMS do not accept scores over the maximum).

Score Publish Service

Cirrus sends the published result to the Grade Service's Score Publish Service ⧉.
The LMS endpoint is the aforementioned "line_item_url". An example payload (taken from the standard) is:

  "timestamp": "2017-04-16T18:54:36.736+00:00",
  "scoreGiven" : 83,
  "scoreMaximum" : 100,
  "comment" : "This is exceptional work.",
  "activityProgress" : "Completed",
  "gradingProgress": "FullyGraded",
  "userId" : "5323497"
Representation in LMS is beyond Cirrus' control

How and where the LMS shows the score's published by Cirrus is beyond the control of the Cirrus Platform. Please contact your LMS/Platform provider for support.

Synchronize Schedule's Candidates (aka Roster)

Cirrus can synchronize the candidates of a schedule with the schedule's hierarchy roster from the LMS that supports LTI Advantage - Names and Role Provisioning Services v2.0 ⧉.

Correct LMS configuration for Grade Services

Cirrus can only retrieve the membership if and only if: in the LMS the Roster (Names and Role Provisioning Services) Service is a) enabled (in general) and b) enabled for the Instructor LTI launch (in particular) and the schedule's hierarchy has an External ID that matches a Context ID in the LMS.

This because the LMS will send to Cirrus the Membership Service URL, where to retrieve the roster information from, during the Instructor launch. Cirrus will store this URL in the hierarchy with matching External ID (LTI Context ID) so after one such LTI launch the hierarchy can also be syncronized by other users also without LTI launch.

Sakai specific "Groups" support

For Sakai-Cirrus customers with large Sakai "sites", Cirrus supports "Groups" in order to synchronize with a selection of groups rather than all the candidates of the whole Sakai site.

NOTE: Uncheck Exclude ## candidates that are in multiple groups. to prevent adding a candidate multiple times in your different schedules, if unchecked candidates will only be added for the group with the highest priority (smallest size). Groups will be prioritized in order of increasing size (and if equal in size; alphabetically).

Setting up LTI in Cirrus

A Cirrus Administrator can configure the LTI1.3 integration through the Cirrus UI when LTI has been enabled.

  1. Go to Administration > INTEGRATIONS > IMS LTI.

Please contact our Service Desk⧉ if IMS LTI is missing in your Cirrus environment so they can enable it for you.

  1. Click Add item to create a new LTI 1.3 configuration
  2. Choose a title for your integration
  3. Select your Platform/LMS, use "Other" if not listed.
  4. Depending on your choice you need to provide different information, see:
  1. For all LMS's the settings in the table below are available.
  2. Click Save and Close

Cirrus LTI Settings

SettingChapter with more infoDescription/Remarks
Enable Grade ServicesGrades ServiceAdviced to enable if your LMS supports LTI Advantage - Assignment and Grade Services v2.0. Do not forget to enable it for Cirrus in your Platform/LMS.
Enable Candidate Synchronization for SchedulesSynchronize Schedule's Candidates (aka Roster)Adviced to enable if your LMS supports LTI Names and Role Provisioning Services v2.0. Do not forget to enable it for Cirrus in your Platform/LMS.
On-the-fly User CreationOn-the-fly User / Hierarchy CreationNormally enabled but as described please do NOT rely on on-the-fly candidate creation at exam time for a large groups of candidates.
On-the-fly Scheduling for Exam LaunchOn-the-fly Scheduling under On-the-fly User / Hierarchy CreationAs described we advice you to leave this disabled.


Thanks to the shared deployment model of Blackboard, Cirrus can fill in all the details of an integration for a Cirrus Region in the Blackboard market place so you merely have to:

  • In Blackboard look up our application in the market place and add it to your Blackboard, see Blackboard Application Name in the table below.
  • and then in Cirrus fill in the Client ID (provided by Cirrus, see the table below) and your own Deployment ID (provided by your Blackboard).

NOTE: If Blackboard has not been set up for your "region", please Contact our Service Desk⧉.

Cirrus RegionCirrus LocationBlackboard Application NameClient IDRemarks
EU (Standard)DublinCirrus Assessment Europe - Standardbf3e586a-3d53-47cc-9590-424c0c8ca508
EU PremiumDublinNot set up yetNot set up yetDo NOT use "Cirrus Assessment Europe" but Contact our Service Desk⧉
AUSydneyCirrus Assessment Australiaf3ee33f1-0b2c-4405-8229-fc9caa8381b6
CATorontoNot set up yetNot set up yetContact our Service Desk⧉
SGSingaporeNot set up yetNot set up yetContact our Service Desk⧉
RC (Release Candidate)DublinCirrus Assessment Release Candidate0f73834d-f5f7-4a26-a33b-221e309b5afbOnly for testing!!!

Internal Note: The Application ID in the Blackboard Developer portal is configured as Client ID in Cirrus shared cluster configuration.

Canvas Cloud

If you are a Canvas Cloud customer please contact our Service Desk⧉

"Other" for self-hosted Canvas

If you are self-hosting Canvas, please select "Other" and use that to set up your integration. Please do contact Service Desk⧉ as there is one minor issue to be solved for Canvas [CR-16776].


The Sakai configuration is like "Other". Please be aware that if you're running your Sakai in a cluster, you have to:

  1. Add an "Issuer" line for each Sakai node in your cluster.
  2. Fill the "Line Item Base URL" with the (one) line item url of your cluster.

As apart from this attention point the configuration is exactly like "Other" please follow those instructions.

Other (Any LTI 1.3 supporting Platform/LMS)

Platform ID

For the Platform ID please choose a short identifier that will be used in the Cirrus LTI URLs. Please note that it must be 5 to 15 characters and only a-z, A-Z, 0-9 and hyphen ‘-’ are allowed.

Provided by the Platform/LMS

Cirrus URLs generated after filling the Platform ID

In order to prevent a Catch-22 where your Platform/LMS requires the Cirrus LTI URLs while Cirrus requires the Platform/LMS info, Cirrus will generate the Cirrus LTI URLs, see Provide to the Platform/LMS, as soon as you have filled in your Platform ID.

The Customer LMS (aka "Platform") Administrator needs to provide you with the following information to configure in Cirrus:

Platform Config ItemExampleDescription/Remarks
Client ID320398d5-fb7b-4936-abb6-74b5f9fc3cd3Should look like a GUID
Issuer or the form of a URL. If you're LMS is clustered and "leaks" multiple issuers, you can add a separate "Issuer" line for each node.
OAuth2 Public KeySet URL Well-Known KeySet URL
OAuth2 Token Endpoint URL Platform OAuth2 Bearer Token Retrieval URL
OpenID Connect (OIDC) Authentication Endpoint URL
Line Item Base URLhttps://sakai.demo.eduNeeded only if your using Grades Service and your LMS is clustered and "leaks" multiple issuers, you can then specific the cluster's line item base URL.

If you self-host your Platform/LMS you must ensure your above URLs are reachable from outside your network (firewall).

Provide to the Platform/LMS

This is the info your LMS Administrator need to fill in in your Platform or LMS. As soon as you have chosen and filled in your Platform ID, Cirrus will generate the URLs and fill these fields:

Cirrus Config ItemExampleDescription/Remarks
LTI1.3 Launch URL
LTI1.3 Tool OpenID Connect/Initialization Endpoint. Example shown for Platform ID testcustomer.
LTI1.3 Tool Redirect Endpoint as LTI 1.3 Launch URL
LTI1.3 Tool JWKS URL way of supplying Cirrus' public key. Example shown for Platform ID testcustomer.
Public Key-----BEGIN RSA PUBLIC KEY-----...Only use this when needed because your Platform/LMS does not support above JWKS URL (e.g. older versions of Sakai).


Platform not reachable from the Internet

If you self-host your Platform/LMS please first check the URLs under Provided by the Platform/LMS are reachable from outside your network (firewall). E.g. by testing them on your mobile phone without Wifi, or trying it from home.

LTI Launch issues

In order to troubleshoot LTI launch issues you need some minimal technical expertise as you, or your technician, need to be able to open the Developer Toolbar of your web browser (e.g. F12 in Chrome) and find the details of your LTI Launch request, and in particular the LTI 1.3 Launch JSON ⧉.

For an example LTI 1.3 Launch JSON, see the "Example LTI 1.3 Launch JSON" paragraph further below.

Information required for support

In case, you must contact our Service Desk for help, please ensure you provide the following:

  • At least one "LTI 1.3 Launch JSON"
  • A screenshot of your "IMS LIS Mappings" settings screen in Cirrus

Please note that Cirrus will ignore any LTI1p1 claims.

Canvas Cloud

As per Canvas Cloud section above, it won't work until one minor issue is resolved for Canvas [CR-16776]. Not prioritized so far due to lack of demand

Example LTI 1.3 Launch JSON

Taken from the Learning Tools Interoperability Core Specification 1.3 ⧉ section "E. Full example resource link request".

Important fields and claims have been described on this page (e.g. "sub", "", and "")

  "iss": "",
  "sub": "a6d5c443-1f51-4783-ba1a-7686ffe3b54a",
  "aud": ["962fa4d8-bcbf-49a0-94b2-2de05ad274af"],
  "exp": 1510185728,
  "iat": 1510185228,
  "azp": "962fa4d8-bcbf-49a0-94b2-2de05ad274af",
  "nonce": "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771",
  "name": "Ms Jane Marie Doe",
  "given_name": "Jane",
  "family_name": "Doe",
  "middle_name": "Marie",
  "picture": "",
  "email": "",
  "locale": "en-US",
  "": "LtiResourceLinkRequest",
  "": "1.3.0",
  "": [
  "": [
  "": {
      "id": "c1d887f0-a1a3-4bca-ae25-c375edcc131a",
      "label": "ECON 1010",
      "title": "Economics as a Social Science",
      "type": [""]
  "": {
      "id": "200d101f-2c14-434a-a0f3-57c2a42369fd",
      "description": "Assignment to introduce who you are",
      "title": "Introduction Assignment"
  "": {
      "guid": "ex/48bbb541-ce55-456e-8b7d-ebc59a38d435",
      "contact_email": "",
      "description": "An Example Tool Platform",
      "name": "Example Tool Platform",
      "url": "",
      "product_family_code": "ExamplePlatformVendor-Product",
      "version": "1.0"
  "": {
      "document_target": "iframe",
      "height": 320,
      "width": 240,
      "return_url": ""
  "": {
    "xstart": "2017-04-21T01:00:00Z",
    "request_url": ""
  "": {
      "person_sourcedid": "",
      "course_offering_sourcedid": "",
      "course_section_sourcedid": ""
  "": {
      "id": "89023sj890dju080"


Was this article helpful?