---
title: "Step level triggers"
slug: "step-level-triggers"
updated: 2025-12-02T15:52:45Z
published: 2025-12-02T15:52:45Z
canonical: "support.tulip.co/step-level-triggers"
---

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

# Step level triggers

**In this article, you will learn:**

- **What are Step Level Triggers?**
- **Types of Step Level Triggers**
- **Example Step Level Triggers usecases**

## Step Level Triggers

Step level triggers are activated by events. As the name implies, Step level Triggers live at the Step level. Each Step has its own list of step level triggers. These triggers will only run when their step is displayed. Step Level Triggers can also be added to the Base Layout, these triggers will run on every step.

Step Level Triggers can be accessed via the Step Tab in the Side Pane.

![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/What%20are%20Triggers_189552359.png)

You can also configure how triggers respond to the previous triggers failing, once you add more than one trigger. Clicking the toggle allows users to determine which subsequent triggers will not execute if a previous trigger fails.

![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%2872%29.png)

## Types of Step Level Triggers

Step Level Triggers, like all other Triggers, run when a specific action happens. Step Level triggers can be executed based on 4 types of actions.

1. On Step Enter
2. Timer
3. Machine and Device Output
4. On Step Exit

## On Step Enter

"On step enter" Triggers will be executed when a Step is displayed.

NOTE

On step enter triggers will run every time its Step is loaded.

### Example Usecase

On Step enter is a great time to initialize any data needed for a specific.

*Ex. I want users to report defects in an assembly process. I will be storing this defect in a Table. I need to create a Table Record Placeholder to write to this table.*

*On Step enter, I will create a Record with a random ID.* ![Step open.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Step%20open.png)

## Timers

More information about timer Triggers can be found [here](/r230/docs/how-to-make-a-time-based-trigger).

Timer Triggers run on a specific cadence. Every *X* seconds a trigger will be executed. Timer triggers can be run as fast as every 30 seconds.

### Example Usecase

Timer triggers are great for doing periodic checks that can be run in the background without user intervention.

*Ex. Every 5 minutes (300 seconds) I want to check how many parts have been produced, if this is more than the required quantity, I want to trigger an email to a supervisor.*

![Timer Trigger.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Timer%20Trigger.png)

## Machine and Devices

Machine and Device Triggers are the way you will receive data from your [supported devices](/r230/docs/supported-devices), and Tulip-connected Machines. When your Device or Machine outputs data, they can cause triggers to run.

Note

Device triggers run every time a [supported device](/r230/docs/supported-devices) output data, where [Machine](/r230/docs/machine-monitoring) triggers fire every time that Attribute is updated, even if it does not change.

### Example Usecase

Machine and Device triggers are critical when working with many user input devices, like barcode scanners.

*ex. I want users to scan a barcode on a job traveler with a USB barcode scanner, when they scan that barcode, I want to create a Table Record for that job.*

![Device Trigger.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Device%20Trigger.png)

## On Step Exit

"On step exit" triggers will be executed when a Step is left.

### Example Usecase

"On step exit" Triggers are very useful to close out processes.

*ex. Users primarily sit on a single step while working on an assembly process. When the process is started, we track the start time to a Table Record. When they complete this process, I want to record a completion time.*

![step closed.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/step%20closed.png)

## Further Reading

- [**App Level Triggers**](/r230/docs/app-level-triggers)
- [**Widget Triggers**](/r230/docs/widget-triggers)
- [**How to add Conditionals to Triggers**](/r230/docs/how-to-add-triggers-with-conditions-ifelse-statements)

**Step-Level Trigger**

A**step-level trigger** is a trigger configured with each app step. Step-level triggers can be triggered based on 4 actions:

1. Step Opened
2. Every X seconds (Timer)
3. Machine/Device outputs data
4. Step Exited

**Trigger**

**Triggers** are groups of logic that are tied to an app event, such as step open, timer, widget interaction, etc. App builders can add triggers to **widgets**, **machines**, **devices**, **apps**, and **steps**.

**Triggers** can contain **actions**, **transitions**, and **conditions**.

**Step**

A view your users will see within an application. **Steps** can be viewed chronologically or in whatever order best fits your process.

Steps can be grouped into **Step Groups**to manage and organize your app Steps.

**Base Layout**

The **Base Layout** is the base template that all other **S****teps** will be built on top of. Establishing common navigation buttons, and a consistent app background and style across all of your app steps can expedite the training and app-building processes. ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Intro%20to%20the%20Tulip%20App%20Editor_511473104%201.png)

**Step Tab**

In the **Side Pane**, the**Step Tab**is where you can adjust all of the **Step-level**settings, including **Step Triggers,**Step background, Step resolution, and more.![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Step%20Tab.png)

**Side Pane** **(Context Pane)**

The**Side Pane**is the configuration pane on the right side of the **App Editor**where steps, apps, and widgets can be configured. **Triggers**can be added to adjust widget behavior.![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Context%20Pane.png)

**Tulip Tables**

**Tulip Tables** are a global location to store your production data. **Tables** are made up of **Records** (rows). A single can be accessed from multiple apps or stations at the same time. ![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Tulip%20Tables%20Overview%20-%20Feature%20Overview(1).gif)

**Table Record Placeholder**

A **Table Record Placeholder** is a reference to a row in a **Tulip Table**. Table Records can be created either from the Table UI or from an App Trigger.

**Table Record**

A **Table Record** is a reference to a row in a **Tulip Table**. Table Records can be created either from the Table UI or from with an App Trigger.

To edit a record it must be loaded into a **Table Record Placeholder.**

**Attribute**

**Attributes**are properties. In Tulip, an attribute generally references a property of a machine. Attributes can be either set points or actuals.

*Ex. Cycle time, Spindle speed, Feed rate, ect.*

**Table Record**

A **Table Record** is a reference to a row in a **Tulip Table**. Table Records can be created either from the Table UI or from with an App Trigger.

To edit a record it must be loaded into a **Table Record Placeholder.**
