> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aseeflow.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Gateways to the Process

This tutorial demonstrates how to make a process more flexible using BPMN 2.0 exclusive gateways, routing execution based on dynamic conditions.

## Add two gateways

Open your process in the Camunda Modeler. Insert a gateway (diamond shape) between the start event and the service task. Position a second gateway after the user task. Adjust the sequence flows to connect these elements appropriately.

<img src="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway1.png?fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=f0dc4278dd15e4322d1a16c70fe0706c" alt="Add gateways to the process" width="1200" height="673" data-path="get-started/quick-start/img/modeler-gateway1.png" />

Name the new elements clearly:

<img src="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway2.png?fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=bf104cfe18dde4007cb6d490ddb81c70" alt="Name the gateways and flows" width="1200" height="673" data-path="get-started/quick-start/img/modeler-gateway2.png" />

## Configure the gateways

Select each outgoing sequence flow and configure its condition in the properties panel:

**`<1000 €` flow** — set Condition Type to *Expression* and enter `${amount<1000}`:

<img src="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway3.png?fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=c6e2bb341ca9f6671f0c827f478a09fd" alt="Condition for the under-1000 flow" width="420" height="450" data-path="get-started/quick-start/img/modeler-gateway3.png" />

**`>=1000 €` flow** — `${amount>=1000}`:

<img src="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway4.png?fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=9259de6684b37d8a8dc16456112a7758" alt="Condition for the >=1000 flow" data-og-width="1200" width="1200" data-og-height="673" height="673" data-path="get-started/quick-start/img/modeler-gateway4.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway4.png?w=280&fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=fe2841b3daf4d5fb541f33ddb65b4452 280w, https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway4.png?w=560&fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=183c513459b43b844eb5efe21e9b2452 560w, https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway4.png?w=840&fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=b4645e554240f4218cb864eaa2db5fb0 840w, https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway4.png?w=1100&fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=c29c18999d68eb5937809897b9bddf8d 1100w, https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway4.png?w=1650&fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=d74269ebda53a9c79722fd2aa7113da0 1650w, https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway4.png?w=2500&fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=e92323edbda0f3725399b09e4713a923 2500w" />

**`Yes` flow** — `${approved}`:

<img src="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway5.png?fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=059320995619ade948eed0feb573fa8a" alt="Condition for the Yes flow" width="1200" height="673" data-path="get-started/quick-start/img/modeler-gateway5.png" />

**`No` flow** — `${!approved}`:

<img src="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/modeler-gateway6.png?fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=9e3e83bc96fb0aee044847f9b6299b58" alt="Condition for the No flow" width="1200" height="673" data-path="get-started/quick-start/img/modeler-gateway6.png" />

These conditions use the [Unified Expression Language](/user-guide/process-engine/expression-language) to evaluate the gateway.

## Deploy the process

Use the deploy button in the Camunda Modeler to publish your updated process.

## Work on the task

Navigate to Tasklist at `http://localhost:8080/camunda/app/tasklist/` and authenticate with the demo credentials. Start a new instance and set variables via the generic form, using an amount ≥ 1000 to trigger the approval task.

<img src="https://mintcdn.com/aseeflow/nrz9o5m15i2WLCpp/get-started/quick-start/img/start-form-generic.png?fit=max&auto=format&n=nrz9o5m15i2WLCpp&q=85&s=7c8023037e218522393aad0facaaf783" alt="Start an instance with the generic form" width="2800" height="1402" data-path="get-started/quick-start/img/start-form-generic.png" />

Complete the task by checking the *approved* checkbox. Test various scenarios, including rejecting payments and creating instances with amounts under 1000.

## Next step

Continue to [decision automation](/get-started/quick-start/decision-automation) to learn about adding business rules.
