Add Zenovay to any Webflow site through Site Settings → Custom Code. Webflow has first-class support for analytics tags, so this is one of the cleanest CMS integrations.
Webflow Custom Code requires a paid Site Plan (Basic, CMS, Business, or Ecommerce) on the site itself. Workspace plans alone are not enough.
Quick Start
- Copy your tracking snippet from the Zenovay dashboard.
- In the Webflow Designer, open Site Settings → Custom Code.
- Paste the snippet into Head code.
- Save changes.
- Click Publish in the top-right of the Designer.
Installation
Site-wide Custom Code (recommended)
- Open your project in the Webflow Designer.
- Click the gear icon in the left sidebar to open Site Settings.
- Open the Custom Code tab.
- Paste this snippet into the Head code box:
<script defer data-tracking-code="YOUR_TRACKING_CODE" src="https://api.zenovay.com/z.js"></script>
- Click Save Changes.
- Return to the Designer and click Publish → choose your domains → Publish to Selected Domains.
Page-specific Custom Code
For tracking only on specific pages (e.g. campaign landing pages):
- Select the page in the Pages panel.
- Click the gear icon → Page Settings.
- Scroll to Custom Code → Inside
<head>tag. - Paste the same snippet.
- Save and Publish.
Page-level code is appended after site-wide code — don't paste in both scopes or you'll double-count.
Verify your installation
- Open your published site in an incognito window.
- View source — you should see
<script defer data-tracking-code=...>in the<head>. - Check the Zenovay real-time view — your visit appears within ~30 seconds.
Tracking custom events
After the tracker loads, call window.zenovay() from any Webflow HTML Embed element:
<script>
document.addEventListener('DOMContentLoaded', () => {
const cta = document.querySelector('[data-zv-cta]');
cta?.addEventListener('click', () => {
window.zenovay?.('track', 'cta_clicked', {
location: cta.dataset.zvCta,
page: window.location.pathname,
});
});
});
</script>
Then add data-zv-cta="hero-primary" to your button via the Custom attributes section in the Designer.
Tracking Webflow Ecommerce purchases
For Webflow Ecommerce stores, fire a purchase event on the Order Confirmation page template via an HTML Embed:
<script>
document.addEventListener('DOMContentLoaded', () => {
const total = document.querySelector('[data-wf-order-total]')?.textContent;
const orderId = window.location.pathname.split('/').pop();
if (window.zenovay && total) {
window.zenovay('track', 'purchase', {
transaction_id: orderId,
revenue: parseFloat(total.replace(/[^0-9.]/g, '')),
currency: 'USD',
});
}
});
</script>
For higher accuracy (refunds, subscriptions), use server-side webhooks instead.
Identify logged-in members (Memberstack)
<script>
window.$memberstackDom?.getCurrentMember().then(({ data: member }) => {
if (member && window.zenovay) {
window.zenovay('identify', {
userId: member.id,
email: member.auth?.email,
plan: member.planConnections?.[0]?.planName,
});
}
});
</script>
Troubleshooting
No data. Check the site is on a paid Site Plan — Free and Workspace-only plans cannot inject scripts. Then confirm you clicked Publish in the Designer.
Half the pages tracked. You probably added page-level Head code that's overriding site-wide. Move the snippet to Site Settings → Custom Code only.
Events not firing. Wrap your custom event listeners in DOMContentLoaded — Zenovay is deferred and loads slightly after initial render.
Double pageviews. Snippet pasted in both Site Settings and an HTML Embed. Remove one.
Plan requirements
| Plan | Custom Code | Notes |
|---|---|---|
| Starter (free) | ❌ | Custom Code disabled |
| Basic | ✅ | Static sites |
| CMS | ✅ | Dynamic CMS sites |
| Business | ✅ | Higher form limits |
| Ecommerce | ✅ | Plus revenue tracking |
Privacy
For cookieless tracking add data-cookieless="true":
<script defer
data-tracking-code="YOUR_TRACKING_CODE"
data-cookieless="true"
src="https://api.zenovay.com/z.js"></script>
Next steps
- Read the full Webflow integration guide on docs.zenovay.com for advanced examples including Memberstack identification and form-submit tracking.
- Set up conversion goals.
- Need help? Contact [email protected].