How to Send xAPI Actor Data from Workday Learning
- ramonanicole
- Feb 16
- 3 min read
If you're sending xAPI statements from Articulate Storyline to an external LRS while hosting in Workday Learning, you may run into this issue:
Workday does not provide usable learner identity data for xAPI actor configuration. If you select the Supplied via launch URL in the Storyline publish settings, the xAPI statements will fail to send.

A simple workaround to this is to set up a random actor. This will get your statements to send over to the LRS. However, your data is really so much more useful when actors are identified.
Here’s the fix.
The Core Issue
An xAPI statement requires:
Actor
Verb
Object
In Storyline, the verb and object are easy — they’re defined in your xAPI trigger.
The problem is the actor.
Unlike many LMS platforms, Workday Learning does not seamlessly pass learner identity in a way that Storyline can automatically use via standard configuration.
So instead of relying on automatic launch parameters, you need to:
Capture the learner identity at launch
Store it in Storyline
Explicitly pass it into the xAPI actor configuration
The Fix (High-Level Steps)

1️⃣ Create a Storyline Text Variable
Create a new text variable:
learnerName
This will store the learner’s identity pulled at launch.
2️⃣ Add JavaScript on the First Slide
Add the below JavaScript trigger to initiate when the timeline starts on the first slide. This script retrieves the learner’s identity and stores it in learnerName, the variable we created in step 1. This ensures learner data is available before any xAPI statements fire.
let userName = lmsAPI.GetStudentName();
let array = userName.split(',');
let updatedName = array[1] + ' ' + array[0];
setVar("learnerName", updatedName);

3️⃣ Set up Reporting and Tracking settings
On the LMS / LRS tab in the publish settings, select both Report to an LMS and Report to an external LRS. From the drop-down, select SCORM 2004. (Workday Learning does not support cmi5 or xAPI.)
Then, click the Reporting And Tracking button.

4️⃣ Configure the LRS
On the LRS tab, enter your LRS details. Be sure to click Test Settings to ensure the connect works.

5️⃣ Set the Actor via JavaScript
Select JavaScript for actor configuration. Then, click the (…) button just to the right.
Paste the below actor configuration script and click OK. Then, click OK one more time.
function getActor() {
var learnerName = "Unknown Learner";
try {
// Storyline player API
if (typeof GetPlayer === "function") {
var player = GetPlayer();
var nameFromVar = player.GetVar("learnerName");
if (nameFromVar && nameFromVar.trim() !== "") {
learnerName = nameFromVar;
}
}
} catch (e) {
console.log("getActor: Error getting learnerName from Storyline variable:", e);
}
// Optional: fallback to SCORM learner name if available
try {
if (typeof lmsAPI !== "undefined" && typeof lmsAPI.GetStudentName === "function") {
var scormName = lmsAPI.GetStudentName();
if (scormName && scormName.trim() !== "" && learnerName === "Unknown Learner") {
learnerName = scormName;
}
}
} catch (e) {
console.log("getActor: Error getting learner name from lmsAPI:", e);
}
return {
"objectType": "Agent",
"account": {
"homePage": "https://www.example.com",
"name": learnerName
}
};
}How to Confirm It’s Working
Publish the storyline file and upload the SCORM package into Workday Learning. Launch the course in Workday and trigger an xAPI statement. Check your LRS.
If successful, the actor field will display the actual learner’s identity.
Why This Works
Instead of relying on Workday to automatically supply actor data, you:
Capture learner identity manually at launch
Store it in Storyline
Explicitly define the actor in the LRS configuration
This approach bypasses Workday’s limitations and ensures your LRS receives accurate learner-level data.
If you're building custom xAPI interactions inside Storyline and deploying to Workday Learning, this method provides a reliable way to send clean actor data.
The full walkthrough — including debugging lessons learned — is in the video above.
If this worked for you, I’d love to hear about it.

Comments