User Intelligence Panel with real-time profile data in an in-app message

Published April 08, 2026
Components
Difficulty

Customers expect personalized, data-driven experiences that reflect their real activity and status. Instead of building separate dashboards or static profile pages, you can use Brickworks to create a single, structured data model that dynamically assembles customer profile information and serves it directly inside an in-app message.

In this use case, you will build a User Intelligence Panel — a self-updating profile view displayed as an in-app message in a mobile application. The panel aggregates the following data for each customer in real time:

  • First name
  • Loyalty level (derived from an expression based on loyalty points thresholds)
  • Total transaction value
  • Total loyalty points (earned minus expired)
  • Number of transactions
  • Top visited product categories
  • Active promotions assigned to the customer (fetched dynamically via an External Source)
  • Historical transaction list with product names, amounts, dates, and loyalty points earned

Each customer sees a personalized version of the panel based on their own behavioral and transactional data. Every new purchase or interaction automatically updates what is displayed.

This approach eliminates the need for custom frontend-backend integrations by leveraging Brickworks as the single source of truth for the profile UI.

User Intelligence Panel in-app message example

Prerequisites


Process


In this use case, you will go through the following steps:

  1. Create aggregates for loyalty points to compute earned and expired points.
  2. Create aggregates for transaction and behavioral data.
  3. Create expressions to compute loyalty points balance and loyalty level.
  4. Create segmentations for loyalty tiers that define thresholds for each loyalty level.
  5. Create additional aggregates for transaction history to power the transaction list in the panel.
  6. Create a Brickworks schema that defines the data structure.
  7. Create a record that binds schema fields to actual data sources.
  8. Create an in-app campaign that renders the panel using the Brickworks schema.

Create aggregates for loyalty points


In this part of the process, you will create two aggregates based on the points.loyalty event. These aggregates are later used in the expression that calculates the customer’s net loyalty points balance, and in segmentations that determine the loyalty tier.

Aggregate for earned loyalty points sum


This aggregate sums all loyalty points ever earned by the customer.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] loyalty points sum.
  4. Click Analyze profiles by and select Sum.
  5. From the Choose event dropdown list, select the points.loyalty event.
  6. As the event parameter, select points.
  7. Define the period to Lifetime.
  8. Save the aggregate.
Configuration of the earned loyalty points sum aggregate
Configuration of the earned loyalty points sum aggregate

Aggregate for expired loyalty points


This aggregate sums only the loyalty points that have expired.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] expired loyalty points.
  4. Click Analyze profiles by and select Sum.
  5. From the Choose event dropdown list, select the points.loyalty event.
  6. As the event parameter, select points.
  7. Click the + where button and add the condition: $source Equal expiration.
  8. Define the period to Lifetime.
  9. Save the aggregate.
Configuration of the expired loyalty points aggregate
Configuration of the expired loyalty points aggregate

Create aggregates for transaction and behavioral data


In this part of the process, you will create aggregates that supply transaction and browsing data to the Brickworks schema fields.

Aggregate for sum of transactions


This aggregate calculates the total monetary value of all customer transactions.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Sum of transactions.
  4. Click Analyze profiles by and select Sum.
  5. From the Choose event dropdown list, select the transaction.charge event.
  6. As the event parameter, select $totalAmount.
  7. Define the period to Lifetime.
  8. Save the aggregate.
Configuration of the sum of transactions aggregate
Configuration of the sum of transactions aggregate

Aggregate for number of transactions


This aggregate counts the total number of transactions for each customer.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Number of transactions.
  4. Click Analyze profiles by and select Count.
  5. From the Choose event dropdown list, select the transaction.charge event.
  6. Define the period to Lifetime.
  7. Save the aggregate.
Configuration of the number of transactions aggregate
Configuration of the number of transactions aggregate

Aggregate for top 5 visited categories


This aggregate returns the most frequently visited product categories for each customer.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Top 5 visited categories.
  4. Click Analyze profiles by and select Top Multi.
  5. From the Choose event dropdown list, select the page.visit event.
  6. As the event parameter, select product:category.
  7. Click the + where button and add the condition that product:category is not null.
  8. In the Size field, enter 5.
  9. Define the period to the Last 30 days.
  10. Save the aggregate.
Configuration of the top 5 visited categories aggregate
Configuration of the top 5 visited categories aggregate

Create expressions


In this part of the process, you will create expressions that compute derived values used in the Brickworks schema.

Expression for loyalty points


