ContributionsMost RecentMost LikesSolutionsRe: Personalization with Liquid using purchase events on order level Hi elena14apologies if I misread, but my understanding of your original post (I probably just assumed!) was that you wanted to capture the product name for liquid personalization, for which you'd use the schema I suggested: {{purchases[0].properties.products[0].name}} If this is for trigger criteria, then I think you could simply try: properties.name (also try "is" vs "equals" vs "matches regex" if you have different logic options available) To be honest I haven't worked with order level purchase events, and this might require some trial and error. To your point that event property schemas cannot be generated for purchase events - this is definitely confusing in the documentation, but youcan definitely trigger campaigns off purchase properties.When Braze mentions that "Event property schemas cannot be generated for purchase events," it means that the specific structure of data for purchase events is fixed and cannot be dynamically generated or altered based on past data, unlike custom events where schemas can adapt based on the data received over the past 24 hours. Essentially, the schema for purchase events is predetermined and not subject to change based on incoming data. Hope that finally works! Re: Personalization with Liquid using purchase events on order level Heyelena14- are you able to share an example of your JSON event structure? I believe the one above might be taken from Braze's documentation. Even if your's is really similar, a small difference (structure, naming, etc) might be the key here. Re: Personalization with Liquid using purchase events on order level HIelena14- if your JSON event data structure is like the one shown above, you will need to usedot notation to access the nested data. Please try the following and see if it works: Todisplay the name of the first product: {{purchases[0].properties.products[0].name}} To display the name of the second product: {{purchases[0].properties.products[1].name}} and so on... Re: Randomizing NPS messages Very cool! Thanks for sharingJudgeJules- to be honest it’s the first time I see that as well 😅 but I never had the need to limit entries like this and I guess it’s a tiny feature you’d only find when you really need it. The webhook part makes a lot of sense. Not sure if you’re doing it already, but you can also store the user’s response as a custom attribute and later re-target them: say you had an NPS score range between 1-5 - you could retarget those that chose 4 or 5 with a prompt to rate the app on the store or share with a friend; and those that chose 1-3 with a feedback survey or so. Good luck with the NPS! Re: See the history of changes to a custom attribute Cool, would love to know if there's a way. They do sometimes have ways to enable certain features but have them disabled by default to avoid that your data point consumption goes wild, but have a feeling it won't be the case with this one 😐 Re: Randomizing NPS messages HeyJudgeJulesI don't have an immediate solution but would it be an option to use a campaign instead of a canvas - you might have more control that way. My understanding is that within canvases, IAMs are delivered to the device as soon as segmentation criteria is met and remain "on hold" until a session is started - this would be worth double checking with your CSM rep, but if it's correct it might indeed make it quite hard to select users, as you can't guess which 500 will open the app on any given day. I think this behavior is slightly different for campaigns as you could do action-triggered based on session start instead of a schedule. Re: How to use selections in webhook Heyueda_1220, the code structureManoj__shared looks correct. I think what you're missing is the Selection part after the catalog name - I set up a dummy one below (see bold): {% catalog_selection_items IP_Test Selection1 %} {% assign tmp = items[0].item1 %} {{tmp}} --> returns expected value When you're adding Personalization you can choose Selection from the drop-down: Re: See the history of changes to a custom attribute Hi jewsbur0TN- as far as I know, no… Braze does not provide the ability to review the history of changes for custom attributes on a specific user profile. Once a custom attribute is updated, the previous value is overwritten and there is no built-in mechanism to track or retrieve the historical changes of that attribute. This is something you’d have to workaround with an external logging mechanism to capture and store attribute changes outside of Braze. The only two things I can think of you could do within Braze directly are: 1) action triggered campaigns based on attribute changes - probably not helpful as you want to look back 2) webhooks capturing the attribute change and logging some kind of flag in the users’ profile - this will again not help you historically but if you can afford continue running your campaigns for a few days this could be useful to collect data on changes and re-evaluate, by segmenting customers on that flag. Of course this would imply you have very specific attributes to look at, as looking at all attributes would not only complexity this setup but consume a huge amount of data points hope that helps! Re: Do you use control groups in your Canvas set up? Short answer - yes. However, I do agree withalextoh1that if you're dealing with really marginal volumes, you won't get much insight from a control group. It comes down to your goals and strategy as well - i.e. whether you're focusing on test-learn-iterate and if you need to measure/report on the lift/impact of your CRM efforts, for example, for decision-making, prioritization, reporting to stakeholders, fine-tuning your stratgey etc. Control groups are good to understand: the effectiveness of a specific campaign (campaign / canvas level) at driving your KPI --> campaign/canvas level control group (I typically go for 10% but it would depend on how large your base is, as you'd want to ensure you reach statistical significance) measure an experiment's variant performance --> A/B or multi-variate (depends on test, target size, MDE, etc - recommend to use a calculator like abtestguide or optimizely but there are a number; also great to work with your analytics team on this!). overall performance of your CRM strategy --> Universal Control Group (UCG) set up at the account level (really depends on your userbase size - Braze has some good guidelines here) The exceptions is typically Transactional/Service communications. But there could be other reasons why you choose to exclude the control/UCG - dependant on your own strategy/needs.For example, I once had a client testing different onboarding flows through Braze (using a sophisticated IAM flow setup) due to lack of dev resources at the time to test more natively in the product or a better Product testing tool - they chose to exclude the UCG since they deemed necessary to ensure 100% of the base got exposure to some variant of an onboarding. On your question about the puzzling incremental lifts - could be, but you need to understand whether your audience sizes and test duration are enough to make your results stat sig; whether you're confident the variable you're testing can directly impact your KPI or if there are other campaigns and external factors that could be playing a role; ... Again, it's always good to work closely with an analyst in planning and measuring your control group strategy and specific experiment results! Lastly, I do think it's worth usingincremental uplift when talking about performance - if you have a clean, significant test, with a high confidence that the difference observed is affected by the variable changed, you will have a very clear case for applying it and optimizing your strategy. You will be making data-driven decisions, and optimizing your strategy and resource allocation based on concrete evidence. In my experience, stakeholders can easily understand this and the concept of incremental lift (it might require some education at first, but it will ultimately open up more interest and awareness around the importance of your strategy and, consequently, make it easier with resources). Re: Inserting a recommendation in a message MaggieBrennanAdding to whatjojo_zieffsaid and just to add more granularity, there are different ways you could go about storing and accessing your recommendations - but all of them will end up using liquid tags to populate the recommendation in the message: - Build a catalog with recommendations based on different attributes - e.g. other content watched, food preferences, city, country, etc - Use connected content to fetch your recommendations from an external database/system - e.g. google sheet working as catalog, recommendations engine, internal database/apis etc - Use conditional logic within the message to run through the different options and logic
GroupsCreative Collective This group is a space for innovators to explore and share creative strategies that push the boundaries of customer engagement.0 PostsSmall but Mighty A dedicated group of Braze customers pioneering customer engagement solutions within their small teams.27 Posts
Creative Collective This group is a space for innovators to explore and share creative strategies that push the boundaries of customer engagement.0 Posts
Small but Mighty A dedicated group of Braze customers pioneering customer engagement solutions within their small teams.27 Posts