For distributors running Oracle NetSuite

Stop quoting away your margin on NetSuite.

PIE connects to the Oracle NetSuite book you already run, reads the trading history in it, and checks every new quote line against your own margin floor before it goes out — then reports the margin that held. Your ERP keeps the records; PIE decides nothing you did not set a policy for.

PIE does not replace NetSuite. It reads it. Your ERP stays the system of record, every row PIE holds is stamped with where it came from, and a full re-sync rebuilds what PIE derived from nothing.
How PIE connects to NetSuite

One sign-in, checked when you save it

Token-based authentication: an administrator creates one integration record and one access token for a role with query permission, and every request carries an OAuth 1.0a signature built from those four values. No browser round-trip and no certificate to renew. Reads go through SuiteQL and every query is a plain SELECT; a OneWorld account can scope a connection to a single subsidiary.

What your administrator does first

The permissions are granted on the role the access token is issued for, at Setup → Users/Roles → Manage Roles. Three of them are sign-in level — Log in using Access Tokens, REST Web Services, and SuiteAnalytics Workbook; a role with every list permission and not that last one authenticates and then answers nothing. Creating an estimate is the only permission above View level, and it is optional: without it everything else works and every send refuses.

What the first pull reads

The first pull is offered from the first day of the month 18 months back, and you choose the date before it starts. It runs as a background job that commits as it goes, so you can watch it move rather than wait on a spinner — and what the screens then report is the span the rows actually cover, not the window that was asked for.

What it reads, and what it writes

Exactly this, and nothing else

The list below is not a summary of the integration — it is the integration. Each line is a permission the NetSuite connector declares and a method that reads it, and a test holds the two against each other in both directions, so a capability cannot be claimed here and missing in the code.

  • Customerscustomer
  • Vendorsvendor
  • The item masteritem
  • Invoices, with their linestransaction · CustInvc
  • Vendor bills, with their linestransaction · VendBill
  • Customer paymentstransaction · CustPymt
  • Sales orderstransaction · SalesOrd
  • Purchase orderstransaction · PurchOrd

What PIE creates in NetSuite

A quote built in PIE can be created in NetSuite as an estimate — and that is the only thing PIE ever creates in NetSuite. The write is idempotent by construction: it upserts on the external id, so pressing send twice cannot put two estimates in front of your customer. It refuses rather than guessing — no NetSuite customer, no priced lines, or a line with no price or quantity, and nothing is sent. NetSuite would price an omitted rate from the item record, which is a number nobody here chose.

What PIE does not read from NetSuite

  • Item stock levels are not read in this version — NetSuite keeps them in a structure a flat query reads poorly — so the stock and GMROI screens stay empty on a NetSuite book and say why.
  • Payment applications, which payment settled which invoice, are not read either. The payments themselves are, so cash is visible; days-to-pay has no observations and reports that rather than a guess.
  • Estimates already in NetSuite are not imported, so a win rate has no denominator until you start quoting here.
  • Vendor payments are not read from any ERP, NetSuite included, so what has actually been paid out is outside what PIE can see on this book.
  • Credit notes are not read from NetSuite in this version, so a returned or credited line still counts as sold until you say otherwise.
  • Salespeople are not imported, so every decision routes to management until accounts are assigned inside PIE.
What it does with it

Three things, on your own numbers

Every figure is deterministic arithmetic over the rows above, stamped with the version of the margin policy that judged it. The AI on this platform reads those numbers and phrases them; it never produces one.

Every quote line, against your own floor

Cost comes off the vendor bills and the item master you already keep in NetSuite. PIE checks each new line against the policy you set, routes a breach for sign-off, and — where the grant allows it — writes the agreed quote back as an estimate rather than making somebody retype it.

Margin drift, per customer and item

SuiteQL gives PIE the line-level history to compute a margin per customer-item and compare it across windows. Every figure is stamped with the version of the policy that judged it and carries the operands it was computed from.

Decline and payment behaviour

Customer payments are read on a NetSuite book, so slipping payment and quiet decline are both on the attention list from the first sync. What is not read — which payment cleared which invoice — is stated on the screen that would have used it rather than estimated around.

Why it can be trusted

The AI never computes a single number.

Your NetSuite data and your rules determine the number. AI explains it.

Same inputs, same answer, every time — with a paper trail.

  • Deterministic calculations — every figure is arithmetic on your own records; turn AI off and every number still works
  • Auditable decisions — each number names the policy that produced it, so a price you quoted last quarter still explains itself
  • Your data — read from your own books, used for you alone, exportable and erasable on request; AI runs on your own account
  • Your rules — you set the floors and thresholds, and PIE holds every quote to them
  • Provenance — every row carries the connector, the connection and the id it came from, so nothing in PIE claims a source it did not have

Your NetSuite book already knows where the margin went.

30–45 minutes, your own numbers on the screen, and an honest answer about what PIE can and cannot see in Oracle NetSuite.