Dynamic segmentation fails on imported contact list in marketing campaign

We’re experiencing issues with dynamic segmentation in Audience Builder when working with imported contact lists for our email marketing campaigns. The segmentation criteria work perfectly on contacts created directly in Oracle CX Cloud, but fail to match contacts that were imported via CSV.

We imported 5,000 contacts last week using the standard contact import template, mapping all required fields including Industry, Job Title, and Company Size. When we create a dynamic segment with criteria like ‘Industry = Technology AND Company Size = 500-1000 employees’, the segment only returns 12 contacts instead of the expected 800+ from our import.

The Audience Builder configuration appears correct, and we’ve verified the imported data is present in the contact records. The contact list import mapping included all the custom fields we’re using for segmentation. It seems like there’s a disconnect between how imported data is indexed for segmentation versus native contact creation. This severely limits our campaign targeting capabilities and we can’t effectively reach our imported audience.

The dynamic segmentation failure on imported contacts involves three configuration layers that must all be correctly aligned:

1. Dynamic Segmentation Setup - Field API Name Alignment

The most common issue is field API name mismatches between your import mapping and segmentation criteria. Here’s how to verify and fix:

  • Navigate to Audience Builder → Your Segment → Edit Criteria
  • Click on the Industry filter and note the exact field API name (e.g., ‘Industry_c’ vs ‘IndustryType_c’)
  • Go to Data Management → Import History → Your Contact Import → View Mapping
  • Verify that the CSV column ‘Industry’ was mapped to the exact same API name
  • If there’s a mismatch, you need to re-import using the correct field API names

The segmentation engine is case-sensitive and doesn’t use field labels - it uses API names. If your import mapped to ‘industry_c’ but the segment queries ‘Industry_c’, it will fail.

2. Audience Builder Configuration - Index Refresh

Dynamic segments rely on a search index that needs to be refreshed after bulk imports:

  • Go to Marketing → Configuration → Audience Builder Settings
  • Check ‘Index Refresh Schedule’ - default is typically 2 AM daily
  • For immediate results, trigger manual refresh: Data Management → Search Index → Contact Index → Rebuild Index
  • Index rebuild for 5,000 contacts takes approximately 30-45 minutes
  • After rebuild completes, re-run your segment query

The 12 contacts you’re seeing are likely contacts created before your import that match the criteria. The imported 800+ contacts aren’t indexed yet, so they’re invisible to the segmentation engine.

3. Contact List Import Mapping - Picklist Value Resolution

Picklist field values must match exactly, including case and spacing:

  • Export a sample of your imported contacts to verify actual stored values
  • Compare against the picklist definitions: Setup → Object Manager → Contact → Fields → Industry → Picklist Values
  • Common mismatches:
    • Import: ‘Technology’ | Picklist: ‘Technology Services’
    • Import: ‘500-1000’ | Picklist: ‘500-1,000 employees’
    • Import: ‘IT Services’ | Picklist: ‘Information Technology’

If values don’t match exactly, the segmentation filter won’t find them. You have two options:

Option A: Update Import Mapping (Recommended)

  • Modify your CSV file to use exact picklist values
  • Re-import the contacts with corrected values
  • This ensures data consistency across all campaigns

Option B: Add Value Mapping Rules

  • In your import configuration, add value mapping rules
  • Map ‘Tech’ → ‘Technology’, ‘500-1000’ → ‘500-1,000 employees’
  • This allows flexible import values while maintaining data standards

Complete Resolution Process:

  1. Verify field API names match between import and segment (fix mismatches)
  2. Confirm picklist values match exactly (add mapping rules if needed)
  3. Check contact status field - ensure imported contacts have ‘Active’ or ‘Marketing Contactable’ status
  4. Trigger manual index rebuild on Contact object
  5. Wait for index rebuild to complete (monitor progress in Data Management)
  6. Re-run your dynamic segment query
  7. Verify contact count matches expected 800+ contacts

Additional Validation Steps:

After fixing the configuration, test with a small sample:

  • Create a simple segment with just one criterion: ‘Industry = Technology’
  • If this returns all expected contacts, add the second criterion: ‘Company Size = 500-1,000 employees’
  • If contacts disappear, the second field has the mapping issue
  • This isolates which field mapping needs correction

Prevention for Future Imports:

Create a validated import template:

  • Export existing contacts that segment correctly
  • Use this export as your import template
  • This ensures field API names and picklist values are pre-validated
  • Document the exact mapping for your team’s reference

By addressing all three areas - field API names, index refresh, and picklist value mapping - your imported contacts will be fully accessible to dynamic segmentation in Audience Builder.

I encountered exactly this scenario last month. The issue is often related to multi-select picklist fields or lookup fields that weren’t properly resolved during import. If Industry or Company Size are lookup fields referencing other objects, the import process might have created the contact records but failed to establish the lookup relationships. Check the import log for any warnings about unresolved references.