This expression calculates the customer’s current net loyalty points balance by subtracting expired points from the total earned points.

  1. Go to Analytics icon Behavioral Data Hub > Expressions > New expression.

  2. Enter the name of the expression, for example [UC] Loyalty points.

  3. Set Expressions for to Attribute.

  4. Enable Show in profile card if you want the result visible on customer profiles.

  5. In the Formula definition, define the formula as:

    • earned loyalty points sum minus expired loyalty points

    where the first operand references the [UC] loyalty points sum aggregate and the second references the [UC] expired loyalty points aggregate, both created in the previous step.

  6. Click Publish.

Configuration of the Loyalty points expression
Configuration of the Loyalty points expression

Expression for loyalty level


This will expression determine the customer’s loyalty tier based on the segmentations.

Create segmentations for loyalty tiers


In this part of the process, you will create segmentations that define the loyalty point thresholds for each tier.

The loyalty tiers in this example are based on the following point thresholds:

Tier Condition
Base Loyalty points sum ≤ 1
Silver Loyalty points sum > 1 AND < 4,000
Gold Loyalty points sum ≥ 4,000 AND < 10,000
Premium Loyalty points sum ≥ 10,000
Segmentation for Gold loyalty level

This example shows how to configure a loyalty tier segmentation. The remaining tiers follow the same pattern with different thresholds.

  1. Go to Analytics icon Decision Hub > Segmentations > New segmentation.
  2. Enter the name of the segmentation, for example [UC] Loyalty level - Gold.
  3. Name the segment Gold.
  4. Click Add condition.
  5. From the dropdown list, select Has property.
  6. Choose the [UC] loyalty points sum expression.
  7. From the Choose operator dropdown, select Less than and enter the value 10 000.
  8. Click Add condition.
  9. Again select Has property and choose the [UC] loyalty points sum expression.
  10. From the Choose operator dropdown, select More than and enter the value 4 000.
  11. Connect these conditions with the And operator.
  12. Save the segmentation.
Configuration of the Gold loyalty level segmentation
Configuration of the Gold loyalty level segmentation
Remaining loyalty tier segmentations

Create the remaining segmentations following the same approach as above, adjusting the thresholds:

  • [UC] Loyalty level - Silver: [UC] loyalty points sum More than 1 AND [UC] loyalty points sum Less than 4 000.
Configuration of the Silver loyalty level segmentation
Configuration of the Silver loyalty level segmentation
  • [UC] Loyalty level - Premium: [UC] loyalty points sum More or equal to 10 000.
Configuration of the Premium loyalty level segmentation
Configuration of the Premium loyalty level segmentation
  • [UC] Loyalty level - Base: [UC] loyalty points sum Less or equal to 1.
Configuration of the Base loyalty level segmentation
Configuration of the Base loyalty level segmentation

Create Expression with Loyalty Tiers

For this expression use segmentation created in the previous step.

  1. Go to Analytics icon Behavioral Data Hub > Expressions > New expression.

  2. Enter the name of the expression, for example [UC] Loyalty level.

  3. Set Expressions for to Attribute.

  4. Enable Show in profile card if desired.

  5. In the Formula definition, build a conditional formula using the following logic:

    • If [UC] Loyalty level - Base → return Base member
    • If [UC] Loyalty level - Silver → return Silver member
    • If [UC] Loyalty level - Gold → return Gold member
    • If [UC] Loyalty level - Premium → return Premium member
    • Otherwise → return null

    Each condition references the corresponding segmentation created in the next step.

  6. Click Publish.

Configuration of the Loyalty level expression
Configuration of the Loyalty level expression

Create aggregates for transaction history


The transaction history section of the panel requires six additional aggregates that are referenced inside a Jinjava code field in the Brickworks schema. Each aggregate collects a specific dimension of transaction data so it can be combined into a structured JSON list.

Aggregate for transaction IDs


Collects the order IDs of the customer’s transactions.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Transaction IDs.
  4. Click Analyze profiles by and select Last Multi.
  5. From the Choose event dropdown list, select the transaction.charge event.
  6. As the event parameter, select $orderId.
  7. In the Size field, enter 25.
  8. Define the period to Lifetime.
  9. Save the aggregate.
Configuration of the transaction IDs aggregate
Configuration of the transaction IDs aggregate

Aggregate for transaction loyalty points


Collects the loyalty points associated with each transaction.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Transaction loyalty points.
  4. Click Analyze profiles by and select Last Multi.
  5. From the Choose event dropdown list, select the points.loyalty event.
  6. As the event parameter, select points.
  7. Click the + where button and add the condition: $revenue Is not null.
  8. In the Size field, enter 25.
  9. Define the period to Lifetime.
  10. Save the aggregate.
