What xAPI Data is Generated by Articulate Storyline and Rise?

What xAPI Data is Generated by Articulate Storyline and Rise?


Veracity customers often ask questions like: “What xAPI data does my authoring tool send to the LRS?” and “What metrics can I track with my authoring tool?" 

Articulate has two courseware products that emit xAPI statements: Storyline and Rise. Both tools can send xAPI statements to our LRS. Both tools send a handful of xAPI statements with no custom coding. We call this their “out-of-the-box” xAPI capability.

Notes
We've abbreviated the following sample xAPI statements for clarity and space.

Started the Course

In each Articulate tool, a course may have a different label, such as a “Project”. Regardless, both tools send similar xAPI statements when a student begins a course…

Storyline
Rise
verb.id: …attempted
object.id: <course ID>1
object.definition.type: …course
result.completion: Boolean
context.parent.id: <course ID>
context.grouping.id: <course ID>
verb.id: …attempted
object.id: <course ID>1
object.definition.type: …course
result.duration: ISO 8601 string
result.completion: Boolean
context.parent.id: <course ID>


1In Storyline, you can change the course ID when you package your course, which can help with version control. In Storyline, you can also re-use the course ID by referring to the system variable: Project.ActivityId. You can find a list of other Storyline System Variables in their Support Articles.

A Storyline course sends an ID in the form "urn:articulate:storyline:6cuTEluHuA5", where the suffix is the unique identifier. A Rise course's ID looks like "http://8NOIDUGzX72zEk_­KuLYJI2RB9oMyGsCz_rise", with “rise” appended to the unique identifier.

Flipped a Page

Most authoring tools present content in pages and send xAPI when the student leaves one page and turns to the next. In the tool, Storyline calls them “Slides”, but its player sends xAPI that then calls them “modules”. In Rise, students scroll down through “Blocks” of content, but its player also calls them “modules” in xAPI…

Storyline
Rise
verb.id: …experienced
object.id: <course ID>/<slide ID>1
object.definition.type: …module
context.parent.id: <course ID>
context.grouping.id: <course ID>

verb.id: …left
object.id: <course ID>/<slide ID>
object.definition.type: …module
result. duration: ISO 8601 string2
context.parent.id: <course ID>
context.grouping.id: <course ID>
verb.id: …experienced
object.id: <course ID>/<slide ID>1
object.definition.type: …module
context.parent.id: <course ID>

verb.id: …progressed
object.id: <course ID>
object.definition.type: …course
result.duration: ISO 8601 string2
result.extensions…progress: integer3
result.completion: Boolean
context.parent.id: <course ID>


1Both tools concatenate the page's object ID on the end of the parent's object ID: e.g., "urn:articulate:storyline:6cuTEluHuA5/6Kloq9nZwHf", and "http://8NOIDUGzX72zEk_­KuLYJI2RB9oMyGsCz_rise/­nv7Ez22-BTRSLfci_tR2Yt7TVhSQswuc".

2Both tools send a duration that the student spent on the page.

3When a student leaves a Block in Rise, the courseware player sends a statement that describes the student's percentage of progress through the course.

Answered a Graded Question

Many authoring tools have form-based “wizards” that simplify entering graded test questions. Articulate Storyline and Rise offer the same too, but they call them “Quizzes” …

Storyline
Rise
verb.id: …answered
object.id: <course ID>/<slide ID>/<activity ID>
object.definition.type: …cmi.interaction
object.definition.description.en-US: <the stem question>
object.definition.interactionType: choice | fill-in | matching |
    sequencing | numeric1
object.definition.correctResponsePattern: string2
object.definition.choices: [array]3
result.success: Boolean
result.duration: ISO 8601 string
result.response: string2
result.score.raw: integer
context.parent.id <course ID>/<slide ID>4
context.grouping.id: <course ID>
verb.id: …answered
object.id: <course ID>/<slide ID>
object.definition.type: …cmi.interaction
object.definition.description.en-US: <the stem question>
object.definition.interactionType: choice | fill-in | matching
object.definition.correctResponsePattern: string2
object.definition.choices: [array]3
result.success: Boolean
No result duration!
result.response: string2
No result score!
context.parent.id: <course ID>

Notes
In Storyline, a Quiz Slide must have a Result Slide in the same Scene that is a Pre-Check or Final Assessment with tracking for it to send out-of-the-box xAPI. In Rise, Questions in a Quiz Block send out-of-the-box xAPI, but identical Knowledge Checks in a Lesson Block do not send xAPI.


1Storyline tracks two interaction types that Rise doesn't: sequencing and numeric entry.

2Except for a fill-in or numeric Quiz, you must cross-reference the response in the result and the correct­Response­Pattern in the object with the choices (or source/target). It's a random string, like "choice_­6fzemzAJzDV".

3A numeric or fill-in Quiz won't have choices. A matching Quiz will have source and target arrays instead of choices.

4Because a Quiz in Storyline resides in a Slide, the context in the xAPI starts to make sense: the parent is the Slide, and the grouping is the course and/or Scene.

Answered a Survey Question

Instructional designers sometimes add a Survey just before a Quiz Scene in their courses to measure the students’ confidence: called a “self-efficacy survey”. Comparing the self-efficacy survey measurements with the Quiz scores can show the relative difficulty of the subject matter or the assessments.

Storyline Rise
verb.id: …answered
object.id: <course ID>/<slide ID>/<activity ID>
object.definition.type: …cmi.interaction
object.definition.description.en-US: <the stem question>
object.definition.interactionType: choice | fill-in | long-fill-in |
    sequencing
| likert | numeric
object.definition.correctResponsePattern [0:""]1
object.definition.choices: [array]2
result.duration: ISO 8601 string3
result.response: string4
context.parent.id <course ID>/<slide ID>
context.grouping.id: <course ID>
Rise has no out-of-the-box “Survey” Block.

Notes
Like with a Quiz Slide, you must insert a Result Slide in the same Scene that is a Pre-Check or Final Assessment with tracking for the courseware to send out-of-the-box xAPI.


1When offered in a choice or sequencing Survey, the correctResponsePattern is an empty array.

2A numeric or fill-in Survey won't have choices. A Likert Survey will have a scale array instead of choices.

3No duration for a Likert Survey! It's a bug in Storyline.

4Except for a fill-in, long-fill-in, or numeric Survey, you must cross-reference the response in the result and the correct­Response­Pattern in the object with the choices (or source/target) in the object.

Answered a Freeform Question

Storyline offers graded interactions that don't depend on text labels for questions and choices. These out-of-the-box Freeform Question types all send xAPI statements:
  1. Pick One — Of two or more slide elements (shapes, images, etc.), you select the correct one that the student must choose.
  2. Pick Many — Of two or more elements, you select the correct one or more that the student must choose.
  3. Hotspot — You design one or more invisible overlays on the slide and select the ones that the student must choose.
  4. Shortcut Key — You select one keyboard key or simultaneous combination that the student must press (fill-in).
  5. Text Entry — You enter one or more correct text strings that the student must fill-in.
  6. Drag and Drop — Of two or more elements, you select the correct sources and targets that the student must match.
Instructional designers use this type of interaction in simulations of real-world activity, especially in touchscreen multimedia and virtual reality training.

Storyline Rise
verb.id: …answered
object.id: <course ID>/<slide ID>/<activity ID>
object.definition.type: …cmi.interaction
object.definition.description.en-US: <the stem question>
object.definition.interactionType: choice | fill-in | matching 
object.definition.correctResponsePattern string1
object.definition.choices: [array]2
result.successBoolean
result.durationISO 8601 string
result.responsestring1
result.score.rawinteger
context.parent.id <course ID>/<slide ID>
context.grouping.id: <course ID>
Rise has “Interactive” Blocks:
  1. Process
  2. Flashcard
  3. Sorting Activity
