„Odoo can already report on this.“
Where the lead-to-invoice chain is intact, partly. Joining on the contact detail works where it is not, which is most real databases.
Für Odoo
Export leads and invoices from Odoo, join them on the customer, and rank sources on invoiced revenue.
Kein API-Schlüssel Nichts in Odoo zu installierenNichts zu installieren Keine Karte nötigOhne Karte
Odoo can hold both halves of the match — leads in its CRM, and the invoices that followed in its accounting — which makes it one of the few systems here that could answer attribution from a single database. In practice the chain from lead to opportunity to quotation to invoice is only intact where the sales team completed every step, so CloseRev joins the lead export to the invoice export on the contact detail instead, which works whether or not the chain was kept. Revenue with no traceable lead is reported as Direct / Unknown.
Zuletzt am 25. September 2026 anhand der eigenen Dokumentation von Odoo geprüft.
Die Lücke
Opportunities get converted, quotations get sent, invoices get raised, and nobody can say which marketing produced any of it.
Was verkauft wurde, an wen und für wie viel.
Der Klick, das Keyword, der Anruf und was jedes davon gekostet hat.
Die Datei
Drei Dinge tragen die Zuordnung: wer, wie viel und wann. Alles andere ist optional und ändert nur, wie sich der Bericht aufschlüsseln lässt.
On the lead and on the invoiced customer. Joining on the contact detail works even where nobody linked the records inside Odoo.
As recorded when the lead was created.
Posted customer invoices. A confirmed quotation is not yet revenue.
For multi-company setups, which entity invoiced; and which team handled the lead.
Schritt für Schritt
Geschrieben für alle, die Odoo im Nachbar-Tab geöffnet haben. Berichtsnamen unterscheiden sich je nach Edition, deshalb sagt jeder Schritt, wonach Sie suchen.
One row per lead with the contact detail, source, campaign and created date — including leads that were lost.
Contact detail, amount, date. Draft and cancelled invoices are not revenue.
Where a lead was converted to an opportunity and on to a sale, the link helps; where it was not, the contact detail still joins them.
Weeks for a product business, months for a project or a contract.
The join runs on the phone and the email, normalised, with unmatched leads and invoices both kept visible.
Was zurückkommt
Umsatz nach Kanal, die Zahl der Verkäufe hinter jedem Wert und eine ehrliche Kategorie für alles, was niemand zuordnen konnte. Beispielzahlen aus dem durchgerechneten Beispiel der Seite Industriehersteller – nicht aus einem Odoo-Konto.
| Kanal | Anteil | Verkäufe | Umsatz |
|---|---|---|---|
| Google Ads | 24 | $396,000 | |
| Messen | 19 | $468,000 | |
| E‑Mail-Marketing | 14 | $198,000 | |
| Direkt / Unbekannt | 43 | $738,000 |
Nicht zugeordnete Verkäufe bleiben unter Direkt / Unbekannt. Sie werden nie auf die bezahlten Kanäle verteilt, damit die Summe besser aussieht.
Das Argument
An integrated system makes it possible to follow a lead through to an invoice, and that possibility is only realised when every step was completed in order.
In practice a salesperson creates a new customer rather than converting the lead, a quotation is raised against a different contact, or the invoice goes to a company when the lead was a person.
Each break leaves the invoice without a source, and a report that follows internal links attributes it to nothing.
Joining on the contact detail reconnects them, and the report shows which matches came through the internal chain and which had to be rebuilt.
The share that had to be rebuilt is itself worth knowing. It measures how the sales process is actually used, as against how it was designed.
Many companies start with one part of an integrated system — often the CRM or the invoicing — and run the rest elsewhere for years.
A company using its CRM without its accounting has leads and no invoices in the same place; one using its accounting without the CRM has invoices and no sources.
The method works either way, because it needs two exports rather than one integrated setup: leads from wherever they are kept, invoices from wherever they are raised.
That also makes it robust to the next change of system, which in growing companies tends to come sooner than planned.
The step from quotation to invoice is where scope changes, discounts get applied and some confirmed orders are never invoiced at all.
Ranking sources on confirmed quotations measures the sales team's optimism; ranking on posted invoices measures the money.
Where both are exported, the gap between them per source is worth a look once. Sources that produce price-sensitive buyers usually show the widest one.
The report ranks on posted invoices and labels the basis, so the number can be defended when somebody asks.
Where customers are billed monthly or annually on a subscription, one sale produces a long series of invoices.
Credited invoice by invoice, the source that produced the customer gets paid again every month and looks far better than a source whose customers buy once.
Summing by customer across the window and keeping the first invoice apart from later ones gives both the acquisition figure and the retention figure without mixing them.
That split also shows which sources produce customers who stay, which is usually the more valuable finding. A source whose customers cancel after two months was a source of trials, however good its first-month figure looked.
Berechtigte Fragen
Where the lead-to-invoice chain is intact, partly. Joining on the contact detail works where it is not, which is most real databases.
Then the invoices come from Odoo and the leads from wherever you keep them. The method needs two files, not one system.
Then most matches will come through the internal chain, and the report will show it.
No. It reads exported files, so your database, users and records stay where they are.
Both, if you use its CRM and its invoicing. Either on its own works too, with the other half from elsewhere.
Leads with a contact detail, source and date, plus posted customer invoices with amounts and dates.
Because they break whenever a step is skipped. Joining on the contact detail reconnects them.
Yes. They are what each source cost, and leaving them out flatters the busiest one.
Because scope and price change between the two, and some confirmed orders are never invoiced.
Summed by customer, first invoice apart from later ones, so a source is credited once for each customer it produced.
Yes, where the export carries them.
Long enough for your sale — weeks for products, months for projects and contracts.
Any invoice with no matching lead. Its size is stated rather than distributed.
A contact detail, a source and a date on one side; a contact detail, an amount and a date on the other. No ledgers, no products, no notes. Encrypted in transit and at rest and deleted with the import.
Invoiced revenue per source, first and recurring invoices apart, the share of matches rebuilt outside the internal chain, and everything unmatched kept visible.
Nach Branche
Wie der Bericht aussieht, sobald der Export drin ist – für jede Branche eigens geschrieben.
Andere Systeme
Mehrere Systeme im Einsatz oder im Vergleich? Die Methode ist dieselbe, die Spalten sind es nicht.
Odoo und die anderen Produktnamen und Logos auf dieser Seite gehören ihren Inhabern und dienen nur dazu, die Software zu kennzeichnen, aus der eine Datei stammt. CloseRev ist mit ihnen nicht verbunden oder von ihnen empfohlen und verbindet sich mit keinem davon: CloseRev liest eine Datei, die Sie exportieren.
Heute starten
Nichts in Odoo zu installieren, kein API-Schlüssel, und Sie müssen bisher nichts getrackt haben. Das Vorjahr funktioniert so gut wie dieser Monat.