---
title: "Send an email"
slug: "send-an-email"
tags: ["App Editor (Route)", "Triggers"]
updated: 2025-05-30T14:28:33Z
published: 2025-05-30T14:28:33Z
canonical: "support.tulip.co/send-an-email"
---

> ## 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.

# Send an email

*Create an on-call user structure for emails sent from a Tulip app.*

## Overview

Emails can be sent to Users dynamically based on a User Variable or table Field. The ability to send emails dynamically allows apps to utilize an on-call structure to determine who to notify of an issue. The email includes the app, Step, and Trigger that enacted the email.

## Send an email with a trigger

In any Trigger, you can set up an email to be sent to a user or user group.

To dynamically specify this, select **Send Email** from the dropdown options, and then choose the user or user group, either statically or via a variable.

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

## Example: on-call users

For the following use case, make sure you are an Enterprise Account and have [configured Schedules](https://support.tulip.co/docs/how-to-add-shifts-and-schedules-to-your-tulip-account) You should also understand how to [Use Tables in Apps](https://support.tulip.co/docs/how-to-modify-tables-within-the-app-editor)

You can create an on call structure based around shifts. An on-call structure will be based on the names of the Shifts outlined in the Schedules page. This structure can be made with a table using the Shift name, and the on-call user. The Table might look something like this:

![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Emails%20to%20Users%20Dynamically_209576307.png)

It is important that the IDs of this table match exactly to the names of the Shifts created in the Schedules page to ensure a match.

In the App, link the on-call table with a Record Placeholder.

![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Emails%20to%20Users%20Dynamically_209576994.png)

Now, the App should access this Table at the beginning of each run to determine who is responsible at that time. In the app, set up an App start trigger to load the table by the current shift type. The Trigger might look something like this:

![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Emails%20to%20Users%20Dynamically_209579919.png)

THEN: Table Records - Load Record *by ID:* App Info - Shift Name *into:* schedule

This trigger takes the Shift Name from the App info to load in the correct Table Record, then saves that to the linked Record Placeholder.

Finally, the Email Notification can now be sent dynamically to the appropriate user. For example, if a message should send when a user presses a button, the Trigger will look something like this:

![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/How%20to%20Send%20Emails%20to%20Users%20Dynamically_209579581.png)

THEN: Send Email *to:* Table Record - schedule - User *message:* Static Value - Text - Hello!

---

Did you find what you were looking for?

You can also head to [community.tulip.co](https://community.tulip.co/?utm_source=intercom&amp;utm_medium=article-link&amp;utm_campaign=all) to post your question or see if others have faced a similar question!

**User**

**User**is a Tulip Datatype. Users represent a single user in your Tulip **Instance.**User****variables include attributes like **Badge Id, Name, and Shift.**

**Variable**

**Variables**are a location to store app information. Variables have a specific type that must match the contents they can store.

Variables are only accessible within a single application and are cleared when the app is restarted or completed.

**Table Record Field**

**Table Record Fields**are single columns within a **Tulip Table.**

![](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/Table%20Record%20Field(1).gif)

**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.

**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**.

**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.
