Installing Website Tracking
The CustomerFlows tracking snippet is a single line of JavaScript that enables two things: visitor source identification (where each visitor came from) and ad attribution (connecting Google and Meta ad clicks to pipeline deals).
Installation takes 5 minutes on any website platform.
Step 1: Copy Your Tracking Snippet
- Go to Settings, then Tracking
- Your unique tracking snippet is displayed in a code box
- Click Copy to copy it to your clipboard
The snippet looks like this:
<script src="https://t.customerflows.com/cf.js?id=YOUR_ACCOUNT_ID" async></script>
Your account ID is pre-filled. Do not modify the snippet.
Step 2: Paste Into Your Website Header
The snippet must be placed inside the <head> section of your website's HTML. Here's how to do it on each major platform:
WordPress
Option A: Plugin (recommended)
- Install the "Insert Headers and Footers" plugin (or "WPCode")
- Go to the plugin settings
- Paste the snippet into the "Header" section
- Save
Option B: Theme editor
- Go to Appearance, then Theme File Editor
- Open
header.php - Paste the snippet between
<head>and</head> - Save (note: theme updates may overwrite this -- the plugin method is more durable)
Wix
- Go to your Wix Dashboard
- Click Settings, then Custom Code
- Click Add Code
- Paste the snippet
- Set placement to Head and apply to All Pages
- Save and publish
Squarespace
- Go to Settings, then Advanced, then Code Injection
- Paste the snippet into the Header field
- Click Save
Webflow
- Go to Project Settings, then Custom Code
- Paste the snippet into the Head Code field
- Save and publish
Next.js
Add the snippet to your root layout file (app/layout.tsx or pages/_document.tsx):
<head>
<script src="https://t.customerflows.com/cf.js?id=YOUR_ACCOUNT_ID" async />
</head>
Google Tag Manager
- Create a new Tag of type Custom HTML
- Paste the snippet as the HTML content
- Set the trigger to All Pages (Page View)
- Publish the container
Other Platforms
If your platform isn't listed above, look for a "Custom Code," "Header Scripts," or "Code Injection" section in your website settings. The snippet goes in the header/head area and should load on all pages.
Step 3: Verify Installation
- After pasting the snippet, save and publish your website changes
- Open your website in a browser (visit any page)
- Return to Settings, then Tracking in CustomerFlows
- The status should update to Active within 1-2 minutes
If the status still shows Inactive after 5 minutes:
- Clear your website's cache (especially if using Cloudflare, WP Rocket, or a CDN)
- Try visiting your site in an incognito/private window
- Verify the snippet is in the
<head>section, not<body>or footer - See Tracking Not Working for detailed troubleshooting
What the Tracking Snippet Captures
Once installed, the snippet automatically captures:
| Data Point | How It's Captured | What It Enables |
|---|---|---|
| Visitor source | HTTP referrer header | Know if visitors came from Google, Facebook, a referral, or direct |
| Google Ads click ID (GCLID) | URL parameter capture | Trace specific Google Ads campaigns to closed deals |
| Meta Ads click ID (FBCLID) | URL parameter capture | Trace Meta ad campaigns to closed deals (Growth and Scale tiers) |
| Pages visited | Page view tracking | See which pages a lead visited before contacting you |
| Visit timestamp | Automatic | Know when visitors are most active |
Important: The snippet does not capture personal information (names, emails, phone numbers) from visitors. It tracks anonymous visit data until a visitor becomes a lead through WhatsApp or a form submission, at which point the visit history is linked to their lead record.
Privacy and Compliance
- The tracking snippet respects Do Not Track (DNT) browser headers
- No personal data is collected from anonymous visitors
- The snippet is compatible with cookie consent tools (OneTrust, CookieBot, etc.)
- If you use a cookie consent banner, you can configure the snippet to load only after consent is granted
- See our Privacy Policy for full details
Installing on Multiple Domains
If your business has multiple websites (e.g., a main site and separate landing pages), install the same snippet on all of them. The same account ID works across all domains. Attribution data from all sites flows into your single CustomerFlows dashboard.
FAQ
Does the snippet slow down my website?
No. The snippet loads asynchronously (the async attribute), meaning it does not block your page from rendering. It's under 5KB and typically loads in under 100 milliseconds.
Do I need to install it on every page? The snippet should be in your site-wide header so it loads on every page. If you only install it on your homepage, visitors who land on other pages (like a specific service page from a Google Ad) won't be tracked.
What if I use a single-page application (SPA)? The snippet handles SPAs automatically by detecting route changes. No additional configuration is needed for React, Vue, or Angular applications.
Can I verify the snippet without waiting for real visitors? Yes. After installation, visit your own website in a browser. Within 2 minutes, the status in Settings should update to Active.
Related
- Quickstart Guide -- Complete 5-minute setup
- Attribution Overview -- How source tracking works
- Tracking Not Working -- Troubleshooting
- Google Ads Attribution -- GCLID setup details
Need help? Email [email protected] or ask in r/CustomerFlows.