Places
Channels
Learn the ins and outs of every channel that Braze supports—from email, SMS, and WhatsApp to in-app messages, push notifications, paid media, and more.Orchestration
Trying to implement winning strategies? Bring your questions about A/B testing, optimization with BrazeAI™, and creative personalization here.Data
Find answers and ask questions about our 100+ turnkey partner integrations, customizable SDKs, APIs, cloud data ingestion, and more.Recent Content
GET call to backend API in canvas?
Hello! I recently posted a question regarding a canvas, but our needs have shifted so I am starting a new post. How/is it possible to make a GET call to our BE to retrieve the status of a user before deciding which path to send them on? Example: -User creates an account, which triggers them to enter the canvas. -They will have a 2 hour window to send an invite to their community and/or add a vehicle. -After 2 hour window, GET call checks the BE for the status of said users. -They are sent down the path according to status. There are many different IFs that can be created if we are relying on event action triggers alone- so we are trying to simplify by calling the BE state for the user status.11Views0likes2CommentsFrequency Cap Hierarchy
Hi! I am wanting to implement frequency capping for my Braze instance. At the moment our main form of channel is Push which will continue. I am wanting to create a almost hierarchy, so e.g. user receives no more than 1 push in an hour UNLESS the canvas contains a tag 'offer' then they can receive this extra canvas.Liquid Date Formatting for API-Triggered Properties
I'm trying to format the date and time on our transactional appt confirmation emails. I found a formula that worked perfectly when I used a date field from Braze, but when I plug this same formula in with a property from an API trigger, it doesn't work. Here's the liquid logic and output for a custom attribute date field stored on the user profile (correct result): And here's the liquid script used with the API-triggered property and the output I get with that one (incorrect result): Does anyone know what might be causing this?34Views1like5CommentsDecision Split Timing
Hello! I am currently working on a canvas and I have implemented time based decision splits with "if user received the post notification in a step and last performed X custom event less than 1 hour ago- the no path should proceed to the next notification. However, when I launched and tested with a specific user in real time, I received all push notifications at the same time. The idea is that a user can dynamically move through the paths in real time when they complete the action without being held in a delay.. but it seems the time based action does not work like I hoped. Do I have to add delays? Will this keep the user from being able to proceed if/when they complete the step before said timeframe? Thanks!59Views1like5Commentshow to know whether users click in IAM(in app message) without using datapoint
hi, everyone. I would like to know how to include information about which button was clicked in IAM in the Currents data. I believe that when a button is clicked in IAM, the event_name=users.messages.inappmessage.Click data is generated. However, I am looking for a way to include data on which specific button was clicked. I am aware that this can be recorded as a custom event in IAM, but this method consumes data points. Therefore, I am exploring alternative methods. Could you provide any insights or suggestions?64Views2likes4CommentsPreference center setup w/out subscription groups?
Hi all - Sorry if this has been asked previously but couldn't find anything directly related in recent posts. We're setting up our initial preference center and I'm trying to determine the best way to do it. Goal: use the 'out of the box' preference center where a user will confirm they want to unsubscribe from email (NOT a 1-click unsub from the email itself). But, we only have 1 email category for now so we'd like the unsub action to map to the global opt-in flags (not subscription groups). Is this possible? It looks like the preference center requires at lease one subscription group to be created/used, which would mean we'd need to reference that subscription group preference in EVERY audience/filter/canvas that we create, right? Versus being able to rely on a global opt-in flag from the back end? Suggestions? Thanks in advance!50Views2likes4CommentsFrequency Capping
When using frequency capping, does that mean that the user will not receive the message at all? Say we were to set the frequency cap for Push to only allow 1 push per day for any given user. Does that mean they get set in a holding pattern and the Push message will still send next day or they won't receive the Push at all when using frequency capping rules?46Views2likes4CommentsTemplate builder - corner edge issue
Hey everyone, Have a quick query that someone may be able to help me with. I've been building out some templates and would like to corner the edge of some of the text blocks I have placed in the email. There appears to be an option to corner the very outer edge of the block, but not the inner edge (white background block) ... see screenshot. Any suggestions on a work around would be greatly appreciated :-)Solved60Views2likes10CommentsThe fountain of truth
And we're back, baby! I Sierra Mist you all! Welcome to 2025, where (when?) email still thrives...as long as you're doing it right. There is no shortage of levers to pull or buttons to push when sending marketing emails. Sending domain, "from" name, subject line, template, segmentation, the list goes on! Email is so complex that I've been able to make a career out of this *one* aspect of it alone, so I hesitate to describe it as "easy" when in reality, the medium itself is quite complicated. The refreshing thing is, even though email has a seemingly-infinite number of ingredients that contribute to its success, deliverability (that is, reaching the inboxes of your intended audience) is actually pretty simple. Whether you're an established sender or just getting started, these classic best practices are just what the doctor ordered to crush your marketing goals: 🥤Consent: Only send emails to people who have explicitly chosen to receive them, voluntarily, without coercion or concealment. Ask people if they want your mail, don't just tell them they're subscribed as a consequence of registering for an account or agreeing to your site/app policies. Even if you're legally allowed to contact users, the law doesn't keep your mail in the inbox--recipients' genuine positive engagement does. Setting clear expectations during subscription like what types of mail will be sent, and how often, can help retain subscribers over time and prevent list churn. 🥤Authentication: Formerly (erroneously, perhaps) regarded by many as a nice-to-have, authentication has surged in importance and is now a formalized requirement at many mailbox providers. Implementing SPF, DKIM, and DMARC protects your brand and your customers from malicious (or misguided) actors, ensuring recipients that your mail is the real thing. 🥤Content: Send emails that pop! A jolt of color, a bubbly subject line, a slice of life behind the scenes, whatever floats your subscribers' boats is fair game as long as they enjoy receiving it and behave accordingly. Marketing email should meet the expectations set during signup, so that subscribers aren't surprised when it shows up (or doesn't), resulting in reduced engagement or increased complaints/unsubscribes. Thirsty for more advice? What are you struggling with? What's on tap for 2025? How can I help??!?! 💌18Views2likes1CommentHelp: Liquid logic, conditional messaging & nested custom attributes.
Hello! I need help understanding where i'm going wrong with my conditional messaging. Is it possible to search and dynamically pull a specific value from a nested profile using Liquid code in a Braze email? Example: Users have a nested custom attribute called 'Colour'. User 1 is associated with two profiles: Company A (nested profile [0]) and Company B (nested profile [1]). The value of 'Colour' for Company A is 'Green', while for Company B it is 'Purple'. How can I dynamically retrieve the 'Colour' value for a specific company (e.g., Company A)? Note: I haven't used [] indexing as I want to look across all associated profiles per user to filter down for the correct value (example above). And the testing code: {% assign found = false %} {% for Partner_Name in custom_attribute.Profiles %} {% if Partner_Name == "Onsi" %} Your partner ID is {{custom_attribute.${Profiles}.Partner ID}}. {% assign found = true %} {% endif %} {% endfor %} {% unless found %} You do not have a partner ID associated with this account. {% endunless %} Thank you for any help or suggestions you have!82Views4likes5Comments