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
Loyalty programme recommendations
Hey Bonfire Community! We are looking at loyalty programme solutions which nicely integrate with Braze. Any experiences around partners like Open Loyalty, Antavo, Loyalty Co, Talon.One & Birdeye are very welcome :) Pros/cons and anything in between, please feel free to share! Thank you in advance. Cheers, Rosa77Views2likes3CommentsWordPress API to Catalogs
Hi all, I'm trying to automate the process of getting our blog posts (on wordpress) updated to a catalog. Ideally, this would automatically create a new catalog item when a new blog was created and would update images and information when an existing blog post is updated. Does anyone have experience doing this and how was it accomplished? Is it working for you? Thanks!116Views0likes4Comments2026 Certificate Promo Code
Hello, There was a post about 100% off certification in all learning paths completed Jan 5-31. My question is - I've been waiting to register for this test and I didn't receive any code to my inbox. Is it because I completed the learning path before? Can you please send a promo code to my inbox for me to complete level 1 certificate? Thanks a lot!SolvedLatency when refreshing Banner
Hi! We're having some issues with a Banner in our app. We have a flow where 1. User clicks on Banner 2. We log a custom event 3. Custom event Triggers an IAM 4. When user clicks on the IAM, it assigns a custom attribute using the brazeBridge method 5. We flush the data 6. The user dismisses the IAM 7. We refresh the banner (after a 20 sec delay) 8. The banner re-runs the liquid to check if there is a value present in the attribute we assigned in step 4. If it is, then show a different UI. However, between step 7-8, there is a very long and inconsistent latency, between 10 seconds up to minutes. So the banner doesn't refresh. And we usually run into rate-limit issues trying to refresh the banner over, and over. Has anyone had any similar use-case, leveraging banners to trigger a modal, and then updating the banner depending on actions taken in the modal? If so, did you also have similar issues as above, and how did you solve them?56Views0likes1CommentDiscrepency between bounce count on segment vs SQL
While looking into some deliverability questions, I created a segment of recipients who have received any message after 2025-12-03, and where hard bounced is true, and found a size of 114,000 To get some better insight into the causes of these bounces, I ran a query against the USERS_MESSAGE_EMAIL_BOUNCE_SHARED table in the Query Builder, which only shows 297 bounces. Am I looking at the wrong table, or is my segment incorrect? This feels like I have a significant misunderstanding at to what these things represent. Thanks!92Views0likes2CommentsStrategy to Identify Duplicate Profiles
We needed to identify and merge duplicate Braze profiles (same email, different user IDs) across our entire user base. We evaluated two solutions. Solution 1: Identify duplicate profiles via /users/export/ids and attach a custom attribute for segmentation Export each profile, identify duplicates externally, then update profiles with a custom attribute is_duplicated=true and capture them via a segment. {% connected_content https://rest.au-01.braze.com/users/export/ids :method post :headers { "Authorization": "Bearer XXXX" } :body {"email_address":"{{${email_address}}}"} :content_type application/json :no_cache :save result %} {% if result.users.size == 1 %} {% abort_message('User is unique.') %} {% endif %} { "attributes" : [ { "braze_id" : "{{${braze_id}}}", "is_duplicated": true, "_update_existing_only" : true } ] } One caveat with this solution is that we need to export the entire user base, and it will take a couple of days to identify the duplicates. Solution 2: Identify the duplicate profiles via a Segment extension Key Assumptions: Every profile in Braze has at least one entry in USERS_BEHAVIORS_SUBSCRIPTION_GLOBALSTATECHANGE_SHARED (i.e., all profiles have a subscription state change event) Every deleted profile appears in USERS_USERDELETEREQUEST_SHARED Here's the query we're using: -- Purpose: Identify duplicate Braze profiles (same email, different user IDs) for merging via /users/merge endpoint -- Excludes deleted/orphaned users and only returns duplicates where 2+ active profiles remain WITH active_users AS ( -- Get unique user/email pairs, excluding deleted/orphaned users SELECT u.USER_ID, u.EMAIL_ADDRESS FROM USERS_BEHAVIORS_SUBSCRIPTION_GLOBALSTATECHANGE_SHARED u LEFT JOIN USERS_USERDELETEREQUEST_SHARED d ON u.USER_ID = d.USER_ID WHERE u.EMAIL_ADDRESS IS NOT NULL AND d.USER_ID IS NULL -- Exclude deleted/orphaned users GROUP BY u.USER_ID, u.EMAIL_ADDRESS -- Dedupe since source table contains multiple events per user ) SELECT DISTINCT a.USER_ID FROM active_users a INNER JOIN ( -- Find emails with more than one active user profile SELECT EMAIL_ADDRESS FROM active_users GROUP BY EMAIL_ADDRESS HAVING COUNT(*) > 1 ) dup ON a.EMAIL_ADDRESS = dup.EMAIL_ADDRESS; Key findings: This query only takes a couple of minutes to identify duplicates USERS_USERDELETEREQUEST_SHARED contains both explicitly deleted users AND users orphaned via /users/merge - this means the query automatically excludes already-merged profiles. Looks like Braze prunes orphaned profiles after /users/merge is performed. Has anyone else taken this approach? Curious if there are edge cases we should watch out for.99Views0likes2CommentsRace Condition Issue between API-trigger and mail execution during Registration
Hello people, I have this interesting case which looking for a proper solution that wont affect the UX during onboarding. When user completes the registration process, we send a service mail with a verification link that users can verify their email addresses. Service mail is set as API-triggered campaign and we have this race problem that sometimes the API call is prior to mail execution which gives an error: "User can't found" Our campaign flow for user creation process on Braze contains 2 steps: 1- API call to create a ghost user (using alias and email address attribute only) to create user profile 2- API call to find the user profile and trigger the email send 3- when user clicks and verify mail --> actual user profile is created with all attributes. 4- API call to merge these user profiles. Between step 1 and 2, API call to find user data for executing email fails. Any user case or solution with this issue above? Support suggesting to add more delay between API calls to not face race condition, however registering a service and wait 3-4 minutes of 1st email for verification is not match with our UX flow. Thanks in advance296Views0likes5CommentsFigma to Braze HTML templates
Hello guys, I am trying to find a plugin or any 3rd party tool that can export from figma designs to the braze. There is this plugin called Emailify on figma which I can export the email design as HTML template directly to the email templates on braze via API. Now I am trying to apply this to landing pages and in-app messages. Anyone using custom html templates for these channels? if yes, can you please share your experience and maybe suggest a solution?300Views0likes5CommentsIssue with push notifications
Hello - We have a user stating that he is not receiving our push notifications. - He has the most updated app version. - He has push notifications allowed. - He has 2 Push Tokens (he has 2 devices), Foreground for both, for the correct app version. - He is subscribed to push notifications. - Braze is sending him the push notifications, I see them as "send" on his Messaging History tab. Everything seems correct on our end, but the user does not receive our pushes? I run the SDK debugger, and even though he closed the app and relaunched it, the debugger is still in “Waiting for device to connect”. So something is happening with his device, I assume. Any ideas on what could I test or what could be happening? I appreciate it!58Views0likes0Comments