Creating a Course for Multiple User Roles


I am creating a Health & Safety training course for an engineering firm and there are some modules in the course that relate to specific worker types - ie office worker, factory worker, construction site worker.

I would like to provides a  self selection screen by role type at the beginning of the course and then present ony the information that is relevant to that particular role thereafter. In many cases the info will be the same but there will be some specific modules that only relate to particular roles.

My dilemma is, if i create this as a single SCO with three routes through the information - one for each role selected on page one, any one user will complete their programme by only viewing one third of the overall content. How can I get Artciculate to recognise this as a completed course to be able to report back through the LMS?

2 Replies
Brian Allen

Hi Jeremy, I just set one up like this a couple of weeks ago and was able to use slide completions as a very effective (and reliable) means for tracking completion.  Even though I built in branching for roles, each role still viewed the same number of slides, for example 6 slides in the example below, so I was able to set the completion criteria as 6 slides and it works well.

Here's an example of how I set mine up - 

There is another option that I would use if each role didn't view the same number of slides, for example role A only has 5 slides whereas role B views 6, and that would be to have a slide at the end with a dummy quiz question that you could make look like a "finish" button or something.  You could then base your completion based on your quiz results.  I saw a really good example of this somewhere here in the community but can't find it this morning.

Steve Flowers

The converging paths model that Brian describes is a great way to do this. As is the quiz question as a completion holder. You can even have the dummy question completely invisible to the user if you'd like. 

If you're comfortable with JavaScript, here's another method to get you there. Add a JavaScript trigger to your final page, which is gated by the rest of the experience:

//***start javascript trigger

var player=GetPlayer();

var cScore=player.GetVar("customScore"); // add this line if you want to report a score

lmsAPI.SetScore(cScore, 100, 0); // same here


//***end javascript trigger

If you want to set the score to 100% without grabbing a variable from the Storyline player,  add this line instead of the ...SetScore(cScore... line:

 lmsAPI.SetScore(cScore, 100, 0);