Skip to main content

Product Tours

Control and listen to product tours programmatically via the Kompassify Player API.

Waiting for Kompassify API to be ready​

It is highly recommended to wait for the Kompassify API Script to be fully loaded before calling any of the API functions.

The event KOMPASSIFY_BOOT_LOADER_IS_READY is dispatched when the Kompassify API is ready to be used.

window.addEventListener('message', function (event) {
if (event.data.TYPE === "KOMPASSIFY_BOOT_LOADER_IS_READY") {
// Do your stuff here
}
});

Launching a tour programmatically​

You can launch your tours programmatically with a JavaScript snippet by calling the function kompassifyLaunchTour:

window.kompassifyLaunchTour(tourUuid, startIndex, skipIfWasFinished);

Or you can use window.postMessage:

window.postMessage({
TYPE: "KOMPASSIFY_PLAYER_LAUNCH_TOUR",
tourUuid: tourUuid,
startIndex: startIndex,
skipIfWasFinished: skipIfWasFinished,
});

Parameters​

PropertyTypeDescription
tourUuidStringThe UUID of the tour you want to launch. You can retrieve it from the tour dashboard by clicking Copy Uuid.
startIndexNumberThe index from where the tour will start. 0 means the tour starts from the first step, 1 from the second step, etc.
skipIfWasFinishedBooleanIf set to true, Kompassify will not launch the tour if it was skipped or finished before.

Listening to tour events​

You can monitor your tour progression by listening to the following events:

window.addEventListener('message', function (event) {
if (event.data.TYPE === 'KOMPASSIFY_TOUR_STARTED') {
// the tour has started
console.log('The tour with uuid ', event.data.tourUuid, ' has started');
}

if (event.data.TYPE === 'KOMPASSIFY_TOUR_ENDED') {
// the tour has ended
console.log('The tour with uuid ', event.data.tourUuid, ' has ended');
}

if (event.data.TYPE === 'KOMPASSIFY_TOUR_STEP') {
// Tour step played
console.log('The Step Number', event.data.stepIndex, 'of the tour with the uuid', event.data.tourUuid, ' has been played');
}

if (event.data.TYPE === 'KOMPASSIFY_TOUR_SKIPPED') {
// the tour has been skipped
console.log('The tour with uuid ', event.data.tourUuid, ' has been skipped');
}
});