Pixel
Instrument Your Site with AI
Hand your AI coding assistant one prompt and let it install the pixel, wire conversion events, and verify data is flowing.
If an AI coding assistant (Claude Code, Cursor, Copilot Workspace, or similar) works in your site's repository, you do not need to instrument pages by hand. Copy the prompt below, replace the two placeholders, and paste it into your assistant. It reads your codebase, injects the snippet where your framework wants it, wires Lead and Purchase calls at real success points, and tells you how to verify.
There is also a machine-readable summary of the whole pixel API at /llms.txt on this site — point your assistant at it when it needs the reference without the prose.
The prompt
Replace YOUR_ORG_ID (Org Settings, Tracking pixel) and the funnel URL list before pasting.
Instrument this site with the Funnel Pulse tracking pixel. Reference:
https://docs.funnelpulse.io/llms.txt
Org ID: YOUR_ORG_ID
Funnel pages to track: [list your page URLs or routes here]
Do the following, adapting to this codebase's framework and conventions:
1. INJECT the loader snippet into the <head> of every funnel page listed
above — once, in the shared layout/head component if those pages share
one (Next.js: app/layout.tsx or pages/_document; plain HTML: each page):
<script>
(function(f,p){f.funnelpulse=f.funnelpulse||function(){
(f.funnelpulse.q=f.funnelpulse.q||[]).push(arguments)};
var s=p.createElement('script');s.async=1;
s.src='https://pulse.funnelpulse.io/fp.min.js';
p.head.appendChild(s)})(window,document);
funnelpulse('init', 'YOUR_ORG_ID');
</script>
If any funnel page links to a page on a DIFFERENT domain that is also
part of the funnel, pass that host in the init options:
funnelpulse('init', 'YOUR_ORG_ID', { linkDomains: ['other-host.com'] })
2. DO NOT wire page views, scroll, clicks, form focus/submit, or time on
page — those are automatic. Only wire conversion milestones:
- At each point where an opt-in/application VERIFIABLY SUCCEEDS (form
handler success branch, thank-you page effect, API 2xx callback):
funnelpulse('track', 'Lead', { formId: '<meaningful-id>' });
- At each point where a payment VERIFIABLY COMPLETES (checkout success
callback, order confirmation page with a real order in scope):
funnelpulse('track', 'Purchase', {
value: <order total as number>,
currency: '<ISO code>',
orderId: '<the real order id>'
});
Never fire either on button click, page load of a form page, or client
validation success. If you cannot find a verifiable success point for a
milestone, say so instead of guessing.
3. GUARD for SSR: the snippet and track calls are browser-only. In React
server components or SSR paths, ensure calls run client-side only
(e.g. inside useEffect or a client component).
4. VERIFY: after the changes, tell me to (a) load a funnel page and check
the browser network tab for a request to pulse.funnelpulse.io returning
204, and (b) open the funnel in Funnel Pulse and watch the Traffic
tile's active-now counter react. List every file you changed and every
success point you wired, with one line of reasoning each.
Constraints: no other analytics changes, no dependency additions, match
the codebase's existing style, and keep the diff minimal.
What to check when it finishes
- Every funnel page requests
fp.min.jsand the collect endpoint answers204. - The Traffic tile on the funnel's Overview tab shows you as active within seconds.
- Submit a test opt-in and confirm a lead lands on the right cascade rung.
- If you sell on the site and are on Enterprise, place a test order in your payment sandbox and confirm the purchase value arrives.
Notes
- The assistant only sees your code. Domain allowlisting and funnel steps still live in Funnel Pulse — register domains in Org Settings and attach page URLs to steps in the step editor, or traffic arrives unattributed.
Purchaseand custom events are Enterprise features. They are silently discarded on lower plans, so wiring them early is safe and they light up on upgrade.