SmartApps Collaborative apps

Collaborative apps: define the levels first, and everything attaches to them.

Cross-functional work inside the company follows the organisation. A collaborative app starts there: you define the functions and their levels, attach a screen to each level, assign the people at each level, and then write the criteria that start the flow and move it between levels.

HIERARCHY DEFINITIONProcurementLevel 1: buyerscreen · usersLevel 2: category leadscreen · usersLevel 3: chief procurementofficerscreen · usersFinanceLevel 1: controllerscreen · usersLevel 2: CFOscreen · usersLegalLevel 1: counselscreen · usersa person created at a level is assigned their parent-level and child-level users at the same timeTrigger and flow criteriacontract value > 1,000,000 → Procurement L1 → L2 → L3; Finance L1 and Legal L1 in parallel with L2
A hierarchy definition with three functions. Each level carries a screen and its people; the criteria at the bottom decide where a flow starts and how it moves. A person created at a level is assigned their parent-level and child-level users at the same time.
4
things defined, in order: hierarchy, screens, people, criteria
method
4
collaboration types on a hierarchy: approval, escalation, task assignment, tracking
product
9
activity types: approval, assignment, escalation, broadcast, notification, FYI, comments, permissions, multi-party signature
product
2
kinds of record: the rules (meta data) and the traces of each running instance (run-time data)
product
11
collaborative app types in the catalogue
catalogue
Step 1

Define the functions and their levels

A hierarchy is people-centric: the data and the actions follow the people, so the hierarchy comes first.

A collaborative app begins with a hierarchy definition: the functions that take part and the levels inside each one. A function such as procurement may have three levels, buyer, category lead and chief procurement officer; finance may have two; legal one. Each level records how many parent levels and child levels it has, so the platform knows where a flow goes up and where it fans out.

A process can use several hierarchies for different purposes: the organisation chart for approvals, a project hierarchy for tracking, a functional hierarchy for escalations and notifications. Each hierarchy captures organisation-and-person combinations, so the same person can sit at one level in one hierarchy and at another level in a second.

The hierarchy is data, kept with the app definition and versioned with it. When the organisation changes, the hierarchy changes, and running instances keep the hierarchy version they started on.

HierarchyUsed forExample
Organisation hierarchyApprovals that follow reporting linesCapital request: plant, division, group
Functional hierarchyEscalations and notifications inside a functionLate invoices: AP clerk, AP lead, controller
Project hierarchyTask assignment and tracking on a projectNew product introduction: workstream leads, launch lead
Approval hierarchySign-offs by value bandJournal entries: preparer, reviewer, approver
Parallel hierarchiesSeveral functions deciding side by sideS&OP: demand, supply, finance, executive
Step 2

Attach a screen to each level

Each level has a specific view of the data.

Every level gets a screen, composed from the same components as any other screen: grids, fields, charts, buttons and pop-ups. What differs is the view. For approvals the data is attached at the lowest level and each higher level sees the same case with less detail and a decision; for task assignment and tracking the data is attached at the higher levels and each lower level sees its own share.

A screen at a level reads through data handlers, so a buyer's screen lists the live purchase order lines of their purchasing group, and the category lead's screen aggregates the same rows by supplier. The access rules of the source apply at read time, and the level's own filter narrows the view further.

Screens can be generated from the hierarchy and the handlers: point the studio at the objects and the levels, and it drafts a screen per level with the fields each level decides on. Screens covers the components and properties in full.

LevelSeesDecides
Buyer (Procurement L1)Their own contract renewals: consumption against target, prices against the last ordersRenew, renegotiate or let lapse; proposes
Category lead (L2)All renewals in the category, ranked by value and riskApproves proposals below 1,000,000; returns with a note
CPO (L3)Renewals above 1,000,000 and the ones returned twiceFinal approval
Controller (Finance L1)The budget line each renewal draws onConfirms budget cover, in parallel with L2
Counsel (Legal L1)The clauses that changed since the last versionApproves clause changes, in parallel with L2
Step 3

Assign the people at each level

Alternates, delegates and outside parties are part of the definition.

People are assigned to levels, and a person created at a level is given their parent-level and child-level users as part of the creation, so escalation and fan-out have somewhere to go from the first day. Each level can name an alternate who acts when the primary is away, and a person can delegate to a named colleague for a stated period; the log records both names on every step taken under a delegation.

Outside parties can hold a level. A supplier level under a category, with portal screens, lets the supplier's planner and account manager take part in a forecast and commit cycle, seeing only the parts and orders the access policy allows. The Supplier collaboration portal app is built this way.

PrimaryThe person at the level who receives the work.one per level and scope
AlternateActs when the primary is absent; named in the definition.per level
DelegateNamed by a person for a period; both names logged.per person, dated
GroupA level can hold a group; the first to act takes the step.optional
Outside partyA supplier, carrier, customer or auditor at a level, on portal screens.access policy applies
ScopeWhich rows a person at a level sees: plant, category, region.filter per person
Step 4

Write the flow and trigger criteria

One rule per collaboration activity per level, written in the expression editor and tested on live rows.

The rules of a collaboration are meta data: for each activity they say which prior action triggers it, which function and level it happens at, which level comes next when the rule holds, what type it is (approval, escalation, task assignment or tracking), the rule that decides success, proceed or return, the table that holds the run-time data, the filter that identifies the rows, the screen at that level and how long the action stays active. The running instances are the run-time data: the traces of each activity, closely referencing the rules that produced them.

