Meta Lead Ads Connector - Verified & De-duplicated
by TechnoVision · Odoo App
That is true of every Lead Ads connector, including this one. The only thing standing between those two facts is the signature check, so every delivery is verified against X-Hub-Signature-256 before it is believed. A retry cannot become a second lead, a lead that cannot be mapped is kept rather than lost, and anything missed can be fetched again.
One-off licence per Odoo instance. The store bills in its own base currency, so checkout may differ by a few cents. That is the add-on price. Installation and support are optional and priced separately.
On the Odoo Apps Store for Odoo 18.0
Security Center
Live82
Score
1.2k
Events / 24h
3
Alerts
Export volume · 14 days
Unusual export detected
res.partner · 4,812 rows · outside business hours
Illustrative UI. Product screenshots to be dropped into this frame.
What it does
Meta signs every delivery with an HMAC-SHA256 over the exact bytes of the body, keyed with your app secret. The raw bytes are carried through to the check rather than a parsed dictionary, and compared in constant time. A delivery that does not verify is recorded and discarded; it never reaches your pipeline.
Meta re-delivers whenever it does not get a prompt 200. The leadgen id carries a database-level unique constraint, not a search-before-insert, because two deliveries can be in flight at once and a check in Python loses that race.
The payload is stored on arrival, before anything is interpreted. If a mapping is wrong or a value is missing, the event is marked failed with the reason and can be replayed once you fix it.
Lead Ad forms ask different things, so mapping is per form rather than a fixed guess at name, email and phone. Unmapped answers are still kept and appended to the opportunity notes.
Downtime, a lapsed token, or a subscription added after the campaign started all leave real leads on Meta’s side. Backfill reads them for a date range and runs them through the same mapping and the same duplicate check.
Pricing & Services
The add-on licence is the product. Installation and a support plan are separate, optional, and neither is added to anything unless you choose it. The licence is bought into your own account, so you own it outright whether or not you ever buy a service from us.
The module, bought from the Odoo Apps Store into your own account.
$20
one-off, per Odoo instance · paid to the Odoo Apps Store
We have not priced installing this one yet. Tell us about your instance and we will quote it.
Request a quote
No price has been agreed for this one yet.
Request InstallationWe have not priced a support plan for this one yet. Ask and we will quote it.
Request a quote
No price has been agreed for this one yet.
Request SupportA support plan adds to what you already have. It never replaces it: defect fixes and help with the module stay free for every licence holder, plan or no plan.
Odoo 18, Community and Enterprise. We have not set an installation or support price for this module yet, so both are quoted rather than listed.
Supported: Odoo 18, Community and Enterprise. Licensed per Odoo instance, with no user limit and no expiry. Prices exclude any tax that applies where you are, and we tell you before you pay if any is due.
Screenshots
5 captures of the shipped product: the account, mapping one form, every delivery, logged, a failed lead, kept, the opportunity it made.

The account

Mapping one form

Every delivery, logged

A failed lead, kept

The opportunity it made
How it works
With the leads_retrieval permission, a Lead Ads webhook subscription and a page access token. Those are issued by Meta to you and are not supplied with the module.
It depends only on Odoo’s own crm module, so Community is enough.
List the form’s questions and choose where each answer goes: a contact field, the notes, or nowhere.
Fetch anything already waiting on Meta’s side, within the roughly 90 days Meta keeps leads.
FAQ
No. There is no Meta app or page access token on our development account, so nothing has been through a real webhook subscription or a real Graph API call. Signature verification, the duplicate constraint, mapping, failure, replay and payload survival are unit-tested against the real code on a real Odoo 18 database; the Graph API requests match the documented structure, but nobody has watched Meta accept one.
Yes. You create a Meta app, give it the leads_retrieval permission, subscribe it to the Lead Ads webhook and issue a page access token. They are issued by Meta to you; the module connects your Odoo to your app.
Every delivery is checked against X-Hub-Signature-256 - HMAC-SHA256 over the exact raw body, keyed with your app secret, compared in constant time. A delivery that does not verify is recorded and discarded, and there is no setting to switch that off.
No. The payload is stored on arrival, so a wrong mapping or a missing value leaves the event marked failed with its reason and a Replay button. Fix the mapping, press Replay.
It reads leads only: it does not create, edit, pause or spend on ads. Messenger and Instagram DMs are not included, and neither is the Conversions API. Meta keeps leads for roughly 90 days, so nothing older can be fetched.
Odoo 18.0, Community or Enterprise. A 19.0 port is not claimed until it has been tested.
The module itself, for one Odoo instance, with no user limit and no expiry; every 18.0 release of the module, including security fixes; the module documentation, in the module and on this site; and defect fixes and help with configuration, at no extra cost and with no support plan required. It is a one-off licence for one Odoo instance, with no user limit and no expiry. It does not include installation on your instance, and configuration against your data; changes to the module for your own requirements; migration of the module or your data to another Odoo series; and work on your Odoo, your server, your network, or on other vendors’ modules.
No. Installation is optional, and we have not set a price for installing Meta Lead Ads Connector - Verified & De-duplicated yet, so it is quoted rather than listed. Tell us about your instance and we will put a figure on it before you commit to anything.
Odoo 18, on Community and Enterprise. We do not claim a series until there is a branch for it, its tests pass on that series, and somebody has run it there — so the list on this page is what is actually supported rather than what is planned.
Twelve months of module updates, including security fixes; configuration support by email; priority handling: your ticket is looked at before unpaid enquiries; and help reproducing and reporting a defect, and a fix or a workaround. A plan runs for twelve months and is bounded by stated limits rather than by the word "reasonable": Up to 10 support requests in the twelve months; up to 4 hours of remote assistance in total; one Odoo minor-version upgrade of the module, within the same series; response within 2 business days, Sunday to Thursday, Cairo time; and covers the module. It does not cover your Odoo, your server, your network, or work on other modules.. The plan runs for 12 months from the day it starts and then stops. It renews only if you ask us to renew it — nothing renews automatically and no card is stored. It does not cover your Odoo, your server, your network, your backups, or other vendors’ modules; custom development or changes to how the module behaves; migration to another Odoo series — 18.0 to 19.0 is a project, not a ticket; on-site attendance, and work outside the hours below; and anything an external vendor charges for.
No, and this is the line worth being clear about. Defect fixes, at no charge, for the life of the 18.0 series; help when the module does not behave as its description says it does; answers to configuration questions about the module itself; and security fixes, released to everyone whether or not they hold a support plan — all of that comes with the licence, for every buyer, at no extra cost and whether or not a plan is ever bought. A paid plan adds updates, priority over unpaid enquiries and an allowance of assistance hours on top. It never takes anything away.
No, in any of the three options. A change to how a module behaves, a migration between Odoo series, and connecting a system we do not publish a connector for are each their own piece of work, quoted on their own. They are listed as exclusions on the cards rather than left to be discovered: they are the three things buyers most often assume are covered.
Use the buttons in the Pricing & Services section above. Neither has an agreed price for this module, so the button takes you to a quotation request instead: the same form, with the module and the service you asked for already filled in, and no figure invented along the way. No card details are taken on this site, and nothing is added to anything unless you choose it.
Install from Odoo Apps, or talk to us about a guided rollout across multiple companies.