In-app messages in Canvas
In-app messages can be added as part of your Canvas journey to show rich messaging when your customer engages with your app. This article describes features and nuances specific to Canvas in-app messages.
Before continuing, you should have already created your Canvas and set up delay and audience options.
Now you can add an in-app message to your Canvas. Add a Message step and choose In-App Message for your Messaging Channel. After any delays pass and the audience options are checked, the in-app message will be set live and users will see it if they open the app. In-app messages in Canvas may only be triggered by the
start session trigger event—they can’t be triggered by custom events in a Canvas component.
For Canvases that have action-triggered entry, users can enter the Canvas mid-session. However, as noted above, in-app messages won’t trigger until the next session start, so these users would miss the initial in-app message since they weren’t eligible to enter the Canvas prior to the session start.
You can customize when your message will expire and which advancement behavior it will have.
In-app message expiration
In the in-app message composer, you can choose when the in-app message will expire. During this time, the in-app message will sit and wait to be viewed until it has reached the expiry date. Once sent, the in-app message can be viewed one time.
|Message expires after specified period||The first option allows you to expire the in-app message relative to when the step becomes available to the user.||For example, an in-app message with a two-day expiration would become available after the step’s delay elapses and audience options are checked. It would then be available for 2 days (48 hours) and during those two days, users may see the in-app message if they open the app.|
|Message expires by specified date||The second option allows you to choose a specific date and time when the in-app message will longer be available.||For example, if you have a sale that ended at a specific date and time, you might select this option so that once the sale ends users no longer see the associated in-app message.|
When should you use this feature? Braze highly recommends that you consider using this feature in your promotional and onboarding Canvases.
Promotions, coupons, and sales often have hard expiration dates. The following Canvas should alert your users at the most opportune times that there is a promotion they may use, and perhaps influence a purchase. This promotion expires by February 28, 2019 at 11:15 am in the company’s time zone.
|Day 1: 50% off||None||All from entry||Push||N/A||Advance Audience After Delay||Initial push that alerts your users of the promotion. This is intended to drive users to your app to take advantage of the promotion.|
|In-app: 50% off||None||All from entry||In-app message||Expires by: 2/28/2019 11:15 AM Company Time||In-App Message Viewed||The user has now opened the app and will receive this message whether or not that was because of the push message before.|
|50% off reminder||1 day after the user receives the previous step||All from entry
Filter: Last made a purchase more than one week ago
|In-app message||Expires by: 2/28/2019 11:15 AM Company Time||None (last message in Canvas)||The user has received the in-app message in the previous step but has not made a purchase despite being in the app.
This message is meant to further draw the user to make a purchase using the promotion.
As you can see, the in-app messages expire when the promotion expires to prevent any discrepancies between the messaging and the customer experience.
Your first impression with a user is, perhaps, your most critical one. It can make or break future visits to your app. Your initial communications with your user should be sensibly timed and encourage frequent visits to your app to promote usage.
|Welcome email||None||All from entry||N/A||Advance Audience after Delay||Initial email that welcomes your users to a project, membership, or other onboarding program.
This is intended to drive users to your app to begin their onboarding.
|Day 3–6 in-app message||3 days after the user receives the previous step||All from entry||In-app message||Expires: 3 days after the step becomes available||In-App Message Live||If the user has acted upon the email and been driven to the app, they will receive the desired in-app message to continue or remind them of their onboarding and any requirements associated with it.|
|Day 5 push||2 days after the user receives the previous step||All from entry||Push||N/A||Message Sent||After users have received their in-app message, they will receive a follow-up push to continue their onboarding.|
As you can see, the push messages are spaced around an in-app message to ensure that the user has visited the app and begun their onboarding. This will prevent any annoying spam or out-of-order messaging that could dissuade users from visiting your app, and instead create a flowing, sensible order to their initial experiences with your app.
Advancement Behavior options
In Canvas Flow, Message components automatically advance all users who enter the step. There is no requirement to specify message advancement behavior, making configuring the overall step simpler. If you want to implement the Advance when message sent option, add a separate Audience Path to filter users that didn’t receive the previous step.
Original Canvas editor
As of February 28, 2023, you can no longer create or duplicate Canvases using the original editor. This section is available for reference when understanding how advancement behavior works for steps with in-app messages.
Canvases created in the original editor need to specify an advancement behavior—the criteria for advancement through your Canvas component. Steps with only in-app messages have different advancement options than steps with multiple message types (push, email, etc.). For in-app messages in a Canvas Flow workflow, this option is set to always immediately advance the audience.
Action-based delivery is not available for Canvas steps with in-app messages. Canvas steps with in-app messages must be scheduled. Instead, Canvas in-app messages will appear the first time that your user opens the app (triggered by the start session) after the scheduled message in the Canvas component has been sent to them.
If you have multiple in-app messages within one Canvas, a user must start multiple sessions to receive each of those individual messages.
In-app messages can’t be triggered by events in Canvas.
When Advance When In-App Message Live is selected, the in-app message will be available until it expires, even if the user has moved to subsequent steps. If you do not want the in-app message to be live when the next steps in the Canvas are delivered, ensure that the expiration is shorter than the delay on subsequent steps.
Steps with multiple channels
Steps with an in-app message and another channel have the following advancement options:
|Advance When Message Sent||Users must be sent an email, webhook, or push notification, or view the in-app message to advance to subsequent steps in the Canvas.
If the in-app message expires and the user hasn’t been sent the email, webhook, or push, or hasn’t viewed the in-app message, they will exit the Canvas and will not advance to subsequent steps.
|Immediately Advance Audience||Everyone in the step’s audience advances to the next steps after the delay elapses, whether they have seen the noted message or not.
Users must match the step’s segment and filter criteria to advance to next steps.
When “Entire Audience” is selected, the in-app message will be available until it expires, even if the user has moved to subsequent steps. If you do not want the in-app message to be live when the next steps in the Canvas are delivered, ensure that the expiration is shorter than the delay on subsequent steps.
Prioritizing in-app messages
A customer may trigger two in-app messages within your Canvas at the same time. When this occurs, Braze will adhere to the following priority order to determine which in-app message is displayed. Drag different Canvas steps to reorder their priority. By default, steps earlier in a Canvas variant will display before later steps.
Navigate to the Send Settings of the Canvas section to prioritize in-app messages from a Canvas against in-app messages from other Canvases and campaigns.
By default, Canvas component priority is set to medium, with the most recently created steps having the highest relative priority. Canvas and campaign-level priorities also default to medium, with the highest relative priority defaulting to the most recently created items.
Custom event properties in a Canvas
Due to action-based delivery being unavailable for Canvas steps with in-app messages, you similarly cannot use custom event properties for these steps. If you’d like to template event properties in Canvas, we recommend storing your event properties as custom attributes in your first Canvas step, and then personalizing your in-app message with the custom attributes in the second step.