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

# What is a transactional flow?

Ranked highest in an event processing queue, a transactional flow, as its name suggests, sends transactional messages.

## How to create a transactional flow

Creating a transactional flow doesn't mean the entire process has to be transaction-focused – you can select a specific section that will be given priority. When setting up a transactional flow, ensure it contains the following:

1. **Triggering Event**: This could be any event, such as "Order added or changed", "Order status changed", "Authorization code requested", "Customer registered", "Subscription status updated" or "Customer custom field value has changed". ​
2. **High Priority API Method**: The event must originate from an API method marked as "High Priority." ​
3. **Waiting Period:** You can select a timed or fixed waiting that does not exceed 5 minutes.Note that any delay selected here does is not accounted for when calculating the guaranteed processing speed. ​
4. **Steps Node:** This includes sending transactional communications via Email, SMS, or Mobile Push notifications, or executing a "Balance - Edit" step. ​
5. **Sequences:** You can employ up to three consecutive transactional step nodes. The timing for each the segment is calculated separately. ​
6. **No “Split” Node:** Split nodes are not allowed within transactional flows.**Example:**

<img src="https://mintcdn.com/maestraio/-w5Ud9QNiG7Y4nor/images/imported/00_transactional_workflow.png?fit=max&auto=format&n=-w5Ud9QNiG7Y4nor&q=85&s=4cb11e8a11880f9b5fe17bd57a41f764" alt="00_transactional_workflow" width="2596" height="1188" data-path="images/imported/00_transactional_workflow.png" />

The flow above is labeled as transactional; the green lines connect its nodes.
You can also create a partially transactional flow.
**For example:**

<img src="https://mintcdn.com/maestraio/-w5Ud9QNiG7Y4nor/images/imported/01_transactional_workflow.png?fit=max&auto=format&n=-w5Ud9QNiG7Y4nor&q=85&s=33b1e5777ea7edf2022e4ce24b459382" alt="01_transactional_workflow" width="2600" height="1544" data-path="images/imported/01_transactional_workflow.png" />

The first section of the flow ranks higher, while the node with a fixed time delay makes the other part of the flow non-transactional.
If you use a transactional campaign but the flow has not been labeled as transactional, hover over the flash icon to see which nodes are preventing this from happening.
**For example:**

<img src="https://mintcdn.com/maestraio/59KyfifOW7tLz5QR/images/imported/02_transactional_workflow.png?fit=max&auto=format&n=59KyfifOW7tLz5QR&q=85&s=11ca340d94944a6d6da00dc166d1cb61" alt="02_transactional_workflow" width="2598" height="1154" data-path="images/imported/02_transactional_workflow.png" />

## How a transactional flow works

A flow is determined as transactional and prioritized in the event processing queue if API calls transmit events such as new added orders or changes to order data or status.
A flow will not be prioritized in the event processing queue if:

* new orders or order changes are added via import;
* order statuses are changed manually by users via the interface.