Configuration of the transaction loyalty points aggregate
Configuration of the transaction loyalty points aggregate

Aggregate for transaction amounts


Collects the monetary amount of each transaction.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Transaction amounts.
  4. Click Analyze profiles by and select Last Multi.
  5. From the Choose event dropdown list, select the transaction.charge event.
  6. As the event parameter, select $totalAmount.
  7. In the Size field, enter 25.
  8. Define the period to Lifetime.
  9. Save the aggregate.
Configuration of the transaction amounts aggregate
Configuration of the transaction amounts aggregate

Aggregate for transaction dates


Collects the timestamps of each transaction.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Transaction dates.
  4. Click Analyze profiles by and select Last Multi.
  5. From the Choose event dropdown list, select the transaction.charge event.
  6. As the event parameter, select TIMESTAMP.
  7. In the Size field, enter 25.
  8. Define the period to Lifetime.
  9. Save the aggregate.
Configuration of the transaction dates aggregate
Configuration of the transaction dates aggregate

Aggregate for product names from transactions


Collects the product names from individual bought items.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Transaction product names.
  4. Click Analyze profiles by and select Last Multi.
  5. From the Choose event dropdown list, select the product.buy event.
  6. As the event parameter, select $name.
  7. In the Size field, enter 1 000.
  8. Define the period to Lifetime.
  9. Save the aggregate.
Configuration of the transaction product names aggregate
Configuration of the transaction product names aggregate

Aggregate for order IDs from product buy events


Collects the order IDs associated with each product buy event, so products can be grouped by transaction.

  1. Go to Analytics icon Behavioral Data Hub > Live Aggregates > Create aggregate.
  2. As the aggregate type, select Profile.
  3. Enter the name of the aggregate, for example [UC] Product buy order IDs.
  4. Click Analyze profiles by and select Last Multi.
  5. From the Choose event dropdown list, select the product.buy event.
  6. As the event parameter, select $orderId.
  7. In the Size field, enter 1 000.
  8. Define the period to Lifetime.
  9. Save the aggregate.
Configuration of the product buy order IDs aggregate
Configuration of the product buy order IDs aggregate

Create a Brickworks schema


In this part of the process, you will create a Brickworks Simple schema that defines the structure of the User Intelligence Panel. The schema specifies the field names, types, and configuration options. The actual binding of fields to data sources (expressions, aggregates, profile attributes) happens at the record level, where values are resolved via API at generation time for the requesting customer.

Important: Use a Simple Schema. Simple schemas support External Sources fields (such as the Promotion list), which is required for dynamically fetching promotion data in the in-app context.
  1. Go to Data Modeling Hub > Brickworks > New schema.
  2. Choose Simple Schema.
  3. Enter the Display name, for example User Intelligence Panel.
  4. Optionally, add a description.

Add First name field


  1. Click Add new field and choose the appropriate field type.
  2. In the Field basics section, complete the fields:
    • Display name: First name
    • API name: firstName
  3. In the Configuration section, enable the Return null when object is missing checkbox.
  4. In the Validation section, enable the Required field checkbox.
  5. Click Apply.
Configuration of the First name field in the Brickworks schema
Configuration of the First name field in the Brickworks schema

Add Loyalty level field


  1. Click Add new field and choose the appropriate field type.
  2. In the Field basics section, complete the fields:
    • Display name: Loyalty level
    • API name: loyaltyLevel
  3. In the Configuration section, enable the Return null when object is missing checkbox.
  4. In the Validation section, enable the Required field checkbox.
  5. Click Apply.
Configuration of the Loyalty level field in the Brickworks schema
Configuration of the Loyalty level field in the Brickworks schema

Add Transaction total field


  1. Click Add new field and choose the appropriate field type.
  2. In the Field basics section, complete the fields:
    • Display name: Transaction total
    • API name: transactionTotal
  3. In the Configuration section, enable the Return null when object is missing checkbox.
  4. In the Validation section, enable the Required field checkbox.
  5. Click Apply.
Configuration of the Transaction total field in the Brickworks schema
Configuration of the Transaction total field in the Brickworks schema

Add Loyalty points total field


  1. Click Add new field and choose the appropriate field type.
  2. In the Field basics section, complete the fields:
    • Display name: Loyalty points total
    • API name: loyaltyPointsTotal
  3. In the Configuration section, enable the Return null when object is missing checkbox.
  4. In the Validation section, enable the Required field checkbox.
  5. Click Apply.
