Custom xAPI Statements in Articulate Storyline - First Impressions

Devlin Peck
. Updated on 
May 4, 2023
Articulate Storyline Custom xAPI Statement First Impressions Thumbnail

Articulate Storyline 360 has just released a long-awaited xAPI update.

Instructional designers and eLearning developers can now send custom xAPI statements from Storyline to get more insight about their audience’s user experience. These xAPI statements can go directly to the Learning Record Stores (LRS) without using any code.

Before xAPI, instructional designers had to rely on SCORM to collect learning data, and the data it provides is very limited.

This article will explore the technical how-to for the new feature, the shortcomings, and the promise for the future if Articulate continues updating the feature.

What is xAPI?

xAPI is a technical specification that helps instructional designers collect granular data about how users engage with learning experiences.

For example, you can see what people are clicking on a given slide, how they’re responding to quiz questions, and even what they’re typing into a text-entry box.

If you’ve been following me for a while, you’ll know that I started my YouTube channel with an xAPI focus. I have a ten-part playlist on how to send custom xAPI statements from Storyline using Javascript if you’d like to learn more.

However, this new update from Storyline can make that process a lot easier.

Benefits of the xAPI Update

Implementing custom xAPI has been quite an undertaking in the past (involving custom Javascript), but Storyline is working on removing this barrier.

The Storyline xAPI statement update means that we can track exactly how users engage with experiences and content. This data includes how long users spend in an experience, where users are losing interest, and which choices they make on multiple-choice questions. We can then improve the user experience of the eLearning project.

The update brings with it a ‘send xAPI statement’ trigger. This lets us define our xAPI statements and send them directly from the tool without any custom code. We can also build more into the xAPI statement and add other keywords in addition to actor, object, and verb if we want more fine-tooth control.

Instructional designers and eLearning developers who are not tech-savvy can now track everything ranging from quiz data to specific open text response answers.

Shortcomings of the update

Despite the promising update, there are some shortcomings that may stop you from using it in a production environment.

A minor shortcoming of this recent Storyline update is that the verbs in the xAPI statement are pre-defined. It would be nice if the developer could modify these verbs directly from the trigger wizard instead of having to open up the full statement editor.

Also, when publishing as an xAPI package, we don’t have a way to turn off Storyline’s default xAPI statements. These are often unnecessary and can bloat an LRS with unneeded statements. If we’re doing a custom xAPI build, it would be nice to be able to decide exactly which actions we would like to track.

Finally, I ran into an issue where every xAPI statement was sent twice. This will lead to additional headaches when it comes to reporting and cleaning the data on the back end. If this is a widespread problem, I would hope that it is resolved quickly.

The combination of the double statement sending and the lack of customization options in relation to the default reporting leaves a lot to be desired. Also, not being able to send custom xAPI statements from an HTML5 package stops this feature from being useful on many common custom xAPI projects.

For now, I will continue sending custom xAPI statements with JavaScript. That being said, the lower barrier to entry may help with xAPI adoption.


I think this update is a big move for the eLearning industry.

As Storyline 360 is a popular authoring tool, I think that this update will be the start of xAPI getting more popular. Storyline is one of the most popular tools that instructional designers use to create eLearning courses.

There are going to be more teams and instructional designers trying to get their heads around sending custom xAPI statements. We can publish the xAPI statement as a SCORM package, AICC, xAPI, or cmi5. The downside is that not every LMS supports xAPI or cmi5. Hopefully, this update will put more pressure on LMS to support this.

It doesn’t look like the functionality for sending custom xAPI statements is there at the moment, and therefore I won’t be using it on Storyline right now.

I have a whole playlist to help you learn more about sending custom statements and avoiding the shortcomings of this tool. Instructional designers will likely still want to code xAPI projects from scratch and use Javascript instead of the Storyline custom xAPI statement editor.

If Storyline does continue to update this and keep improving. It can be a very powerful way to track very specific actions that people take within a learning experience.

If you have any questions, then feel free to join the instructional design community and ask away.

The other update added new Elapsed Time variables to Storyline. Check out my video to learn what they are and how to use them.

Devlin Peck
Devlin Peck
Devlin Peck is the founder of, where he helps people build instructional design skills and break into the industry. He previously worked as a freelance instructional designer and graduated from Florida State University.
Learn More about
Devlin Peck

Explore more content

Explore by tag