SmartApps Process apps

Process apps: draw the lanes and the boxes, then attach the screens, the roles and the criteria.

A process app is a drawing that runs. Lanes are roles; boxes are steps, each with a screen; arrows carry the criteria that move the work; decisions are expressions evaluated when a screen completes.

WARRANTY CHECK AND CLAIMCustomer or agentService agentAssessorSystemStartSerial lookupS01Record faultS01Covered?AssessS03Service orderwrite-backserial foundabove bandcovered, below bandapproved
The warranty check app as a drawing: four lanes, five boxes, two of them screens the customer and the agent share, one decision, and a write-back box that creates the service order in the ERP.
9
node types to choose from: start, screen, decision, parallel split and join, wait, notification, write-back, sub-process, end
product
6
properties per node: screen, period active, exceptions, variable exchange, email, notifications
product
22
process app types in the catalogue
catalogue
2–6
working days of configuration to production-grade, per catalogue entry
estimate
Step 1

Draw the lanes and the boxes

A lane per role, a box per step, a decision where the path splits.

The process configuration screen offers node types to place in lanes. A screen node carries a screen and the role that works in it. A decision node holds an expression evaluated when the previous screen completes: the value of a field, the result of a check, the answer of a function. Parallel split and join nodes run branches side by side and wait for all, or for the first, to finish. A wait node holds until a date, a clock or an event from a system. A notification node informs a role or a person. A write-back node calls a released interface of a system of record. A sub-process node runs another app and waits for its result.

Arrows carry criteria in the same expression language, so the drawing and the rules are one thing. A loop is an arrow back to an earlier box, usually with a note field required on the way.

NodePurposeTypical property
StartWhere an instance begins: a form, a criterion on records, a schedule or an eventTrigger criterion
ScreenA step a role performs on a screenScreen, role, period active
DecisionChooses the next arrow from an expressionExpression; default arrow
Parallel split / joinRuns branches at the same time; joins on all or firstJoin rule
WaitHolds until a date, a clock or a system eventEvent and timeout
NotificationInforms a role, a level or a listChannel, template
Write-backCalls a released interface and stores the acknowledgementInterface, mapping, retry
Sub-processRuns another app and waitsApp and version
EndCloses the instance and the logOutcome code
Step 2

Attach a screen to each box, and set the node's properties

Each screen node names a screen from the app's screen list, or a new one drafted from the data handlers it needs. The node's properties say how long it stays active, which exceptions it raises when the clock runs out, how variables are exchanged with the next node, and which emails and notifications go out when it starts and when it ends.

Because the screens are ordinary screens, a box can show a grid of live purchase order lines, a chart of the supplier's history and a decision panel side by side, on one screen, read in place through data handlers. The same screen can be used by two boxes, for example a customer's view of a claim and an agent's view of the same claim, with visibility rules on the components deciding what each role sees.

PropertyWhat it doesExample
Screen associatedThe screen the role works in at this stepS02 Line detail
Period activeHow long the step waits for the role; then the exception rule runs8 working hours
ExceptionsWhat happens on timeout or on an error from a systemEscalate to the buyer lead; retry the write 3 times
Variable exchangeWhich app variables the step reads and setssets app.decision, app.new_date
EmailTemplated mail on start or end, with a link to the workbenchSupplier asked: new date needed by Thursday
NotificationsSlack, Teams or in-app cards with action buttonsApprove / Return / Escalate buttons on the card
Step 3

Name the roles, then the people join through them

Roles can be inside or outside the company.

A lane belongs to a role, and people are attached to roles, so an app is defined once and staffed many times. A role can be internal (buyer, controller, quality engineer), external (supplier, carrier, customer, auditor) or a system (the ERP that receives the write-back). External roles work on portal screens: the same screens, delivered to an outside login, with the access policy deciding which rows the outside party sees.

Roles carry scopes, so a buyer role can be staffed per purchasing group and a supplier role per vendor number. When an instance starts, the platform resolves the person for each role from the instance's data: the buyer of the purchasing group on the order, the contact of the vendor on the order, the planner of the plant.

