Skip to main content
This is what closes the loop with your ads. Up to here your agent sells over WhatsApp; from here on Meta finds out who actually bought, and with that information it refines who it shows your ads to.
Where it is. In the left-hand menu, inside Ventas (Sales), click Personalizar (Customize), which sits under Ajustes (Settings), and, in the list of sections on that screen, choose Píxeles (Pixels). If you prefer to go straight there, type optimind.darkfunnels.ai/customize?panel=pixeles in the browser’s address bar.The people on your team who have access to the Ventas app can see it and change it. How that access is given is in Invite your team.
The dashboard is in Spanish, so its buttons and labels are named here as you will see them on screen, with the English in parentheses the first time. Meta’s own screens appear in whatever language your Meta account uses; the screenshots are from the Spanish interface.

A pixel without a website

The classic pixel is a piece of code that lives on a website and tells Meta every time someone buys. In a WhatsApp funnel there is no website and no browser, so that code doesn’t exist. What there is, is this: when a customer matches one of your rules (they reach a chapter of the sales playbook, or your agent records a sale), DarkFunnels sends Meta a notification (Meta calls it an “event”) through its Conversions API, the channel Meta offers for notifications that don’t come from a website. Along with the notification travel the data Meta needs to recognize the person: the phone number, the first name, the last name and the country, first converted into a fingerprint that cannot be reversed. Meta doesn’t receive that data in the clear. What does not travel is the conversation. What it’s good for:
  • Meta can optimize your campaigns for purchases and not only for conversations started, when it enables that objective on your account (further down we tell you what that depends on).
  • You can normally build audiences of real buyers and lookalike audiences based on them.
  • In Ads Manager you see purchases next to each ad, not just chats.

Before you start: the three things to know

1. You need to be an admin or a developer on the business portfolio that owns the pixel. The business portfolio is Meta’s company account (the old Business Manager); today those permissions are called Full control and Apps and integrations. Without one of the two, the Generate access token button appears greyed out with the notice “A prerequisite is not met”. It’s the most common blocker, and DarkFunnels can’t fix it: whoever administers the portfolio grants it to you, in Business settings → Users → People.2. What you paste is the ID of a pixel or dataset, not that of an app. In Events Manager they appear mixed together. If you open a Facebook app you won’t find the token button: this dashboard’s notifications go to the pixel’s dataset.3. The sales that reach Meta are the ones your agent records. The ones you enter yourself in the Conversiones (Conversions) card of the customer’s profile, from Clientes (Customers) or from Conversaciones (Conversations), are not sent, even if you use Registrar conversión (Record conversion) to have the AI fill in the form for you. It’s on purpose: the pixel exists so Meta learns from the sales your agent closed in the conversation.

What you need to get from Events Manager

Three pieces of information, all three from the same place: Meta’s Events Manager (at business.facebook.com/events_manager). If your ad account already has a pixel, skip to step 2. To get there, from Ads Manager hover over the icon bar on the left: the menu expands with the names and Events Manager is at the bottom.
Ads Manager side menu with the Events Manager option

The Ads Manager left-hand menu, expanded. “Events Manager” is the second-to-last option.

1

Create the dataset, if you don't have one

In the Events Manager left-hand panel, click Connect data, the first option, with the plus sign. (Your existing datasets are under Datasets; in older accounts, Data sources.)
Events Manager side panel with the Connect data option

The Events Manager left-hand panel: “Connect data” is the first option.

Only then does the window with the five options appear. Choose Web: that’s what creates the classic pixel, and it’s the one that works for a WhatsApp funnel.
Events Manager “Connect a new data source” dialog

“Connect data” offers Web, App, Offline, CRM and Messaging. For your WhatsApp number, the option is Web.

Give it a name, leave the Conversions API checkbox ticked and click Create. Meta asks which ad accounts to connect (tick the ones that advertise your WhatsApp) and then how you want to send the data: choose Set up the Conversions API. Meta first proposes a paid partner: you don’t need one, because DarkFunnels sends the notifications. Expand the other options and choose the one to set it up yourself, with no partner. You don’t need to follow the implementation wizard that opens afterwards: close it, the dataset already exists.
Conversions API setup options: a recommended partner at the top and, expanded, Set up with Meta and Set up with partner integration

Meta first proposes a paid partner; expanding more options reveals Meta's own routes.

2

Copy the pixel ID

In Datasets → your pixel → Settings tab. The ID is the long number that appears as Dataset ID (and under the name in the list on the left).
Dataset Settings tab with the ID

The Settings tab shows the ID that goes into DarkFunnels.

3

