Matthew Bibby
Matthew Bibby

Capturing Storyline Variables in an LMS

In this tutorial we will look at how to get Storyline to pass your variables to an LMS so that they can be stored for future reference alongside your other interaction data.

Matthew BibbyMatthew Bibby

Have you just spent hours getting your custom quiz set up just right, only to realise that your Storyline variables aren't being passed to the LMS?

I remember when I first realised that Storyline didn't pass the variables to an LMS. It seemed like a mistake. Like there must be an option somewhere to enable this. But there isn't, well, not an obvious one anyway!

In this tutorial, we will look at how to get Storyline to pass your variables to the LMS so they can be stored for future reference.

This means that you can create custom quizzes, including ones with multiple questions on one slide, and have the data stored in your LMS alongside your other interaction data.

This approach also allows you to grab other information and store it in the LMS. For example, let's create a form that the learner can use to tell the training department what other information they need.

Capturing Our Variables

Let's start with a basic form:

Contact form with name, email and field for message

All that I've done here is add three text entry fields:

The information that is entered in these fields is stored in text variables called Name, Email and Message.

Trigger panel showing the text entry fields

The Send button at the bottom of the screen simply takes the user to the next slide, which is where the magic begins.

Trigger wizard showing the behaviour of the Send button

(Okay, it's not really magic...)

Passing Variables to the LMS

Now we need to set up some quiz slides that we can use to pass the variables to the LMS. You can think of these quiz slides as a form of transport. We aren't checking if the variable is right or wrong... we are just trying to get it recorded in the LMS.

So let's start by adding a new survey question to the project by going to Insert > New Slide > Quizzing > Survey > Short Answer.


Now that we have a survey quiz slide added to our project, we need to make a few changes so that one of our variables can be added to this question slide and submitted to the LMS without any further interaction from the user.

Why use that question type?

You may be wondering why we are using a short answer question type, instead of one of the other options. Don't worry about that now, we'll talk about that in more detail later.

So let's give our survey question an appropriate name. Given that this first quiz slide will be used to capture the Name variable, an appropriate name would be... you guessed it... Name.

Enter the question

Once this is done, you can switch to the Slide View by clicking the Slide View button as shown below (or if you're a keyboard shortcut kinda gal, then you can just hit F3.)

Once in the Slide View, we need to make a couple of changes.

First, update the variable that is used by the text entry field. As you can see below, this is set to TextEntry by default:

We want to change this to use our Name variable, because then the contents of the Name variable will automatically be copied here.

Then we need to change when the interaction is submitted so the user doesn't have to click the Submit button.

Submit short answer interaction when the slide timeline starts

So, as you can see above, we need to change the When option to Timeline starts and the Object option to 1.2 Name (or whatever your slide is called).

So now your trigger panel should look something like this:

Making This Slide Invisible

We don't want the learner to see this slide, so let's add a 'Please wait, loading...' cover over the top of the slide content. Just use a shape to cover everything on the slide and add whatever loading text you want:

You'll notice in the above example that I've only included one full stop at the end of that sentence, rather than the full ellipses. That's because as we add our next two quiz slides (which we'll use to pass the Email and Message variables to the LMS), we will add the next two full stops in as a way of indicating progress as the variables get passed into these quiz slides.

Then you want to get rid of the Submit button, so hit up the Slide Properties:

Slide properties

And deselect the Submit button:

Changing player controls

Now, our Name variable is ready to be passed to the LMS.

Passing the Next Variable to the LMS

Next, let's do the same for the Email variable.

This will be simple, as we can re-use the quiz slide that we just finished setting up. Just right click on our Name slide and select Duplicate:

Duplicate slide

Then switch to Form View and change the question to Email:

Change the question

Then you can jump back to Slide View and change the variable to Email:

Change the variable the text entry field uses

Finally, you can add another full stop to the end of your loading message to show that things are progressing (as depending on your LMS, it can take a second for the variable data to be captured).

Passing the Final Variable to the LMS

Okay, now we need to change things up a bit.

As you'll recall, for the first two questions we we're using the Short Answer question type to capture the variable data. However, these are limited to 256 characters, which is okay for the Name and Email, but it isn't enough for the Message.

So we would want to use an Essay question instead, as by default, this can handle up to 5000 characters.


And if you need more than 5000 characters, you can adjust this number from the Form View:

Adjust number of characters in Essay

The rest of the process is the same. You'll need to update the question, change the variable to Message and then add another full stop to the end of your loading message.

I know it seems like a lot when the process is all written out, but it really doesn't take too long to setup. I've worked on projects where we've needed to pass hundreds of variables to the LMS and I found the that some good music and a little dance really helped to speed up the process!

Please Say Thanks!

It is important to have a confirmation screen at the end of this so that the learner knows that their data has been submitted.

I'm a fan of being polite, so my final screen looks like this:

Thank you, your message has been received

The thing is, this isn't a normal slide. It's actually a Result Slide, which is something we need to make sure this information is recorded in the LMS.

To set this up, go to Insert > New Slide > Quizzing > Result Slides > Blank:


Then you can check that each of your quiz slides are selected and that the Passing Score is set appropriately:

Next, go to the Options tab and deselect the Allow user to review quiz option:

Then we can add our thank you message and we will have finished setting up this file up so our three variables get captured in the LMS.


Here is a demo of the final project so you can see how it looks:

The above demo isn't entirely accurate as there is no LMS involved here.

When testing in an LMS, each loading screen may show for a second longer while the data is recorded. If you'd like to download a SCORM package to test in your LMS, please see below.

Files You Might Need:

Here is the .story file that was used in this example.

Here is a SCORM package you can use to see how this works in your LMS.

Frequently Asked Questions:

Q. Does this work in SL3 and SL360?
A. I don't think so. But it works great in SL2! At some stage, I'll dig into why this isn't working in SL3 and SL360 and see if I can come up with an alternative way of doing this, but for now, grumble updates grumble breaking things grumble grumble.

Q. When I tried this, I got an Invalid Message error. What's up with that?
A. If your question is set to require an answer and the text entry field is left blank, then this will happen. You can get around this by going to the Question Tools Design tab and changing the Require field to User may skip:

User may skip

Q. Do Articulate support this method?
A. Yes, here is their documentation.

Q. Does this work in HTML5? (i.e. will it work on my phone and tablet?)
A. Yes it will.

Q. Will this work in Articulate Mobile Player?
A. Yes, it should, although I haven't tested it. If you get a chance to try this out, let me know how it goes.

Q. Will this work in an LMS?
A. Yes, that's kind of the point! I've tested it in SCORM Cloud. If you'd like to test it in your LMS, there is a SCORM package above you can borrow.

Q. Does it matter if I use SCORM 1.2 or SCORM 2004?
A. No, both will capture the variables in the LMS. That being said, you'll only see the question text if you are using SCORM 2004. That's just the way SCORM rolls.

Q. What if I want to email these variables somewhere as well as record them in the LMS?
A. You can do that. See here for details on how to setup the email. You'll just need to make sure your Execute JavaScript trigger fires before the Jump to Next Slide trigger.

Q. Does this work with other types or variables?
A. Sure, if you need to capture a number variable in the LMS, you'd use a How Many survey slide to do this. Alternatively, you could use a text variable to hold your number, but then you wouldn't be able to do math with the variable. And math is cool.

Q. My question isn't listed here, what should I do?
A. Ask your cat. But she'll probably ignore you. It might be better if you can leave a comment below or contact me. I won't ignore you, promise.

If you found this tutorial helpful and think that others in your network will also, please share using the share buttons below. Thanks!

Matthew Bibby

Matthew Bibby

I'm Matt. I'm an eLearning Consultant. I help people like you develop memorable, engaging and profitable training programs. What do you need a hand with?