Collaboration rules · contract renewal · version 3 meta data
ActivityAfterFunction · levelNext levelTypeRuleScreenActive for
RENEW-1startProcurement · L1L2Task assignmentcontract.valid_to <= today + 90S015 working days
RENEW-2RENEW-1Procurement · L2L3 if value > 1,000,000 else doneApprovalproposal present and note presentS023 working days
RENEW-2FRENEW-1Finance · L1doneApprovalbudget cover confirmedS043 working days, in parallel
RENEW-2LRENEW-1Legal · L1doneApprovalclauses reviewedS053 working days, in parallel
RENEW-3RENEW-2Procurement · L3doneApprovalvalue > 1,000,000S035 working days
RENEW-Eanyparent levelsameEscalationclock expiredsameuntil acted
Six rules define the whole renewal collaboration. A running instance records, for each rule, who acted, when, and what the values were.

The trigger criterion starts the flow. It can be a condition on the data (contracts expiring within 90 days), a calendar (the first working day of the month), or a person at a level starting it by hand. The flow criteria then decide, at each level, whether the activity succeeded, proceeds to the next level, returns to a lower level or ends. Rules are written with screen, app, global and system variables and constants, in the expression editor, and tested against the live rows they will select.

Time limits belong to the rule: each activity stays active for a period, after which the rule for that level decides what happens: escalate to the parent level, pass to the alternate, or return to the requester with a note. The period can be a fixed date range, a number of days after the last action, or a bucket of the calendar such as working day 5.

The collaboration types

Approval, escalation, assignment and tracking, and the activities around them

APPROVAL FLOW · CAPITAL REQUEST > 250,000startLevel 1Plant controllertime limit 2 daysalternate approverapprovedLevel 2Division CFOtime limit 3 daysalternate approverapprovedLevel 3Group CFOtime limit 5 daysalternate approverreleasedIN PARALLEL WITH LEVEL 2Legal reviewcontract termsProcurementsupplier standingWHEN A CLOCK RUNS OUTThe rule for that level decides: escalate to the parent level, hand to the alternate, or return to the requester with anote. A delegate named by an approver acts in their place for a stated period, and the log records both names.
An approval flow with three levels in series, two functions in parallel with level 2, an alternate at each level, a time limit per level and an escalation rule when a clock runs out.

Approval flow

Number of levels, alternate approver at each level, delegation, series or parallel, a time limit per level and an escalation user. Data is attached at the lowest level and moves up.

Assignment

A record has an owner; the owner assigns it to one or several people; they finish in sequence or in parallel; each assignment has its own time limit.

Escalation

When a clock runs out, the parent level receives the case with the full context: what was asked, what happened, how long ago.

Tracking

Higher levels see the progress of every instance below them: step, age, owner, next clock.

Broadcast, notification, FYI

Inform a level, a function or everyone, with a structured message on Slack, Teams or email, and a link into the workbench.

Comments and reactions

Threaded discussion anchored to the case, with reactions, part of the record.

Permissions

A level can grant a lower level a permission for a period, for example to release a block, and the grant is logged.

Multi-party signatures

A handshake between functions or companies: each party signs the same version of the case, and the case closes when all have signed.

Surveys, rewards, measures

Surveys collected at a level, rewards or incentives assigned by a rule, and measures shown per level as the flow runs.

Worked example

A budget variance review, from working day 3 to the CFO's screen

The catalogue entry has every screen, rule and clock.

Day 3, 07:00
Variance items openedThe trigger criterion runs on the closed period: absolute variance above 5 percent and above 25,000 opens an item per cost center at Level 1, the cost center owner.
Day 3–5
Owners explainEach owner sees their own lines, picks a cause category and enters a revised forecast; the clock is 2 working days, then the department head is copied.
Day 6
Department heads signLevel 2 sees all items of the department, ranked by value, and signs or returns with a note.
Day 7
Controllers consolidateFinance Level 1 sees every signed item, consolidates by division and values the revised forecast against the plan.
Day 8
CFO screenThe top 20 items by value with their causes and revised forecasts; the revised version is written to the planning system when the CFO signs.
From the catalogue

The eleven collaborative app types

Terms on this page

Collaborative appAn app built by defining functions and their levels first, attaching a screen to each level, assigning the people at each level, and then writing the flow and trigger criteria.
LevelA position in a function's hierarchy, such as buyer, category lead or chief procurement officer. Each level has a screen and a set of people.
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.
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.
Meta data and run-time dataThe rules of a collaboration are meta data; the traces of each running instance are run-time data. Together they are the collaboration.
Alternate and delegateAn alternate is named in the definition and acts when the primary is absent; a delegate is named by a person for a period. Both names are logged.
Questions

How many levels can a function have?

As many as the organisation needs; three is common and seven has been configured. The hierarchy records parents and children per level, so depth is free at run time.

What happens when someone leaves?

The person is retired from the level, their open steps pass to the alternate, and the log keeps their name on the steps they took. The hierarchy version changes; running instances finish on the version they started on.

Can a level be a group?

Yes. The first person in the group to act takes the step, and the log records who it was.

Can the same hierarchy serve several apps?

Yes, and it usually does. A capital request, a budget variance review and a journal approval can share one organisation hierarchy, each with its own screens and rules.

How do outside parties see only their rows?

Through the access policy of the source system, applied when the data handler reads, plus the scope filter of the level. A supplier at a level sees only the parts and orders that belong to it.

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.