Configuration of the Loyalty points total field in the Brickworks schema
Configuration of the Loyalty points total field in the Brickworks schema

Add Number of transactions field


  1. Click Add new field and choose the appropriate field type.
  2. In the Field basics section, complete the fields:
    • Display name: Number of transactions
    • API name: numberOfTransactions
  3. In the Configuration section, enable the Return null when object is missing checkbox.
  4. In the Validation section, enable the Required field checkbox.
  5. Click Apply.
Configuration of the Number of transactions field in the Brickworks schema
Configuration of the Number of transactions field in the Brickworks schema

Add Top visited categories field


  1. Click Add new field and choose the appropriate field type.
  2. In the Field basics section, complete the fields:
    • Display name: Top visited categories
    • API name: topVisitedCategories
  3. In the Configuration section, enable the Return null when object is missing checkbox.
  4. In the Validation section, enable the Required field checkbox.
  5. Click Apply.
Configuration of the Top visited categories field in the Brickworks schema
Configuration of the Top visited categories field in the Brickworks schema

Add Promotions field


This field uses the External Source type to dynamically fetch the customer’s active promotions from the Synerise Promotions API. Unlike other fields in the schema which only define a name and configuration, this field includes a data source configuration directly — it specifies an HTTP request that will be executed at generation time to retrieve the current list of promotions assigned to the customer.

  1. Click Add new field and choose External Data > Promotion list.
  2. In the Field basics section, complete the fields:
    • Display name: Promotions
    • API name: promotions
  3. In the Configuration section, the field is preconfigured as a Promotion list. The Preview cURL section shows the HTTP request that will be sent:
    curl -X GET "https://api.synerise.com/v4/promotions/v2/promotion/get-for-client/clientId/{{customer.id}}?status=ACTIVE,ASSIGNED&fields=code,name,expireAt,discountType,discountValue,uuid,description" \
    -H "Authorization: Basic USERNAME:PASSWORD"
    
  4. Click Apply.
Configuration of the Promotions field in the Brickworks schema
Configuration of the Promotions field in the Brickworks schema

Add Transaction data field


This field uses Jinjava code that is executed at generation time. Inside the Jinjava code, six aggregates created in the transaction history step are called directly by their hashes using the {% aggregate HASH %} syntax. These aggregates are not configured as separate fields in the schema — they exist only inside this Jinjava code, which combines their results into a single structured JSON output.

  1. Click Add new field and choose Jinjava code.
  2. In the Field basics section, complete the fields:
    • Display name: Transaction data
    • API name: transactionData
  3. In the Configuration section:
    1. Enable the Cast to toggle and select JSON Object as the type.
  4. In the Validation section, enable the Required field checkbox.
  5. In the Jinjava code editor, paste the following code. Replace the aggregate hashes with the hashes of the aggregates you created in the transaction history step:
  {% set txn_ids = [] %}{% set txn_points = [] %}{% set txn_amounts = [] %}{% set txn_dates = [] %}{% set buy_names = [] %}{% set buy_order_ids = [] %}{% aggregate TRANSACTION_IDS_AGGREGATE_HASH %}{%- for res in aggregate_result -%}{% do txn_ids.append(res) %}{%- endfor -%}{% endaggregate %}{% aggregate TRANSACTION_POINTS_AGGREGATE_HASH %}{%- for res in aggregate_result -%}{% do txn_points.append(res) %}{%- endfor -%}{% endaggregate %}{% aggregate TRANSACTION_AMOUNTS_AGGREGATE_HASH %}{%- for res in aggregate_result -%}{% do txn_amounts.append(res) %}{%- endfor -%}{% endaggregate %}{% aggregate TRANSACTION_DATES_AGGREGATE_HASH %}{%- for res in aggregate_result -%}{% set splitDate = res|split(':') %}{% set splitDateLength = splitDate|length %}{% set finalDate = splitDate[0:splitDateLength-1]|join(':') ~ splitDate[splitDateLength-1] %}{% set finalDateFormatted = datetimeformat(finalDate|strtotime("yyyy-MM-dd'T'HH:mm:ss.SSSZ"), '%b %d, %Y') %}{% do txn_dates.append(finalDateFormatted) %}{%- endfor -%}{% endaggregate %}{% aggregate PRODUCT_NAMES_AGGREGATE_HASH %}{%- for res in aggregate_result -%}{% do buy_names.append(res) %}{%- endfor -%}{% endaggregate %}{% aggregate PRODUCT_ORDER_IDS_AGGREGATE_HASH %}{%- for res in aggregate_result -%}{% do buy_order_ids.append(res) %}{%- endfor -%}{% endaggregate %}{% set orders = [] %}{% for i in range(txn_ids | length) %}{% set order_id = txn_ids[i] %}{% set products = [] %}{% for j in range(buy_order_ids | length) %}{% if buy_order_ids[j] == order_id %}{% set _ = products.append(buy_names[j]) %}{% endif %}{% endfor %}{% set _ = orders.append({'orderId': order_id,'date': txn_dates[i],'amount': txn_amounts[i],'loyaltyPoints': txn_points[i],'products': products}) %}{% endfor %}{{ orders | reverse | tojson }}
  
