Six Ways to Keep Trigger Ache at Bay

Nov 12, 2019

Tips on Articulate Storyline Triggers

As Articulate Storyline developers, we all must have experienced this disorder at some point of time: TRIGGER ACHE. The question is that ‘Are there are any preventive measures to minimize the recurrence of this disorder?’ Yes! There are certain measures, which can keep trigger-ache at bay. 

1. Name Your Objects and Variables

Triggers revolve around two elements: variables and objects (text box, a line, a button to name a few). Using a generic name can land you in an unending maze. Let me illustrate my point by an example.

Imagine you were making a course. The initial ask from the SME is that an image needs to appear after the learner has clicked all the three buttons.

Later on the requirement changes, and your Subject Matter Expert (SME) states that the image needs to appear after the learner has clicked the ‘Examples button’ irrespective of whether or not the learner has clicked the other two buttons.

Observe the screenshots (a and b) of two trigger panels.  Which trigger panel would you find it easier to carry out your edits? Trigger Panel Articulate Storyline

If you have a lengthy course, you might find naming your objects and variables a bit cumbersome; it is. Nonetheless, it can save you a lot of headache and time later on.

2. Minimize  Actions

The lesser the number of actions associated with your triggers, the farther you are from suffering a trigger-ache. Let me narrate to you a real-life example. In a course I made, the assessment section had several Multiple Choice Single Select questions. Each question had four distractors. If learners were to select a wrong option, a variable was to be set as ‘False’. My trigger looked something like ‘Change Variable 1 to false if the state of the distractors is selected when the user clicks ‘Submit’.’

What happened next? If I missed (and I did miss quite a few!) selecting a distractor, the trigger would not yield the desired result.  If I missed changing to ‘OR’; the trigger would not work correctly.  Phew!

Later, I realized that I could have simply configured my trigger as ‘Change Variable 1 if the state of the correct option is not selected when user clicks ‘Submit’.

Check the screenshots given below to get a visual idea of what I mean.

Articulate Storyline Trigger Workflow

3.  Sequence Your Triggers Correctly

I have a question: Imagine you wish to get your car started. Which of these actions would allow you to do so? Action 1: Unlock the door, start the car, and get inside. Action 2: Unlock the door, get inside the car, and start it. Action 2, of course.

Now, triggers are like a car waiting to take your destination. The catch is you can start the car only if you get the sequence of your actions right. To develop a greater understanding, you can download the Articulate Storyline 3 file I’ve attached with this article. Play with the order of the two triggers given on slide 1, and check the result you are getting.

4.  Inspect the Functioning of Your Triggers

Is your trigger really changing the value of your variable? Articulate Storyline has an easy way to let you find that out.  Draw a textbox, click the Insert tab, then click the Reference icon. You will get a dialog box showing the variables you’ve used in your course. Choose your variable, and its reference will get created on your slide.  Use this reference to check whether or not your trigger is resulting a change in the value of the variable. If not, you need to rework on your trigger.

5.  Anticipate Learner’s Behavior

In one of the courses I worked on, the content pieces (which fitted under the umbrella ‘Types of’) were displayed in a tree-like structure, and each content piece had an associated text. The customer insisted the text be displayed on hover. Moreover, the customer also wanted the ‘Next’ button to get activated after the learner has hovered over each of the content piece. Naturally, I opted for a variable: a number variable. The logic was every time the learner hovered over a content piece, the value of the variable would increase by one. Once the variable exceeded a value, the Next button would be active. Do you think I did the right thing?

Nope! Remember, the content pieces were comparative in nature – types of – and there was every possibility that the learner would hover twice on at least one of the content pieces. In that case, my variable would exceed the stated value (and change the state of the Next button to active) even if the learner had not hovered over all the content pieces. I, therefore, added one more variable (a true/false one), and revised my trigger statement.

Now, the value of my variable increased only when the learner hovered over the content piece for the first time.

6. Keep the ‘Next Slide’ in Mind

Focusing on the present is a good  quality, but when working in Articulate Storyline, you need to think about the future. ‘Will the triggers and variables work when the learner revisits the slide?’ This is the question you need to ask yourself.

Articulate Storyline has a feature to reset the slide to initial state while revisiting. However, my experience has shown that variables and triggers do not always get reset to their initial states.  Consequently, when your learners review your slide, the triggers and variables might not work properly.

What I do is insert a dummy slide after the slide containing the triggers and variables. Once I am convinced that the triggers are working fine, I press the Next Button, then the Previous button, and recheck for any errors or inconsistencies.

What's your prescription to keep trigger ache at bay? I would love to hear from you.


14 Replies
Judy Nollet

Hi, Punam,

You've articulated some great tips!

