Setting Up Engagement Triggers in Braze: A Practical Guide

Hand marking one row on a printed one-page register on a desk, showing a Braze trigger, its audience filter and its re-eligibility rule reviewed together.

Braze engagement triggers start a message or journey when a user does something, when a schedule says so, or when your own systems call the API. Choosing the right entry type, setting re-eligibility on purpose and avoiding one documented race condition decide whether the trigger fires for the right people. This guide walks through each decision.

‍

Key Takeaways

  • Braze describes three delivery routes: scheduled, action-based and API-triggered, called entry types in a Canvas.
  • Avoid using the trigger as the audience filter, because a race condition can leave the user outside the audience.
  • Check that the custom event timestamp carries the current time, since Braze evaluates delays from it.
  • By default Braze sends a message to a user only once, so re-eligibility has to be turned on separately.
  • API-triggered campaigns and Canvases do not take part in Message Prioritization, and a request can override frequency capping.
  • We recommend a one-page trigger register for each workspace, covering every trigger, its filter and its re-eligibility rule.

‍

What counts as an engagement trigger in Braze?

Braze describes three ways to deliver a message: scheduled, action-based and API-triggered. In a Canvas the same choice is called the entry type. A Canvas is an ongoing user journey, not a single send.

An engagement trigger is usually the second or third option. Action-based entry starts when a user takes a particular action, such as opening your app, making a purchase or triggering a custom event. Braze also lists adding an email address and entering a location as actions you can evaluate.

After the action occurs you decide when the message goes out: immediately, after a specific time, at a specific time, or at a time in the future.

‍

How do Braze engagement triggers differ by entry type?

The three entry types share a Canvas but behave differently. The table summarises what starts each one and where the controls sit.

Entry typeWhat starts entryWhere to look
ScheduledA time schedule, once or on a daily, weekly or monthly cycleRecurrence can allow up to 30 designated entries per user
Action-basedA user action such as a session start or custom eventEntry audience window, with re-eligibility and frequency capping
API-triggeredA call to the Braze API from your own serversThe campaign ID or Canvas ID Braze gives you

‍

For API-triggered delivery, Braze gives you a campaign ID to use with the /campaigns/trigger/send endpoint, or a Canvas ID for the /canvas/trigger/send endpoint. Copy, multivariate testing and re-eligibility rules stay in the Braze dashboard, so marketers keep control of the message while engineers own the trigger.

‍

Which action-based settings need care?

Braze warns against using the same trigger as the audience filter, for example a changed attribute or a performed custom event. A race condition can leave the user outside the audience at the moment they perform the trigger. They then never receive the campaign or enter the Canvas.

This is a failure that is easy to miss in review. It looks like a correct setup in the composer, and the only symptom is a trigger that under-delivers.

The second setting is the event timestamp. Braze evaluates a delay from the timestamp sent with the custom event. If your Canvas sends earlier than expected, check that the event carries the current time and not a backdated one.

Two further boundaries are worth knowing. The Interact with Canvas Step trigger is available for campaigns but not as an action-based entry trigger for Canvases. To start one Canvas from another, use the Send to Destination Canvas component or a Braze-to-Braze webhook that calls the Canvas trigger endpoint.

‍

How does re-eligibility change what a trigger does?

By default, Braze sends a message to a user only once, even if they re-qualify several times. Re-eligibility has to be turned on separately. Entry controls determine whether users can re-enter a Canvas, and for action-based Canvases you can also limit entry hourly, daily or for the lifetime of the Canvas.

Campaigns and Canvases measure re-eligibility differently. For triggered campaigns with re-eligibility on, it is based on message receipt, so a user who triggered the event but never received the message qualifies again next time. For Canvas variants it is tied to Canvas entry.

For a transactional API-triggered campaign, Braze says to set the delay to zero minutes so the user receives the message every time they complete the transaction. For a promotional message we suggest a wider window, so the user is protected from repeats.

Decide the re-eligibility rule before you build the message, and name its owner. A setting nobody owns stays at its default.

‍

How do you trigger a campaign from your own systems?

API-triggered delivery lets your servers decide the moment. The request can also carry data that Braze templates into the message in real time. Braze gives a sample recipient object for a Canvas, shown below as it appears on the Create a Canvas page.

{ "external_user_id": "user_123", "context": { "product_name": "shoes" }}

‍

