Salesforce to NetSuite
Invoice Automation
Closed Won in Salesforce should mean a posted invoice in NetSuite. Ari reads the opportunity, its products, and the signed contract, then creates the customer and invoice under the right subsidiary with the right items and terms.
How it works
Closed Won to a posted NetSuite invoice, with no NetSuite login for sales.
Opportunity marked Closed Won
Items, subsidiary, and terms resolved
Customer matched, invoice posted
Finance reviews in Slack
A Closed Won webhook starts the run. Ari resolves the NetSuite customer, subsidiary, items, and terms from the opportunity and the contract, posts the invoice, and reports the result in Slack.
Salesforce to NetSuite invoice automation means a Closed Won opportunity produces a NetSuite invoice with the correct customer, subsidiary, items, revenue accounts, and terms record, without anyone re-keying the deal. LedgerUp does this with Ari, an AI agent that reads Opportunity fields, Opportunity Products, and the contract PDF attached to the record, matches or creates the NetSuite customer, creates the invoice through SuiteTalk REST, and writes invoice and payment status back to Salesforce. It runs without Revenue Cloud, without middleware, and without a developer on either side.
Looking for the step-by-step implementation walkthrough rather than the product overview? Read the Salesforce-to-NetSuite invoicing guide.
What LedgerUp does with Salesforce + NetSuite
Built around how NetSuite is actually configured: subsidiaries, items, terms records, and revenue accounts.
The Closed Won Stage Change Is the Trigger
LedgerUp listens for the Opportunity stage change through the Connected App, so the trigger is the event your sales team already uses. There is no Flow, Process Builder, or Apex trigger to build. If your org signals billing readiness with a custom stage name or a checkbox on a custom object, that field can be the trigger instead.
Customer Matched Under the Right Subsidiary
Before creating anything, Ari checks the Salesforce Account against existing NetSuite customer records, including the subsidiary and currency on each record. A new customer is created with the subsidiary, terms record, and billing contact taken from the Account. An existing customer is reused, which is how you avoid the second and third copies of the same company that hand entry produces.
Opportunity Products Mapped to NetSuite Items
Each Opportunity Product, or CPQ quote line, maps to a NetSuite item that already carries its income account, deferred revenue account, and tax code. Ari carries quantity, unit price, and discount from the Price Book entry, then reads the attached contract PDF for anything the line does not capture, such as a price ramp, a prepaid true-up, or a service period that differs from the close date.
Invoice Number and AR Status on the Opportunity
Once NetSuite posts the invoice, LedgerUp writes the invoice number, due date, amount open, and paid date to fields on the Opportunity or Account. Reps and CSMs see AR aging without a NetSuite license or a saved search built for them, and Ari flags the account in Slack when an invoice goes past terms.
LedgerUp vs Revenue Cloud vs Celigo vs custom Apex and SuiteScript
Four ways to get an invoice into NetSuite from a Salesforce opportunity, and what each one asks of your team.
| Feature | LedgerUp | Salesforce Revenue Cloud | Celigo | Custom Apex + SuiteScript |
|---|---|---|---|---|
| What starts the invoice | Closed Won stage change delivered by webhook, or a custom field you choose | Order activation inside Salesforce, followed by a separate sync to NetSuite | A scheduled or real-time flow configured in the integration app | An Apex trigger or Platform Event you write and keep working through releases |
| Where billing terms come from | Opportunity fields, Opportunity Products, and the attached contract PDF, all read by Ari | Order Products and billing schedules set up in Revenue Cloud objects | Mapped Salesforce fields only; the signed contract is not read | Whatever fields the developer mapped when the code was written |
| Subsidiary and item handling | Customer matched to the subsidiary; each line mapped to a NetSuite item and its revenue account | Modeled in Salesforce first, then reconciled against NetSuite records | Configurable lookups per subsidiary and item, maintained by an admin | Hard-coded values or lookup tables inside the code |
| Setup effort | About a week, with no developer on either side | A Revenue Cloud implementation plus a NetSuite connector project | Integration app install, flow configuration, sandbox testing | Development, sandbox testing, and permanent code ownership |
| Payment status visible in Salesforce | Invoice number, open balance, and paid date written to the Opportunity; overdue flags in Slack | Payment state lives in Revenue Cloud objects rather than NetSuite AR | Possible with a reverse flow you configure and maintain | Requires a second integration running in the other direction |
| When data is missing or conflicts | Ari holds the invoice and asks in Slack, showing the contract clause and the Opportunity value side by side | Validation rules on the order; errors surface to the rep in Salesforce | Errors land in a dashboard for someone to fix and re-run | Debug logs and whatever alerting the developer remembered to add |
Salesforce to NetSuite billing scenarios
Where the subsidiary, item, and terms details decide whether the invoice is right.
Multi-Subsidiary Enterprise Close
A global deal closes in Salesforce with billing split across two NetSuite subsidiaries in different currencies. Ari reads the billing entities from the contract, matches or creates the customer under each subsidiary, and creates one invoice per subsidiary in the local currency with that entity's terms.
$480,000 platform agreement: $300,000 invoiced from the US subsidiary in USD on Net 30, $180,000 from the UK subsidiary in GBP on Net 45, both created from a single Closed Won opportunity.
CPQ Ramp Deal Billed Annually
A three-year CPQ quote ramps the price each year. The Opportunity Products show the year-one amount; the ramp only appears in the signed order form. Ari reads the PDF, creates the year-one invoice at close, and creates the later invoices with their future dates so no one hunts through the contract at renewal.
Year one $120,000, year two $150,000, year three $180,000, each billed in advance. The first NetSuite invoice posts at Closed Won; years two and three are created with their anniversary dates.
Services SOW on Milestones
A professional services SOW attached to the opportunity bills at kickoff, UAT sign-off, and go-live. Ari reads the milestone percentages and creates the NetSuite invoices with the Services item, the delivery department, and the right due dates, then asks in Slack before each later milestone invoice is released.
$90,000 implementation: 40% at kickoff, 40% at UAT, 20% at go-live. Three NetSuite invoices using the Services item so revenue lands in the services income account, not the subscription account.
Salesforce NetSuite integration FAQ
What finance and RevOps teams ask before connecting Salesforce opportunities to NetSuite invoicing.
Does LedgerUp create a NetSuite sales order or an invoice?
LedgerUp creates the customer invoice. Subscription and services companies usually bill straight from an invoice in NetSuite because there is nothing to fulfill. If your process requires a sales order first for inventory or fulfillment reasons, the item, subsidiary, and terms data Ari assembles is the same data the sales order needs, and that is worth walking through on a demo call.
How does LedgerUp connect to Salesforce and to NetSuite?
Salesforce is connected through a Connected App using OAuth, which gives LedgerUp read access to Opportunities, Opportunity Products, Accounts, Contacts, and attached files, plus write access to the specific fields you choose for AR status. NetSuite is connected through SuiteTalk REST with a token-based integration record your admin creates. No SuiteScript bundle, no Apex managed package, and nothing installed on a server.
How are Opportunity Products mapped to NetSuite items and revenue accounts?
During setup you map each Salesforce product, or Price Book entry, to a NetSuite item. The item already carries its income account, deferred revenue account, and revenue recognition rule, so once the mapping exists every invoice line posts to the right accounts. If an Opportunity Product has no mapped item, Ari flags it in Slack instead of guessing.
Does this work with NetSuite revenue arrangements and ASC 606?
NetSuite generates revenue arrangements from the invoice when Advanced Revenue Management is enabled and the items carry revenue rules. LedgerUp does not replace that. Its job is to make sure the invoice lines carry the correct items, quantities, and service start and end dates, so the arrangement NetSuite builds matches the contract. When the contract PDF states a service period that differs from the Opportunity close date, Ari uses the contract.
Do we need Salesforce Revenue Cloud, Billing, or CPQ for this to work?
No. Ari reads standard Opportunity Products and Price Book entries, and it reads CPQ quote lines if you already run CPQ. Revenue Cloud is not required, and you do not need to model orders or billing schedules in Salesforce. When the products on the Opportunity do not tell the whole story, such as a discount or ramp that only appears in the signed order form, Ari takes it from the contract.
Can our sales team see NetSuite AR aging without a NetSuite login?
Yes. LedgerUp writes the invoice number, open balance, due date, and paid date to fields on the Opportunity or Account, so a rep or CSM can check whether an account is 30 days past terms before a renewal call. Ari also posts overdue flags to a Slack channel you pick. Nobody has to build a saved search or grant NetSuite seats to sales.
Related integrations
Other ways LedgerUp connects the systems on this page.
LedgerUp for NetSuite
AR automation on top of NetSuite without SuiteScript: invoicing, collections, reconciliation.
LedgerUp for Salesforce
How billing runs from closed-won opportunities: contract and CPQ lines read, invoices and subscriptions created, AR status on the account.
NetSuite billing and AR automation
Invoicing, collections, and reconciliation in NetSuite from CRM deals and Stripe payouts.
Salesforce billing automation
Invoices, subscriptions, usage, and milestone billing from closed-won deals into Stripe, QuickBooks, NetSuite, Xero, or Sage Intacct, without Revenue Cloud.
Salesforce to Sage Intacct
Multi-entity Sage Intacct invoices from closed-won Salesforce opportunities.
Salesforce to QuickBooks
QuickBooks invoices on closed-won, no manual handoff between sales and finance.