# Learn the Basics ## BPMN and SpiffWorkflow Business Process Model and Notation (BPMN) is a diagramming language for specifying business processes. BPMN links the realms of business and IT, and creates a common process language that can be shared between the two. BPMN describes details of process behaviors efficiently in a diagram. The meaning is precise enough to describe the technical details that control process execution in an automation engine. SpiffWorkflow allows you to create code to directly execute a BPMN diagram. When using SpiffWorkflow, a client can create the BPMN diagram and still have their product work without a need for you to edit the Python code, improving response and turnaround time. ## BPMN Elements BPMN (Business Process Model and Notation) elements are the building blocks used to model business processes visually. They represent different aspects of a process, such as tasks, events, gateways, and flows, and are used to describe the flow of activities, decisions, and data within a process. ### Events Events, represented with circles, describe something that happens during the course of a process. There are three main events within business process modeling: start events, intermediate events, and end events. | **Event** | **Symbol**| **Description** | |-----------|-----------|-----------------| | Start Event | | Signals the first step of a process | | Intermediate Event |  | Represents any event that occurs between a start and end event. | | End event |  | Signals the final step in a process. | ### Gateways Gateways represent decision points in a process. They determine which path the process will take based on certain conditions or rules. There are different types of gateways: | **Gateway** | **Symbol**| **Description** | |---------------|-----------|-----------------| | Exclusive gateway | | Evaluates the state of the business process and, based on the condition, breaks the flow into one or more mutually exclusive paths | | Event-based gateway |  | An event-based gateway is similar to an exclusive gateway both involve one path in the flow. In the case of an event-based gateway, however, you evaluate which event has occurred, not which condition has been met. | | Inclusive gateway |  | An inclusive gateway breaks the process flow into one or more flows. | | Complex gateway |  | Complex gateways are only used for the most complex flows in the business process. They use words in place of symbols and, therefore, require more descriptive text. | ### Tasks Tasks represent activities or work that needs to be performed as part of a process. They can be manual tasks that require human intervention or automated tasks that are executed by systems or applications. | **Task** | **Symbol** | **Description** | |---------------|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Service |