Full workflow to track any events:
- Connect website with Sitecore CDP:
Navigate to CDP -> System Settings -> API Access and copy Client Key value:

Navigate to CDP -> System Settings -> Points of Sale and create new one with values that match your website hostname:

- Insert javascript snippet to your website layout, replace client_key, pointOfSale, cookie_domain with your values:
<script type = "text/javascript" >
var _boxeverq = _boxeverq || [],
_boxever_settings = {
client_key: "xxxxxxxxxxxxxxxxx",
target: "https://api.boxever.com/v1.2",
cookie_domain: ".website.com",
pointOfSale: "website.com",
web_flow_target: "https://d35vb5cccm4xzp.cloudfront.net"
};
! function() {
var e = document.createElement("script");
e.type = "text/javascript", e.async = !0, e.src = "https://d1mj578wat5n4o.cloudfront.net/boxever-1.4.8.min.js";
var t = document.getElementsByTagName("script")[0];
t.parentNode.insertBefore(e, t)
}() < /script>
- Trigger _boxeverq.push when it is necessary:
// Place an anonymous function in the Boxever queue
_boxeverq.push(function() {
var viewEvent = {
"browser_id": Boxever.getID(),
"channel": "WEB",
"type": "VIEW",
"language": "EN",
"currency": "EUR",
"page": "/home",
"pos": "website.com"
};
//Add UTM params
viewEvent = Boxever.addUTMParams(viewEvent);
// Invoke event create
// (<event msg>, <callback function>, <format>)
Boxever.eventCreate(viewEvent, function(data){}, 'json');
});
My custom wrapper for event triggering:
export const sendBoxeverEvent = (type, options, callback) => {
const { page, currency } = options;
_boxeverq.push(function () {
const boxeverEvent = {
browser_id: Boxever.getID(),
channel: 'WEB',
type: type,
language: getCookie('lang').toUpperCase() || 'EN',
pos: window.location.host,
currency: currency || 'EUR',
page: page || '/'
};
Boxever.eventCreate(
boxeverEvent,
function (data) {
if (callback) callback();
},
'json'
);
});
};
// example of usage:
sendBoxeverEvent('VIEW', {page: window.location.pathname});
- Once javascript _boxeverq.push is triggered, you can see JS request with your values to api.boxever.com in browser Network tab:

This means that yout event was successfully pushed to Sitecore CDP. BUT: if your website visitor is anonymous, you will NOT find this event immideatelly in CPD guest Interactions Timeline tab. But if your visitor is identified - you will see it almost immideatelly:

- To Identity your visitor you need to push IDENTITY event to Sitecore CDP. Example:
_boxeverq.push(function() {
var identityEvent = {
"browser_id": Boxever.getID(),
"channel": "WEB",
"type": "IDENTITY",
"language": "EN",
"currency": "EUR",
"page": "/home",
"pos": "website.com",
"email": "myemail@gmail.com",
"firstName": "First",
"lastName": "Last"
};
Boxever.eventCreate(identityEvent , function(data){}, 'json');
});
P.S. For easy debugging: if your visitor is identified, you can see full user + sessions + events + orders realtime information in Test Canvas tool of any Decision Model, if you select your user:

See more information on Sitecore Knowledge Hub.