SmartApps Data-driven apps

Data-driven apps start from the records.

Most exceptions in a business are rows: a late order line, a blocked invoice, a stock position with a year of cover, a count that differs from the book.

DATA-DRIVEN APPS: THE FLOW STARTS FROM THE RECORDS1Define thecriteriathe conditionthat marks arecord as anexception2Find therecordsthe criteria runon live tablesand pick the rows3Attachpeople andappeach record getsits owners andits app flow4Cache therecordlistseach person seestheir own list5Launchone process IDand workbench perrecord6Monitoruntil each flowends7Logevery step fromstart to finish
Seven steps, and the first one is a test: the criterion shows which live rows it selects as it is written.
7
steps from criterion to central log
method
1
process ID and workbench per record
product
7
data-driven app types in the catalogue
catalogue
31
cases opened at 08:14 in the late purchase order story, 9 above 50,000
illustrative
44 min
from an anomaly to its resolution in the showcase incident, with the case created and routed by rule
showcase estate
The concept

Identified and isolated records, each carried to the end

The starting point is data that already exists.

In a data-driven app the starting point is already existing data. The app operates from identified and isolated records: a criterion, written and tested on the live tables, marks the rows that need a decision. The platform stores the list, attaches to each record the app flow that will handle it and the people who own it, caches the record lists per person so each owner sees their own queue, launches the app per record with a unique process ID and workbench that isolates the end-to-end flow, monitors each flow until it finishes, and logs every step centrally from start to finish.

The criterion is the heart of it. It is an expression on the fields of one or more data handlers, for example open order lines whose delivery date is within five days and whose received quantity is below the ordered quantity. The editor shows the rows it selects as it is typed, so the threshold is right before the app runs.

Owners are attached by rule too: the buyer of the purchasing group on the order, the steward of the material's domain, the plant controller of the cost center. When the rule finds nobody, a default owner receives the record and the gap is reported.

Define the criterionA screen for the expression, with a test that shows the matching rows and their count.
The workbench

One running instance: its process ID, its step, its clock and its log

Workbench · process ID PR-2026-04471 · Late purchase order · started 08:14 · owner Priya SharmaDetected08:14Buyer review08:20Supplier replydue 12:00DecideUpdate POlog08:14 criteria PO_LATE matched EKPO 4500012345/00010 · owner assigned by vendor group · notification sent08:20 Priya opened S01 · set reason = supplier capacity · action ask_supplier → portal message created08:21 clock started · 4 h · escalation to L2 buyer lead if unanswered
A workbench for one late order line. The step strip shows where the flow is; the log shows what happened, when, and by whom; the clock shows what escalates if nobody acts.

A workbench is the running instance seen by its owner: the screens of the flow in their current state, the process ID, the step the instance is on, the clock on that step and the log so far. Because each record has its own instance, two late lines from the same supplier are two workbenches with two logs, and a board aggregates them for the buyer lead: how many, how old, what value, which ones escalate today.

The same pattern serves control-tower exceptions. The Backbone's checks and exceptions raise the rows; a data-driven app is where people decide on them, with the decision written back and logged.

Process IDUnique per instance; appears in every log line and every notification.PR-2026-04471
StepThe node the instance is on, with its screen.Supplier reply
ClockTime left on the step; what happens when it runs out.4 h → escalate
OwnerThe person resolved by rule, plus alternates.buyer of group 101
BoardAll instances of the app by step, age, owner and value.31 open
LogEvery step with values, decisions and acknowledgements.central
Worked example

Late purchase order expediting

From the criterion at 08:14 to the order updated in the ERP.

08:14
31 records identifiedThe criterion selects open lines with delivery date within 5 days or past, and received quantity below ordered. Each becomes an instance owned by the buyer of its purchasing group.
08:20
Buyer opens the workbenchThe line, its schedule lines, receipts to date and the stock it covers, read in place from the ERP; one click sends the question to the supplier's portal screen and starts an 8-hour clock.
11:30
Supplier repliesNew date and quantity arrive on the portal screen; the planner sees whether the new date covers demand.
14:05
DecisionThe buyer splits the line and re-sources the gap; a cancel above 50,000 would have gone to the buyer lead.
14:06
Order updatedThe schedule line is changed through the ERP's released interface; the acknowledgement is stored; the instance closes; the board shows 30 open.
From the catalogue

The seven data-driven app types

Terms on this page

Flow criterionA condition, written in the expression editor, that moves a flow from one level or box to the next. A trigger criterion is the condition that starts the flow.
WorkbenchThe running instance of an app for one case: its process ID, the screens in their current state, the clock on the current step and the log so far.
Read in placeThe rows stay in the system that owns them. The app sends the filter and the columns it needs, and the system returns the matching rows.
Decision logThe append-only record of every step, value and decision in every app instance, with the person, the time and the acknowledgement of any write-back.
Record listThe set of rows a criterion selected, stored with the owners and the app flow attached to each row.
IsolationEach record runs in its own instance, so decisions, clocks and logs stay separate even when records share a supplier or a material.
Questions

How often does the criterion run?

On a schedule you set, or on change capture where the source supports it, so a new match appears within minutes. Resolved rows close their instances automatically when the criterion stops matching, with the log recording why.

What if the same row matches two apps?

Both instances exist and both logs refer to the same row; a board can show them together. A rule can also give one app precedence and suppress the other.

Can an agent handle the routine ones?

Yes. An agent can propose the decision on each record and the person accepts or changes it in the workbench; within stated limits the agent can act and the person reviews the log. The instance and the log are the same either way.

How large can the record list be?

The criterion runs in the source through the data handler, so the size is the source's business. Lists of tens of thousands of rows are cached per owner; the board aggregates them.

See a SmartApp built on your data

Bring one process and the systems it touches. In the first session we register the data handlers, draw the levels or the lanes and run the first screen on your live rows.