Re: #1 - Naming. I'm a big proponent of naming things in Storyline. In addition to using a name that means something (e.g., a nickname for what the object is or does), I also like to start with info that helps me organize it. For example, consider a typical interaction with 3 buttons, each of which opens a different layer.  I'd start the button names with "b" and a number, for example: b1-type, b2-color, b3-size. I'd use the same names for the layers, except that those names would start with "L" instead of "b" (e.g., L1-type, L2-color, L3-size). This forces the objects into the desired order, whereas using just the nickname part could put them in a different order when alphabetized. Having the button and layer names match also makes it easy to trouble-shoot the triggers. In other words, I can quickly spot if I inadvertently told Storyline to show the wrong layer.

Re: #6 - Returning. Good for you! I agree that we developers should consider what happens when a user returns to a slide (even if most users probably won't go back if they don't have to). 

  • FYI: For revisiting, "Return to initial state" means Storyline will replay the timeline from the beginning. However, the program will not revert variables nor object states. So if you truly want to restart a slide from how it was originally, you'd have to include triggers to reset all variables and object states when the timeline starts. 
    • Bonus FYI: This, to me, is an example of the importance of good naming and the confusion of bad naming. Saying "Return to initial state" implies that object states will be reverted -- which is quite confusing to newbies (it certainly was to me).  I've discussed this with Articulate, suggesting the option should be "Replay timeline from start" or something similar. However, I have no idea if they'll ever implement that suggestion.
  • Here's something to consider when returning to an interactive slide with multiple layers that are accessed via buttons. When a user returns to the slide, should they see the "intro" content (i.e., what they see the first time they encounter the slide) again, or should they return to whatever layer they were on when they left the slide?
    • Admittedly, the answer really depends on the actual content and what makes sense for presenting it.
    • I typically like to re-show the "intro" content. But I don't want to add a batch of "hide layer" triggers. So how do I avoid that "trigger ache"?  I put the intro content on a layer, and I have a trigger to show that layer when the timeline starts. Then I use the "Return to initial state" for revisiting. That replays the timeline, shows the "intro" content layer, and automatically hides all the other layers (assuming that default behavior is used).
Joe Waddington

Great list Punam. I appreciated the reminders, and some insights into your process.

Early in my development career, I had heard Tom talk about the importance of naming things, but I never really processed it, or implemented it on a consistent basis. It wasn't until we had an intern come in, that it really helped drive it home for me. He came in with a programming background, and talked about not only naming everything, but establishing a naming convention for the items in your project. We came up with a cheat sheet, and I still use it (mostly) today :)  I've attached it, in case anyone is interested.

Ulises Musseb

Great tips, Punam. Something that I know it's a given, but it's worth emphasizing is planning ahead. It's best to have a clear idea of what you want to accomplish before starting to create triggers.

Also if an action is rather complicated, or something that I haven't tried before, I never start with the course I'm working with. I create a new file to create and test, then once I find it functional, i copy the slide into the course, or re-create the actions in the course file. That keeps the official course file clean.

I too use mnemonic names for objects, variables and layers in courses. It's very useful to have things properly labeled.

Thanks again.

Judy Nollet

Hi, Katherine,

My comment above has some specific tips for controlling what happens on revisits to an interactive slide in which buttons reveal different layers.

Here's a general summary: Start by determining how you want the slide to look when the user revisits it. Then determine what additional triggers, conditions, and/or variables might be needed to achieve that. All that has to work with how you tell Storyline to handle the slide on revisits:

  • "Return to intial state" doesn't revert objects to their original state nor variables to their starting values. It merely replays the timeline from the beginning and, therefore, repeats any triggers associated with the timeline.
    • It also, of course, replays animations, which could be tedious if the user has to sit through them every time they revisit.
  • "Resume saved state" is supposed to play from the timeline from whatever point the user left it to the end. (I've never tested whether it would resume from the middle of a video or audio clip.)  If the user already played the entire timeline, then nothing happens when they revisit -- i.e., no timeline-based triggers are re-activiated.
  • "Automatically decide" means the program decides how to handle things, based on typical scenarios (e.g., does Storyline recognize that a slide has an interaction). This may be worth a try, but be sure to test it out, because it might not do what you want.
Punam Parab

Judy has shared some excellent tips, Katherine. Would like to add that when it comes to triggers which are based on variables, you can add a trigger that resets your variable.

For example, if you have a Boolean variable (default value = false) being set to true when a user performs a particular action on slide 1, then you can add a trigger to the 'Prev' button of slide 2 stating that the Boolean variable needs to change to False when the previous button is clicked. This will ensure that when the learner revisits slide 1, the Boolean variable is back to its default value 'False'


This discussion is closed. You can start a new discussion or contact Articulate Support.