ERP.net with Operator Apps

Custom apps on top of your live ERP.net data

App Builder apps are single-page apps you describe in natural language. When an ERP.net instance is connected, those apps can read and write your live business data — without you handling a single credential.

How an app reaches ERP.net

The app calls the ERP.net Domain API through Operator:

// Read
const res = await operator.fetch('/Crm_Sales_SalesOrders?$top=5&$select=Number,DocumentDate,DisplayText');
console.log(res.value);

// Write
await operator.fetch('/General_Products_Products', {
  method: 'POST',
  body: { Name: { en: 'Test product' } }
});

What Operator does around that call:

Knowing who is using the app

An app can ask Operator who it is running for — the Operator account, the ERP.net user of the current instance, and the instance itself. That is how apps filter to "my activities" or stamp a record with the responsible person.

Building apps against your model

The App Builder agent has the same ERP.net understanding as other agents: it discovers entities, reads your custom attributes, and honours your Entity Instructions while it writes the app. Describe the app in business terms — "a board of open service cases grouped by responsible person, with a button to close a case" — and it resolves the entities for you.

If the data you describe does not fit an existing ERP.net entity, the builder will say so and ask, rather than silently inventing storage. For app-owned data that genuinely does not belong in ERP.net, use Pro Apps table and file storage.

Where these apps run

The same app can run inside the Operator workspace, full-screen on its own address, embedded in the ERP.net Web Client, or installed on a phone as a PWA. See Deployment Options.

Practical patterns

Limits worth knowing