CIM Integrations – Remote Plugins - Brightspace Community

What is Content-Item Message (CIM)?
Learning Tools Interoperability® (LTI®) is a standard developed by IMS Global Learning Consortium. The
main idea of LTI is to create a standardized way of integrating external learning applications & vendors
with platforms like learning management systems (in this case Brightspace). Content-Item message
(CIM) is an LTI extension for the exchanging of content from tool providers to applications. CIM supports
a broad range of content types such as static links, embedded images or other media file types.
Features of Content-Item Message








Implemented as a new message type (like a launch message-type) in the IMS standards.
Workflow(s), for external tool providers, which closely match how native tools within the Tool
Consumer are added to a course. Significantly improving the user experience for instructors.
Reduces the time/complexity of setting up LTI content links, and streamlines the process of adding
content from third parties.
Variety of content types are supported, such as LTI links, web links, images, file links, static HTML.
All CIM transactions are secured via the latest LTI authentication methods.
The tool provider offers an interface which allows the user to discover and select/configure one or
more items.
The consuming user(s) are redirected back to the tool consumer, with details of their selection.
CIM materials support the ability to associate to gradebook items within Brightspace. If not
already created on a grade sync attempt, a grade item will be automatically created and
associated.
Enabling CIM
By default, the Content-Item Message feature support is turned off. Administrators of Brightspace can
enable this via the following config variable:
d2l.Tools.Lti.ContentItemMessaging.IsEnabled - If set to true, enables support for Content Item
Messages. Functions as an on/off flag to indicate whether your particular Brightspace instance
will accept CIM-based requests.
CeLTIc
The CeLTIc project, produced by IMS, is a PHP web application that showcases a sample CIM integration,
among a couple other components of the spec(s) offered. It allows users to decrypt the LTI messages,
break down the data, and test the work-flows within the context of Brightspace. It offers a great sample
to our users (both course admins & developers) to understand how CIM works within our platform.
Here are the resources to help you get started, including a pointer to the code IMS has made available:
 IMS LTI Tool Consumer Emulator: http://ltiapps.net/test/tc.php
 Git Hub - Tool Provider Library: https://github.com/IMSGlobal/LTI-Tool-Provider-Library-PHP
CIM Integrations – Remote Plugins
Content-Item Message services are enabled in Brightspace through our Remote Plugins toolset. To
establish a CIM integration, Brightspace administrators will create a Remote Plugin of “CIM” type.
Currently D2L supports the following three types of “CIM” Remote Plugins: QuickLinks, InsertStuff and
Course Import. It is important to understand there are some slight differences in these integrationmethodologies, specifically around how many items can be returned in one CIM launch. If you want to
get a feel for how these integration work-flows differ, D2L has some video resources offered here in
public developer community of practice environment.
Quicklink (CIM)
Quickinks are objects that are made in a couple areas in the Brightspace user experience.
1. In the Rich-Text-Editor / HTML editor. This method only supports a singular object return at a
time:
*Creating a new HTML file in course content, creating a new file
* Our quicklink remote plugin listed
2. From the content area of a course, within a module/topic. This format accepts multi-Content item
returns, allowing instructors to import several objects at once:
*Quicklink remote plugin from a course’s content viewer
Insert Stuff (CIM)
The Insert Stuff Framework (ISF) allows instructors & course designers to bring in content via the CIM
spec through the HTML editor & Insert Stuff prompt. This method only supports a singular object return
at a time:
*From HTML editor, selecting 'Insert Stuff'
*The Insert Stuff remote plugin appears in our list of insert options
Course Import (CIM)
At a higher level, instructors and course designers can also support course-wide imports via the 'Course
Import' type. These objects are accessed from the Table of Contents of a course, under the 'Import
Course' option. This method of integration too only offers a singular object return per each launch.
The Results
This sample is but a taste of how a remote plugin can improve the extensibility of the D2L platform.
These integration points allow for any software vendor to create applications that now plugin more
natively to the Brightspace UI. Adding native workflows users are familiar with, removing the need for
custom integrations, and further improving on the way students can learn and interact with course
content.