Forum Discussion

AndreasSchurzfe's avatar
AndreasSchurzfe
Community Member
5 months ago

Data exchange in Storyline 360 - in both directions

Hello friends of light entertainment, I am looking for a solution how to read and send data from Storyline 360. Possibly via Javascript/Jason ... or even from the database.


Is this technically possible and stable?
Only on the own webserver or also others?
Has anyone already had experience with this?

LG Andreas

  • Hi Andreas

    It's a pretty broad question. There are many ways you might approach sending data from Storyline 360 such as using an xAPI call to lodge data in an LRS database or using JavaScript API's to write data to Google Docs etc. There are many articles on this site that address this issue... We recently implemented a Storyline Course evaluation form on our own website that sends data to a node.js app on our server which then logs the evaluation scores in an SQL database on the server (but that's definitely not for the feint-hearted!).

    There less discussion to be found about receiving data in a Storyline course. It's definitely possible and we have done a couple of projects that successfully use event handlers in JavaScript code within Storyline.

    This simple card exercise I shared a link to on a recent post does exactly that:

    Card Turn Exercise

    In this demo the card is displayed in an HTML/JavaScript page which is loaded as a web object in Storyline. Clicking a button sends a message to an event handler in the web object that then selects a card at random from a deck of cards it has read in, displays it and then sends a message back to the Storyline via an event handler in Storyline JavaScript code. The JavaScript in Storyline updates a variable (the card description) and you can use a trigger that will be activated if the value of that variable changes setting up a two-way dialogue between Storyline and the Web Object, which (I think) was your question....

    Before anyone asks, sharing the code for this wouldn't be possible as it only works in a specific environment. There are all sorts of security and CORS issues to take into account.... In my case the web object and Storyline are loaded on the same domain and they check that the messages they receive come from that specific domain... 

    Hope this helps a little...

  • Kudos to Phil.. Thats the one. It is not the best and fastest way to send and get your data. ClueLabs GoogleSheets Widget due to its speed has the tendency to skip data now and then, especially when you write and read data quick and often. In that case a Google Cloud function is much better. However when you donot have to read / write data often it for sure suffices.

  • Hi Cooper, perfect - that's exactly what I wanted to know. That helps :-) I already thought that this was possible (on the same domain).

    Is there an example or something similar?

    Many thanks Andreas

  • AndrewHanley's avatar
    AndrewHanley
    Community Member

    A super duper easy way of sending any data IN to Storyline is using HTML parameters in the calling URL.
    Its a one time only deal though as you get one shot, but the upside is how easy it is to set up.

     P.S. @John - love the card flip solution. Nice use of server side data handling.

  • Hi Hanley, yes, I've used that variant before, thanks for the tip though. But how does it work if I want to load data from a text file, database, etc. into Storyline?
    Cooper has already found his way :-)

    Sounds very exciting. I would like to have a look at a tutorial or something similar. Do you know of anything? So that I have an approach.

    VG Andreas

  • Using either Google sheets you can get and save data. If you need it realtime ( for multiplayer games ) you need a RTDB ( Realtimedatabase ) like Firestore/Firebase. For Google sheets there are hundreds of samples on this forum.... there even is an external supplier that delivers a service for this ( forgot the name atm ). A good alternative is using Google Cloud functions.

  • Super - Thank you very much for your support - I can do something with it - Top. Best regards Andreas

  • Hi Steve G., unfortunately I can't reply to your e-mail - Mail Delivery ... You are welcome to send me the example. This is exactly the simple way I am looking for. Best regards Andreas