Seentics

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.

header code
<script defer data-website-id="YOUR_WEBSITE_ID" src="https://seentics.com/trackers/seentics.min.js"></script>

Menu names change

Builders rename and move these settings, and some limit custom code to paid plans. The paths below are where each one has put it; if yours differs, look for "custom code", "code injection" or "header" in the site settings.

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 page injection 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 403 on /collect means 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.

order confirmation page
<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.