Note: This Jinjava code collects data from six aggregates (transaction IDs, loyalty points per transaction, transaction amounts, transaction dates, product names, and product order IDs), then combines them into a JSON array of order objects. Each order object contains the order ID, formatted date, total amount, loyalty points earned, and a list of product names. The result is reversed so the most recent transactions appear first.
  1. Click Apply.
Configuration of the Transaction data field in the Brickworks schema
Configuration of the Transaction data field in the Brickworks schema

Overview of the complete schema


After adding all fields, the schema should contain the following fields:

Overview of all fields in the User Intelligence Panel Brickworks schema
Overview of all fields in the User Intelligence Panel Brickworks schema

Set up the Audience & Settings


  1. Click the Audience & Settings tab.
  2. In the Audience section, click Define.
  3. Choose Everyone.
  4. Click Apply.
  5. In the upper-right corner, click Save.

Create the record


Creating a record means filling the schema structure with actual data source bindings. In a Simple schema, the record is where you assign concrete expressions, aggregates, and profile attributes to the fields defined in the schema. When the in-app message is displayed, the Brickworks engine uses the record configuration to resolve all field values via API in real time for the requesting customer.

  1. Go to Data Modeling Hub > Data collections > Select schema.
  2. Choose the schema created in the previous step.
  3. Click Add record.
  4. Add a name for the record, for example User Intelligence Panel.
  5. Add a slug for the record. Slug is a unique, URL-friendly version of the name containing only lowercase letters, numbers, and hyphens. For example: user-intelligence-panel.
  6. Fill in the field values by assigning the appropriate data sources to each field:
  7. Click Publish to publish your record.
Note: After publishing the record, note the schema ID and record ID from the URL. You will need these IDs in the in-app template code to reference the Brickworks data via the {% brickworksgeneratevar %} tag.

Create an in-app campaign


In this part of the process, you will create an in-app campaign that renders the User Intelligence Panel using data from the Brickworks schema.

  1. Go to Experience Hub icon Experience Hub > In-app messages > Create in-app.
  2. Enter the name of the in-app message.

Define the audience


  1. In the Audience section, click Define.
  2. Click Everyone (or define a specific segment according to your needs).
  3. Click Apply.

Define content


  1. In the Content section, click Define.
  2. Click Create message.
  3. In the code editor, paste the in-app template code provided below.

