Send lesson bookmark statements using xAPI "States"

Using templates

The Master Navigation templates already contain logic to store bookmarks via xAPI and SCORM. When publishing your lesson, if the SCORM and/or xAPI output options are selected, the SmartBuilder lesson will store the farthest page visited as the bookmark, as well as all of the global variable values.

If the lesson is closed while a quiz question is unanswered, the bookmark is set to the current page, to return the learner to that page. If a question has been answered, then the bookmark is set to return to the next page.

When the lesson is reopened, the Master Navigation templates will show a prompt alerting the learner that a bookmark is stored, and they have the option to go to the bookmark, or start over, and all quiz data will be reset.

In the event that both xAPI and SCORM data is stored, the SCORM bookmark and suspend_data is used.

Using custom actions

If you are not using Master Templates, SmartBuilder provides some action blocks pre-configured for this common use case. From the Advanced > xAPI action block category, the following blocks are available:

xAPI action block options for bookmarking

Usually these actions will be set on a Master. Here is an example of how these blocks might be used:

xAPI setting bookmark and variables on page change

Note Only set and get lesson bookmark are shown in the flyout panel. Add the block, and use the dropdown to select lesson suspend data.

xAPI get lesson bookmark or suspend data action block

Note Unlike SCORM, bookmark and suspend data are not intrinsic to xAPI, so these action blocks are supplied as a shortcut for those who want to provide this functionality using xAPI calls rather than SCORM calls. These blocks are equivalent:

xAPI alternative ways to set bookmark

Note Unlike SCORM, bookmark and suspend data are not the only places to store information. You can store and retrieve as many state values as you desire. For example:

xAPI setting various activity states action blocks

However, since SmartBuilder makes it easy to gather and restore all global variables in a few steps, generally it makes more sense to just use the built in lesson suspend data, like the example shown earlier, rather than choosing which specific data to store.