This guide will cover how to author your own supervised content.

You will need Articulate Storyline to open the below files:

At the start of each of your slide you will need to add a trigger to execute JavaScript.

Paste this in the Script

//get params on query string
var learnerParam = getQueryVariable('learner');
var actorParam = getQueryVariable('actor');

//learnerParam defined ... you are the supervisor.. your details are in actor
//learnerParam undefined... you are the learner .. your details are in actor

var player = GetPlayer();
if(player) {
if(learnerParam) {
player.SetVar("actor", 'supervisor');
console.log('is supervisor')
else {
player.SetVar("actor", 'learner');
console.log('is learner')

function getQueryVariable(variable)
var query =;
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){
return convertToJSON(pair[1]);
return undefined

function convertToJSON(v) {
if(!v) {
return {}
return decodeURIComponent(v);

Basically the code will detect if the person viewing the content is a supervisor or learner.

You will then need to add two variables.

Name the variables:

  • actor
  • conch

These are the primary variables to get the supervised content working.

The variable actor will store who is viewing the content. So it can be the value supervisor or learner.

The value for the variable actor will be set by the JavaScript trigger above.


if actor = learner ...then the learner is viewing the content

if actor = supervisor ...then the supervisor is viewing the content

You can use the actor variable to show specific layers depending on who is viewing the content.

For example below, we have a layer called "Learner Layer" which is shown when the actor = learner.

This means that when the learner is viewing the content, "Learner Layer" will be visible.

Similarly for the "Supervisor Layer".

The variable conch will be the person who is allowed to edit the content. So it can have the value supervisor or learner.

The value for variable conch is set by you.


if conch = learner ...then the learner is edit the content

if conch = supervisor ...then the supervisor is edit the content

We call this variable conch in reference to Lord of the Flies .. "whoever has the conch can speak".

You can use conch to show "locked out" layer so that the a person can know when it is not their turn to view the content.

For example below, we have a layer called "Lock Learner Msg" which is shown when:

  • actor is not equal to conch AND
  • actor = learner

So this layer is shown when the person viewing is not the person who is supposed to be editing i.e. if you don't have the conch you cannot speak!

You should also add a condition on the triggers for clicking prev / next so that they can only proceed if the actor is equal to conch.

Where is the conch variable set?

This is up to you.

In our sample content we have a "Review slide" that sets the conch value based on whether the next step has been unlocked.

So on entering the "Review slide" the conch is automatically passed to the supervisor. The conch is passed back to the learner when "Save Feedback" is pressed by the supervisor.

Pitfalls you may encounter:

  • Not have the JavaScript trigger copied onto each slide
  • Not locking out the person who does not have the conch
  • The ordering of your triggers... i.e. moving onto next slide before setting the conch variable