Getting User Name from LMS into Storyline

Dec 06, 2018

I am working in Storyline 360 and creating a "certificate" with the User's Name and the date - both being pulled from our LMS. I am unable to get the Username to work. We are publishing to HTML 5- is that the problem?

Thank you 

13 Replies
Daniel Servan

Hi,

Try this Javascript.

Add a trigger to execute Javascript inside Storyline

var player = GetPlayer();

function findLMSAPI(win) {
  if (win.hasOwnProperty("GetStudentID")) return win;

  else if (win.parent == win) return null;

  else return findLMSAPI(win.parent);
}

var lmsAPI = findLMSAPI(this);
var myName = lmsAPI.GetStudentName();
var array = myName.split(',');
var newName = array[0]; // you can also try array[1]
player.SetVar("VariableName", newName); // VariableName is your Storyline Variable


James Jenneman

This is great!! In Exceed LMS, when I set array to 0, it returned the last name. When I set it to 1, it returned the first name.

So I set up two variables: %fname% and %lname% and set two triggers to run that script when the course starts, once with array[0] associated with %lname% and once with array[1] associated with %fname%,

Worked like a charm.

Feel free to test the attached in your LMS.

Alison  L.

BRIDGE LMS (and SL 360) 

(THUMBS UP!) 

(of course uploading a scorm.zip to create a course gets you a "CERTIFICATE" option (et al) on the course's "page" so you don't actually have to do this. But I was like all the way through (except for the name part) and wanted to make it work/ not have wasted my time.

thanks!! 

Sayak Bhanja

Thank you Daniel and James! This is great to know.

Does anyone know how this would work on Articulate Online (if at all).

I tried it using the story file James had uploaded, but I'm not getting the user name back (first or last). I have a feeling Articulate Online doesn't store the data as 'StudentName' (maybe?).

Jonathan Hill

Hey all!  I've been using this code for a while now to add my learner's name to in-course instructions and certificates and it's been very useful.  Thanks Daniel!

However, I've found that platfoms such as Litmos, Docebo, and Cornerstone, tend to add an unwanted space before the first name.

I've worked around this by reducing the left margin on the text box that displays the variable, as I'm not really a coder.  But recently I've been 'chatting' with ChatGPT to analyze and refine code. 

During a recent chat, ChatGPT provided this updated code.  It pulls the user name from the LMS, removes any spaces, and splits it into First Name and Last Name.

And it works!

var player = GetPlayer();

function findLMSAPI(win) {
  if (win.hasOwnProperty("GetStudentID")) return win;
  else if (win.parent == win) return null;
  else return findLMSAPI(win.parent);
}

function removeSpaces(name) {
  return name.replace(/\s/g, '');
}

var lmsAPI = findLMSAPI(this);
var myName = lmsAPI.GetStudentName();
if (myName.charAt(0) === ' ') {
    myName = myName.substring(1);
}
var array = myName.split(',');
var firstName = removeSpaces(array[1]);
var lastName = removeSpaces(array[0]);
player.SetVar("FirstName", firstName);
player.SetVar("LastName", lastName);

Christopher Chagnon

Jonathan,

I'm curious how you set this up. Are you saying I can create a Storyline course that will pull the username from my LMS into the published course within the LMS?  How is this done?  Do you mind sharing the steps you took to accomplish this or at least point me in the right direction? Thanks.