Recording Completion on a non-linear course

I am creating a non-linear course. People don't need to view all slides in a topic/section. I have two challenges:

  1. How can I record completion when I post to an LMS?
  2. I created variables so that when a topic button is clicked, the variable changes to False. I want to display a slide telling users they completed the e-course and include an exit button. How do I do this?

Any help would be appreciated...

8 Replies
Judy Nollet


Storyline has 2 ways to tell an LMS that the course was completed: either the user passes a test OR the user visits a designated number of slides. The default is that they visit all of them, but you can change that. However, you can't indicate what slides they have to visit. So if you lower the limit, it's possible that someone might reach it before they visit all of the sections.

If you at least want users to visit the first slide of every section, then, yes, use variables to track that they visited each section. I'd also add a hidden "Complete the Course" button that is only revealed after they click all the section buttons. That button could go to a Completion slide. If you make that a single-question "quiz" with a passing grade of 0%, everyone will pass. But the LMS will also know the user completed the course as long as they get to that question and answer it. Just disguise it so it doesn't look like a quiz.

Carolina Navas


Thank you for your response. I did add variables, but I think I inserted the wrong kind. What choices do I pick to track that they visited each topic? How do I insert the Complete the Course button. That is exactly what I am trying to do...

Can you show me some examples that I can try to mirror?

Judy Nollet

Phil: That's a great idea when you need to ensure they complete all sections.

Carolina: The courses I work on have proprietary content, so I can't share them. But perhaps I can clarify what I was suggesting.

  • Set up a T/F variable to track either visiting or completion of each section (e.g., Sect1Done, Sect2Done, etc). Start with these variables set to False.
  • Have a Complete the Course button on the Main Menu slide with the section buttons -- but set its initial state to Hidden. Include a Trigger on the slide that adjusts the button's state to Normal with the conditions that all of the section-done variables are True.
  • If you just want to track that someone at least clicked into a given section, adjust the corresponding variable to True when the button to go to that section is clicked. OR, if you want to track that someone went through an entire section, adjust the variable when you know they've visited all of the slides. (There are multiple ways to do that. Which you choose would be based on how you control their navigation.)
  • After all of the variables have been adjusted to True (via the previously described clicks), the Complete the Course button will appear (i.e., it will be in the Normal state) the next time the person returns to the Main Menu.

I hope that helps!

- Judy

Carolina Navas

Can someone please tell me what is wrong with my logic? Please refer to the Topic slide...

I can get this to work when I do the Logging On and General Navigation buttons, but I can't get it to work once I add the others... I am BEYOND frustrated.

Any help is appreciated...

Thanks in advance!

Carolina Navas

Hi Nick,

I applied your model to my course, and I can't tell if it is working correctly. But I know for a fact that the completion check mark is not displaying... This leads me to believe that nothing else is working... again, what the heck am I doing wrong???

Do I need to make every single page add to each chapter variable???
Thanks in advance,


Helen Tyson

Hi Carolina

Try changing your trigger to: Change State of Checkmark to Completed When Timeline Starts for Slide 1.2 Topics if LoggingOn is Equal to 1

Nick is right when he says that the problem is because the variable doesn't change on slide 1.2 - it changes on slide 3.3 - but you can get your slide to check the value of your variable and change the state of the checkmark based on that.