Forum Discussion

DanThornton's avatar
DanThornton
Community Member
7 days ago

Rise Course xAPI File Structure Change??

I'm creating courses in Rise 360 and publishing in xAPI (TinCan). The published xAPI file structure from 3 days ago is completely different to the file structure when republishing the same course today.

In fact the new xAPI file structure contains "SCORM" files??? See images. 

17 Replies

  • MaRe's avatar
    MaRe
    Community Member

    I'm happy to be proven wrong, but I can't find any reference to the new export in the history version. Where can I find the reference you mentioned in the changelog?

    This is the last entry 

     

  • DanThornton's avatar
    DanThornton
    Community Member

    Still haven't received any reply from my Support Ticket submission, but our software reseller chased up and received this from a Customer Support Specilaist:

    "We've recently updated the structure of Rise xAPI exports to create a more consistent experience across all LMS types.

    Here's what that means:

    What changed

    • All Rise exports (AICC, SCORM, cmi5, and xAPI) now share the same folder structure
    • xAPI packages now use our newer, more robust driver technology
    • The internal files are organized more consistently

    Why we made this change

    This update creates a foundation for future improvements and makes it easier for us to enhance LMS functionality going forward. It's not just cleanup—it's preparation for even better features.

    Identifying xAPI content
    It's simple: if your export package contains a tincan.xml file, it's still xAPI content. The folder names (like "scormcontent") are just standard naming conventions we use across all export types.

    If you're experiencing issues
    Some LMS systems with custom xAPI implementations may need adjustment. The solution is straightforward:

    1. Ensure your LMS follows standard xAPI specifications
    2. Configure your LMS to use the tincan.xml file for launching content

    For detailed guidance, check out the xAPI guide.

    Once your system is configured correctly, your Rise content will work seamlessly—both now and with future updates."

    How such a substantial change can be updated and released without letting users know is absolutely mind-blowing. 😡

    • StevenBenassi's avatar
      StevenBenassi
      Staff

      Hi DanThornton​

      Glad to see the community has been assisting you!

      I see that your support case is being handled by my teammate, Lea. It looks like she replied to your e-mail on 12/05/25. It's possible the e-mail slipped by or was accidentally diverted to a SPAM folder. No worries! I've just resent that e-mail to you again. In case it still doesn't come through, I'm happy to share the contents of her message here, for your reference:

      Hi Dan,

      Thanks for reaching out about the recent xAPI changes you've noticed. We updated the structure of Rise 360 xAPI exports to create a more consistent experience across all LMS types. Here's what that means:

      What changed:

      -All Rise 360 LMS export packages (AICC, SCORM, cmi5, and xAPI) now share the same folder structure.

      -xAPI packages now use the most current and robust driver technology.

      -The file packages themselves are organized more consistently.

      Why we made this change:

      This update creates a foundation for future improvements, making it easier for us to enhance LMS functionality going forward.

      How to identify xAPI content:

      If your export package contains a tincan.xml file, it's still xAPI content. The new folder names (such as 'scormcontent') are standard naming conventions used across all export types.

      If you're experiencing issues:

      Some LMS systems with custom xAPI implementations may need additional adjustment to accept our updated xAPI packages.

      Check these settings:

      -Ensure your LMS follows standard xAPI specifications

      -Configure your LMS to use the tincan.xml file for launching content

      For detailed guidance, check out this xAPI guide maintained by Rustici Software

      Once your system is configured correctly, your Rise 360 content should work seamlessly-both now and with future updates.

      Please don't hesitate to let us know how we can assist you during this transition.

      Also, I'd like to highlight our Rise 360: Version History. This is the best place for users to stay up-to-date on recent features and enhancements we've released. Such as Rise 360's xAPI file structure.

      If you have any follow-up questions, feel free to reconnect with Lea through your case!

  • kennethcrainer's avatar
    kennethcrainer
    Community Member

    Also, not sure if it's helpful but I get basic xAPI statements from Rise when I point the LRS to the indexAPI.html path found in the /scormdriver/ folder.

  • I received instructions from the support how to make it work. I wander was there any communication previously about the change?

    To make sure your export works correctly in your LMS, please see the following PDF for instructions on how to integrate xAPI content into an LMS.

    Incorporating a TinCan LRS into an LMS

    • StevenBenassi's avatar
      StevenBenassi
      Staff

      Hi SandraAria-501b​!

      Thanks for reaching out!

      It looks like you were working with my colleague Angelo in your support case. I see that he replied to your e-mail on 12/05/25, sharing additional insight on your request.

      Also, the Rise 360: Version History is a great resource to keep handy. There, you can stay up to date on new features and enhancements. Such as the improvements we've made to Rise 360 xAPI file structure.

      Please let us know if you need anything else!

  • kennethcrainer's avatar
    kennethcrainer
    Community Member

    I'm having the same trouble. I found there is an indexAPI.html file in the scormdriver folder that works for the basic xAPI stuff. But I used the Mighty plug-in and developed a lot (A LOT) of additional xAPI statements that now are not recognized. This severely hinders the work we were doing. It was working fine yesterday morning and now six courses are stripped of the ability to see what's happening inside the course.

    • StevenBenassi's avatar
      StevenBenassi
      Staff

      Hi kennethcrainer​!

      I'm sorry to hear that the Rise 360 xAPI update impacted compatibility with 3rd party tools!

      We understand some adjustments may be required before distributing your LMS package. As I've mentioned to others, we've outlined a process to follow to get your SCORM packages back up and running quickly.

      Please let us know if you need anything else!

    • DanThornton's avatar
      DanThornton
      Community Member

      I've raised a Support Ticket for this with Articulate. Don't know how to escalate further it or speak to an actual human. 

      Our LMS (and SCORM Cloud) is no longer able to track "Progress" of these xAPI files. And they're breaking completely on our Translator Tool.

      • kennethcrainer's avatar
        kennethcrainer
        Community Member

        I was able to find a work around yesterday evening. It's only a temporary band aid. I hope Articulate sees this and will be more mindful when launching completely altered publishing structures without giving their paying customers advanced notice. Anyways, I put the following directly before my xAPI javascript statements (noting I use the Mighty Power-up to inject javascript into the course prior to publishing). Hope this helps.

        /* =========================================
           MISSING SETUP SCRIPT (Add this BEFORE your logic)
           ========================================= */
        (function () {
            // 1. Create the Namespace
            window.ScormXApi = {};
        
            // 2. Helper to get URL Params (Rise passes actor info in URL for xAPI)
            function getUrlParam(name) {
                var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
                return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
            }
        
            // 3. Configure the Actor (User)
            // In an xAPI launch, the actor is usually passed in the URL. 
            // If not, we try to grab it from the global SCORM Driver variables if available.
            var actorJson = getUrlParam('actor');
            if (actorJson) {
                window.ScormXApi.actor = JSON.parse(actorJson);
            } else {
                // Fallback: If no actor is found, create a generic one (or handle error)
                console.warn("xAPI Actor not found in URL. Using Guest.");
                window.ScormXApi.actor = {
                    "mbox": "mailto:guest@example.com",
                    "name": "Guest User"
                };
            }
        
            // 4. Configure the Activity ID
            // Usually passed as 'activity_id' or we use the current URL
            window.ScormXApi.activity = {
                id: getUrlParam('activity_id') || window.location.href.split('?')[0]
            };
        
            // 5. Define the sendStatement function
            // We use the ADL wrapper which Rise normally loads, or a direct XHR fetch if needed.
            // NOTE: This assumes Rise has loaded the XAPIWrapper or TinCanJS. 
            // If Rise uses strictly scormdriver.js, we have to leverage that.
        
            window.ScormXApi.sendStatement = function (stmt, callback) {
                // Try to find the Rise/LMS standard wrapper
                var lms_api = window.parent ? window.parent : window;
        
                // METHOD 1: TinCanJS (Common in Rise)
                if (typeof lms_api.TinCan !== "undefined") {
                    // We need the instantiated tincan object, not just the library.
                    // This is tricky without the original setup.
                    // Often stored as window.tincan
                    if (lms_api.tincan) {
                        lms_api.tincan.sendStatement(stmt, callback);
                        return;
                    }
                }
        
                // METHOD 2: Direct Post (Fallback if we have endpoint/auth from URL)
                var endpoint = getUrlParam('endpoint');
                var auth = getUrlParam('auth');
        
                if (endpoint && auth) {
                    var xhr = new XMLHttpRequest();
                    xhr.open("POST", endpoint + "statements", true);
                    xhr.setRequestHeader("Authorization", auth);
                    xhr.setRequestHeader("Content-Type", "application/json");
                    xhr.setRequestHeader("X-Experience-API-Version", "1.0.0");
        
                    xhr.onreadystatechange = function () {
                        if (xhr.readyState === 4) {
                            callback({ err: xhr.status !== 200, xhr: xhr });
                        }
                    };
                    xhr.send(JSON.stringify(stmt));
                } else {
                    console.error("Could not find xAPI Connection (TinCan or Endpoint URL)");
                }
            };
            console.log("ScormXApi Bridge Initialized", window.ScormXApi);
        })();

         

  • I am having the same issue today, xAPI scorm file doesn't open in our LMS. Is there some error?

    • DanThornton's avatar
      DanThornton
      Community Member

      Exactly what we're seeing. File structure being published from Rise is completely different. Must be some error. 

       

  • DanThornton's avatar
    DanThornton
    Community Member

    The new xAPI file published from Rise 360 is not tracking on our LMS. I've also tested it on SCORM Cloud, which is recognising the file as "xAPI" but it is not tracking correctly on there either.