Everything in zenphi revolves around Flows. A Flow is the implementation of a process or part of a process. For example, you may have a process for employees to request for a new laptop, in which an employee puts in a request, then the manager should approve it, and then IT should order the laptop. To automate this process, you create a Flow which starts by a Google Forms, (for employees to submit their request), and the Flow then identifies the requester's manger, assigns her a zenphi task, and if she approves, it will send and email to IT or oder the laptop.
The Flow execution starts from top to bottom. If you have multiple possible execution paths, aka Branch, the execution would follow through the branch which satisfies the specified logic.
Most of the Flows are sequential, meaning that steps execute one at a time in the specified format. However, sometime you need to run steps at the same time. We call these parallel executions. You normally implement logic/steps in parallel because they don't rely on each other. For example, when implementing an onboarding process, you may want to run the background check and reference check at the same time. So, you implement the steps in parallel.
Below is a blog post approval process implemented in zenphi