Skip to main content

ZoovuSDK.events

Allows for listening and react to actions that occur on the assistant.

Methods

ASSISTANT_CODE is optional, only use it to distinguish assistants when multiple instances exists on one page.

method
listenenable subscribing to selected event
listenToAllenable subscribing to all events

Examples

ZoovuSDK.events.listen(eventName, handler, <ASSISTANT_CODE>);
ZoovuSDK.events.listenToAll(handler, <ASSISTANT_CODE>);

Available events

eventNamedescription
navigation-nextTriggered in questionnaire section when the user clicked next button
navigation-backTriggered in questionnaire section when the user clicked back button
navigation-go-to-pageTriggered in questionnaire section when the user navigated to the different page
navigation-restartTriggered when the user clicked restart button

eventData:

{
description: string;
page: number; // starts from 1
previousPage: number; // starts from 1
questions: {
questionType: "RADIO" | "CHECKBOX" | "DROPDOWN" | "NUMERIC" | "RANGE" | "TEXT" | "EMAIL" |"FILE_UPLOAD" | "LONG_TEXT" | "NUMERIC_DECIMAL" | "NUMERIC_RANGE";
question: string;
}[]

}

Examples:

Navigation Event {
name: 'navigation-next',
data:{
description: "User moved to the next page";
page: 2;
previousPage: 1;
questions: [
{
questionType: "RANGE",
question: "How many ice-cream balls you can eat at once?",
}
]
}
}
Navigation Event {
name: 'navigation-back',
data:{
description: "User moved to the previous page";
page: 1;
previousPage: 2;
questions: [
{
questionType: "CHECKBOX",
question: "What is your favorite ice-cream flavor?",
}
]
}
}
Navigation Event {
name: 'navigation-go-to',
data:{
description: "User moved to the other page";
page: 3;
previousPage: 1;
questions: [
{
questionType: "RANGE",
question: "How much would you pay for one ice-cream ball?",
}
]
}
}
Navigation Event {
name: 'navigation-restart',
data:{
description: "User restarted";
page: 1;
previousPage: 3;
questions: [
{
questionType: "CHECKBOX",
question: "What is your favorite ice-cream flavor?",
}
]
}
}

Answer events

eventNamedescription
answer-selectTriggered when the user selected an answer
answer-deselectTriggered when the user deselected an answer

eventData:

{
description: string;
questionType: 'RADIO' | 'CHECKBOX' | 'DROPDOWN';
question: string;
answer: string;
selected: boolean;
}

Examples:

Answer Event {
name: 'answer-select',
data: {
description: 'User selected "Cookies and cream"';
questionType: "CHECKBOX",
question: "What is your favorite ice-cream flavor?",
answer: "Cookies and cream",
selected: true,
}
}
Answer Event {
name: 'answer-deselect',
data: {
description: 'User deselected "Cookies and cream"';
questionType: "CHECKBOX",
question: "What is your favorite ice-cream flavor?",
answer: "Cookies and cream",
selected: false,
}
}

Numeric question events

eventNamedescription
numeric-question-value-selectTriggered when the user selected value on Numeric or Slider question
numeric-range-question-upper-value-selectTriggered when the user selected upper value on Numeric Range or Double Slider question
numeric-range-question-lower-value-selectTriggered when the user deselected lower value on Numeric Range or Double Slider question

eventData:

{
description: string;
value: number | [number, number];
questionType: "NUMERIC" | "RANGE" | "NUMERIC_DECIMAL" | "NUMERIC_RANGE";
question: string;
}

Examples:

Numeric question event {
name: "numeric-question-value-select",
data: {
description: 'User changed "How many ice-cream balls you can eat at once?" value to 10',
value: 10,
questionType: "NUMERIC",
question: "How many ice-cream balls you can eat at once?";
}
}
Numeric question event {
name: "numeric-range-question-lower-value-select",
data: {
description: 'User changed "How much would you pay for one ice-cream ball?" lower value to 1',
value: [1, 5],
questionType: "RANGE";
question: "How much would you pay for one ice-cream ball?",
}
}
Numeric question event {
name: "numeric-range-question-upper-value-select",
data: {
description: 'User changed "How much would you pay for one ice-cream ball?" upper value to 5',
value: [1, 5],
questionType: "RANGE";
question: "How much would you pay for one ice-cream ball?",
}
}

Leadgen events

eventNamedescription
leadgen-submitTriggered when the leadgen was submitted

eventData:

{
description: string;
}

Examples:

Leadgen event {
name: "leadgen-submit"
data: {
description: "User sent leadgen"
}
}

Results page events

eventNamedescription
results-page-showTriggered when the user jumped to the results page

eventData:

{
description: string;
}

Examples:

Results page event {
name: "results-page-show",
data: {
description: "User moved to the results page"
}
}

Recommendations events

eventNamedescription
recommendations-fetchTriggered when recommendations were fetched

eventData :

{
description: string;
page: number // starts from 1
products: {
sku: string,
name: string
}[]
}

Examples:

Recommendations event {
name: "add-product-to-cart"
data: {
description: "Recommendations were fetched",
page: 1,
products: [
{
sku: "123",
name: "Cookies and cream ice-cream",
},
{
sku: "124",
name: "Vanilla ice-cream",
},
];
}
}

Product action events

eventNamedescription
add-product-to-cartTriggered when the user clicked add to cart button
go-to-product-detailsTriggered when the user clicked on product (works with direct click only)

eventData :

{
description: string;
product: {
sku: string,
name: string
}
}

Examples:

Product action event {
name: "add-product-to-cart"
data: {
description: "User added product to the cart"
}
}
Product action event {
name: "go-to-product-details"
data: {
description: "User moved to the product details page"
}
}

Comparison events

eventNamedescription
comparison-startTriggered when the user opened comparison preview
comparison-endTriggered when the user closed comparison preview
comparison-product-selectTriggered when the user added product to compare
comparison-product-deselectTriggered when the user removed product to compare

eventData:

{
description: string;
product: {
sku: string,
name: string
}[]
}

Examples:

Comparison event {
name: "comparison-start",
data: {
description: "Comparison started",
products: [
{
sku: "123",
name: "Cookies and cream ice-cream",
},
{
sku: "124",
name: "Vanilla ice-cream",
},
];
}
}
Comparison event {
name: "comparison-end",
data: {
description: "Comparison ended",
products: [
{
sku: "123",
name: "Cookies and cream ice-cream",
},
{
sku: "124",
name: "Vanilla ice-cream",
},
];
}
}
Comparison event {
name: "comparison-product-select",
data: {
description: "Product added to comparison",
products: [
{
sku: "123",
name: "Cookies and cream ice-cream",
},
{
sku: "124",
name: "Vanilla ice-cream",
},
{
sku: "125",
name: "Mint ice-cream",
},
];
}
}
Comparison event {
name: "comparison-product-deselect",
data: {
description: "Product removed from comparison",
products: [
{
sku: "123",
name: "Cookies and cream ice-cream",
},
];
}
}