Generate the access token

In the same tab, scroll down to Conversions API → Set up direct integration → tick Set up without Dataset Quality API → Generate access token.
“Set up direct integration” block with the Generate access token button

The “Generate access token” button. If it's greyed out, you're missing the permission on the business portfolio.

Copy the whole thing: it’s long, it usually starts with EAA, and Meta warns that it does not store it: if you close the page without copying it, you generate another one.
Generated access token, with the token text hidden

The token appears only once, with the notice to keep it somewhere safe (here, masked).

4

Copy the test code

Test events tab → in the marketing channel drop-down choose Website → expand Confirm that your server events are set up correctly and copy the test code (it starts with TEST). That’s what lets you check the connection instantly. You can save it in the pixel when you create it, or paste it only when you test.
Test events tab with the test code visible

The test code lives inside the “Website” channel, in the server events block.

Have the three pieces of information at hand before you open the dashboard. The token is stored encrypted and is not shown again: if you paste it wrong, the way out is to delete the pixel and create it again.

Connect it in DarkFunnels

1

Open «Píxeles» and click «Añadir píxel»

In Personalizar → Píxeles, click Añadir píxel (Add pixel). There is another way in: the Añadir integración (Add integration) button in the Personalizar header and, in the window that opens, the Meta Píxel card. It takes you to the same tab.At the top is the Manda tus ventas reales a Meta (Send your real sales to Meta) card. It comes with the ¿Dónde consigo estos datos? (Where do I get this information?) help collapsed, which summarizes this guide in case you need it without leaving the dashboard.
Personalizar (Customize) screen with the Píxeles (Pixels) section chosen: the card text, the Cobertura del píxel line, the folded ¿Dónde consigo estos datos? help, the Añadir píxel button and the Campañas Moda Sol pixel (ID ••••3456, Token guardado, switch on) with Reglas («Sin reglas todavía…», Añadir regla) and Envíos (Probar conexión, Últimos envíos)

The Píxeles tab of Personalizar with a pixel already saved: «Campañas Moda Sol», with the Token guardado badge, its Reglas («Sin reglas todavía…», no rules yet) and its Envíos. Above it, the Añadir píxel button.

2

Fill in the form

Nuevo píxel de Meta (New Meta pixel) opens. A Nombre (Name) you’ll recognize («Campañas Perú», Peru campaigns), the ID del píxel (conjunto de datos) (Pixel ID (dataset)) and the Token de acceso de la API de conversiones (Conversions API access token). If you want to save the test code, it goes in Código de prueba (opcional) (Test code (optional)). Leave the ID de cuenta de WhatsApp Business (opcional) (WhatsApp Business account ID (optional)) empty: further down we tell you why.If the dashboard tells you «El ID del píxel es numérico…» (The pixel ID is numeric…), what you pasted is not the ID: copy it again from the Settings tab.
«Nuevo píxel de Meta» (New Meta pixel) form with its five fields

The «Nuevo píxel de Meta» (New Meta pixel) form. Under the token, the note: «Se guarda cifrado y no vuelve a mostrarse» (It is stored encrypted and is not shown again).

3

Save and test the connection

Guardar píxel (Save pixel) creates the pixel’s card with the Token guardado (Token saved) badge and the notice «Píxel guardado. Ahora define cuándo mandar cada evento.» (Pixel saved. Now define when to send each event.)Click Probar conexión (Test connection). If you didn’t save the test code, a box appears to paste it: paste it and click Probar (Test) (that code is used only for that test and is not saved). If Meta accepts, you’ll see «Meta recibió el evento de prueba. Míralo en Events Manager → Probar eventos.» (Meta received the test event. See it in Events Manager → Test events.) Click Últimos envíos (Recent sends) and you’ll have an Enviado (Sent) row with Lead · prueba (Lead · test) and Meta lo recibió (Meta received it).If Meta rejects it, the notice starts with «Meta rechazó el evento:» (Meta rejected the event:) followed by the reason, which also stays in Últimos envíos.
4

Remove the test code when you're done

If you saved the test code in the pixel, its card carries the Modo prueba (Test mode) badge. While it’s there, real notifications also go out marked as tests and, in Meta, they get mixed in with your tests. Click Quitar código de prueba (Remove test code): it takes it out without touching anything else.
So far Meta knows you exist. You still haven’t told it when to notify it: that’s what the rules are for, and without rules nothing is sent, except the test.

The rules: when each event is sent

Each rule is a sentence: when a customer in this funnel does such a thing, Meta receives such an event. For almost every business two are enough: records a sale → Purchase and the chapter where the customer has already shown interest → Lead.
1

