Attribute Configuration
Attributes defined at the organization level are available to all templates in your account. This enables consistent segmentation across your messaging and reduces setup time when creating new templates.
Attribute Types
Section titled “Attribute Types”JustAI supports four attribute types, each designed for different kinds of user data.
String Attributes
Section titled “String Attributes”Map text values to canonical options. Use string attributes when your CRM stores categorical data like plan type, region, or user role.
Example: Subscription Tier
| Option Name | Aliases |
|---|---|
premium | ”vip”, “VIP”, “pro”, “paid” |
free | ”basic”, “starter”, “trial” |
Aliases can be exact matches or regex patterns. For example, /^(premium\|pro)$/i matches “Premium”, “PRO”, or “premium”.
List Attributes
Section titled “List Attributes”Transform comma-separated values from a source attribute. Use list attributes when your CRM stores multiple values in a single field, like skills or interests.
Example: User Interests
- Source attribute:
interests(e.g., “sports,tech,music”) - Options: Map each value to canonical categories
| Option Name | Aliases |
|---|---|
sports | ”athletics”, “fitness” |
technology | ”tech”, “gadgets” |
music | ”audio”, “concerts” |
Numeric Attributes
Section titled “Numeric Attributes”Bucket continuous numbers into named ranges. Use numeric attributes for metrics like age, spend amount, or tenure.
Example: Customer Lifetime Value
- Source attribute:
total_spend - Buckets:
| Bucket Name | Range |
|---|---|
low | $0 – $100 |
medium | $101 – $500 |
high | $501+ |
Buckets are defined by maximum values. The first bucket covers values up to its max, and each subsequent bucket covers values between the previous max and its own.
Date Attributes
Section titled “Date Attributes”Bucket dates by how recent they are. Use date attributes for recency-based segmentation like last purchase date or signup date.
Example: Purchase Recency
- Source attribute:
last_purchase_date - Format: ISO 8601, Unix seconds, or Unix milliseconds
- Buckets:
| Bucket Name | Age |
|---|---|
recent | < 7 days |
active | 7–30 days |
lapsed | > 30 days |
CRM Accessors
Section titled “CRM Accessors”Accessors define how JustAI extracts attribute values from your CRM data. Most integrations use Liquid template syntax, but Iterable accessors use Handlebars syntax instead.
{{ custom_attribute.${attribute_name} }}For nested attributes:
{{ custom_attribute.${profile}.${tier} }}Customer.io
Section titled “Customer.io”{{ customer.attribute_name }}With fallback for missing values:
{% if customer.plan %}{{ customer.plan }}{% endif %}See the integration guides for complete examples:
Best Practices
Section titled “Best Practices”Choose meaningful names. Use descriptive attribute names that reflect business concepts, not CRM field names. subscription_tier is clearer than plan_type_v2.
Consider cardinality. Attributes with many options (high cardinality) create more variant combinations. Start with 2–4 options per attribute and expand as needed.
Use aliases for data quality. If your CRM has inconsistent data (typos, case variations, legacy values), use aliases to normalize them to canonical options.
Start simple. Begin with 1–2 attributes that you know affect messaging performance. Add more attributes as you learn what drives engagement for your audience.
Related Resources
Section titled “Related Resources”- What are Attributes? — Conceptual overview and hypersegment examples.
- Core Concepts: Attributes — How attributes fit into templates and variants.