Skip to content

Odoo integration

Odoo attribution, plug and play, from first touch to won opportunity

Your Leads and Opportunities carry the full journey, and the opportunities you win go back to Meta, Google and LinkedIn.

  • Live in 21 minutes
  • 95%+ accuracy, first-party
  • No developer required

How the data moves

  • Touchpoints and spend flowing in
  • Conversions and revenue going back
Traffic channelsWhere every journey starts
  • Meta
  • Google Ads
  • LinkedIn Ads
  • Microsoft Ads
  • Organic search
  • Organic social
  • AI search
Spend, campaigns, every visit
Offline conversions, revenue

AI Attribution Engine

LeadJourneyServer-side tracking, every channel in one journey
  • Server-side tracking of every visit
  • Multi-touch attribution per lead
  • Won deals sent back to the ad platforms
Every touchpoint, campaign, ad
Stage, quotation, won revenue
OdooWhere the revenue is recorded
  • Leads
  • Opportunities
  • Sales Orders

The loop closes in the ad account. Every opportunity Odoo marks as won goes back to the platform that created it, so bidding optimises on revenue instead of form fills.

Trusted by 100+ lead generation businesses, agencies and freelancers

  • Trading.de logo
  • Swedish Cold logo
  • Trustfactory logo
  • MLK Digital logo
  • CPC AG logo
  • DaxoMedia logo
  • Contentbär logo
  • Hivebuy logo
  • OBVIOUS logo

The gap

Odoo knows the order was confirmed. It does not know which ad started it.

Pipeline analysis reports on the Source, Medium and Campaign stored on the opportunity. Getting the click, the campaign and the spend in, and the won opportunity back to the platform, is the part nobody ships for you.

Odoo attribution on its own

Accurate about the pipeline and the order, blind to how the lead arrived

  • Source, Medium and Campaign on a lead come from the UTM cookies an Odoo website sets, or from a rep picking them by hand. A form on any other site leaves them empty unless an integration fills them.
  • Only one source is kept per lead: the last visit that carried UTM parameters. An untagged click, an organic session or an AI search visit before or after it leaves no trace.
  • Click IDs have no field on a lead or an opportunity. The gclid or fbclid is gone by the time the record exists, so nothing can be matched back to the platform later.
  • No ad spend enters Odoo. Pipeline analysis groups expected and won revenue by source and campaign, but there is no cost to divide it by, so ROAS and cost per won opportunity are not on the report.
  • Organic search, referral and AI search visits never reach Odoo. The first it hears of a person is when a form, a rep or an import creates the lead.
  • Won revenue stays in Odoo. Nothing tells Meta or Google which of their clicks became a confirmed sales order, so bidding keeps optimising on form fills.

Odoo with LeadJourney

One journey per lead, joined to spend and to the confirmed order

  • Every visit is tracked server-side as it happens, before a lead exists in Odoo, at 95%+ accuracy.
  • The anonymous first click is stitched to the lead at form submit, on an Odoo website or any other, and source, campaign and ad land on the lead and the opportunity automatically.
  • UTM parameters and click IDs are captured at click time and written onto the record, so every touchpoint keeps its place rather than only the last tagged one.
  • Spend is pulled from your ad accounts automatically, so ROAS and cost per won opportunity are live per sales team, stage and campaign.
  • Organic, direct, referral and AI search are tracked as first class channels next to paid, and the opportunity shows which one started it.
  • Every opportunity Odoo marks won goes back to the platform that produced the click as an offline conversion, with the revenue attached.

Every touchpoint

The whole journey into Odoo, and the closed deal back to the ads

Marketing sees every touch before and after Odoo, sales sees the source on the record it already opens, and when the deal is won the amount goes back to the platform.

See every journey in LeadJourney

The dashboard marketing runs on

  • Every touchpoint of every lead in one timeline, from the first anonymous click to the deal Odoo marks won.
  • First touch, last touch and every model in between, so a LinkedIn first click and a Google brand-search close are one journey, not two leads.
  • Filter any campaign, ad or landing page to the leads it produced and the pipeline stage each one reached.
  • The same journey written onto the Lead and the Opportunity in Odoo, so your team sees where a lead came from before the first call.

Send it back to the ad platforms

Where the bidding learns from revenue

  • A deal Odoo marks won becomes a conversion on Meta, Google Ads, LinkedIn and Microsoft, matched on the click ID captured at the first visit.
  • The expected revenue travels with the event, so value based bidding optimises on revenue rather than on form fills.
  • You choose which stages go back: qualified lead, opportunity, won, or all three.
  • Sent server to server, so there is nothing for an ad blocker or a declined cookie banner to remove.

How it works

Odoo data in, attributed revenue back out

Both directions run on their own once connected. The first is what makes attribution across every channel possible at all. The second puts the answer on the opportunity your team already works in.

  1. 1

    Pull your pipeline into LeadJourney

    Your Odoo data meets the marketing data it was always missing.

    Odoo

    LeadJourney reads your Leads, Opportunities and Sales Orders, with stage, expected revenue, sales team and the confirmed order total, as each record changes.

    MetaGoogle AdsLinkedIn AdsYour website

    Ad clicks, spend, sessions, forms and click IDs are tracked server-side across paid, organic and AI search.

    LeadJourney joins the two into one journey per lead, from the first anonymous click through to the order Odoo confirmed.

    Influenced pipeline, attributed revenue, ROAS and cost per won opportunity, per channel, campaign and ad.

  2. 2

    Write the Odoo attribution onto every lead and opportunity

    So nobody opens a second tool to answer where an opportunity came from.

    LeadJourney writes the finished attribution onto the Odoo record, only into the fields you mapped.

    Odoo

    First touch, last touch, campaign, ad and click ID land as fields on the lead and the opportunity, next to Odoo's own Source, Medium and Campaign.

    Pipeline analysis, filters and automated actions pick them up like any other field: group won revenue by channel, or route paid leads to the right sales team.

    Sales sees where the lead came from on the opportunity they already work in, and marketing sees the order value against the ad.

The return path

Won Odoo opportunities, back in the ad account that earned them

A form fill is not a result. Once Odoo marks an opportunity won, or confirms the order behind it, the amount goes back to the platform that produced the click.

  • MetaConversions API

    Opportunity created, stage reached and opportunity won, with value and currency

  • Google AdsOffline conversion import

    Conversions matched on gclid, with the revenue for value based bidding

  • LinkedIn AdsConversions API

    Stage changes and won revenue matched on li_fat_id

  • Microsoft AdsOffline conversions

    Conversions matched on msclkid, with the revenue

  • TikTok AdsEvents API

    Server-side lead and revenue events

You choose what counts as a conversion

Map any Odoo stage, or the confirmed sales order, to any platform event. Qualified, Proposition, Won, or the order itself.

Value based bidding gets the real order value

The expected revenue travels with the stage event and the order total with the confirmed order, so tROAS strategies optimise on real numbers instead of a flat lead value.

Sent server to server

No pixel to fire, nothing for an ad blocker or a declined cookie banner to remove.

Reporting

The questions Odoo's Pipeline analysis cannot answer yet

Every one of these is a report in LeadJourney rather than a custom field project. Odoo stays the source of truth for the opportunity and the order, and LeadJourney supplies the source that produced them.

  • Which campaign produced the opportunities we won last quarter, not just the leads?

  • What did a won opportunity actually cost us in ad spend, per channel?

  • Which channel starts our biggest orders, even when a different one closes them?

  • How much won revenue came from ChatGPT, Perplexity and Gemini last month?

  • Which landing page produces the leads that make it past Proposition?

  • Which campaigns buy leads that never become an opportunity?

LeadJourney and Odoo CRM reporting

Where Odoo CRM reporting ends and LeadJourney starts

Odoo's Pipeline analysis reports revenue by team, stage, salesperson and any field you fill, including Source and Campaign. It reports on what is in Odoo.

Odoo CRM reporting compared with LeadJourney, capability by capability
Where Odoo attribution gets its sourceOdoo CRM reportingThe UTM cookies an Odoo website sets at form submit, or a value a rep picks from the Source, Medium and Campaign lists.With LeadJourneyTracked server-side, every session and every channel, and written onto the lead and the opportunity automatically.
The anonymous first clickOdoo CRM reportingNot recorded. Odoo first hears about a person when a form, a rep or an import creates the lead.With LeadJourneyCaptured server-side, then stitched to the lead when the form is submitted.
Ad spendOdoo CRM reportingNone. Odoo holds expected revenue and order totals, not campaign costs.With LeadJourneyPulled automatically from Meta, Google, LinkedIn and Microsoft Ads.
ROAS and cost per won opportunityOdoo CRM reportingNot calculated, because there is no spend to divide by. Pipeline analysis shows won revenue by any field, including source and campaign.With LeadJourneyLive per channel, campaign, ad set and creative.
Attribution modelsOdoo CRM reportingOne source per lead, the last tagged visit or the one in the field.With LeadJourneyFirst click, last click, linear and position based, switchable without re-tracking anything.
UTM parameters and click IDsOdoo CRM reportingUTM fields filled from the website cookie when the parameter survives the visit. The link tracker counts clicks on links built with it. No click ID fields.With LeadJourneyCaptured at click time, server-side, and written onto the record whatever site the form is on.
Organic, direct, referral and AI searchOdoo CRM reportingInvisible until a lead is created, and then only if someone records it.With LeadJourneyFirst class channels, including ChatGPT, Perplexity, Claude and Gemini.
First-party tracking and consentOdoo CRM reportingNot Odoo's job. It depends entirely on the web tracking you put in front of it.With LeadJourneyServer-side and first-party by design. 95%+ accuracy, processed in the EU.
Conversions back to the ad platformsOdoo CRM reportingNot built in. Needs an app from the Odoo store or an automation someone maintains.With LeadJourneyBuilt in per platform, with the revenue attached and matched on the click ID.
What it is forOdoo CRM reportingRunning the company, from the lead to the invoice, and reporting on it inside Odoo.With LeadJourneyMeasuring where opportunities and revenue come from, then feeding that back into how you buy.

It is not either or

Keep Odoo as the system of record and keep Pipeline analysis as the report your team opens on Monday. LeadJourney fills the source fields with measured data, adds the spend, and hands the won opportunities to the platforms where the budget is spent.

MCP server

Chat with your Odoo attribution data

The same journeys, spend and won revenue are also served over MCP. Ask in Claude or ChatGPT, and the answer comes from your own numbers.

LeadJourney MCP connected, try any tab

Which campaigns produced our closed revenue last month?

Based on your LeadJourney data, 3 campaigns produced 148,200 EUR of closed revenue last month:

Google Ads, Brand
38 leads, 9 closed deals, 61,400 EUR. Shortest path to signature.
LinkedIn, Retargeting
21 leads, 6 closed deals, 48,900 EUR. Seven touchpoints on average.
Meta, Lookalike DACH
54 leads, 5 closed deals, 37,900 EUR. Cheapest qualified lead.

Want this as a weekly summary in Slack?

Ask anything about your lead journeys

Where did our three biggest deals this quarter come from?

Your 3 largest deals this quarter all started somewhere the last click never showed you:

42,000 EUR
First touch LinkedIn Ads, closed 63 days later after a webinar signup.
28,500 EUR
First touch Google organic, paid click on day 11, demo on day 19.
21,800 EUR
First touch a Meta video view, form filled from email six weeks on.

Want the full touchpoint list for any of them?

Ask anything about your closed deals

Which landing pages turn LinkedIn traffic into qualified leads?

3 pages take your LinkedIn traffic, and the qualified rate between them runs from 4% to 18%:

/demo/attribution
18% qualified from 214 visits. Highest intent page on the site.
/guide/server-side
9% qualified from 612 visits. Most journeys stall after the download.
/pricing
4% qualified from 488 visits. Second most traffic, lowest intent.

Want the same breakdown for Google Ads traffic?

Ask anything about your landing pages

What did each channel cost per qualified lead last week?