Internal roleStaffed by employees; resolved from the case data or a list.buyer · controller
External roleSuppliers, carriers, customers, auditors on portal screens.access policy applies
System roleA system of record that receives a write-back and answers with an acknowledgement.SAP · Oracle · Salesforce
ScopeWhich rows the role sees in this app.purchasing group · plant · vendor
ResolutionHow the person for a role is found when an instance starts.from the order · from a list
SubstitutionAlternates and delegates, as in collaborative apps.logged
Step 4

Write the criterion on each arrow

One expression language for start, arrows, decisions and clocks.

COMPONENT ACTION · GRD_CLAIMSTRIGGERa condition on the componentrow selected and status == 'in warranty'ACTIONthe executioncall dh_claims.read(claim_id) · runfunction check_coverage()OUTCOMEwhat changesfill pnl_detail · enable btn_approve ·set app.claim_totalExpression editor= if(dh_claims.expires >= sys.today, 'in warranty', 'expired') ▸ test with claim CLM-2041 → 'in warranty' ✓
The expression editor is the same one used for actions on components. A criterion on an arrow is an expression that returns true or false; a decision node chooses the first arrow whose criterion holds.

The start criterion decides when an instance begins: a form submitted, a record that matches a condition on live rows, a schedule, or an event from a system such as a goods receipt or a Change Data Capture message. Arrow criteria decide the path: a claim below the band goes straight to the write-back node, a claim above the band goes to the assessor. Clocks decide time: a step active for 8 working hours, then the exception rule.

Every criterion is tested where it is written. Pick a live row, and the editor shows the value of the expression for that row; change a threshold, and the count of rows the start criterion selects updates as you type. A criterion that references a field the data handler lacks is flagged before the drawing is saved.

Startform submitted · rows match · schedule · system eventone per app
Arrowtrue or false on the instance's variables and rowsone per arrow
Decisionfirst arrow whose criterion holds; a default arrowper decision node
Clockperiod active, then the exception ruleper node
Loopan arrow back to an earlier node, with a note requiredany node
Testlive value for a chosen row; row count for a start criterionas you type
Worked example

The warranty check, box by box

A serial number, a coverage check, a claim decision, a service order.

09:05
Serial lookupThe agent scans the serial on the mobile screen; the coverage card shows product, customer, the sales order line that delivered the unit, the warranty start and end and earlier claims, all read in place.
09:12
Record faultFault type, description and 2 photos; submit. The decision node evaluates: fault date within the warranty end, fault type covered, estimate below the band.
09:12
Covered, below bandThe arrow to the write-back node holds; the service order is created in the ERP through the released interface and the order number is stored.
10:30
Above band: assessorFor a larger claim the arrow to the assessor holds instead; the assessor sees the same case with the estimate and approves, and the write-back follows.
Same day
Customer informedThe notification node sends the appointment to the customer's portal screen; the instance ends with outcome 'covered repair' and a complete log.
The wider pattern

Process apps cover forms, surveys and business applications with data processing

From the catalogue

The twenty-two process app types

Terms on this page

Process appAn app built by drawing lanes and boxes first, attaching a screen to each box, naming the role that owns each box, and writing the criterion on each arrow.
LaneA horizontal band in a process drawing that belongs to one role; the boxes in it are the steps that role performs.
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.
Write-backA change made by the app in the system of record through that system's released interface, with the acknowledgement stored beside the decision.
Expression editorThe place where conditions, calculations and actions are written in a short formula language and tested against live values as you type.
Questions

Is this BPMN?

The drawing uses the same ideas people know from process notation: lanes, tasks, gateways, events. Lima keeps the vocabulary plain (lanes, boxes, decisions, waits) and keeps the drawing and the rules in one place, so the picture on the screen is exactly what runs.

Can a step run automatically?

Yes. A write-back node, a pipeline handler or a function runs with a person watching the log while the system acts. Where a step should decide by rule, a decision node with the rule replaces the screen.

How do two companies share one process?

Each outside role works on portal screens under its own login. The access policy limits what each party sees, the signatures node lets both sign the same version, and the log shows both sides' steps in one record.

What if a system is down during a write-back?

The node's exception rule decides: retry on a schedule, hold the instance in a wait node, or route to a person. The acknowledgement is stored only when the system confirms, so the log always says what happened.

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.