Workflowadvanced

Approvals Management Engine (AME)

Explain how AME provides dynamic, attribute-driven approval routing without hardcoded workflow logic

AME decides who approves a transaction, from rules, rather than from logic hardcoded into a workflow.

AME is like an intelligent mailroom sorting system that doesn't just follow one fixed delivery route, but reads each package's contents (transaction attributes) and dynamically decides — based on configurable business rules — whether it needs an extra signature from security (mandatory approver), needs to go up multiple management floors (chain of authority), or can be delivered directly with no special handling at all.

Key Concepts

1
What it replaces. A workflow with the approval chain built in:
2
    always: manager, then manager's manager, then director
3
That is fine until the business says "over 500,000 also needs Finance, unless it is a capital item, in which case..." — and each variation means changing the workflow.
4
AME's building blocks.
    Attribute        a value from the transaction:
                     REQUISITION_TOTAL, ITEM_CATEGORY
    Condition        a test on one: amount > 500000
    Action type      what to do: approve up N levels of the
                     supervisor chain, or require a specific group
    Approval group   a named set or chain of approvers
    Rule             condition(s) + action
5
A worked set of rules.
    rule 1  always              -> 2 levels of supervisor chain
    rule 2  amount > 500000     -> plus the Finance Director
    rule 3  category = CAPITAL  -> plus the Capital Committee
6
A requisition for 600,000 of capital equipment matches all three, and AME builds one chain from them.
7
Rules combine; they do not compete. That is the design. Each rule adds requirements, and the engine assembles the list — which is why adding a policy is adding a rule rather than editing a flow.
8
Attributes can be dynamic. An attribute is defined by SQL, so it can derive anything queryable:
9
    SELECT SUM(amount) FROM po_requisition_lines
     WHERE requisition_header_id = :transactionId
10
So conditions can test things that are not columns on the transaction.
11
The test page is the tool that matters. AME can evaluate a real transaction and show you the chain it produces, and which rules fired.
12
"Why did this go to that person" is answered there in one step, rather than by reading rules and reasoning.
13
Where it fits with workflow. The workflow asks AME who is next and sends the notification. AME decides; workflow delivers.
14
The most common failure. A transaction matching no rule at all, so there is no approver and the requisition sits unrouted. A catch-all rule prevents it, and its absence is usually why something is stuck.
15
What the interviewer is probing.1. "What does AME separate?" Probing: the architectural point. Stalls: "Approvals." *Moves up:* the approval policy from the transaction — rules, conditions and action types live in AME rather than being coded in the workflow.
16
2. "What are the components of a rule?" Probing: the structure. Stalls: "Conditions." *Moves up:* attributes, conditions built on them, and action types such as supervisory chain or approval group, grouped into rules per transaction type.
17
3. "How do you debug an unexpected approver?" Probing: the practical skill. Stalls: "Read the rules." Moves up: the AME test workbench for a specific transaction, which shows which rules fired and the resulting approver list.
18
4. "What is the risk of many overlapping rules?" Probing: experience. Stalls: "None." *Moves up:* the combined outcome becomes unpredictable, so changes need the test workbench rather than reasoning about rules in isolation.