Forum Discussion

MaithriKular178's avatar
MaithriKular178
Community Member
2 days ago
Solved

Feedback Collect

Hi Experts,

I want to add an MS Form that learners must complete after finishing the course. My requirement is that learners should not be able to complete the course unless they fill out and submit the form.

The MS Form will be embedded using the Web Object option in Articulate Storyline 360. After that, I plan to upload it into Articulate Rise 360 and add a Continue Block/Gate below the Storyline block.

I would like to know whether it is possible to enable the Continue button only after the learner submits the MS Form successfully.

If anyone has experience with this setup, or knows a workaround/solution, please share your suggestions. Also, if there are any similar examples, guides, or reference content available, I would appreciate it.

Thank you.

  • Due to iframe cross-domain security (CORS), Storyline cannot detect events inside an embedded MS Form, meaning it won't know when a learner clicks "Submit." I will not provide any more details as Jonathan already provided the most accurate explanation of this issue.

    To work around this, customize the Thank You message in MS Forms to display a secret completion code (e.g., 2026COMPLETE). Instruct learners to paste this code into a Text Entry field in Storyline. A trigger then validates the entry to trigger the course completion command, which signals the Rise Continue block to unlock. Needless to say, if the learner does not submit the form, they will not see the code and will be unable to continue; conversely, entering the correct code is the only way to unlock the gate. This trick ensures the learner is still physically gated until they successfully submit the form and verify the code. 

    This solution does not use JavaScript on either the HTML web object or the Storyline side, only a valid embedded Microsoft Forms link.

    Storyline example:



6 Replies

  • What you're describing may be possible with a Code Block in Rise rather than a SL block.

    I have built custom iframe using the Code Block to display a MS Form within a Rise course. I have also had some success passing data in, out of, and between sections of Rise using postMessage in localStorage.

    It occurs to me that it might be possible for the Code Block that displays your MS Form to also 'listen' for a successful submission, and then 'complete'.

    But I've only done this with Google Forms, which has a far more open infrastructure than MS Forms. Honestly, the blocker here may be MS Forms, which is tougher to integrate, and iframes also add another layer of complexity.

    I'd recommend asking Claude Code or similar to build a simple iframe, then experiment with what (if any) data can be seen passing to the MS Form to trigger completion.

  • I've been giving this some thought today during my lunch break, MaithriKular178​ Unfortunately, I don't think what you're asking for is possible in Rise.

    When a website shows you content from another website (usually inside an iframe), the browser acts like a security guard. It says: "These two websites don't own each other, so neither one is allowed to spy on what the other is doing."

    MS Forms lives on Microsoft's servers. Rise lives on Articulate's servers (or your LMS server). 

    So when your form sits inside Rise, Rise can see the iframe - but it can never look inside it. It can't tell whether the learner has started the form, finished it, or walked away for a cup of tea. The browser won't allow it.

    I tried every workaround I could think of - listening for signals, watching for page changes, intercepting clicks - but they all hit the same wall. MS Forms doesn't send any signal when it's submitted, and we can't reach in to check ourselves.

    The only way to make it work would be to involve Microsoft's own backend (using Power Automate) to tell Rise when a submission has happened - but that's a significant technical setup, requiring authentication, and isn't a quick fix.

    Displaying the MS Form in Rise using a Code Block is relatively easy (see HTML below). You may need to add an activity or question after the form as a final requirement for completion of the course, though.

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
      * { box-sizing: border-box; margin: 0; padding: 0; }
      html, body { height: 100%; background: #ffffff; }
      .frame-wrapper { width: 100%; height: 100vh; min-height: 600px; display: flex; flex-direction: column; }
      iframe { flex: 1; width: 100%; border: none; display: block; }
    </style>
    </head>
    <body>
    <div class="frame-wrapper">
      <iframe
        src="PASTE_MS_FORMS_URL_HERE"
        title="Form"
        allowfullscreen
        sandbox="allow-forms allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox"
        loading="lazy"
      ></iframe>
    </div>
    </body>
    </html>

     

  • Nedim's avatar
    Nedim
    Community Member

    Due to iframe cross-domain security (CORS), Storyline cannot detect events inside an embedded MS Form, meaning it won't know when a learner clicks "Submit." I will not provide any more details as Jonathan already provided the most accurate explanation of this issue.

    To work around this, customize the Thank You message in MS Forms to display a secret completion code (e.g., 2026COMPLETE). Instruct learners to paste this code into a Text Entry field in Storyline. A trigger then validates the entry to trigger the course completion command, which signals the Rise Continue block to unlock. Needless to say, if the learner does not submit the form, they will not see the code and will be unable to continue; conversely, entering the correct code is the only way to unlock the gate. This trick ensures the learner is still physically gated until they successfully submit the form and verify the code. 

    This solution does not use JavaScript on either the HTML web object or the Storyline side, only a valid embedded Microsoft Forms link.

    Storyline example:



    • MaithriKular178's avatar
      MaithriKular178
      Community Member

      Hi,

      If you can share the text entry triggers with me, it would be a huge support.

      • Nedim's avatar
        Nedim
        Community Member

        Sure. 

         

         

         

         

         

         

         

         

        You can add a Complete Course trigger instead of Jump to Next Slide, or trigger it when the timeline starts on the next slide. It’s really up to you how you want to handle it, but I think it’s a very simple and efficient solution that avoids scripting and unnecessary complications.