End-to-End Workflow · New Sales Order → Final Build

10-step flow · SF → NS → MRP → Procurement → MES → Acceptance
01Create Opportunity
02Sync to NetSuite
03SO + Project
04MRP Run
05Release POs
06Vendor Acks
07Items Received
08Financials Update
09MES Build
10Acceptance & Recognise
☁ Step 1 · Salesforce

Create new Opportunity for an existing or new account

Sales rep enters opportunity details · CLIN structure · contract terms. On Closed-Won, this auto-syncs to NetSuite via the SF→NS connector.

Will be matched / created in SF Account list (and NS Customer master)
CLIN #
Description
Amount (USD)
Due date
Total Contract Value: $0.00
⚡ Step 2 · SF → NS Connector

Salesforce pushes the closed-won opportunity to NetSuite

The Celigo / native SF→NS connector creates the corresponding NS records: Customer (matched on Account ID) · Sales Order (with CLIN line items) · customrecord_contract · Project · ARM revenue arrangements.

Salesforce 0014P00002Cz1QR
Andromeda · SAT-002
SF→NS sync
NetSuite CUST-NEW (creating…)
SO-NEW (creating…)
SF Account → NS Customer
✓ Synced
idempotent on SF Account ID
SF Opportunity → NS SO
✓ Created
CLINs become SO line items
SF Contract → NS customrecord_contract
✓ Stored
FFP terms preserved
SF CLIN schedule → ARM
— obligations
ASC 606 distinct test PASS
◆ Step 3 · NetSuite · Sales Order created

NS creates SO + Project · drives MRP demand signal

The new SO is now a manufacturing demand on item SAT-002. The linked Project record begins accruing costs and CPI/SPI tracking. ARM auto-allocates the price across ASC 606 performance obligations.

Sales Order #
SO-2026-0501
$147.5M
Project ID
PROJ-ANDROMEDA-SAT-002
PM: Eduardo Garcia
CLIN line items
7
mapped from SF
ARM obligations
7
ASC 606 allocated
Drives MRP demand
SAT-002 × 1
need by 2028-06-30
📡 Demand Cascade · what just happened in NetSuite:
  1. SO line item 4 (CLIN-004 · Bus Manufacture) references item SAT-002
  2. Project PROJ-ANDROMEDA-SAT-002 created · pegged to SO
  3. ARM created 7 revenue arrangements · auto-allocated $147.5M across obligations using SSP
  4. MRP demand signal queued · waiting for next MRP run (or run-on-demand)
◆ Step 4 · NetSuite Manufacturing

MRP explodes the BOM + plans POs and Work Orders

MRP reads the SAT-002 BOM (synced from Arena PLM) and explodes it against the new demand. For each component: need_date − lead_time − safety = PO release date. Long-lead components are flagged first.

BOM lines exploded
93
8 sub-assemblies + 85 components
Planned POs
~50
long-lead first
Planned Work Orders
4
3 sub-assy + 1 final integ
Critical path
40 wk
PROP thruster + PAY telescope
Action messages
Release: 14
Future: 36 · Expedite: 0
⚙ MRP Algorithm (this is what just ran):
for each component in BOM_explosion(SAT-002, qty=1):
    need_date = LRD - assembly_buffer (12 weeks for sub-assy + final integ)
    po_release_date = need_date - lead_time - safety_2_weeks
    if po_release_date < today + 30:  release immediately
    elif po_release_date < today + 90:  schedule for release
    else:                                future plan
generate planned POs sorted by lead time descending
◆ Step 5 · NetSuite Procurement

POs transmitted to each vendor (EDI 850)

Buyer reviews + approves planned POs · NS transmits via EDI 850 to each vendor. Each PO is unique · DPAS-rated · ITAR-flagged. Vendors send back EDI 855 acknowledgments.

POs released today
0
EDI 850 transmitted
Total committed
$0
long-lead first
Unique vendors
0
all DPAS+ITAR qualified
Awaiting ack
0
EDI 855 expected 24h
📨 Step 6 · Vendor side

Vendors acknowledge · accounts updated

Each vendor receives the PO · sends EDI 855 acknowledgment. NS auto-matches the ack to the PO · updates status to "Open · Acknowledged". Vendor account YTD spend reflects new committed amount.

