Forum Discussion

rishi's avatar
Braze Employee
9 months ago

Triggering IAMs in Canvas - Questions from Braze Product Team

Our team at Braze wants to bring real-time triggering in-app message (IAM) functionality to Canvas. Today, real-time triggering IAM functionality only exists in Campaigns.

If anyone has a few minutes, we’d appreciate it if you could answer the questions in bold below. We can add you to the early access when the feature is available in exchange as well.

Let me know if you have any questions and thank you in advance! Also, if you’d prefer to chat over a call, happy to do so instead (please schedule here).

Thank you,

Product Manager at Braze


Questionnaire - Triggered IAMs in Canvas

The current state of triggered IAMs:

  • In Campaigns, marketers can specify a custom event that triggers/shows an IAM to a user in real-time

  • In Canvas, marketers can specify a custom event within an Action Path that triggers/shows an IAM to the user once they do the following: (1) perform the action, then (2) restart the app (they’ll then see the IAM once the app opens)

Our ask:

We are considering one of the following approaches for providing more real-time triggered IAMs in Canvas and would like your input. 


Approach 1

Approach 2

Allow real-time triggering of IAMs via the Action Path

Allow real-time triggering based off actions specified within an IAM Message Step





  • Branching actions. Marketers can define several triggers/actions that all show different IAMs and qualify the user for all of them, but only display the IAM for the first action performed (and disqualify the rest)

  • Ranking actions. If multiple actions are performed by the user within the action path’s time window, Braze will show the associated IAM then send the user through the highest-ranked action path only


  • Independent control of IAM message triggers/actions. Actions will be defined within the IAM Message (similar to IAM expiration), giving the marketer more control 

  • This approach/feature is easier for Braze to build, so we can deliver it to customers faster


A couple of questions for you here:

  1. Among the two approaches, which would you favor, and what are the reasons for your preference?

  2. On a scale of 1-4 (1 = not at all, 4 = very much), how disappointed would you be if we implemented the other approach?

We are also seeking feedback on how “real-time” the Canvas<>SDK information refresh/exchange needs to be. Today, the SDK (which is the agent that shows IAMs) only refreshes information from Braze when the user opens the app, and users may not necessarily open their apps as quickly as they move through a Canvas. Consider the following hypothetical example of how triggered IAMs could work:

  • 9:00 am: In Canvas, UserA reaches the Canvas step where they are qualified to be shown IAM_1 immediately after they perform ActionX

  • 9:20 am: UserA performs ActionX. No IAM is shown

  • 9:30 am: UserA leaves the app and reopens it. Note: at this time, the SDK refreshes information from Braze

  • 10 am: UserA performs ActionX. This time, they are shown IAM_1 immediately since the SDK has the latest information from Canvas

The need for the user to leave/reopen the app may not be ideal, but if you feel the feature is still usable, we can deliver a first version of the feature (triggered IAMs in Canvas) to you sooner. With this in mind, we had a few additional questions:

  1. On a scale of 1-4 (1 = not at all, 4 = very much), how disappointed would you be if users needed to reopen the app to allow the SDK to refresh information?

  2. Would you still be able to use triggered IAMs if this was the case?

  3. How frequently do your users typically leave/reopen their app? What scenarios, if any, do you foresee where users are unable to be shown IAMs due to them not reopening the app?

12 Replies