However, none send xAPI.

Notes
Like with a Quiz Slide, you must insert a Result Slide in the same Scene that is a Pre-Check or Final Assessment with tracking for the courseware to send out-of-the-box xAPI.


1Except for a fill-in Freeform Question, you must cross-reference the response in the result and the correct­Response­Pattern in the object with the choices in the object.

2A Shortcut Key or Text Entry (fill-in) Freeform Question won't have choices.

Passed or Failed a Group of Questions

In Storyline, you can use a Results slide to group question slides into an “objective”. In this case, an “objective” is not a learning objective, learning object, or Shareable Content Object (SCO). Articulate uses the term in a similar way to how it appears in the SCORM Profile:

An “objective” determines whether competency has been achieved in a desired area. Objectives typically are associated with questions and assessments…

In other words, Storyline uses it to show when a student passed or failed a group of question slides.

StorylineRise
verb.id: passed failed
object.id: <course ID>/<objective ID>
object.definition.type: …objective
result.successBoolean
result.durationISO 8601 string
result.completionBoolean
context.parent.id: <course ID>
context.grouping.id: <course ID>
Still testing Rise…

So far in our testing, only Storyline sent statements with an objective, and only for courses with a Results slide for graded questions.

Completed the Course

The LMS may send more bookkeeping statements at the end of the course. Both Articulate tools send a passed or failed statement.

Storyline
Rise
verb.id: passed failed
object.id: <course ID>
object.definition.type: …course
result.success: Boolean
result.duration: ISO 8601 string
result.completion: Boolean
context.parent.id: <course ID>
context.grouping.id: <course ID>

verb.id: …completed
object.id: <course ID>
object.definition.type: …course
result.durationISO 8601 string
result.extensions…viewcountinteger1
result.completionBoolean
context.parent.id: <course ID>
context.grouping.id: <course ID>
verb.id: …passed | failed
object.id: <course ID>
object.definition.type: …course
result.success: Boolean
result.duration: ISO 8601 string
result.completion: Boolean
context.parent.id: <course ID>

Still testing Rise…


1When Storyline sends a statement with completed as the verb and the course as the object, it includes a custom result extension that shows the number of slides the student viewed.


Neither tool sends context.registration! You must configure your LMS to manage this.

We're still testing both tools, and in many permutations of packaging and customization. Check back for more.


Notes
Articulate®, Storyline®, and Rise® are all registered trademarks of Articulate Global, LLC.


    • Related Articles

    • What Types of Metrics and Dashboards Can I Create with Articulate Storyline and Rise xAPI Data?

      What features do Articulate Storyline and Rise offer that make good use cases for the Veracity Learning LRS dashboard to help analyze learning performance metrics? In this article, the star ratings show the degree to which Articulate offers xAPI to ...
    • What is the xAPI Object Taxonomy for a Course in Articulate Storyline and Rise?

      Course └ Objective └ Module └ CMI Interaction The following quotes come from the SCORM profile. Course http://adlnet.gov/expapi/activities/course A “course” represents an entire content-package-worth of material. The largest level of granularity… ...
    • Will Students See Errors in an xAPI Course with No LRS?

      If you develop an xAPI course package and don't yet have an LRS, or the LRS is down, then the student should not see any error messages. It will depend on the authoring tool you use. To be sure, you should test it. We've gotten more questions about ...
    • How Do I Add Custom xAPI to Storyline?

      While Articulate Storyline supports a handful of xAPI actions out-of-the-box, you may want more. In response, Articulate added an option to create a trigger that sends a custom xAPI statement. If you need help working with triggers, then the ...
    • Why Does My xAPI Say “und”?

      Because you didn't set the language of your xAPI package when you published your courseware in your authoring tool. What is a Language Map? When an LRS gets a text string, like an object.definition.name, or object.definition.description, the xAPI ...