Acks received
14 / 14
100% · avg 6 hrs
Vendor master updates
8 vendors
YTD spend bumped
EDI 856 ASN expected
2026-08 → 2027-04
staged by lead time
3-way match prep
Active
PO ↔ Receipt ↔ Bill
📊 Vendor Account Updates (sample):
Vendor
Prev YTD
+ This PO
New YTD
Blue Canyon Tech (V-00342)
$729.6K
+$729.6K
$1.46M
Aerojet Rocketdyne (V-01188)
$1.84M
+$1.84M
$3.68M
L3Harris (V-01294)
$2.10M
+$2.10M
$4.20M
📦 Step 7 · NS Inventory

Items received · QA inspected · routed to bins

Each ASN triggers a receiving event. Receiving + QA (2-person rule for ITAR) record serial numbers · run incoming inspection · route to appropriate bin (cleanroom, ITAR cage, kitting). 3-way match runs automatically.

Items received
14 / 14
all PASS QA
Serials recorded
38
vendor lot ↔ NS serial cross-ref
3-way match
PASS
$0 variance · AP unblocked
NCRs raised
2
both closed (use-as-is + rework)
📥 Sample receipt:
Receipt #:
RCV-2026-0712
From PO:
PO-2026-1148 (Blue Canyon Tech)
Item:
ADCS-RW-MEDIUM-A × 4
Serials:
SN-2026-RW-0142, 0143, 0144, 0145
QA:
PASS · QA-2026-0142 · K. Walsh (QA-III)
Route:
RCV-DOCK-A2 → STAGING-INTEG-A (cleanroom · ISO 8)
💰 Step 8 · NetSuite Financials

Financials reflect across AR · AP · GL · Project P&L

Vendor bills post against received POs. AP increases · cash projections update · project costs accumulate. ARM begins recognising revenue (cost-to-cost on long-lead). EVMS dashboard updates with new actuals.

AP balance
+$5.4M
vendor bills posted · DPO 31d
Project cost-to-date
+$5.4M
direct material · pegged to SO
Revenue recognised
+$1.7M
ARM cost-to-cost · CLIN-003
Cash · 90d forecast
-$5.4M
scheduled vendor payments
CPI
1.04
favourable · price discount
SPI
0.97
3% behind · watch PROP critical path
🧾 Sample JE (auto-posted on receipt + bill):
JE-2026-0816 · 2026-04-30 · Period 2026-04 (closed)

Dr  1320 · Inventory · raw materials · S-01    $5,400,000
Cr  2100 · AP · vendor bills · S-01                       $5,400,000

Dr  1210 · Unbilled receivable · S-01           $1,700,000
Cr  4200 · Material Revenue · CLIN-003 · S-01             $1,700,000
        (ARM cost-to-cost · 7.7% of CLIN-003 BAC)
⬛ Step 9 · MES (Tulip / Solumina / 42Q · TBD)

WO released to MES · build progresses through 9 stages

When all materials arrive, NS releases the WO to MES. Operator clocks in · executes traveler ops · captures torques + serials + tests. NCRs flow back to Arena QMS. Each stage close-out triggers ARM recognition (units-of-production for CLIN-004).

1Receiving
2Sub-assy
3Subsys integ
4⚡ Bus integ
5Func test
6Env test
7Final assy
8Acceptance
9Ship
Stages complete
3 / 9
22% (3 of 9)
Current stage
Stage 4 · Bus integ
5 of 12 ops · 42%
Operators · today
5
all certs current
NCRs
2
both closed
Materials traceability
100%
serial → PO → vendor lot
Revenue rec from MES
+$3.5M
units-of-prod · CLIN-004
✅ Step 10 · Acceptance + Recognition

Stage 8 · DCMA signs DD-250 · revenue recognised · invoice issued

After environmental + final assy + ATP witness, customer + DCMA QAR sign acceptance (DD Form 250). This triggers the FFP milestone: ARM recognises remaining CLIN-004 + CLIN-005 · invoice posts · 30-day warranty clock starts.

DD-250 status
✓ Signed
DCMA QAR · J. Ortiz
Final acceptance
PASS
47 of 47 ATP steps
Revenue recognised
+$58M
CLIN-004 · units-of-prod final
Invoice issued
$58M
to customer · Net 30
Warranty period
30 days
starts on signoff
Project margin
21.2%
$31.3M actual · on plan

🎉 End-to-end flow complete

A new opportunity created in Salesforce flowed through 10 systems / events to deliver a satellite. The architecture maintained traceability from contract valueBOMPOsserialsbuildrevenue. Every dollar billed traces back to a specific contract milestone. Every part installed traces back to a specific PO. Every NCR traces back to ECO/CAPA in Arena.