BACK TO BLOG
USE CASESNovember 11, 20269 min read

ClickFunnels With Causality Engine: Who Gets the Funnel's Sales

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-11-11

The short answer: open the funnel dashboard, switch the UTM filter from Last visit to First visit, and the same month's sales change source. That is the rule working, not a fault. ClickFunnels, the funnel builder that runs its own checkout and upsell pages, files every completed purchase under the funnel step that took it, shows the last 30 days by default, and lets you credit sources by the buyer's first or last visit, per its Funnel Analytics Dashboard article. Neither view measures what an ad caused. If the funnel's purchases also reach GA4, that file can go to Causality Engine, a causal attribution tool that reads one GA4 export, and the first finding on its start page is free.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

Before the funnel's split decides a budget:

  1. Run the two-filter sum. For example, 300 buyers who first came from a Meta ad and last came from an email: the First visit filter gives Meta 300 and email 0, the Last visit filter gives email 300 and Meta 0. One set of orders, two opposite answers.
  2. Open the field you may already have filled. Site Settings, Tracking Code holds a GA4/GTM Measurement ID and an Api Secret (GA4 connection article). If both are there, GA4 has been recording the funnel's visits.
  3. Watch one test order arrive. Buy through the funnel in test mode with GA4's DebugView open, and look for a purchase event that carries a value.

ClickFunnels and the read, row by row

QuestionClickFunnelsCausality Engine
What it isFunnel pages with checkout, order bumps and upsells (entry)A causal read of the GA4 Attribution paths export (entry)
What it calls a resultCompleted purchases per step, with count, rate and value (dashboard article)Each channel's caused share, beside last-click rebuilt from the same file (how it works)
Rule for sourcesUTM filter by First or Last visit; no window stated (dashboard article)Reads every channel the export records
Route into GA4Measurement ID, optional Api Secret for server-side delivery (GA4 connection article)Takes the file GA4 produces
Channel the funnel visit lands inWhatever its UTM tags or referrer say (Google's channel rules)Same channels as the export
Connection between the twoNoneNone (integrations)
Cost of a checkInside the planFree first finding; €99 per full read, excluding VAT (pricing, checked on 11 November 2026)

How ClickFunnels counts a sale

The Funnel Analytics Dashboard is precise about its terms. Sales are completed purchases at a specific step: the Count drills down to the orders, the Rate is the share of visitors who bought, the Value is the revenue. Recurring Sales are subscription payments that started on the step and came at least one hour after the first order, and the All-Time Sales total at the top ignores the date filter and adds every renewal invoice.

Sources come from one control, the UTM Filter, with two settings: First visit or Last visit. No time limit is mentioned. A sale belongs to the step where checkout happened, whatever sent the buyer there.

Across funnels, the Reporting page gives net sales as All Sales, Sales by Funnel and Sales by Product.

Getting funnel visits into GA4 under the right channel

The connection lives in the Site & Blog app, under Site Settings, Tracking Code. The GA4 connection article asks for the Measurement ID and, optionally, an Api Secret for server-side delivery. A toggle, Add GTagJS Script, injects the Google tag on every page; leave it on only if nothing else loads GA4, since loading it twice doubles pageviews.

What the article does not name is the purchase event. It lists purchases among the actions GA4 can measure and says nothing about the event's name or its value field. Hence the test order in DebugView above.

Then the domain question. A funnel often sits on its own domain while the store or main site sits on another. Google's cross-domain measurement page says that without it, each domain sets new cookies, so one visitor becomes two users and two sessions; with it, the IDs travel in a _gl parameter when the visitor follows a link or form. Both domains need the same tag ID from the same web data stream. A payment page on someone else's domain belongs on the unwanted referrals list, up to 50 per stream.

The tags on the ad still decide the channel. Google's default channel group files a visit as Paid Social only when the source is a known social site and the medium matches cp, ppc, retargeting or paid.

Worked example: one funnel, four answers

For example, with figures chosen to show the arithmetic and no store behind them: a hair-care bundle funnel books 520 orders in October.

Source of the numberMetaGoogleEmailNo UTM or other
ClickFunnels, UTM filter Last visit2361189769
ClickFunnels, UTM filter First visit3011323849
Meta Ads Manager and Google Ads, own dashboards344171not reportednot reported

Both ClickFunnels rows add up to 520. The Meta figure moves by 301 - 236 = 65 orders on one switch, and email by 97 - 38 = 59. The ad dashboards claim 344 + 171 = 515 between them; add the 97 last-visit email orders and the claims reach 612, which is 612 - 520 = 92 more than the funnel sold.

GA4, with cross-domain set up, records 500 purchases: Paid Social 205, Paid Search 109, Email 84, Direct 71, Referral 31. That is 520 - 500 = 20 orders the export never saw.

Per its how-it-works page, it splits the 71 Direct purchases back to the channels that sent those buyers, sets each channel's caused share next to last-click, scores each channel's data health from 0 to 100 and gives a next step. If its Paid Social share sits far from 344, run the change in one region before any budget moves.

Where the read stops for a funnel

  • No purchase key event, no read. The one-off read page takes key events from GA4's Advertising tab, and how it works asks for 12 months of history or more.
  • Channels only. The read sees Paid Social, not the order bump, the upsell or the split-test variant. Those stay ClickFunnels questions.
  • Small spend gets declined. The homepage says that where spend is too small to find a signal, it says so and declines.

ClickFunnels is paid every month, and its dashboard counts each renewal invoice as a sale of the step where the subscription began, so a funnel's all-time figure keeps climbing in months when no new buyer arrives. The figure is accurate. It is just not a measure of this month's traffic.

Two free checks before any paid one

Either one is enough on its own.

The coverage check. Click the Sales Count on the funnel dashboard to open the matching orders, then pull GA4's purchase count for the same dates. For example, 520 orders against 500 purchases is 500 ÷ 520 = 96% coverage. A much lower share means the export is not ready to be read.

The rule check. Note each source under Last visit, then under First visit. Where a source swings by a fifth or more, its credit depends on the rule more than on the buyer, and no budget decision should rest on either filter alone.

When both pass, export the Attribution paths report (export guide) and drop it on the start page, where the first finding is worked out in your browser at no charge. Causality Engine, which I founded, charges €99 once for the full read of the same file, refundable within 30 days, and €299 a month for Pro with automated GA4 ingestion (pricing, checked on 11 November 2026).

See also

FAQ

Does ClickFunnels send its sales to Causality Engine?

No. Nothing passes between them. Causality Engine reads the channels a GA4 export records (integrations page), so funnel orders count only once GA4 has logged them as purchases.

Which UTM filter should I leave on?

Either, as long as you know which one you are reading. The dashboard article offers First visit and Last visit; write the setting next to any figure you send to someone else.

Do I need the Api Secret?

Not to start. The GA4 connection article says the Measurement ID alone tracks browser events, and the secret adds server-side events that ad blockers and early exits affect less.

TAGS
Causality EngineClickFunnelsFunnel AttributionGA4Worked Example

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Agentic marketing, built for your team

The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.

With Joris van Huët, interim and fractional CMO in Utrecht. From EUR 5,000 a month, monthly cycles, a 30-day exit.