The template uses the {% brickworksgeneratevar %} tag to fetch all schema fields for the current customer and renders the profile panel with sections for stats, top interests, dynamically loaded promotions, and past transactions.

  {% brickworksgeneratevar schemaId=SCHEMA_ID recordId=RECORD_ID %}
  <div class="profile-container">
    <button id="close-btn" onclick="SRInApp.close()">&times;</button>
    <div class="profile-header">
      <div class="avatar">{{ brickworks_result.firstName|default('P')|truncate(1, true, '') }}</div>
      <div class="header-info">
        <h1 class="user-name">{{ brickworks_result.firstName|default('Profile') }}</h1>
        <span class="member-badge {{ brickworks_result.loyaltyLevel | lower | replace(' ', '-') }}">{{ brickworks_result.loyaltyLevel }}</span> 
      </div>
    </div>
    <div class="stats-row">
      <div class="stat-card">
        <div class="stat-icon">&#128176;</div>
        <div class="stat-value">${{ brickworks_result.transactionTotal|default('0') }}</div>
        <div class="stat-label">Total Spent</div>
      </div>
      <div class="stat-card highlight">
        <div class="stat-icon">&#127942;</div>
        <div class="stat-value">{{ brickworks_result.loyaltyPointsTotal|default('0') }}</div>
        <div class="stat-label">Loyalty Points</div>
      </div>
      <div class="stat-card">
        <div class="stat-icon">&#128717;</div>
        <div class="stat-value">{{ brickworks_result.numberOfTransactions|default('0') }}</div>
        <div class="stat-label">Transactions</div>
      </div>
    </div>
    {% set topVisitedCategories = brickworks_result.topVisitedCategories %}
    <div class="section-card">
      <div class="section-title">&#128293; Top Interest</div>
      <div class="interest-bar">
        {%- if topVisitedCategories|length > 0 -%}
        {%- for category in topVisitedCategories -%}
          {% set splitCategory = category[0]|split('Default Category > ') %}
          <div class="interest-item">
            <span class="interest-label">{{ splitCategory[1] }}</span>
          </div>
        {%- endfor -%}
        {%- else -%}
        <p class="empty-message">Browse our products to see your interests</p>
        {%- endif -%}
      </div>
    </div>
    <div class="section-card">
      <div class="section-title">&#127873; Active Promotions</div>
      <div class="promo-list">
        {%- if brickworks_result.promotions.data|length > 0 -%}
        {%- for promo in brickworks_result.promotions.data -%}
          <div class="promo-item">
            <div class="promo-badge">{%- if promo.discountType != "NONE" -%}{{ promo.discountValue }}{%- endif -%}{%- if promo.discountType == "PERCENT" -%}% OFF{%- elif promo.discountType == "AMOUNT" -%}$ OFF{%- else -%}PROMO{%- endif -%}</div>
            <div class="promo-info">
              <div class="promo-name">{{ promo.name }}</div>
              <div class="promo-exp">{{ promo.description|truncate(35) }}</div>
            </div>
          </div>
        {%- endfor -%}
        {%- else -%}
        <p class="empty-message">There are no promotions available for you</p>
        {%- endif -%}
      </div>
    </div>
    <div class="section-card">
      <div class="section-title">&#128203; Past Transactions</div>
      <div class="transactions-list">
        {%- if brickworks_result.transactionData|length > 0 -%}
          {%- for transaction in brickworks_result.transactionData -%}
          <div class="tx-item">
            <div class="tx-info">
              <div class="tx-name">{{ transaction.products | join(', ') }}</div>
              <div class="tx-date">{{ transaction.date }}</div>
            </div>
            <div class="tx-right">
              <div class="tx-amount">{{ transaction.amount }}</div>
              <div class="tx-points">+{{ transaction.loyaltyPoints }} pts</div>
            </div>
          </div>
          {%- endfor -%}
        {%- else -%}
        <p class="empty-message">You haven't made any transactions yet</p>
        {%- endif -%}
      </div>
    </div>
  </div>
  {% endbrickworksgeneratevar %}
  
Important: Replace SCHEMA_ID and RECORD_ID with the actual IDs of your Brickworks schema and record. You can find the schema ID and the record ID in the URL when viewing them in the Synerise platform.
  1. Add the appropriate CSS styles to the template to style the profile panel (avatar, stats row, section cards, transaction list, promotion badges, and so on).
  2. If the template is ready, in the upper right corner click Save this template > Save as.
  3. On the pop-up, enter the template name and select the folder. Confirm by clicking Apply.
  4. To continue configuring the in-app campaign, click Next.
  5. Click Apply.

Select events that trigger the in-app message display


Define which event triggers the display of the User Intelligence Panel. For example, you can display it when the customer opens a specific section of the application or taps a profile button.

  1. In the Trigger events section, click Define.
  2. Select Add event and from the dropdown list, choose the appropriate event (for example, screen.view with a parameter matching your profile screen).
  3. Configure the event parameters according to your application’s navigation structure.
  4. Click Apply.

Schedule the message and configure display settings


  1. In the Schedule section, click Define and set the time when the message will be active.
  2. In the Display Settings section, click Change.
  3. Define the Delay display, Priority index, and enable the Frequency limit toggle to manage the frequency of display according to your business needs.
  4. Click Apply.
  5. Optionally, define UTM parameters and additional parameters.
  6. Click Activate.

Check the use case set up on the Synerise Demo workspace


You can check the configuration of each step directly in the Synerise Demo workspace:

If you’re our partner or client, you already have automatic access to the Synerise Demo workspace (1590), where you can explore all the configured elements of this use case and copy them to your workspace.

If you’re not a partner or client yet, we encourage you to fill out the contact form to schedule a meeting with our representatives. They’ll be happy to show you how our demo works and discuss how you can apply this use case in your business.

Read more


😕

We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

😉

Awesome!

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

Close modal icon Placeholder alt for modal to satisfy link checker