Skip to main content

Static Segments

Static segments create a snapshot of members at evaluation time, storing the list in the database for fast access. Perfect for one-time campaigns, event-based marketing, and situations where you need a consistent audience that doesn't change automatically.

What Are Static Segments?

Static Segment = Saved Snapshot

When you create or refresh a static segment, Expedify:

  1. Evaluates your filter criteria against current data
  2. Finds all matching contacts/companies/deals
  3. Saves the member list to the database
  4. Uses this saved list until you manually refresh

Key Characteristics:

  • ✅ Fast performance (pre-computed member list)
  • ✅ Consistent audience (doesn't change automatically)
  • ✅ Historical snapshots (see who matched at specific point in time)
  • ✅ Manual control over when to refresh
  • ❌ Requires manual refresh to update members
  • ❌ Can become outdated if not refreshed

When to Use Static Segments

Best Use Cases

1. One-Time Campaigns

  • Flash sales with specific deadline
  • Event invitations (webinar, conference)
  • Product launches
  • Seasonal promotions

Example:

Segment: "Black Friday 2024 Shoppers"
Created: Nov 25, 2024
Members: 5,432 contacts who purchased in last 24 hours
Use: Send exclusive early access email for Cyber Monday
Keep snapshot: Don't want new shoppers added after campaign sent

2. Historical Analysis

  • Quarter-end reporting
  • Campaign cohort analysis
  • Before/after comparisons
  • Audit trails

Example:

Segment: "Q1 2024 Active Customers"
Created: March 31, 2024
Members: 12,543 contacts active in Q1
Use: Compare Q1 vs Q2 customer behavior
Keep snapshot: Fixed cohort for longitudinal study

3. Large Audiences

  • 10,000+ members
  • Performance-critical campaigns
  • Complex filter criteria
  • Frequently accessed segments

Example:

Segment: "All Active Subscribers"
Members: 250,000+ contacts
Filter: Complex multi-condition logic
Use: Weekly newsletter
Keep static: Faster performance, refresh weekly

4. A/B Testing

  • Need identical test groups
  • Prevent audience changes mid-test
  • Ensure statistical validity

Example:

Segment: "Test Group A - Welcome Series"
Members: 1,000 new subscribers (fixed)
Use: Test version A of email sequence
Keep static: Ensure same contacts get entire sequence

When NOT to Use Static Segments

❌ Avoid Static Segments For:

  • Behavior-triggered campaigns (use live segments instead)
  • "Always current" audiences (abandoned cart, inactive users)
  • Small, frequently-changing segments
  • Real-time targeting needs
  • When you forget to refresh regularly

Use Live Segments Instead:

  • Abandoned cart recovery (need current cart abandoners)
  • Welcome series (need newly signed-up users)
  • Re-engagement campaigns (need currently inactive users)
  • Lead scoring workflows (need current high-scorers)

Creating a Static Segment

Step 1: Navigate to Segments

  1. Go to Channel → Segments
  2. Click + Create Segment
  3. You'll see the segment builder interface

Step 2: Configure Basic Settings

Segment Type:

  • Select Static Segment from the dropdown
  • This tells Expedify to save a snapshot of members

Entity Type:

  • Choose Contacts, Companies, or Deals
  • This determines what kind of records you're segmenting
  • Cannot be changed after creation

Example:

Segment Type: Static Segment
Entity Type: Contacts

Step 3: Build Filter Criteria

Add filter conditions to define who belongs in your segment:

Contact Filters:

Contact Properties:
- Email: is verified
- City: equals "San Francisco"
- Tags: contains "customer"
- Created date: in last 30 days

Company Filters:

Company Properties:
- Industry: equals "Technology"
- Company size: greater than 100
- Annual revenue: greater than $1M

Deal Filters:

Deal Properties:
- Stage: not equals "Lost"
- Deal value: greater than $10,000
- Close date: in next 90 days

Activity Filters:

Campaign Engagement:
- Opened campaign "Summer Sale 2024"
- Clicked link in template "Product Launch"
- Submitted form "Demo Request"

Event Filters:

Website Behavior:
- Viewed page "/pricing" at least 2 times
- In last 30 days
- Event action: "download_whitepaper"

Step 4: Configure Filter Logic

AND Logic (all conditions must match):

Contact: City = "Boston" AND
Contact: Tags contains "vip" AND
Contact: Lead score > 75

→ Only contacts in Boston who are VIP with high lead score

OR Logic (any condition can match):

Contact: Tags contains "customer" OR
Contact: Tags contains "lead" OR
Contact: Lead score > 80

→ Customers, leads, or anyone with high score

Nested Groups (complex logic):

Group 1 (AND):
- Contact: City = "New York"
- Contact: Company size > 50
OR
Group 2 (AND):
- Contact: Tags contains "enterprise"
- Contact: Deal value > $50,000

→ NYC mid-market OR enterprise high-value anywhere

Step 5: Preview Members

Before saving, always preview:

  1. Click Preview button
  2. See sample contacts matching your filters
  3. Check member count
  4. Verify results make sense

Preview Shows:

  • Sample contacts (first 50)
  • Total member count
  • Estimated processing time
  • Any filter warnings

Red Flags:

  • Member count much higher/lower than expected
  • No results (overly restrictive filters)
  • Unexpected contacts in preview
  • Filter warnings about performance

Step 6: Save Segment

Segment Metadata:

  • Name: Descriptive, specific (e.g., "Q1 2024 High-Value Customers")
  • Description: Optional details about purpose and usage
  • Tags: Categorize for organization (e.g., quarterly-report, campaign-2024)
  • Visibility:
    • Private: Only you can see/use
    • Public: Available to entire team

Example:

Name: "Webinar Registrants - AI Workshop Q1 2024"
Description: "All contacts who registered for AI workshop webinar on March 15, 2024. Used for pre-event email series and post-event follow-up."
Tags: ["webinar", "q1-2024", "ai-workshop"]
Visibility: Public

Click Save:

  • Segment is created with status "Pending"
  • Background processing begins
  • You can navigate away (processing continues)

Segment Processing

Processing Status

Status Lifecycle:

  1. Pending

    • Segment queued for evaluation
    • Waiting for worker to pick up
    • Usually < 30 seconds
  2. Processing

    • Actively evaluating filters
    • Finding matching members
    • Progress percentage shown
    • Time varies by complexity and size
  3. Completed

    • All members evaluated and saved
    • Segment ready to use
    • Member count finalized
  4. Failed

    • Error occurred during processing
    • Check error message
    • Usually due to invalid filters or data issues
    • Contact support if persists

Processing Time Estimates:

  • Small segments (< 1,000 members): 1-30 seconds
  • Medium segments (1,000-10,000): 30 seconds - 2 minutes
  • Large segments (10,000-100,000): 2-10 minutes
  • Very large (100,000+): 10-30+ minutes

Monitoring Progress

Real-Time Progress Indicator:

  • Progress bar shows percentage complete
  • Estimated time remaining
  • Current member count
  • Can close modal and check back later

Notifications:

  • Browser notification when complete (if enabled)
  • Email notification for long-running segments
  • In-app notification center

Refreshing Static Segments

When to Refresh

Refresh Your Segment When:

  • Data has changed significantly
  • Before sending a new campaign
  • On a regular schedule (weekly, monthly)
  • After importing new contacts
  • After major CRM updates

Example Refresh Schedule:

"Active Customers" segment:
- Refresh: Every Monday at 9 AM
- Before: Weekly newsletter send
- Ensures: Up-to-date customer list

How to Refresh

Method 1: Manual Refresh

  1. Go to Channel → Segments
  2. Find your static segment
  3. Click on segment name to open details
  4. Click Re-evaluate Segment button
  5. Confirm refresh
  6. Processing begins (same as initial creation)

What Happens:

  • Old member list is cleared
  • Filters are re-evaluated against current data
  • New member list is saved
  • Member count may change
  • Last Evaluated timestamp updates

Method 2: Bulk Refresh

For multiple segments:

  1. Select segments (checkbox)
  2. Click Actions dropdown
  3. Select Re-evaluate Selected
  4. All selected segments queue for refresh

Refresh vs. Update

Re-evaluate (Refresh):

  • Runs filters again
  • Updates member list
  • Keeps same filter criteria
  • Member count may change

Update (Edit):

  • Changes filter criteria
  • Then runs evaluation with new filters
  • Member list completely changes
  • Different audience definition

Example:

Original: "San Francisco Customers"
Filter: City = "SF" AND Tags contains "customer"
Members: 500

After RE-EVALUATE (refresh):
Filter: Same
Members: 523 (23 new SF customers added)

After UPDATE (edit filters):
Filter: City = "SF" OR City = "Oakland" AND Tags contains "customer"
Members: 892 (now includes Oakland too)

Best Practices

Naming Conventions

Include Key Information:

  • Date: When snapshot was taken
  • Criteria: What defines the segment
  • Purpose: How it will be used

Good Names:

  • ✅ "Q1 2024 Active Customers - March 31"
  • ✅ "Webinar Registrants - AI Workshop - Mar 15 2024"
  • ✅ "Black Friday Shoppers - Nov 25 2024"
  • ✅ "High-Value Leads - End of Month Snapshot"

Bad Names:

  • ❌ "Segment 1"
  • ❌ "Test"
  • ❌ "Customers"
  • ❌ "Old list"

Regular Maintenance

Set Refresh Schedule:

Daily: Real-time-ish segments (refresh each morning)
Weekly: Regular campaigns (refresh before send)
Monthly: Reporting segments (refresh end of month)
Quarterly: Historical cohorts (refresh each quarter)
One-time: Event-based (no refresh needed)

Archive Old Segments:

  • Delete segments no longer in use
  • Keep only if needed for historical reference
  • Reduces clutter
  • Improves performance

Document Purpose:

  • Add clear descriptions
  • Include use case
  • Note refresh schedule
  • List related campaigns

Performance Optimization

For Large Segments:

  1. Schedule Refresh During Off-Peak:

    • Late night or early morning
    • Weekends
    • Reduces impact on system
  2. Simplify Filters:

    • Remove unnecessary conditions
    • Avoid deep nesting
    • Use indexed fields when possible
  3. Split Into Smaller Segments:

    • Instead of one 500K segment
    • Create multiple 100K segments
    • Faster processing, easier to manage
  4. Monitor Processing Time:

    • If taking too long, simplify
    • Consider archiving if rarely used
    • Check for inefficient filters

Using Static Segments

In Campaigns

Email Campaigns:

1. Create/refresh static segment
2. Create email campaign
3. Select segment as audience
4. Send campaign
5. All snapshot members receive email

Multi-Day Campaigns:

Day 1: Refresh segment, send Email 1
Day 3: DON'T refresh, send Email 2 (same audience)
Day 7: DON'T refresh, send Email 3 (same audience)

Keep same snapshot for consistent series

In Workflows

Segment Membership Trigger:

Trigger: Contact added to segment "High-Value Leads"
Action: Assign to sales rep, send notification

Segment Condition:

IF contact in segment "VIP Customers"
THEN: Offer free shipping
ELSE: Standard shipping

In Analytics

Cohort Analysis:

Segment 1: "Q1 2024 New Customers"
Segment 2: "Q2 2024 New Customers"

Compare: Purchase behavior over 6 months
Track: Retention rates by cohort

Before/After Studies:

Segment: "Pre-Feature Launch Users" (static snapshot)
Compare to: Current user behavior
Measure: Feature impact

Troubleshooting

Segment Processing Stuck

Problem: Processing stays at same percentage for > 30 minutes

Solutions:

  1. Check processing queue status
  2. Cancel and retry
  3. Simplify filter criteria
  4. Contact support if persists

Unexpected Member Count

Problem: Segment has way more/fewer members than expected

Solutions:

  1. Review filter logic (AND vs OR)
  2. Check for typos in filter values
  3. Verify field types (text vs numeric)
  4. Preview individual conditions
  5. Test with simplified filters first

Segment Not Updating

Problem: Refreshed segment but members didn't change

Possible Causes:

  1. Data hasn't actually changed

    • Check if your filters would capture new contacts
    • Verify expected changes in CRM
  2. Filter criteria too narrow

    • No new contacts match
    • Consider broadening criteria
  3. Processing failed silently

    • Check processing status
    • Look for error messages
    • Retry refresh

Performance Issues

Problem: Segment takes too long to process or use

Solutions:

  1. Simplify filters: Remove unnecessary conditions
  2. Split segment: Create multiple smaller segments
  3. Use indexed fields: Filter on indexed database columns
  4. Schedule wisely: Refresh during off-peak hours
  5. Consider live segment: For small, simple segments

Static vs. Live Segment Comparison

FeatureStatic SegmentLive Segment
Member StorageSaved in databaseQueried on demand
PerformanceFast (pre-computed)Slower (query each time)
AccuracySnapshot in timeAlways current
RefreshManualAutomatic
Best ForOne-time campaigns, large audiencesOngoing campaigns, small audiences
Use WhenConsistency mattersReal-time matters
Processing TimeInitial + each refreshEvery access
Member CountFixed until refreshDynamic
Historical ValueHigh (snapshots)Low (always current)