Skip to content

feat: add enterprise default language in braze campaigns#866

Open
muhammad-ammar wants to merge 1 commit intomasterfrom
ammar/add-enterprise-default-language-in-braze-campaigns
Open

feat: add enterprise default language in braze campaigns#866
muhammad-ammar wants to merge 1 commit intomasterfrom
ammar/add-enterprise-default-language-in-braze-campaigns

Conversation

@muhammad-ammar
Copy link
Contributor

@muhammad-ammar muhammad-ammar commented Jan 27, 2026

Description

This PR adds support for passing the enterprise customer’s default language to Braze email campaigns. This value is used to select localized content for license assignment, reminder, and activation emails.

Summary: Passing Enterprise Default Language to Braze

Context

License manager triggers multiple Braze campaigns and sends user data via the Braze API (user_alias, attributes, trigger_properties). We need to include an enterprise default language to support localized messaging without impacting users’ personal language preferences.

Option 1: Send default_language as a user attribute (pref-lang)

Pros

  • Minimal Braze changes
  • Faster implementation

Cons

  • Overrides user-selected language, potentially sending messages in the wrong language and degrading user experience
  • Pollutes persistent user data, causing unintended impact across all current and future campaigns

Option 2: Send default_language via trigger_properties

Pros

  • Does not override user language
  • Correct separation of concerns (campaign context vs user state)
  • No long-term side effects in Braze

Cons

  • Requires coordinated updates to templates, content blocks, and subjects
  • Higher initial effort, though limited to a one-time migration

Recommended Approach

Use trigger_properties to pass enterprise_default_language.

Language Resolution Logic (Braze Liquid)

  1. User’s explicit language preference (if set)
  2. Enterprise default language
  3. Fallback language (e.g., en)

Example:

{% assign lang = custom_attribute.${language}
   | default: trigger_properties.enterprise_default_language
   | default: "en" %}

This logic can be reused across templates, content blocks, and subjects to minimize duplication.


Implementation Strategy

  • Add enterprise_default_language to Braze trigger_properties
  • Introduce centralized Liquid logic for language selection
  • Update shared content blocks first, then campaign bodies and subjects
  • Avoid modifying persistent user attributes

Post-review

Squash commits into discrete sets of changes

@muhammad-ammar muhammad-ammar marked this pull request as draft January 27, 2026 11:04
@muhammad-ammar muhammad-ammar force-pushed the ammar/add-enterprise-default-language-in-braze-campaigns branch from dbf60b5 to 79755c5 Compare January 27, 2026 12:04
@muhammad-ammar muhammad-ammar force-pushed the ammar/add-enterprise-default-language-in-braze-campaigns branch from 79755c5 to 138e914 Compare January 28, 2026 05:03
@muhammad-ammar muhammad-ammar force-pushed the ammar/add-enterprise-default-language-in-braze-campaigns branch from 138e914 to fe2f601 Compare January 28, 2026 06:10
@muhammad-ammar muhammad-ammar marked this pull request as ready for review January 28, 2026 06:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants