«NetSuite already reports revenue by customer.»
It does, exactly. It has no record of the campaign that produced the customer, because that predates the customer record.
Para NetSuite
Export invoices from NetSuite, upload the leads behind them, and rank marketing on invoiced revenue.
Sin clave de API Nada que instalar en NetSuiteNada que instalar Sin tarjeta de créditoSin tarjeta
CloseRev reads a NetSuite export of invoices — the customer's phone or email, the amount and the date — and matches it against the campaigns, calls and forms that produced the enquiry. NetSuite is the system of record for money in a mid-market company and has no view of what happened before the customer record existed, which is why the two halves have usually never met. Revenue with no traceable lead is reported as Direct / Unknown.
Comprobado por última vez con la documentación del propio NetSuite el 25 de septiembre de 2026.
La brecha
Finance can tell you what every customer paid. Marketing can tell you what every campaign cost. Nobody has joined them.
Qué se vendió, a quién y por cuánto.
El clic, la palabra clave, la llamada y cuánto costó cada uno.
El archivo
Tres cosas sostienen la coincidencia: quién, cuánto y cuándo. Todo lo demás es opcional y solo cambia cómo se puede desglosar el informe.
On the customer record rather than the invoice. In a mid-market file the email on the billing contact is usually the durable key.
Invoiced, in the transaction currency and a reporting currency if you run more than one.
When it was raised. Keep the customer's created date too — the gap is the sales cycle.
Which entity billed it and what was sold. Both split a single number into decisions.
Paso a paso
Escrito para quien tiene NetSuite abierto en la pestaña de al lado. Los nombres de los informes varían según la edición, así que cada paso indica qué buscar.
Customer contact detail, amount, date. A saved search exports to CSV without a developer, which is the whole requirement.
They differ by your payment terms and by customer. Whichever you pick, use it on every row and record it.
A multi-currency file ranked on mixed currencies ranks exchange rates. Convert once, at a stated rate, before anything is compared.
Campaign leads, call tracking, web forms, events and any partner or reseller registration.
The join runs on the phone and the email, normalised, with unmatched invoices and unmatched leads both kept visible.
Lo que recibe
Ingresos por canal, el número de ventas detrás de cada cifra y un grupo honesto para las que nadie pudo rastrear. Cifras de ejemplo, del caso práctico de la página SaaS B2B, no de una cuenta de NetSuite.
| Canal | Proporción | Ventas | Ingresos |
|---|---|---|---|
| Google Ads | 18 | $720,000 | |
| LinkedIn Ads | 21 | $930,000 | |
| Email marketing | 12 | $420,000 | |
| Directo / Desconocido | 24 | $930,000 |
Las ventas sin coincidencia quedan en Directo / Desconocido. Nunca se reparten entre los canales pagados para que el total se vea mejor.
El argumento
Revenue in a mid-market company is whatever the ERP says it is. Every other system holds an estimate: the CRM holds what somebody expected to close, the advertising platform holds what it can observe.
That makes NetSuite the right source for the money side and an awkward one for a marketer, because the export is a saved search rather than a download button.
It is still a marketer's task and not an IT project — a saved search with three columns, run once a month, is the whole mechanism.
What it is not is a CRM report. A closed-won opportunity is a forecast that somebody believed; an invoice is a claim on a customer, and they differ often enough to change a channel ranking.
Where both exist, exporting them together and measuring the gap per source is worth doing once. Discount-led channels show the widest gap, reliably.
A company on NetSuite usually has more than one entity, and frequently more than one currency, which is most of why it is on NetSuite.
A blended figure across subsidiaries answers a question nobody asks: marketing is bought per market, and a channel that works in one territory often does nothing in another.
Converting to one reporting currency at a stated rate is the minimum. Splitting by subsidiary is what makes the answer actionable.
The report does both where the export carries them, and states the rate used, because a ranking that moves when the euro moves is not a ranking of marketing.
This is the most common reason an ERP-based attribution report gets argued with rather than acted on.
Where revenue is recognised over a term — a subscription, a multi-year licence, a service contract — the recognised amount and the invoiced amount describe different months.
Attributing on recognition spreads one decision across a schedule and credits whatever marketing was running each period, which is the same error progress billing causes elsewhere.
Summing by customer and attributing the whole contract to the lead that produced it keeps one decision as one number.
The report sums by customer across the window and keeps the first invoice apart from later ones, so a renewal is not silently credited to the original campaign.
Where you want the recognition view as well, run it as a second report and label it — do not mix the two bases in one ranking.
Deals that arrive through a channel partner have a different cost, a different margin and a different acquisition story from anything a campaign produced.
Pooled, they inflate whichever source happens to be running and understate the real cost of the direct channels.
Where the export flags the partner, the report splits on it and the direct ranking becomes honest.
It also gives the partner programme a revenue number of its own, which is usually the first time anybody has put one beside the cost of running it.
Preguntas justas
It does, exactly. It has no record of the campaign that produced the customer, because that predates the customer record.
Filled in by whoever created the record. Joining invoices to leads on the contact detail is a second, independent view of the same question.
A saved search with three columns does not. Anything that does need IT is a sign the wrong export was chosen.
No. It reads a CSV you exported, so your ledger, your customers and your permissions stay exactly where they are.
Invoices with a customer contact detail, the amount and the date, from a saved search.
Either, chosen once and recorded. They differ by payment terms and by customer, and mixing them across sources compares accounting rather than marketing.
Convert to one reporting currency at a stated rate before anything is compared. A ranking that moves with the exchange rate is not a ranking of marketing.
Yes, where the export carries one, and for a multi-entity company it is usually the point.
Attribute the contract on the decision rather than across the schedule. Run a recognition view as a second, labelled report if you want it.
Reported separately from the first invoice, so the decision stays yours.
Yes, where the export flags them, and they should be — their cost and margin are nothing like a campaign's.
Long enough for your sales cycle, which in mid-market is usually a year or more.
Any revenue with no traceable lead. Its size is stated rather than distributed across the measurable channels.
A contact detail, an amount and a date, plus a subsidiary or class if you include them. No ledger, no bank details, no purchase orders, no contracts. Encrypted in transit and at rest and deleted with the import.
Invoiced revenue per source, split by subsidiary where available, first and repeat business apart, and everything unmatched kept visible.
Por sector
Cómo se ve el informe una vez cargada la exportación, escrito para cada uno.
Otros sistemas
¿Usa más de un sistema o está comparando? El método es el mismo; las columnas, no.
NetSuite y los demás nombres de productos y logotipos de esta página pertenecen a sus propietarios y se muestran para identificar el software del que procede un archivo. CloseRev no está afiliada a ellos ni cuenta con su respaldo, y no se conecta a ninguno: lee un archivo que usted exporta.
Empiece hoy
Nada que instalar en NetSuite, sin clave de API y sin necesidad de haber rastreado nada hasta ahora. El año pasado funciona igual de bien que este mes.