3 channels spent budget last week. Cost per qualified lead ran from 41 EUR to 187 EUR:

LinkedIn Ads
41 EUR per qualified lead. 2,300 EUR spent, 56 qualified.
Google Ads
88 EUR per qualified lead. 4,400 EUR spent, 50 qualified.
Meta Ads
187 EUR per qualified lead. 3,740 EUR spent, 20 qualified.

Want an alert the moment a channel passes 120 EUR?

Ask anything about your cost per lead

What do the journeys that close have in common?

3 signals show up in most of your closed deals and in almost none of the lost ones:

Pricing page, 2+ visits
In 71% of closed deals. In 12% of the ones that never closed.
Demo within 14 days
In 64% of closed deals. Median 9 days from the first click.
Second contact
In 58% of closed deals. A colleague of the lead arrives on site.

Want these three scored onto every lead in your CRM?

Ask anything about your lead journeys

Setup

Connected to Odoo in about 21 minutes

No developer, no data warehouse and no implementation partner.

  1. 1About 5 minutes

    Add a single line of code to your website

    Paste the LeadJourney script into your site or your GTM container, on an Odoo website or any other. It starts recording sessions, click IDs and form fills immediately.

  2. 2About 10 minutes

    Connect Odoo, then your ad accounts

    Connect your Odoo database with its URL and an API key, pick the sales teams and fields in scope, then link Meta, Google, LinkedIn and Microsoft Ads. Spend and campaigns are imported for you, historic data included.

  3. 3Same day

    Map stages to conversion events

    Choose which stages in each pipeline count as a qualified lead and which count as revenue, or let the confirmed sales order count instead. From then on every won opportunity flows back to the platform that created it, with the revenue attached.

Original reviews

What our customers wrote, word for word

4.9 out of 5 across 11 public reviews. Quoted as they were left, shortened only by dropping whole sentences.

  • 5 out of 5 starsGoogle

    Before LeadJourney, we had no reliable tracking concept for our five-figure ad spend. We were manually building spreadsheet and CRM reports, inaccurate and time-consuming. Within two days, everything was set up. For the first time, I know exactly what I pay per lead and which campaigns actually bring in the best-qualified prospects.

    Florian BuckCEO, Klickkraft GmbH
  • With LeadJourney we are able to track all our leads and connect them with sales and attribution data to make better decisions. In the first month of using it we scaled from 0 to 100k revenue from paid ads only.

    GetreachBacklinks Marketplace (SaaS)
  • 5 out of 5 starsG2

    LeadJourney finally fixed my Marketing Analytics. It goes way beyond basic Ad Tracking Software. The Customer Journey Report saves hours of digging, and capturing everything from Offline Conversions to AI Search Tracking makes it the Best B2B Attribution Platform available.

    Sascha LenzMarketing Manager
  • 5 out of 5 starsTrustpilot

    Connected LeadJourney for 2 clients, setup took literally 20 minutes each. The data became more accurate, the reports actually make sense. Now clients look at the dashboard and the 'why don't the numbers match?' questions are gone.

    Alexander SamarPerformance Marketing Agency
  • 5 out of 5 starsGoogle

    With LeadJourney, we have finally found a tool that provides us with the data we need to scale our performance marketing campaigns. The most important KPI is no longer lead price but cost per qualified lead.

    Steffen SiesingCEO, Bilanzmanufaktur GmbH
  • 5 out of 5 starsG2

    The ability to track both online and offline conversions in one unified dashboard has given us insights we never had before. Our ROI has improved dramatically since we started integrating LeadJourney with our CRM. We're finally able to see the full customer journey, and it's been a game changer for our strategy.

    Andre WitzelFounder, Trading.de
  • 5 out of 5 starsTrustpilot

    The ability to seamlessly integrate data from multiple channels and see real-time insights has significantly improved our campaign results. We now focus on metrics that truly matter, like ROI and qualified leads.

    Nikita YatsunCEO, RLV Media GmbH

FAQ

What Odoo administrators ask before connecting

If yours is not here, our team answers in the chat within a few minutes.

