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:
- Evaluates your filter criteria against current data
- Finds all matching contacts/companies/deals
- Saves the member list to the database
- 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
- Go to Channel → Segments
- Click + Create Segment
- 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:
- Click Preview button
- See sample contacts matching your filters
- Check member count
- 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:
-
Pending
- Segment queued for evaluation
- Waiting for worker to pick up
- Usually < 30 seconds
-
Processing
- Actively evaluating filters
- Finding matching members
- Progress percentage shown
- Time varies by complexity and size
-
Completed
- All members evaluated and saved
- Segment ready to use
- Member count finalized
-
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
- Go to Channel → Segments
- Find your static segment
- Click on segment name to open details
- Click Re-evaluate Segment button
- Confirm refresh
- 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:
- Select segments (checkbox)
- Click Actions dropdown
- Select Re-evaluate Selected
- 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:
-
Schedule Refresh During Off-Peak:
- Late night or early morning
- Weekends
- Reduces impact on system
-
Simplify Filters:
- Remove unnecessary conditions
- Avoid deep nesting
- Use indexed fields when possible
-
Split Into Smaller Segments:
- Instead of one 500K segment
- Create multiple 100K segments
- Faster processing, easier to manage
-
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:
- Check processing queue status
- Cancel and retry
- Simplify filter criteria
- Contact support if persists
Unexpected Member Count
Problem: Segment has way more/fewer members than expected
Solutions:
- Review filter logic (AND vs OR)
- Check for typos in filter values
- Verify field types (text vs numeric)
- Preview individual conditions
- Test with simplified filters first
Segment Not Updating
Problem: Refreshed segment but members didn't change
Possible Causes:
-
Data hasn't actually changed
- Check if your filters would capture new contacts
- Verify expected changes in CRM
-
Filter criteria too narrow
- No new contacts match
- Consider broadening criteria
-
Processing failed silently
- Check processing status
- Look for error messages
- Retry refresh
Performance Issues
Problem: Segment takes too long to process or use
Solutions:
- Simplify filters: Remove unnecessary conditions
- Split segment: Create multiple smaller segments
- Use indexed fields: Filter on indexed database columns
- Schedule wisely: Refresh during off-peak hours
- Consider live segment: For small, simple segments
Static vs. Live Segment Comparison
| Feature | Static Segment | Live Segment |
|---|---|---|
| Member Storage | Saved in database | Queried on demand |
| Performance | Fast (pre-computed) | Slower (query each time) |
| Accuracy | Snapshot in time | Always current |
| Refresh | Manual | Automatic |
| Best For | One-time campaigns, large audiences | Ongoing campaigns, small audiences |
| Use When | Consistency matters | Real-time matters |
| Processing Time | Initial + each refresh | Every access |
| Member Count | Fixed until refresh | Dynamic |
| Historical Value | High (snapshots) | Low (always current) |
Related Resources
- Segment Overview → - Introduction to segments
- Live Segments → - Real-time dynamic segments
- Email Campaigns → - Use segments in campaigns
- Filter Builder → - Master filter logic
- Segment Analytics → - Analyze segment performance