Customer Relationship Management (CRM)

Customer Relationship Management (CRM). CRM is the commercial front: accounts, opportunities, quotes, and configuration that becomes demand. The quote line is a product identity — not a CRM SKU mapped later by a summer intern.

In industry this is Salesforce / Dynamics CRM / CPQ-class commercial capability. In N23D it is not a seat next to someone else’s stack. It is a peer module on one native Rust binary — N23D — 100% Rust we write.

Auto dealership exterior — commercial ops that quote VariantId

Same product. Won work becomes an ERP sales order on that LegalEntityId. The thing you sold is the thing CAD named, MAT specified, and the floor will build. A configuration that cannot be checked in is a hope, not a quote.

What CRM actually does

  • Accounts, contacts, hierarchies, territories. Leads and conversion. Opportunities, pipeline stages, forecast. Activities (call, mail, task) stored here. Send via the user’s mail later.
  • Product catalog bound to released PLM items. CPQ: options from PLM configuration rules, price lists, discounts with approval. A configuration that violates a PLM exclude-rule is refused. We do not replace PLM configuration rules with a second option engine.
  • Quotes with revision and expiry. Status: draft, sent, accepted, expired. Accepting a quote is idempotent: one sales order, same lines, same configuration snapshot. A second accept is a no-op.
  • Cost from ERP appears on the quote margin. CRM does not store a parallel cost card. A quote may show material spec text from Materials. No constitutive data.
  • Cases and service requests, light. Complaints escalate to QMS.
  • A won NPI opportunity can spawn a PMO project.
  • Contracts, subscriptions, partner, and channel are later. 100% Rust we write. No Salesforce or Dynamics as the runtime.
Trade-show floor — opportunities that become ERP demand

How N23D puts this in one place

Most stacks fail the day after save, when the model, the ticket, or the invoice becomes someone else’s import. N23D removes that day. This module reads the same record as the others.

  • one native Rust binary: N23D. 100% Rust we write. No vendor kernel, ledger, PLC runtime, HRIS, or ITSM as the source of truth. File readers and protocol bridges are interchange.
  • One identity plane: Item, VariantId, Person, and AssetId are global. Invoice, work order, inventory, quote, pay result, and NCR sit on a LegalEntityId.
  • One digital thread: modules read the same record. There is no daily STEP shuffle as the workflow. Check-in is PLM save. CAM does not fork the body.
  • Command::Core is the identity and policy plane. CCB is the full-spectrum change spine (not a second vault). TIX holds operational life of assets; ERP sees only the financial view.
  • Materials only from MAT. CAD selects VariantId. Missing density means mass is unknown — we do not invent a number so a BOM or plot closes.
  • ERP is one company’s books. BUS holds HR, org, legal entities, and group consolidation. HoldCo is not a plant. No fake Form 1120. No fake Lohnsteuer.
  • Configurator options come from PLM (from CAD structure). Margin uses ERP cost.
  • CRM does not own accounts receivable. Accept writes the order; second accept is a no-op.
  • Price, promise date, and configuration sit on the identity MES will complete.
Dealership showroom campus — CRM quotes the stack already has

What we will not fake

This is the product promise, not a claim that every solver and every pack already ships in the binary today. Industry-class names below are capability equals. They are not products we ship.

  • We do not ship Salesforce as the runtime.
  • CRM does not invent a second catalog. Dealer spreadsheets are the habit we retire.
  • File readers are interchange.

If you still map SKUs after you buy this, we failed. One identity from quote to ship.

Natively connected, not glued together

N23D runs one data model across design, make, operate, and the business. Nothing is exported as the daily path. Nothing is re-keyed. Nothing is lost in translation between vendors.

  • One data model. A part, an order, a nonconformance, a ticket, and a change point at the same objects. No mapping tables, no nightly sync, no drift.
  • No export/import loss. Geometry, tolerances, revisions, asset state, and history stay intact because they never leave the system as the daily path.
  • Auditability by default. Every change is versioned and attributable, so traceability is a query, not a project.
  • Speed. 100% Rust: native performance, small footprint, no runtime surprises.
  • Sovereignty. Your data, your infrastructure, your rules. No lock-in.