How is this different from Odoo's Pipeline analysis?

Pipeline analysis reports on the values in your fields, so an opportunity's source is whatever the UTM cookie held or a rep picked when the lead was created. LeadJourney fills that in from measurement: it tracks every visit server-side, joins the click to the lead at form submit, adds spend from every ad account, and writes source, campaign, ad and click ID onto the lead and the opportunity. Pipeline analysis then groups won revenue by a source that was measured rather than remembered.

Does Odoo attribution still depend on the UTM cookie of an Odoo website form?

Not any more. The source, campaign and ad are written onto the record automatically the moment the lead exists, and they update as the journey continues, so the organic visit before the tagged click and the AI search visit after it both keep their place. It works the same when your website is not built on Odoo: the script tracks the visit on WordPress, Webflow or anything else, and the lead is stitched to its journey when it appears in Odoo.

Which fields does LeadJourney write into Odoo?

On the lead: first and last touch channel, source and campaign, the ad, ad set and creative, every UTM parameter, the click ID from each platform, the landing page and referrer, and a link to the full journey. On the opportunity: the attributed channel and campaign, the credit each touchpoint earned under your active model, and the ad spend attributed to the opportunity. You choose which of those are in scope before anything is written.

Will it overwrite Source, Medium and Campaign on my existing leads?

No. Nothing is written to a field you have not mapped, and the direction of every mapping is yours to set. By default attribution goes to dedicated LeadJourney custom fields and Odoo's own Source, Medium and Campaign stay untouched, so historic reporting stays comparable. If you would rather have those three filled from measurement, map them and they are.

Can I send won opportunities and confirmed orders back to Meta and Google?

Yes, and it is the point of the integration. Won opportunities are sent to Meta through the Conversions API, to Google Ads as an offline conversion import matched on gclid, to LinkedIn through the Conversions API and to Microsoft Ads matched on msclkid, with the revenue attached so value based bidding has a real number to optimise against. If the order is the number you trust, map the confirmed sales order instead of the stage and the order total travels with the event. Every record event reaches LeadJourney as it happens rather than in a nightly batch, and Transparent Logs show each conversion that was sent and when.

Does it work with Odoo Online, Odoo.sh and self-hosted Odoo?

Yes. The connection is made through Odoo's external API with your database URL and an API key, so it works wherever your database runs as long as that API is reachable. Nothing is installed in your database and no module has to be maintained through upgrades.

Does it work with several sales teams, pipelines and companies?

Yes. The sync is mapped per record and per field, so it works with every sales team and its own stages, with custom fields on leads and opportunities, and with several companies and currencies in one database. You decide per sales team which stages count as conversions.

An order is confirmed months after the first click. Is it still attributed?

Yes. The journey in LeadJourney has no attribution window, so the opportunity is credited to the campaign and ad that started it however long the sales cycle takes, and the confirmed order lands on the same journey. The ad platforms apply their own windows to the events they receive, so a late order mainly improves their optimisation; the report that matches revenue to the ad lives in LeadJourney and on the Odoo record.

Do I need a developer or an Odoo administrator?

No developer. Connecting Odoo is a database URL, an API key and a field mapping screen, and most accounts are live in about 21 minutes. An administrator is useful for creating the API key and deciding which fields to expose, and our team will do the mapping with you on a call if you prefer.

Is the Odoo sync GDPR compliant?

Yes. Data is processed and stored in the EU, we sign a data processing agreement, and tracking runs first-party and server-side so it respects consent decisions rather than working around them. Financial, legal and other regulated industries are a core part of our customer base.

What does it cost?

The Odoo integration is part of the platform rather than a paid add on. Plans are priced on tracked events instead of seats, so your whole team and your agency can share one workspace, and every plan starts with a 14 day free trial without a credit card.

95%+ accuracy, in and out of Odoo

See which ads produce revenue in Odoo, with LeadJourney

Connect Odoo and watch your own won opportunities line up against the campaigns that created them, stage by stage.

LeadJourney dashboard showing lead sources, campaign performance and attributed revenue side by side