Open «Nueva regla» (New rule)

On the pixel’s card, next to Reglas (Rules), click Añadir regla (Add rule). The window opens set up for the most common case: Registra una venta (Records a sale) with Compra (Purchase).
2

Choose the funnel

In Embudo (Funnel), choose the funnel whose customers count for this rule. If you only have one, it’s already selected. Each rule names a single funnel: if you sell with two, create a rule for each one.
3

Say what has to happen

In Cuando el cliente (When the customer), leave Registra una venta or choose another option from the table below. With Llega a un capítulo (Reaches a chapter), Capítulo (Chapter) appears, with the chapters of that funnel’s playbook.
4

Check the event and save

In Evento que recibe Meta (Event Meta receives) the usual event for that case is already filled in. You can swap it for another one from the list or for a Personalizado… (Custom…) one with your own name (letters, numbers and underscores, starting with a letter). The full sentence is assembled below, for example «Cuando un cliente de «Moda Sol» compra, Meta recibe Compra (Purchase).» (When a customer of “Moda Sol” buys, Meta receives Compra (Purchase).) Read it and click Guardar regla (Save rule).
«Nueva regla» (New rule) window with the Embudo (Funnel), Cuando el cliente (When the customer) and Evento que recibe Meta (Event Meta receives) fields, and the rule's sentence

The «Nueva regla» (New rule) window: funnel, when and event, and below, the rule written out as a sentence before you save it.

The details worth knowing:
  • Chapter 1 can’t be chosen. Every contact is born there. Rules start at 2.
  • The rule points at the chapter number, not at its name. If you reorder or delete chapters in the playbook, the rule keeps pointing at the same number: the dashboard reminds you of this when you create it, and it’s worth reviewing your rules after touching the playbook.
  • A jump skips the ones in between. If your agent moves the customer from chapter 2 to 4, the rule for 3 doesn’t fire.
  • Each arrival is sent once. The system records what it has already delivered and doesn’t repeat it. If the customer leaves the chapter and comes back in later, that’s another arrival and another notification goes out.
  • If two rules on the same pixel match the same occurrence, the one you created first wins. If you have two pixels, each one sends its own notification.
  • Moving the customer between chapters by hand also counts. If you drag a customer in the Capítulos (Chapters) view of Clientes or change their chapter from their profile, the rule fires just as if your agent had done it.
  • A rule can’t be edited. To change it, remove it with the wastebasket icon on its row and create the new one.
  • Each pixel allows up to 50 rules.
  • Voiding a sale doesn’t subtract anything. The Conversions API has no refund notification and doesn’t accept subtracting a purchase: the Purchase already sent stays.
Pausing the pixel with its toggle stops sending your rules’ notifications, without deleting rules or history (the Probar conexión test keeps working). What happens while it’s paused is not sent afterwards: when you switch it back on, only new occurrences go out.

If you have an old «chapter → Compra» rule

It used to be possible to send Compra (Purchase) on reaching a chapter. Today the dashboard no longer allows it, because that purchase reaches Meta without the amount of the sale. If you type «Purchase» as a custom event in a chapter rule, the dashboard rejects it with «Compra necesita el monto de la venta…» (Purchase needs the sale amount…). If your pixel already had a rule like that, it keeps working (and sending purchases with no amount) until you delete it. You’ll see it with this notice in red underneath:
«Esta regla manda Compra sin el monto de la venta. Primero bórrala y después crea «Registra una venta» → «Compra (Purchase)»: con las dos a la vez, Meta contaría dos compras.» (This rule sends Purchase without the sale amount. First delete it and then create “Records a sale” → “Purchase”: with both at once, Meta would count two purchases.)
Do it in that order. If you try to create the sale rule first (or any other one that sends Compra on recording a conversion in that same funnel), the dashboard won’t let you and warns you: «Este embudo ya manda Compra al llegar a un capítulo. Borra esa regla antes de crear Compra al registrar una venta, o Meta contará dos compras.» (This funnel already sends Purchase on reaching a chapter. Delete that rule before creating Purchase on recording a sale, or Meta will count two purchases.)

What each send tells you

Two things on the tab tell you whether the pixel is working: the Cobertura del píxel (Pixel coverage) line, at the top, and Últimos envíos (Recent sends), on each pixel. You don’t have to ask anyone for a technical log.

Pixel coverage

