Integration
Website builders
Webflow, Wix, Squarespace, Framer and Ghost all have a custom-code box for the page header. The same one-line tag goes in each.
The tag
Replace YOUR_WEBSITE_ID with the ID from Settings → Tracking in Seentics. Put it in the site-wide header (<head>) custom code, so it loads on every page.
<script defer data-website-id="YOUR_WEBSITE_ID" src="https://seentics.com/trackers/seentics.min.js"></script>Menu names change
Webflow
- Site settings →
Custom code→Head code. Paste the tag, save, then publish the site: custom code does not run in the Designer or preview. - Site-wide custom code can require a paid site plan.
- We are not aware of a documented way to read an order's total from page script on a Webflow Ecommerce confirmation page, so purchases are not covered here. Pageviews, recordings and heatmaps work as usual.
Wix
- Settings →
Custom code(under Advanced) →Add custom code. Paste the tag, apply it to All pages, place it in Head, load once. - Custom code in Wix can require a premium plan and a connected domain.
Squarespace
- Settings → Developer tools (or Advanced) →
Code injection→Header. Paste the tag and save. - Code injection can be limited to higher plans.
- Squarespace Commerce has a separate
Order confirmation pageinjection box that can insert order values with placeholders. If your plan has it, use the purchase snippet below and fill the placeholders with the ones Squarespace documents for that box.
Framer
- Site settings → General →
Custom code→Start of <head> tag(or end of head). Paste the tag and publish. - Framer swaps pages without reloading; the tracker follows the browser's History API, so each page counts.
Ghost
- Settings →
Code injection→Site header. Paste the tag and save. - Code injected there applies to every page of the site.
Check it works
- Publish, then open your live site in a private window. In Seentics, the Overview's Live visitors should include you within seconds.
- Nothing? View the page source and search for
seentics.min.js. If it is missing, the site was not republished, or the plan does not allow custom code. - Present but no data: see the checks in Quick start. A
403on/collectmeans the website's URL in Seentics does not match your domain.
Purchases
Where a builder lets you add code to its order confirmation page and fill in the order's total, send one purchase event. This snippet waits for the deferred tracker, and skips the call if the total did not turn into a number, so a placeholder that never filled in does not record a bogus order.
<script>
// Put on the order confirmation page, after the order's values are filled in.
(function () {
var order = { id: 'ORDER_ID', total: 'ORDER_TOTAL', currency: 'USD' }; // replace with your builder's placeholders
var value = Number(order.total);
if (!isFinite(value) || value <= 0) return; // never send a placeholder that did not fill in
var tries = 0;
(function send() {
if (window.seentics && window.seentics.track) {
window.seentics.track('purchase', { value: value, currency: order.currency, order_id: String(order.id) });
} else if (++tries < 100) {
setTimeout(send, 100); // the tracker is deferred: wait for it
}
})();
})();
</script>Replace ORDER_ID and ORDER_TOTAL with the builder's placeholders, and the currency. Properties are described in Revenue. This snippet has not been tested on these builders: place a test order and confirm it under Revenue.