What Are Custom Fields?
Custom fields are flexible metadata you define. Each custom field has:- Key: The custom field name (e.g.,
source,tier,cohort) - Value: The custom field value (e.g.,
facebook,gold,january2024)
Custom fields are per-list — they are stored on the ListContact (the relationship between a contact and a sending list), not on the Contact itself. This means the same phone number can have different custom field values on different lists.
Common Custom Field Patterns
Acquisition Source
Track where contacts came from:| Key | Example Values |
|---|---|
source | facebook, google, organic, referral |
campaign | summer2024, black_friday, launch |
landing_page | /promo, /signup, /offer |
ad_set | lookalike_1, interest_targeting |
Contact Segmentation
Categorize contacts by behavior or value:| Key | Example Values |
|---|---|
tier | gold, silver, bronze |
engagement | high, medium, low |
buyer_status | purchased, browsed, new |
ltv_bucket | 0-50, 50-200, 200+ |
Temporal Data
Track time-based information:| Key | Example Values |
|---|---|
cohort | 2024-01, 2024-Q1, week_12 |
signup_date | 2024-01-15 |
last_purchase | 2024-03-20 |
Custom Attributes
Store any relevant metadata:| Key | Example Values |
|---|---|
state | CA, NY, TX |
language | en, es, fr |
interest | fitness, tech, fashion |
age_range | 18-24, 25-34, 35-44 |
Adding Custom Fields
During Import
Include custom fields in thecustom_fields object when creating contacts via the API:
Via API
Include custom fields when creating contacts:In Dashboard
- Go to Sending Lists > select list > Contacts
- Click on a contact
- Click Edit Custom Fields
- Add or modify custom fields
- Click Save
Using Custom Fields in Audiences
Custom fields are the primary way to segment contacts into audiences. Use them in audience conditions:Basic Condition
source custom field equal to facebook.
Multiple Values
tier custom field of either gold or silver.
Existence Check
vip custom field.
Negation
churned custom field.
Numeric Comparison
gt, gte, lt, lte operators in addition to eq and ne.
All Available Operators
| Operator | Description | Example |
|---|---|---|
eq | Equal to | source = facebook |
ne | Not equal to | tier != free |
in | Matches any value | tier IN [gold, silver] |
not_in | Matches none | tier NOT IN [churned, cancelled] |
contains | Substring match | source contains "fb" |
gt | Greater than | age > 25 |
gte | Greater than or equal | spend >= 100 |
lt | Less than | age < 65 |
lte | Less than or equal | spend <= 50 |
exists | Has any value | vip EXISTS |
not_exists | Is null or missing | churned NOT EXISTS |
Custom Field Best Practices
Use consistent naming
Use consistent naming
Establish naming conventions and stick to them:
- Use lowercase:
sourcenotSource - Use underscores:
sign_up_datenotsign-up-date - Be specific:
acquisition_sourcenotsrc
Keep values normalized
Keep values normalized
Use consistent values across imports:
facebooknot sometimesFacebookorFB2024-01-15notJan 15, 2024or1/15/24
Don't over-use custom fields
Don't over-use custom fields
Add custom fields you’ll actually use for targeting. Too many custom fields create noise.
Document your custom fields
Document your custom fields
Maintain a reference of what custom fields you use and what values are valid. Share with your team.
Use custom fields for audience exclusions
Use custom fields for audience exclusions
Custom fields like
churned, complained, high_risk help you exclude contacts from sends.Bulk Custom Field Updates
Coming Soon — Bulk custom field updates via audiences are not yet available. Currently, custom fields can be set via the API when creating or updating contacts.
Viewing Custom Field Usage
To see all custom fields in use across your contacts:- Go to Audiences > New Audience
- Click Add Condition > Custom Field
- The dropdown shows all existing custom field keys
- Select a key to see its values
Example: Full Segmentation Strategy
Here’s an example custom field strategy for an e-commerce brand:- VIP Winback:
ltv_tier=vip AND last_purchase_days=90 - New High Engagers:
cohort=2024-Q1 AND engagement_level=high AND buyer_status=never - Promo Candidates:
promo_responsive=true AND buyer_status=once
Next Steps
Building Audiences
Use custom fields for targeting
Segmentation Logic
Combine custom field conditions
Import Contacts
Add custom fields during import