As soon as you have a pixel, the Manda tus ventas reales a Meta card adds a line like this one: Cobertura del píxel: 8 de 10 ventas de los últimos 7 días llegaron a Meta con su monto. (Pixel coverage: 8 of 10 sales from the last 7 days reached Meta with their amount.) It counts the sales your agent recorded in the last 7 days, across all your funnels, and how many of them reached Meta as a Purchase with their amount. If your agent didn’t sell that week, it tells you so: «tu agente no registró ventas en los últimos 7 días» (your agent didn’t record any sales in the last 7 days). If you see a dash (—), it couldn’t be calculated at that moment: open the tab again later. If the two numbers don’t match, the difference is usually in one of these cases:
  • The funnel of those sales has no sale rule. That funnel needs Registra una venta → Compra (Purchase) (or Cualquier conversión → Compra).
  • The pixel was paused, or didn’t exist yet, when the sale was made. Those sales count in the total, but they weren’t sent and won’t be. The figure catches up on its own as the days go by.
  • The send came out Omitido (Skipped) or Falló (Failed). The reason is in Últimos envíos.
  • The sale rule sends another event (a custom one, for example): it reaches Meta, but this line only counts Purchases.
  • The Purchase went out through an old chapter rule. That one carries no amount and doesn’t count.
  • The sale was recorded without an amount or without a currency. It reaches Meta as a Purchase, but without an amount, and this line doesn’t count it.

Recent sends

Click Últimos envíos on the pixel’s card: you’ll see the last 20 notifications, one row each with its status, the event, where it came from (capítulo (chapter), conversión (conversion) or prueba (test)), the reason if something went wrong, and the time. To close it, Ocultar envíos (Hide sends). Failures with Meta are not retried automatically: a revoked token is not going to start working again by insisting. That’s why the error stays visible here instead of spinning silently. On Meta’s side, the activity shows up in the dataset’s Overview tab, and Meta warns it can take up to 30 minutes to show it.

The ad click

When a customer messages you from a “Send WhatsApp message” ad, their message usually carries, hidden, the ad they came from and a click identifier. We store it alongside the contact without you having to do anything, and if the same customer comes back through another ad, the latest one is kept. You won’t see the click identifier on their profile: the send to Meta uses it. With that there are two ways of telling Meta what happened:
  • By phone number, the usual one. Meta receives the fingerprint of the number and matches it to the person; if that person saw or tapped your ads, it attributes it with its usual rules. The customer needs to write with a visible number and with a recognized country. If they arrive with a hidden number and didn’t come from an ad either, the notification is skipped. If they came from an ad, it goes out anyway, but without the WhatsApp Business account ID (the one in the next point) the click doesn’t travel: Meta only receives the fingerprints of the first name, the last name and the country, and an internal identifier, so it’s hard for Meta to match it.
  • By the exact click, if, when creating the pixel, you also save the WhatsApp Business account ID. That ID belongs to numbers registered on the WhatsApp Business Platform (Meta’s official API), and it’s visible in Business settings → Accounts → WhatsApp accounts.
In DarkFunnels your number is connected by scanning a QR code or with a code, not through that API. That’s why you normally won’t have that ID: leave it empty and the notifications will go by phone number, as explained above. If your number is also on that platform and you save the ID, the card shows the Atribución por clic (Click attribution) badge: the notification for a customer who arrived from an ad goes out marked as a messaging conversion and Meta hangs it off the specific ad; the notification for everyone else goes by phone number. In that mode, Lead travels with the name Meta uses for messaging, and Meta understands a shorter list of events there: an appointment or a custom event may not count. The ad each customer came from is also used by the Anuncios (Ads) page, which brings together what you spend on Meta with what happened in your chats. If you don’t see it in your Ventas menu, it isn’t available on your account yet. It’s covered in Connect your Meta ads.

In Ads Manager

For purchases to appear in the campaign results, the ad has to read from the same dataset. Edit the click-to-WhatsApp ad and scroll down to the Tracking block, below the welcome template: tick Website events and check that the dataset shown is the one you connected here. Click Publish.
Ad editor with the Tracking block and the Website events checkbox unticked

The ad's Tracking block, before ticking anything.

Tracking block with the dataset selected and the pixel-not-active notice

Ticking “Website events” reveals the dataset with its ID. The “Your Meta pixel is not active” notice is normal: there is no website loading the pixel; the notifications arrive from the server.

The real notifications appear in the dataset’s Overview and in the campaign reports later, with Meta’s delay. If you’ve just connected, give it a few hours before concluding that something is broken.
Meta enables purchase optimization for click-to-WhatsApp ads once your account has already shared enough purchases with it through the Conversions API (Meta has published different figures depending on the channel). The exact figure and the timing are decided by Meta, not by this dashboard.

