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
Referral Strategy
Hello Braze Community! I’m currently working on creating a referral strategy to drive new user acquisition through our most engaged users. I’d like to start a thread with all of you to gather inspiration and discuss different flows we could implement. So far, I’ve identified the following key moments: After a user gives a high rating in our review After a purchase Targeting our most engaged users After a user completes an “aha moment” in our app What do you think? Which strategies have you implemented to carry out a referral strategy. Best regards, SergioMulti-screen survey in app message
Hi there! I am trying to create a multi-screen in-app message with a survey that has 5 questions. 4 questions have a multiple choice answers and 1 is open-ended text. The ideal flow is that the next question is immediately displayed once a user answers a question. Everyone will see the same 6 questions (aka they don't need to be dynamic based off their answers). Does anyone have any tips here? I can only find the option for simple surveys in braze and no option for multi-screen/question. Thanks! Bianca11Views0likes1CommentLatest Braze blog is up now! Deliverability Indicators: Email Opens
Hey Bonfire! We just published a new blog post about email opens and I'd be honored if you checked it out. How important are opens to your marketing program? What other metrics are you monitoring? Do you still have questions about open rates? Let's chat!12Views4likes0CommentsNo Action in Data Transformation
Hi! We are using a data transformation (Track users) to receive events from our loyalty system. As not every incoming event shall trigger any action, I would like to tell the transformation to "do nothing". For this I tried return {} or const brazecall = { attributes: [], events: [] }; return brazecall; Both led to an error. Is there anything I can return to make Braze do nothing and not causing an error in the transformation log? Thanks! Best regards Benjamin11Views0likes0CommentsJSON body arrays in connected content API calls
Currently building out some complex connected content use cases. Many APIs require arrays in the request, however I haven't able to make these types of requests in Braze. I would like to make a request with this body structure: { "model": "sonar-pro", "messages": [ { "role": "system", "content": "Be precise and concise." }, { "role": "user", "content": "How many stars are there in our galaxy?" } ], "max_tokens": 123, "temperature": 0.2 } For context, this is a request to Perplexity API. So far, in testing through webhook.site I haven't been able to properly make this request. I have gotten close using some complex url-encoding but its not 100%. Is there any known limitation of using arrays within the body of requests or a solution/workaround to this issue? Cheers!18Views0likes0CommentsCan Liquid be passed in Custom Event Properties?
Hey Braze Community! I’m trying to set up a Canvas campaign to deliver personalized notifications to users over a time period. The Canvas is triggered by a custom event with a payload like this [ { "external_id": "78647", "app_id": "a5a9dfc3-0511-42d4-a2c6-1759645e30a8", "name": "Purchase Milestone Reached", "time": "2025-01-08T20:08:23.480Z", "properties": { "body": "Congrats on your new purchase!", "deepLink": "https://www..google.com", "deliveryId": 12345, "liquidBody": "Congrats on your new purchase. Call {% catalog_items Purchase_PushNotifications {{custom_attribute.${organizationId}}} %} {{ items[0].PN_name | default: 'your representative' }} for a free upgrade.", "milestoneType": "upgrade", "notificationType": "PREMIUM", "templateId": 107, "title": "✨ Congratulation!" }, "_update_existing_only": false } ] I’ve set up a message step in the Canvas to send iOS and Android notifications. To handle the notification content dynamically, I’m using the following Liquid logic: {% if canvas_entry_properties.${liquidBody} %} {{ canvas_entry_properties.${liquidBody} }} {% else %} {{ canvas_entry_properties.${body} }} {% endif %} The idea is that if the liquidBody property exists in the event payload, the notification should use it as the content. Otherwise, it should fall back to the body property. The Issue The liquidBody property contains a dynamic Liquid template, but when the notification is sent, the template is rendered literally as a string rather than being dynamically evaluated and resolved. For example, placeholders like {% catalog_items ... %} are not being processed; they appear in the notification as-is. My Question Is it currently possible in Braze to pass dynamic Liquid templates (e.g., the liquidBody property) through an event payload and have them evaluated dynamically in the final push notification? If not, is there another way to achieve this? My goal is to generate these templates dynamically outside of Braze and have them rendered properly within notifications. I’d appreciate any suggestions or guidance on whether this is achievable, or if there are alternative approaches that might work better! Thanks in advance for your help!62Views0likes2CommentsControl Group Representivity
We are looking at implementing Braze global control group for measurement. We have typically done this at a canvas level using random buckets Has anyone used these approaches and have any insight on the representivity of the global control vs canvas level controls.55Views0likes3CommentsHow to get started with Braze AI
My company is a B2B banking platform, and our current product marketing approach follows a traditional deterministic model, relying on 'if-then' logic. However, we want to move beyond static flowcharts and drip campaigns to a more dynamic, data-driven next-best action model. I’d love to hear recommendations on where to start. What are the key steps to making this transition successful? And how can I best equip my data team with the insights and resources they need to build an effective system?We've created new blocks and templates for In-App Messages. Would love some feedback
Hi all In the drag&drop in-app editor, we created tools to enhance our own campaigns. The impact of this extension on our teams convinced us to release it as an extension to help other marketers achieve the same results. Video embedding (YouTube, Vimeo, and MP4), countdown timers, interactive scratch-to-reveal coupons, animated counters, auto-close messages, copy-to-clipboard coupon codes, an In-App Messages template library and import/export email templates are just a few of the features included in this extension. Each tool is crafted to help marketers create more dynamic, engaging content—no coding required! This extension is available in the Chrome extension store: https://chromewebstore.google.com/detail/hippo-power-tools-for-bra/klnaclpjbenicaapccooonooopnieekg Would love any feedback you have on this extension, including ideas for more features. Our goal is to make these useful tools for all Braze users.386Views5likes17Comments