Which key carries the entry data depends on your workspace. If the dashboard shows Context Variables, use the context object. If it shows Canvas Entry Properties, use the legacy canvas_entry_properties object from the dashboard sample.

Three documented details save debugging time. By default send_to_existing_only is true on the campaign trigger endpoint, so Braze sends only to existing users and creates no new profiles in that call.

If an email campaign is triggered for a profile with no email address, Braze retries for up to approximately 2 hours while it waits for profile data. Liquid tags in trigger_properties take exactly two curly braces, since an extra brace is a common cause of personalisation failures.

Check these limits against the current documentation before relying on them, because retry behaviour and defaults can change.

‍

How do frequency caps and prioritisation treat triggered sends?

Braze checks the frequency cap when a campaign sends or when a user reaches a Canvas Message step, before quiet hours. A user already at cap is skipped and the send is not held for quiet hours.

Action-based campaigns and Canvases can take part in Message Prioritization. API-triggered campaigns and Canvases do not. For API campaigns that must always send, you can set override_frequency_capping to true in the request.

Because API-triggered sends sit outside the ranking, treat every one as a cap consumer that nothing can hold back. Keep that route for messages you would be content to send at any time of day.

‍

How would these decisions play out for a hypothetical subscription app?

Imagine a hypothetical subscription app that wants to nudge users once they add an email address. This is an illustration, with no client work or CustomerIK delivery data behind it.

The team chooses action-based entry, because the moment is a user action. The entry audience filters on subscription plan, never on whether an email exists, so the trigger and the filter cannot collide. Re-eligibility stays off, since a user only adds an email address once in a normal journey.

The email goes out after a short delay, and the team confirms that the event arrives with the current time. A lookup of one test user confirms the audience criteria match. Finally the team keeps the nudge under the frequency cap, because nothing about it is transactional.

We would write the trigger, the filter and the re-eligibility rule on one page before opening the composer. The three interact, and reviewing them separately is how the race condition ships.

‍

How does this connect to the rest of the programme?

Triggers depend on the events behind them, so user event tracking in Braze is the first dependency to check. Message-level triggers on mobile are covered in in-app message triggers.

Entry types sit inside larger journeys, which Canvas mobile campaign automation and automated marketing workflows in Braze describe. Audience filters come from audience segmentation, and content that changes at send time is covered in real-time personalisation.

‍

What should you check before launching a trigger?

  1. Write down which entry type starts the journey and why.
  2. Confirm the trigger event is not also an audience filter.
  3. Check that the event timestamp carries the current time.
  4. Set re-eligibility deliberately and note who owns it.
  5. Decide whether the send may bypass the frequency cap.
  6. Look up a test user to confirm they match the audience criteria.

‍

As a Braze implementation partner, CustomerIK recommends keeping a one-page trigger register for each workspace, listing every trigger, its filter and its re-eligibility rule, so a change to one is reviewed against the other two.

‍

Frequently Asked Questions
‍

1. What is the difference between action-based and API-triggered entry?

Action-based entry starts when a user takes an action Braze can observe. API-triggered entry starts when your own system calls the Braze API.

2. Can a trigger fire more than once for the same user?

Only if re-eligibility is turned on. By default Braze sends a message to a user only once, even if they re-qualify.

3. Why did my action-based Canvas send earlier than expected?

Check the custom event timestamp. Braze evaluates delays from the timestamp sent with the event, so a backdated stamp can make a delay look already elapsed.

4. Can I use the same attribute as trigger and audience filter?

Braze advises against it. A race condition can leave the user outside the audience when the trigger fires, so they miss the campaign or Canvas.

5. Do API-triggered campaigns take part in Message Prioritization?

No, Braze documents that API-triggered campaigns and Canvases are not supported and do not participate in prioritisation.

‍

Sources

‍

CustomerIK is a Braze implementation partner working across onboarding, technical integration, marketing operations and customer data management.

If you want your triggers, audience filters and re-eligibility rules reviewed together before they ship, let's talk.

‍

Preferences

Privacy is important to us, so you have the option of disabling certain types of storage that may not be necessary for the basic functioning of the website. Blocking categories may impact your experience on the website.

Accept all cookies
Accept all cookies

These items are required to enable basic website functionality.

Always active

These items are used to deliver advertising that is more relevant to you and your interests.

These items allow the website to remember choices you make (such as your user name, language, or the region you are in) and provide enhanced, more personal features.

These items help the website operator understand how its website performs, how visitors interact with the site, and whether there may be technical issues.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.