Common problems

Personalizar lives inside the Ventas (Sales) app, under Ajustes (Settings). If you don’t see Ventas in your menu either, your user doesn’t have access to that app: ask whoever administers your account for it. It’s covered in Invite your team.
You’re missing the permission on the business portfolio that owns the pixel (Full control or Apps and integrations). Ask whoever administers the portfolio for it, in Business settings → Users → People, or create a new dataset in a portfolio where you’re already an admin (Connect data → Web).
That route is for numbers that are on the WhatsApp Business Platform. With your number connected by QR, Meta normally won’t find an eligible Page. Go back and choose Web: the classic pixel receives this dashboard’s notifications just the same.
An Enviado (Sent) row in Últimos envíos (Recent sends) means Meta replied that it received it. The test travels with your test code, so it shows up in the dataset’s Test events tab, and that code has to belong to that same dataset. Meta asks for that tab to stay open during the test: open it before clicking Probar conexión and don’t close it.If it doesn’t appear, compare the ID: on the pixel’s card you see its last four digits, and they have to match those of the dataset you’re looking at in Meta. Real notifications, on the other hand, show up in the Overview tab, and Meta warns it can take up to 30 minutes to show them.
The token belongs to another pixel, it was pasted incomplete or someone revoked it in Events Manager. Generate a new one, delete the pixel from the dashboard and create it with the good token. Write down the rules first: deleting erases them.
Check in this order:
  • The pixel already existed and was active (toggle on) when the sale was recorded. What happened before you created it or while it was paused is not sent afterwards.
  • There’s a sale rule for that funnel (each rule names its funnel).
  • The sale was recorded by your agent in the conversation, not entered by you on the customer’s profile.
  • It isn’t the sale the system records on its own when an order is charged.
If it all checks out, the send is in Últimos envíos with its status (the list shows the 20 most recent). The Cobertura del píxel (Pixel coverage) line tells you at a glance how many of the week’s sales got through.
That funnel has an old rule that sends Compra (Purchase) on reaching a chapter, and with both Meta would count each purchase twice. First delete the chapter rule (it’s the one with the notice in red) and then create Registra una venta → Compra (Purchase).
The reason is in each row. If it says the contact has no real phone number and no ad click, these are customers who wrote with their number hidden (WhatsApp lets you hide it; in your inbox they show up with their name but no flag or number or, if they have no name, as «Contacto» (Contact) followed by four digits) or with no recognized country, and who didn’t arrive from an ad: there is nothing Meta could match and they are skipped on purpose. If it says the event was more than 7 days old, the send was delayed (for example, because the system was down) and the occurrence was already old: Meta doesn’t accept anything more than 7 days old, so it isn’t sent.
The dashboard doesn’t let you edit the token, the name or the WhatsApp Business account ID: delete the pixel (wastebasket icon, Eliminar (Delete)) and create it again with the new information. You lose its rules and its send history, not your contacts’ click information. A rule can’t be edited either: remove it and create the new one.
Create the pixel anyway and leave it with no rules, or switch it off with the toggle. In both cases nothing is sent to Meta, except the test if you click Probar conexión.

What the pixel doesn’t do

So you don’t get a surprise:
  • It doesn’t send the sales you enter yourself on the customer’s profile (from Clientes or Conversaciones), even if the AI filled in the form for you. Nor the sale the system records on its own when an order your agent didn’t record in the chat is charged: for Meta, what counts is what the agent recorded.
  • It doesn’t subtract anything when a sale is voided.
  • It doesn’t send notifications more than 7 days old, nor while the pixel is paused or has no rules.
  • It doesn’t pass Meta the content of the conversations. What does travel: the fingerprints of the phone number, the first name and the last name, the country and an internal contact identifier; on conversions, the amount, the currency, the product code and the order identifier, when there are any; and, if you use click attribution, the click identifier and the one for your WhatsApp Business account, which are Meta’s data, not yours.
  • It doesn’t move money and doesn’t touch your campaigns or your ads: it only sends notifications to Meta.

And now

Message your agent from another phone (with the number visible, and with the test code already removed if you don’t want it to come out as a test), let it take you to your rule’s chapter and look at Últimos envíos: that’s the honest test. When your agent starts selling, the Cobertura del píxel line will tell you how many of those sales reached Meta. If the ad reads from that dataset, in a few hours the real purchases start appearing next to your ads.

The sales playbook

The chapters your rules point at are born here.

Orders and metrics

What each sale your agent records really measures.

Connect your Meta ads

The other half: how much you spend on each ad and what it brings in.
Last modified on October 19, 2026