In many enterprise approval workflows, there is a need for parallel approvals. These approvals are often dynamic—the number of approvers and their identities depend on the business context, making them hard to model using static workflow designs. SAP Build Process Automation, a low-code solution on SAP Business Technology Platform (SAP BTP), provides tools to design workflows and automate business processes. However, SAP Build Process Automation currently doesn't support truly dynamic parallel branches out-of-the-box. In this blog post, I’ll walk you through a design workaround to achieve dynamic parallel approvals using a fixed number of branches corresponding to the maximum number of approvers that can be expected at a time, conditional logic, and structured input. This is particularly useful when the maximum number of parallel approvers is known in advance. Let’s say you are building an approval process for a capital waiver request or a purchase request, where, depending on the request amount, up to six approvers may be involved. You want: SAP Build Process Automation currently allows parallel steps by modeling parallel branches using the parallel branch element. However, there are some limitations. One, dynamic branching is not supported. There’s no built-in loop control that allows iterating through users dynamically within the visual workflow builder. You also need to predefine how many parallel branches will be possible. We define six parallel branches up front in the process model. Each branch corresponds to a potential approver (e.g., approver1, approver2... approver6). To manage this dynamically, you can follow these steps: Let’s dive deeper into the exact steps In this step, we’ll define the process input context with six optional approver email fields: { In the workflow editor, drag the parallel branch element into your process. Then, add six branches (one for each potential approver). In this step, for each branch, insert a condition step to check if the email field is filled: Pseudocode: Branch 1 – Condition: Branch 2 – Condition: Below is what this would look like in SAP Build Process Automation. Once the parallel branches finish, there are a couple of optional things you can do. You can aggregate approval responses, log outcomes, or trigger escalation logic if any approval fails. This workaround brings about five key benefits: However, there are three limitations to keep in mind: In the future, a number of enhancements could be implemented. To start, steps could be allowed to be dynamically instantiated (loop-based or array-based branching). Provider approval tools could have built-in multi-approval handling functionality. And custom script task loops with async-await features could be introduced. While SAP Build Process Automation does not natively support dynamic parallel branching, with a bit of clever structuring and conditional design, we can still simulate dynamic parallel approvals efficiently. This fixed-branch dynamic execution approach offers a scalable and safe method to model real-world approval scenarios—balancing between SAP Build Process Automation's current capabilities and enterprise workflow needs. If you're designing workflows where approver count varies per transaction but remains within a predictable range, this approach can be a reliable template. Feel free to drop your questions or share your experience in the comments. If you’ve faced similar workflow challenges and solved them differently, I’d love to hear from you! Happy automating! This post was originally published in 7/2025.The Use Case
Challenges in SAP Build Process Automation
Solution Overview
Step 1: Design the Input Context
"approvers": {
"email1": "string",
"email2": "string",
"email3": "string",
"email4": "string",
"email5": "string",
"email6": "string"
}
}Step 2: Add a Parallel Branch with Six Paths
Step 3: Add a Condition at the Start of Each Branch
${context.approvers.email1} != null && ${context.approvers.email1} !== ""
${context.approvers.email2} != null && ${context.approvers.email2} !== ""
(... and so on until email6).Step 4: Add an Action-Like Trigger Email for Each Valid Branch
Step 5: Wait for All Parallel Approvals to Complete
Benefits and Limitations of This Design
Future Enhancements
Conclusion