Data exchange in Storyline 360 - in both directions

Apr 18, 2024

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

9 Replies
John Cooper

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...

Andreas Schurzfeld

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

Math Notermans

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.

Math Notermans

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.