This article guides you through the process of how to set up the Facebook Conversions API on ClickFunnels.

Prerequisites

  • ClickFunnels account with editor access to modify funnel settings and add custom code

  • Admin access to Meta Business Manager with your Meta Pixel credentials

  • Remove any existing Facebook Pixel scripts to avoid duplicate tracking

1. Login or Register to PixelFlow Dashboard

Before starting the setup process, you'll need a PixelFlow account.

  • If you're a new user, create your account at dashboard.pixelflow.so

  • If you're an existing user, log in to access your dashboard

  • A free 7-day trial starts automatically with no credit card required

You can create your account with email/password or sign in with Google for faster access.

2. Choose Your Platform

After logging in, the PixelFlow setup wizard will guide you through the setup process.

  1. In the first step of the wizard, choose "Other" as the option

  2. Add your ClickFunnels funnel domain (e.g., https://www.yourfunnel.com)

  3. Select your currency from the dropdown (optional, used for eCommerce tracking)

  4. Click Continue or Next to proceed

Your ClickFunnels domain is now registered in PixelFlow and will appear in your Sites list in the dashboard.

3. Add Your Meta Pixel

PixelFlow loads both your Facebook Pixel and Facebook Conversions API simultaneously with automatic event deduplication to ensure accurate tracking. This means you can remove any existing Facebook Pixel scripts from your ClickFunnels funnel.

In the second wizard step, connect your Meta Pixel:

  1. Add your Pixel Name (this can be any name you choose for identification)

  2. Add your Pixel ID (find this in Facebook Events Manager)

  3. Add your Meta Pixel Access Token (generate this in Facebook Events Manager under Settings)

  4. Check the box to confirm you've removed any existing native Meta Pixel

  5. Click Add Pixel or Save

Need help finding your Pixel ID or Access Token? Check out our simple guide on How to Find Your Pixel and Generate your Access Token

4. Copy Your PixelFlow Script

In the third wizard step, PixelFlow generates a unique tracking script for your ClickFunnels funnel.

  1. In the wizard, click the Copy Script button

  2. The script will be copied to your clipboard

Keep this script handy: You'll paste this script in your ClickFunnels funnel settings in the next step. Each domain has a unique identifier in the PixelFlow script, so don't reuse scripts between different funnels or domains.

5. Add PixelFlow Script to ClickFunnels Head Code

Now you'll add the PixelFlow script to your ClickFunnels funnel to enable tracking across all pages.

  1. Log in to your ClickFunnels account

  2. Navigate to the funnel you want to track

  3. Click on Settings for your funnel

  4. Scroll down to find the Head Tracking Code section

  5. Paste your PixelFlow script in the Head Code section

  6. Click Save or Update Settings

Why Head Code? Adding the script in the Head Code section ensures PixelFlow loads on every page of your funnel and tracks Page View events immediately when visitors land on your pages.

6. Publish Your Funnel

After adding the script, make sure your funnel is published and live:

  1. In your ClickFunnels editor, review your funnel pages

  2. Click Publish or ensure your funnel is already live

  3. Visit your live funnel URL (not the editor preview) to test tracking

Test on the live site only: The PixelFlow script will not fire in the ClickFunnels editor preview. Always test with your published, live funnel URL.

7. Interact with Your Funnel and See Confetti

The final wizard step helps you verify your setup is working correctly.

  1. Visit your live ClickFunnels funnel in a new browser window or incognito/private mode

  2. Navigate to a few pages in your funnel (e.g., opt-in page, then click through to the next step)

  3. Return to the PixelFlow wizard—it will automatically poll for events every 10 seconds

  4. When the first Page View event is detected, you'll see:

    • A confetti animation (purple, pink, and blue particles from center screen)

    • A green congratulations modal: "Congratulations! Your ClickFunnels funnel is now connected to PixelFlow"

    • The wizard will close automatically

  5. Your site status will change to "Connected" in the Pixels table on your Overview page

Setup complete! PixelFlow is now tracking Page View events on your ClickFunnels funnel. Events should appear in your PixelFlow dashboard within 2-3 minutes.

8. Optional: Add eCommerce Tracking Scripts

If you're selling products through ClickFunnels, you can enrich your purchase tracking with custom scripts to capture order values, customer information, and improve your Meta event match scores.

Add Checkout Script (Checkout Page)

This script captures customer information when they enter details on your checkout page:

  1. In ClickFunnels, navigate to your checkout page

  2. Click Settings for the page

  3. Scroll to the Footer Tracking Code section

  4. Paste the following checkout script:

<script>
!function(){"use strict";const e="pixelflow_checkout_data",t=500,n=120;let a=0,i=null,o=null;function r(e){if(!e?.textContent?.trim())return null;const t=e.textContent.trim(),n=t.match(/\$?\s*[\d,]+\.?\d*/);return n?n[0].trim():t}function l(t){if(!t)return;let n=s();n||(n={price:null,email:null,first_name:null,last_name:null,phone:null,timestamp:new Date().toISOString()});const a=t.trim();a&&n.price!==a&&(n.price=a,n.timestamp=new Date().toISOString(),c(n))}function u(e){const t=e.querySelector(".elOrderSummaryTotalPrice")?.closest(".elOrderSummaryBody")||e,n=e.querySelector(".elOrderSummaryTotalPrice");if(n){const e=r(n);e&&l(e)}return o=new MutationObserver((()=>{const t=e.querySelector(".elOrderSummaryTotalPrice");if(t){const e=r(t);e&&l(e)}})),o.observe(t,{characterData:!0,childList:!0,subtree:!0,attributes:!0}),!0}function s(){try{const t=localStorage.getItem(e);return t?JSON.parse(t):null}catch(e){return null}}function c(t){try{localStorage.setItem(e,JSON.stringify(t))}catch(e){}}function m(){const e={price:null,email:null,first_name:null,last_name:null,phone:null,timestamp:new Date().toISOString()};return c(e),e}function f(e){return!!(e.email&&e.first_name&&e.last_name)}function d(e,t){if(!t)return;let n=s();n||(n=m());const a=t.trim();a&&n[e]!==a&&(n[e]=a,n.timestamp=new Date().toISOString(),c(n),f(n)&&i&&clearInterval(i))}function p(){const e=console.log;console.log=function(...t){e.apply(console,t);try{const e=t[0];if("string"==typeof e&&e.includes("[Stripe] linkAuthentication")){const e=t[1];e?.value?.email&&d("email",e.value.email)}if("string"==typeof e&&e.includes("[Stripe] address")){const e=t[1];if(e?.value){const{name:t,firstName:n,lastName:a,phone:i}=e.value;if(t&&!n&&!a){const e=t.trim().split(/\s+/);e.length>=2&&(d("first_name",e[0]),d("last_name",e.slice(1).join(" ")))}else n&&d("first_name",n),a&&d("last_name",a);i&&d("phone",i)}}}catch(e){}}}function h(t){a++;let i=s();i||(i=m());let o=!1;try{const e=localStorage.getItem("cf_checkout_details");if(e){const t=JSON.parse(e);t.email&&!i.email&&(i.email=t.email,o=!0),t.first_name&&!i.first_name&&(i.first_name=t.first_name,o=!0),t.last_name&&!i.last_name&&(i.last_name=t.last_name,o=!0),t.phone&&!i.phone&&(i.phone=t.phone,o=!0)}}catch(e){}[{id:"cf_contact_email",key:"email"},{id:"cf_contact_first_name",key:"first_name"},{id:"cf_contact_last_name",key:"last_name"},{id:"cf_contact_phone",key:"phone"}].forEach((({id:e,key:n})=>{const a=t.querySelector(`#${e}`);a?.value&&!i[n]&&(i[n]=a.value.trim(),o=!0)})),o&&(i.timestamp=new Date().toISOString(),c(i)),f(i)?clearInterval(i):a>=n&&clearInterval(i)}function g(){const e=document.querySelector("body");m(),p();let t=0;const n=()=>{if(u(e))return;t++,t<10&&setTimeout(n,500)};n(),i=setInterval((()=>h(e)),t)}function b(){i&&(clearInterval(i),i=null),o&&(o.disconnect(),o=null)}window.addEventListener("beforeunload",b),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",g):g()}();
</script>
  1. Click Save

9. Add Purchase Script (Order Confirmation Page)

This script triggers the Purchase event on your success/thank-you page:

  1. In ClickFunnels, navigate to your order confirmation/success page

  2. Click Settings for the page

  3. Scroll to the Footer Tracking Code section

  4. Paste the following purchase script:

// PixelFlow Purchase Event Script
<script>
!function(){"use strict";!async function e(){if(!window.pixelFlow?.trackEvent||!window.pixelFlow?.utils?.normalizeCustomerData)return void setTimeout(e,1e3);const t=function(){try{const e=localStorage.getItem("pixelflow_checkout_data");return e?JSON.parse(e):null}catch(e){return null}}();var n;if(t)try{const e=function(e){if(!e)return 0;const t=parseFloat(e.replace(/[$,]/g,"").trim());return isNaN(t)?0:t}(t.price),a={value:e,currency:(n=t.price)?n.includes("$")?"USD":n.includes("€")?"EUR":n.includes("£")?"GBP":"USD":"USD",content_type:"product",numItems:1},i={};t.email&&(i.em=t.email),t.first_name&&(i.fn=t.first_name),t.last_name&&(i.ln=t.last_name),t.phone&&(i.ph=t.phone);const o=await window.pixelFlow.utils.normalizeCustomerData(i);await window.pixelFlow.trackEvent("Purchase",a,o)&&localStorage.removeItem("pixelflow_checkout_data")}catch(e){}}()}();
</script>
  1. Click Save

eCommerce tracking enabled! Your Purchase events will now include order values, customer emails, and other data that significantly improve your Meta event match quality score (typically 8.3-9.3/10).

Custom script considerations: These scripts are provided as examples and may need adjustment based on your specific ClickFunnels setup. If you need help customizing them for your funnel, book a free setup call with our team.

Troubleshooting

Symptom

Likely Cause

Solution

No events appearing in PixelFlow dashboard

Script not added or funnel not published

Verify the script is in Settings → Head Tracking Code, then republish your funnel

Events not appearing in Facebook Events Manager

Meta Pixel not configured or incorrect Access Token

Verify your Pixel ID and Access Token in the PixelFlow dashboard

No confetti after visiting funnel

Events not reaching PixelFlow or wizard timeout

Wait 2-3 minutes and check the Events page manually. Wizard polls for 1 hour max

Purchase events not firing

eCommerce scripts not added or incorrect placement

Verify checkout script is on checkout page footer and purchase script is on confirmation page footer

Duplicate events showing

Old Facebook Pixel still active

Remove any existing Facebook Pixel code from your funnel settings

Low event match quality score

Missing customer data parameters

Add the eCommerce enrichment scripts to capture email, phone, and name data

Events only show "Browser" not "Server"

Access Token issue or deduplication problem

Check your Access Token is valid and regenerate if needed in Facebook Events Manager

Limitations

  • No native app: Unlike Webflow or Framer, ClickFunnels doesn't have a native PixelFlow app, so setup requires manual script insertion.

  • One script per funnel/domain: Each ClickFunnels funnel or domain requires its own unique PixelFlow script. Don't copy scripts between different funnels.

  • Editor preview tracking: Events will not fire in the ClickFunnels editor preview mode. Always test with your published, live funnel URL.

  • Custom eCommerce scripts: eCommerce tracking requires custom scripts and may need adjustment based on your funnel structure.

  • Wizard polling window: The verification step polls for events for up to 1 hour. After that, check the Events page manually.

Getting Help

If you're experiencing issues with your ClickFunnels setup:

  • Check that you've completed all steps above and published your funnel

  • Verify your Meta Pixel ID and Access Token are correct in Facebook Events Manager

  • Use browser developer tools (F12) to check for JavaScript errors on your funnel

  • Contact PixelFlow support at [email protected] or book a free setup call

When contacting support, please provide:

  • Your ClickFunnels funnel URL

  • Screenshots of any error messages

  • Whether you're seeing events in your PixelFlow dashboard

  • Whether you're seeing events in Facebook Events Manager

Was this helpful?