Cookie preferences

Choose what we may use. Strictly necessary cookies keep you signed in and can't be turned off; everything else is your call and changes nothing about how the site works. You can change your mind any time from the footer.

For NetSuite

The ledger is immaculate and it has never heard of your campaigns.

Export invoices from NetSuite, upload the leads behind them, and rank marketing on invoiced revenue.

No API key Nothing to install in NetSuiteNothing to install No card requiredNo card

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.

Last checked against NetSuite's own documentation on September 25, 2026.

The gap

Finance can tell you what every customer paid. Marketing can tell you what every campaign cost. Nobody has joined them.

NetSuite sees

What was sold, to whom, and for how much.

no shared row
Your ad account sees

The click, the keyword, the call, and what each one cost.

The file

What the export needs in it.

Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.

  1. Needed

    Customer phone or email

    On the customer record rather than the invoice. In a mid-market file the email on the billing contact is usually the durable key.

  2. Needed

    Invoice amount

    Invoiced, in the transaction currency and a reporting currency if you run more than one.

  3. Needed

    Invoice date

    When it was raised. Keep the customer's created date too — the gap is the sales cycle.

  4. Optional

    Subsidiary and item class

    Which entity billed it and what was sold. Both split a single number into decisions.

Step by step

Getting the file out of NetSuite.

Written for somebody with NetSuite open in the next tab. Report names vary by edition, so each step says what to look for.

  1. Build a saved search of invoices

    Customer contact detail, amount, date. A saved search exports to CSV without a developer, which is the whole requirement.

  2. Choose invoiced or collected and say which

    They differ by your payment terms and by customer. Whichever you pick, use it on every row and record it.

  3. Pick one reporting currency

    A multi-currency file ranked on mixed currencies ranks exchange rates. Convert once, at a stated rate, before anything is compared.

  4. Export your lead sources

    Campaign leads, call tracking, web forms, events and any partner or reseller registration.

  5. Upload both

    The join runs on the phone and the email, normalised, with unmatched invoices and unmatched leads both kept visible.

What comes back

The page NetSuite cannot show you.

Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the B2B SaaS page — not from a NetSuite account.

Traced to a channel$2,070,00069% of $3,000,000
Sales matched51 of 75high confidence only
Average sale$40,000per paid sale
ChannelShareSalesRevenue
Google Ads18$720,000
LinkedIn Ads21$930,000
Email marketing12$420,000
Direct / Unknown24$930,000

Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.

The argument

What changes when the invoice and the ad share a row.

The ERP is the only place the real number lives, and the hardest place to get it out of

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.

Subsidiaries and currencies turn one ranking into several

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.

Revenue recognition and the invoice date are not the same event

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.

Partner and reseller revenue is not marketing and should not be averaged in

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.

Fair questions

“NetSuite already does that.” Not quite.

They say

“NetSuite already reports revenue by customer.”

We say

It does, exactly. It has no record of the campaign that produced the customer, because that predates the customer record.

They say

“Our CRM has a source field.”

We say

Filled in by whoever created the record. Joining invoices to leads on the contact detail is a second, independent view of the same question.

They say

“Exporting from the ERP needs IT.”

We say

A saved search with three columns does not. Anything that does need IT is a sign the wrong export was chosen.

Questions

NetSuite, specifically.

Something else? Ask us and a person answers.

No. It reads a CSV you exported, so your ledger, your customers and your permissions stay exactly where they are.

NetSuite and the other product names and logos on this page belong to their owners and are shown to identify the software a file comes from. CloseRev is not affiliated with or endorsed by them, and connects to none of them: it reads a file you export.

Start today

Two exports, and you will know.

Nothing to install in NetSuite, no API key, and no need to have been tracking anything until now. Last year works as well as this month.