Take your CRM strategy to the next level with Braze
We explain to you why it's worth taking a closer look at Braze and show what's possible with the tool.
- What is a CRM strategy?
- What is Braze?
- Okay, now that we briefly covered the basics and have a rough overview of how Braze works. Next, let's look at a few tips and tricks you can use to better plan your CRM strategy in Braze.
- In recent months, Braze has introduced several new features that I would like to introduce to you here. It's worth taking a look.
If you're looking for CRM tools for your mobile app or web application, you've probably come across Braze. Regardless of whether you're already familiar with it or even use it, our guest author Maximilian Grabowski wants to show you why it's worth taking a closer look at this tool. He also gives you a few tips on how you can take your CRM strategy to a new level with Braze.
What is a CRM strategy?
CRM stands for "Customer Relationship Management" and refers to a strategic approach to managing and interacting with existing or potential customers. The goal is to strengthen customer loyalty and sustainably promote company growth. CRM is not just a marketing tool, but a comprehensive system that aims to encourage clientele to a specific action, such as using a service or purchasing a product, through direct and data-driven targeting. A CRM strategy defines the planned approach within the user lifecycle, such as onboarding new users or reactivating existing customers through automations. These strategies can range from simple email or push messages to complex data-driven automations. You can easily implement and scale your CRM strategies with a tool like Braze.
What is Braze?
Braze is a leading customer engagement software solution that supports you and your team in creating and managing CRM automations and campaigns. Braze has over 1,950 customers worldwide in 50 countries, including Germany and integration into existing systems is easily done via its own SDK or API.
With Braze you can create targeted and dynamic segmentations based on various filters, communication goals or the engagement of your users. Based on this data, you are able to develop and implement cross-platform strategies across the channels email, mobile & web push, content cards, SMS, in-app messaging, webhooks and recently also WhatsApp. Thanks to the extensive documentation the fast support and the active Braze Bonfire Community you will quickly find answers and help on any topic.
In this article, I will go into the most important functions of Braze and try to bring them closer to you. I will also show you some tips and tricks from my daily work with Braze, which can help you optimize your CRM strategy.
The basics
For those who are not yet familiar with Braze: Let's look at the basics to understand how the tool works and how we can build and optimize our strategy in Braze.
Campaign vs. Canvas Flow
In Braze, you can choose between campaigns (Campaign) and Canvas Flows when creating your strategy. A Campaign defines the creation of a single communication channel such as sending an email or a push message to a certain target group. This communication can be triggered either time-based (e.g. Monday at 11:00 am) or action-based (e.g. when a user buys Product X). You can test different variants, use a control group and, of course, define and track conversions.
For the Canvas Flow, these possibilities also apply. However, the essential difference is that the Canvas Flow can depict a complex customer journey with various stages and subdivisions. Overall, you can design your 360-degree communication strategy more precisely, target group-specific and optimally timed with the Canvas Flow, so that each user receives the appropriate message at the right time.
Source: Braze
Custom Attributes and Custom Events
Data is essential in CRM. Braze allows you to transmit and store data in the form of attributes and events using its own SDK and API. For attributes, there is a distinction between standard (out of the box) and user-defined attributes (Custom Attributes). You can think of Custom Attributes as variables in which you can store information such as first name, last name, email or other user information relevant to you and reuse it at any time. We often use Custom Attributes to filter or personalize our communication. You will find a few examples and tips on this in the further text.
A Custom Event represents an action defined by you that a user performs. You need to define and trigger this action in your application using the SDK or via your backend using an API call. Examples are the login and registration of a user or the addition of a specific product to the shopping cart. These events can contain "Event Properties" that provide additional information, such as which product was added to the shopping cart in what quantity. We can use all this data in our strategy to send individually tailored communication. Here is an example:
Anna, a customer, is browsing our e-commerce app and looking at various products. She adds three items to the shopping cart. For each added product, we receive in Braze the Custom Event "product_added" with the associated product ID. However, before Anna makes a purchase, she leaves the app. Through our Custom Event, we have triggered a Canvas Flow that waits 2 hours. If Anna does not buy a product during this time, we send her a push message asking if she needs assistance. If she still does not buy the products, we send her an email with a 15% coupon code the next day. This is a very simple example of an "Abandoned Cart Automation", but exactly such simple scenarios up to complex data-driven automations are possible with Custom Events and Custom Attributes in Braze.
Data Points
Now that we understand the concept of Custom Attributes and Custom Events, we might think that ideally we should send all gathered information and data to Braze to make our CRM strategy as targeted as possible. However, this is not the case. Each Custom Attribute (with the exception of "out of the box" attributes) and every event consume so-called Data Points". The maximum number of Data Points is stipulated in your contract with Braze and is limited. The costs of your contract are therefore based on the consumption of these Data Points. Therefore, it is crucial to carefully weigh which information is really relevant for your strategy and what you want to store in Braze. Close communication and cooperation with your product and data team is essential here to set common goals and guidelines for the use of Data Points.Sage AI
Artificial Intelligence (AI) and machine learning algorithms are becoming increasingly important for companies today, especially in marketing and strategy development. With
Okay, now that we briefly covered the basics and have a rough overview of how Braze works. Next, let's look at a few tips and tricks you can use to better plan your CRM strategy in Braze.
1. Personalizations and Liquid
In Braze, you can integrate personalizations anytime and anywhere in your communication by using Liquid Code. Liquid is an open source scripting language developed by Shopify that is based on Ruby. It allows you to use dynamic content and conditions such as if-else statements without in-depth programming knowledge. Braze also uses Liquid and gives you the possibility to benefit from simple personalizations to complex and dynamic calculations in your CRM strategy.
Let's consider a thought experiment: We hypothesize that directly addressing customers by their first name in our push message improves the conversion rate. To test this, we can perform an A/B test with our Campaign or Canvas Flow. We integrate the first name with the Liquid tag
{{${first_name}}}. Our message could then look like this:Source: own representation
But what do we do if we don't have this information stored and do not know the customer's first name? We solve this problem with a
Default Filter. We can apply it as follows:Source: own representation
Braze provides a range of pre-defined Liquid tags for personalization by default
, including the email address, phone number, device information, user attributes, and much more. In the documentation you will find a detailed list of these tags, as well as a more detailed guide to using Liquid.With Liquid, we can use in our communication information we have stored in Braze in a Custom Attribute about our customers. We use the Liquid tag
{{custom_attribute.${your_custom_attribute}}} for this. This allows us to use further personal information from our customers in our strategy. This strengthens the personalization and the level of information, thereby improving the relevance of our communication..Playing off the previous example. Let's say we store the last article read in a Custom Attribute called "last_article_read". Then our push message would look like this:
Perfect! Now we have understood how we can integrate dynamic content into our communication and CRM strategy in Braze. But how do we ensure that each consumer receives exactly the communication that suits him or her? How do we filter, for example, different languages, time zones or times of day?
One possibility would be to use different incoming filters already when creating our communication. These are conditions that we define in the settings of our Campaign or Canvas Flow, allowing us to specifically target certain customer groups. This is advantageous if we want to take into account different criteria, such as the customer must have placed at least five orders.
The second possibility would be to directly and dynamically adjust our content by conditions. These are basic elements of every programming or scripting language and can also be a real helper in Braze. Conditions or If-statements enable us to define different criteria that must be met or not met in order to perform an action. As a fallback, we can define an Else-statement, which always applies if the conditions are not met before. So we say, if scenario X sets in, please run action Y. Otherwise run action Z. It sounds more complicated at first glance than it is. So let's take a closer look:
Braze recognizes Liquid functions based on the special brackets, more concretely through the combination of characters
{% Liquid Function %}. An instruction starts with the keyword {% if %} and is followed by the condition. Here we work with Boolean expressions, i.e. "true" (TRUE) or "false" (FALSE). A condition must always be evaluated as "true" in order for the associated action to be executed. To verify this we use operators, in this example the two equal signs as we want to check whether the category of the last read article is 'CRM'. With {% endif %} we signal to Braze the end of the instruction.This is only a simple example for the use of Liquid functions for
personalizations. Liquid offers the potential to make your communication strategies significantly more complex and expanded. Therefore, I recommend that you engage intensively with it.2. Connected Content
A probably often overlooked, but very powerful feature in Braze is the use of
"Connected Content". It allows you to integrate external information and services directly into your communication at user level. Here are two use cases with examples that can definitely upgrade your CRM strategy in Braze:2.1 Use Google Sheets as your headless CMS:
Yes, you can pull your content directly from a Google Spreadsheet. All you need is a little Liquid knowledge and your Google Sheet needs to be accessible via a link. For an alternative, you could also integrate an authentication process, but this complicates the process somewhat. Here is a simple application example:
{% assign spreadsheetId = '123456' %}
{% assign range = 'A:Z' %}
{% assign API_KEY = 'API_KEY' %}
{% connected_content https://sheets.googleapis.com/v4/spreadsheets/{{spreadsheetId}}/values/{{range}}?majorDimension=COLUMNS&key={{API_KEY}} :save payload :retry %}
{% if payload.__http_status_code__ != 200 %}
{% abort_message('Connected Content returned a non-200 status code') %}
{% endif %}
{% for value in payload.values %}
{% if value[0] == 'MyValue' %}
{{value[1]}}
{% endif %}
{% endfor %}
Okay, let's look at exactly what the Liquid Code is doing:
We
- define a variable with our Spreadsheet ID. You can find this in the URL of your Google Sheet.We
- set a variable for the range (Range) of our Spreadsheet.We
- create a variable for our API-Key. You need to generate this previously in your Google Cloud console.Using the Liquid function "Connected Content", we
- call the content of our Spreadsheet via the URL of the Google Sheets API and
store the response in the cache variable "payload". The larger her capacity, the more information she can store. With the property "majorDimension=COLUMN" we determine that we want to receive our data in column form. This can also be changed to "ROW" (rows).Using a for loop, we go through the output and check if the first column
- the header column - contains our searched term. If this is the case, we can use {{value[i]}} to output the value of the underlying rows.Thanks to this function, we can integrate contents such as header, body, subject line etc. directly from the Google Sheet into our communication.
At
CIRCUS we use this integration for example to automatically generate product information of our weekly changing menu in our emails. We call up the product ID for the respective week and thanks to our catalog in Braze (more on that later) we can automatically insert content such as images, price, description and link.2.2 Generate individual content with GPT
Yes, you can use the "Connected Content" feature to expand your CRM strategy with AI. This enables you to generate individual content for each user based on favorites or recommendations.
{% capture postbody %}
{
"model":"gpt-3.5-turbo-instruct",
"prompt":"Say Hi to OMR Reviews",
"max_tokens":7,
"temperature":0
}
{% endcapture %}
{% connected_content
https://api.openai.com/v1/completions
:method POST
:headers {
"Content-Type": "application/json",
"Authorization": "Bearer API_KEY"
}
:body {{postbody}}
:content_type application/json
:save result
%}
{% if result.__http_status_code__ != 200 %}
{% abort_message('Connected Content returned a non-200 status code') %}
{% endif %}
{{result.choices[0].text}}
You can use the above Liquid Code and adjust the properties "prompt", "max_tokens" and "temperature".
A small tip: If you work with API calls in your communication, you have to manage errors correctly. This prevents faulty or missing content due to a non or badly functioning API. Just use the {% abort_message() %} Liquid tag to abort messages. Take a careful look at the documentation and do some experiments. You'll be surprised how many more use cases you will discover, such as weather-triggered communication.
3. Braze to Braze Webhook
A trick that I often use in various campaigns is the use of "Braze to Braze Webhooks". These are special webhooks within Braze that serve to track information or actions. For example, we can change a Custom Attribute or adjust the status of a subscriber group directly as soon as a user performs a certain action.
To illustrate by an example: Suppose we want to capture the number of orders within a certain period for a campaign. After the fifth order, a message should be sent. Each time a purchase is made, we can trigger a webhook that increases a Custom Attribute called "september_order_count". The webhook could then look like this:
{% assign new_counted_value = {{custom_attribute.${september_order_count}}} | plus: 1 %}
{
"attributes":[
{
"external_id":"{{${user_id}}}",
"september_order_count":{{new_counted_value}}
}
]
}
Alternatively, we can also use the new "Update User" Canvas Flow Step for this. Here is an example of how to change a subscriber group of a user:
Source: own representation
In the "Advanced JSON Editor" you can also use Liquid and Connected Content to expand and scale your functionality. Thanks to the "User Update" step, it is now even easier to store and manage first- and third-party data.
I hope the tips and tricks have given you a good insight into the possibilities and functions of Braze and help you optimize your CRM strategy in Braze.
4 Features in Braze You Shouldn't Miss
In recent months, Braze has introduced several new features that I would like to introduce to you here. It's worth taking a look.
1. Cloud Data Ingestion
Cloud Data Ingestion (CDI)
as your data warehouse, be sure to take a close look at the data sharing function. With it, you can use all the data that Braze captures, such as campaign and channel information, directly in Snowflake to create complex analyses and dashboards. This function has simplified our reporting at CIRCUS. Snowflake2. Catalogs
Do you run an e-commerce shop or do you need a database for your products? Then the
Data Transformation
is a new and long-awaited function that many other customer engagement solutions have already been offering for a long time. With it, you can create webhooks to transmit data from external platforms to Braze and adapt them in such a way that they are usable for you using JavaScript. A simple example would be the transfer of survey responses from to Braze and the storage of this information as Custom Attributes. TypeformIn Braze, of course, you can also directly integrate external
technology partners to facilitate data exchange. For more information, check out the documentation or here are a few examples:4. SQL Editor and SQL Segment Extension
Braze already offers the possibility in its dashboard to easily analyze the performance of campaigns and channels or create reports. For detailed analyses or information, the new SQL Editor provides a function with which you can write your own queries. This is particularly useful if you want to access data that is not available in the standard dashboard. The topic of Sage AI is also relevant here: New to Braze's AI integration is that even SQL inexperienced users can describe their concern, whereupon a SQL query is automatically generated. This means you no longer have to rely on external resources or teams for quick and in-depth analysis. And with the SQL Segment Extension, you can create target group segments directly from your SQL queries that you can use for campaigns.
If you use WhatsApp in Braze, you could for example create a SQL Segment Extension to send an email to users to whom your WhatsApp messages could not be delivered in the last 7 days.
Source: own representation
As you can see, Braze now offers numerous data processing features that can help you in your daily work to collect, process and analyze the necessary information for your CRM strategy.
I hope this article has given you a good insight into the functions of Braze and helps you understand how you can take your CRM strategies to a new level with Braze. When working with Braze, "out-of-the-box thinking" is often required.
Even if there is no direct solution, there is usually a workaround. And such workarounds are especially found when you know the diverse possibilities of Braze. Because the tool hardly sets you any limits.. Und solche Workarounds entdeckst du vor allem dann, wenn du die vielfältigen Möglichkeiten von Braze kennst. Denn das Tool setzt dir kaum Grenzen.
Empfehlenswerte CRM Tools & Softwares
Insgesamt haben wir auf OMR Reviews über 250 CRM-System-Anbieter gelistet, die dich im Customer-Relationship-Management (CRM) unterstützen können. Schau also auf OMR Reviews vorbei und vergleiche die CRM-Tools mithilfe der authentischen und verifizierten Nutzerbewertungen. Hier sind einige Empfehlenswerte: