For the complete documentation index, see llms.txt. This page is also available as Markdown.

Email and notification actions

This core reference entry is suited for beginner-level builders.

Learn more about experience levels.

To learn about this topic more in-depth, we recommend reading the suggested articles below:

Email

Emailing in Bubble comes with some default settings, and the article below explains how you can customize those settings to suit your app's needs.

  • Article: Email settings


External documentation

Bubble uses Sendgrid as the built-in email provider. You can find SendGrid's official documentation in the link below.


Workflows and logic

Workflows is a part of the Logic series in the user manual:

  • Article series: Logic

    • Article: Dynamic expressions Dynamic expressions are used both to set up conditions, and are highly useful in different actions that you may want to add to your workflows.

    • Article: Conditions Conditions are used to determine whether a workflow or action should run or not, by checking whether something is true.

    • Article series: Navigation Using workflows to let the user navigate between pages and page sections.


Debugging

All apps have the occasional bug, and our debugging tools help you squish them efficiently. The debugger helps you go through workflows step by step to see how they perform and the values they return.

Article series: Debugging your application

Email

Workflows

Request push notification permissions

Native mobile actions, such as sending push notifications, are described in the article below.

Native mobile

Send email

This action sends an email from your app. If no custom domain has been set up, the email is sent from [your-appname]-no-reply@bubbleapps.io. Once a custom domain is configured, you can define a custom sender address. Manage these settings in the Domain & Email section of the Settings tab.

A custom domain must be set up before customizing email behavior. Custom domains are available on Personal plans and above.

To

The email address to send to. To send to multiple recipients at once, define a list of email addresses and use the join operator with a comma as the separator — for example, email_1@bubble.io, email_2@bubble.io.

Specify a different reply-to address

Check this box to specify a reply-to address that's different from the sender address.

Reply to

The reply-to address to use.

Sender name

The name to display as the sender, instead of the email address.

Cc

The email addresses to CC on the email.

Bcc

The email addresses to BCC on the email.

Subject

The subject line of the email.

Body

The body of the email. Use Insert dynamic data to include dynamic content.

Do not apply a SendGrid template

If you've defined a SendGrid template ID in the Domain & Email section of the Settings tab, check this box to skip that template for this action.

This option is only available when a custom domain is set up in the Domain & Email section of the Settings tab.

Unsubscribe group ID

The SendGrid unsubscribe group ID to associate with this email. When set, an unsubscribe link is added to the bottom of the email.

Attachments

Files to attach to the email. The total size of all attachments must be under 19 MB.

Only files stored in your app's Bubble file storage are supported as attachments. Files hosted elsewhere, such as on Box, can't be attached.

Send meeting request by email

This action sends a meeting request that calendar apps such as Gmail, Outlook, and iCal can interpret as a calendar event.

To

The email address to send the meeting request to.

Sender name

The name to display as the sender, instead of the email address.

Organizer

The email address of the event organizer. This maps to the ORGANIZER property in the iCalendar format.

Start time

The start time of the meeting. Must be of type date.

Set a length instead of an end time

Check this box to define the meeting duration in minutes instead of specifying an end time.

Length (minutes)

The duration of the meeting in minutes. Must be of type number.

End time

The end time of the meeting. Must be of type date. Replaced by Length (minutes) when Set a length instead of an end time is checked.

Summary

The summary text to display in the calendar event.

Description

The description of the calendar event.

Location

The location of the event. Must be of type text.

Sequence

The revision sequence number of the calendar component. This maps to the SEQUENCE property in the iCalendar format.

Method

The iCalendar object method associated with the calendar object. This maps to the METHOD property in the iCalendar format.

UID

The persistent, globally unique identifier for the calendar object. This maps to the UID property in the iCalendar format.

Status

The overall status or confirmation for the calendar component. This maps to the STATUS property in the iCalendar format.

Change the body of the email

Check this box to customize the body of the email that accompanies the meeting request.

Body

The body of the email sent with the meeting request attached. Can be static text or dynamic data.

Do not apply a SendGrid template

If you've defined a SendGrid template ID in the Domain & Email section of the Settings tab, check this box to skip that template for this action.

This option is only available when a custom domain is set up in the Domain & Email section of the Settings tab.

Send push notification

Sends a push notification to a selected list of devices.

Title

The title of the push notification.

Subtitle

The subtitle of the push notification.

Body

The body text of the push notification.

On tap, navigate to

A dropdown listing all views in your app. Selecting a view enables the remaining destination fields. The default value is the existing behavior prior to this feature - navigating to the root view.

Overlay

After selecting a destination view, you can choose a sheet or floating group on that view to present as an overlay after navigation. The dropdown is filtered to overlay-type elements on the selected view. If the view has no sheets or floating groups, this field is disabled.

Note: selecting an overlay to open will override any conditionals on that overlay container that would otherwise hide it.

Appears when the destination is not a tab view. Controls how the view is presented:

  • Stack: pushed onto the navigation stack (standard drill-down).

  • Modal: presented modally over the current context.

If the destination is a tab view, this field is hidden — the app switches to that tab directly.

Base view

Appears when navigation type is Stack or Modal. Defines what the back button navigates to when the user arrives from a push notification (where there is no prior navigation history).

  • Lists all views except the destination view. Defaults to the app's root view.

  • When set, the app constructs a synthetic stack: [base view] → [destination view], so the back button leads to the base view rather than closing the app.

  • If left empty, the back button navigates to the root view.

View parameters

If the selected destination or base view has view properties, a parameter section appears with a field for each property. Values can be static or dynamic expressions, consistent with how view properties work elsewhere in the workflow editor.

Last updated

Was this helpful?