How triggers are prioritized on Turn.io?

Raquel Updated by Raquel

Triggers play a crucial role in defining how and when a Journey is initiated for a user on the Turn.io platform. With multiple trigger types available, it’s essential to have a clear prioritization logic to ensure that the most relevant trigger is always activated first.

In this article, we explain how triggers are prioritized and the rules that determine their order of activation.

Trigger Priority Order in Turn.io

Triggers in Turn.io follow this priority order:

  1. Time-Based → Always executed, regardless of other journeys' interactions.
  2. First Visit → Triggered for new users.
  3. Message Received → Prioritizes messages with more specific conditions.
  4. Catch-All → Triggered when no specific message match is found.
  5. Tiebreaker → The newest trigger takes priority.

1. Time-Based Triggers – absolute priority

Time-based triggers have absolute priority and will always be executed, regardless of the user’s status or participation in other Journeys.

These triggers are essential for Journeys that occur at specific times, such as Reminders and scheduled journeys.

Examples:

  • Send an appointment reminder X hours before
  • Notify the user about a campaign at a specific time
Important: Even if the user is already in an active Journey, the time-based trigger will always be triggered. It does not compete with other trigger types—it simply happens at the scheduled time.

2. First Visit Triggers – for new users

If a user has never interacted before, the First Visit Trigger is the first one considered.

This ensures that new users receive a guided introduction to the service as soon as they engage.

Example:

  • Display a welcome message when a user interacts for the first time.

3. Message Received Triggers – prioritizing the most specific ones

When a user sends a message, the system checks if there is a trigger specific to that content.

The more specific the trigger, the higher its priority. Example of prioritization between "Message Received" Triggers:

  • "Hi" when optedin = true vs "Hi" (no specific condition)

📌 If a user sends "Hi" and has optedin = true, the first trigger will be activated.

📌 Otherwise, the system checks if a generic trigger for "Hi" exists.

4. Catch-All Triggers – when no other trigger applies

If the received message does not match any specific trigger, we check for Catch-All Triggers.

Example of prioritization between Catch-All triggers:

  • Catch-All when optedin = true and status = "approved" vs Catch-All when status = "approved"

📌 If a user has optedin = true and status = "approved", the first trigger will be activated.

📌 Otherwise, the system checks for a more general Catch-All trigger (only status = "approved").

5. Tiebreaker Criteria – which trigger fires first?

If two triggers are equally valid for the same user, we use the creation date to break the tie:

The most recently created trigger takes priority.

This means that if two triggers have the same conditions, the system will activate the one that was created most recently.

This logic ensures that the most relevant triggers are always fired first, providing a smooth and efficient experience for users interacting with your Journeys.

👉 Want to configure your triggers effectively?

Check out the complete documentation on Available Triggers and Time-Based Triggers. 🚀

Was this article helpful?

Using media in no-code journeys

When I do a preview, it appears as [DEBUG]

Contact