Live Segments
Live segments query data in real-time every time they're accessed, ensuring you always work with the most current audience. Perfect for behavior-based campaigns, ongoing nurture sequences, and situations where real-time accuracy matters more than speed.
What Are Live Segments?
Live Segment = Real-Time Query
When you use a live segment, Expedify:
- Runs your filter criteria against current database
- Finds all contacts/companies/deals matching right now
- Doesn't store the member list (queries on demand)
- Always shows latest data
Key Characteristics:
- ✅ Always up-to-date (queries current data)
- ✅ No manual refresh needed (auto-updating)
- ✅ Behavior-based targeting (catches new matches immediately)
- ✅ Real-time accuracy
- ❌ Slower performance (queries each time)
- ❌ No historical snapshots
- ❌ Not ideal for very large segments
When to Use Live Segments
Best Use Cases
1. Behavior-Based Campaigns
- Abandoned cart recovery
- Re-engagement campaigns
- Lead nurture workflows
- Activity-triggered messages
Example:
Segment: "Abandoned Cart - Last 24 Hours"
Filter: Added to cart in last 24 hours AND checkout not completed
Use: Automated cart recovery email
Live segment: Catches new cart abandoners automatically
2. Welcome & Onboarding
- New subscriber sequences
- First-time customer onboarding
- Trial user activation
- Post-purchase follow-up
Example:
Segment: "New Subscribers - Last 7 Days"
Filter: Subscribed in last 7 days AND welcome series not completed
Use: Automated welcome email series
Live segment: New signups automatically enter sequence
3. Always-Current Lists
- Active customers
- High-value leads
- Inactive users needing re-engagement
- VIP status updates
Example:
Segment: "High-Intent Leads - Active"
Filter: Lead score > 80 OR viewed pricing 2+ times in last 7 days
Use: Sales alert automation
Live segment: Sales team sees current hot leads
4. Small to Medium Segments
- < 10,000 members
- Simple filter criteria
- Frequently changing membership
- Real-time accuracy critical
Example:
Segment: "Cart Value > $500 - Today"
Filter: Current cart value > $500 AND cart created today
Use: VIP sales alert
Live segment: Small, high-value group, needs real-time tracking
When NOT to Use Live Segments
❌ Avoid Live Segments For:
- One-time campaigns (use static segments)
- Very large audiences (100,000+ members)
- Complex filter criteria (performance issues)
- Historical analysis (need snapshots)
- A/B testing (need fixed groups)
- When you need consistent member lists
Use Static Segments Instead:
- Event invitations (fixed guest list)
- Quarterly reports (snapshot in time)
- Large newsletter lists (better performance)
- Multi-email sequences (consistent audience)
Creating a Live 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 Live Segment from the dropdown
- This tells Expedify to query data in real-time
Entity Type:
- Choose Contacts, Companies, or Deals
- This determines what kind of records you're segmenting
- Cannot be changed after creation
Example:
Segment Type: Live Segment
Entity Type: Contacts
Step 3: Build Filter Criteria
Add filter conditions to define who belongs in your segment:
Time-Based Filters (Perfect for Live Segments):
Contact created date: in last 7 days
Last email open: in last 30 days
Last purchase date: more than 90 days ago
Page view date: in last 24 hours
Behavior-Based Filters:
Event: Viewed page "/pricing" in last 7 days at least 2 times
Form: Submitted "Demo Request" in last 3 days
Campaign: Opened "Summer Sale" in last 14 days
Activity: Clicked email link in last 30 days
Dynamic Property Filters:
Lead score: greater than 80
Cart value: greater than $100
Subscription status: equals "active"
Tags: contains "vip"
Cross-Entity Filters:
Company Properties:
- Company industry: equals "Technology"
- Company size: greater than 100
Deal Properties:
- Open deal count: greater than 1
- Total deal value: greater than $10,000
Step 4: Configure Filter Logic
AND Logic (all conditions must match):
Contact: Subscribed in last 7 days AND
Contact: Email is verified AND
Contact: Welcome email not sent
→ New verified subscribers who haven't received welcome email
OR Logic (any condition can match):
Contact: Lead score > 90 OR
Contact: Viewed pricing 3+ times in last week OR
Contact: Submitted demo request form
→ Any high-intent signal = qualify for segment
Time-Window Combinations:
(Contact: Added to cart in last 24 hours AND
Contact: Checkout not completed)
OR
(Contact: Viewed product in last 48 hours AND
Contact: Not purchased AND
Contact: Email clicks > 2 in last week)
→ Cart abandoners OR highly engaged window shoppers
Step 5: Preview Members (Real-Time)
Live Preview:
- Click Preview button
- See contacts matching filters right now
- Check current member count
- Verify results make sense
What You'll See:
- Sample contacts (first 50 from current query)
- Current member count (may change minute-to-minute)
- Filter validation warnings
- Estimated query performance
Important Notes:
- Preview shows current data
- Member count may differ when you access segment later
- Query runs fresh each time you preview
- Performance indicator helps identify slow queries
Step 6: Save Segment
Segment Metadata:
- Name: Descriptive, include "Live" or "Current" (e.g., "Active Cart Abandoners - Live")
- Description: Explain purpose and expected membership
- Tags: Categorize (e.g.,
behavioral,automation,live) - Visibility:
- Private: Only you can see/use
- Public: Available to entire team
Example:
Name: "New Subscribers - Welcome Series (Live)"
Description: "Contacts who subscribed in last 7 days. Auto-updates for welcome email workflow. Always shows current new subscribers."
Tags: ["onboarding", "automation", "live", "email-series"]
Visibility: Public
Click Save:
- Segment created instantly (no processing)
- No member list stored
- Ready to use immediately
- Queries run when accessed
How Live Segments Work
Real-Time Querying
Each time you access a live segment:
-
Campaign Send:
User clicks "Send Campaign" →
System queries live segment →
Gets current member list →
Sends to those members -
Workflow Trigger:
Every 15 minutes →
System queries "New Subscribers" live segment →
Finds contacts who entered segment since last check →
Triggers workflow for new members -
Analytics Dashboard:
Open segment analytics →
System queries current members →
Shows real-time count and stats
Auto-Updating Behavior
Example Timeline:
Monday 9 AM:
Segment "Cart Abandoners - Last 24 Hours"
Members: John, Sarah, Mike (3 total)
Monday 11 AM:
Same segment queried again
Members: Sarah, Mike, Lisa, Tom (4 total)
(John completed checkout, Lisa & Tom abandoned cart)
Monday 3 PM:
Same segment queried again
Members: Tom, Emma, David (3 total)
(Sarah & Mike completed checkout or aged out, Emma & David abandoned cart)
No Refresh Needed:
- Members automatically added when they match
- Members automatically removed when they stop matching
- Always reflects current state
Performance Considerations
Query Performance Factors:
-
Filter Complexity:
- Simple: 1-2 conditions → Fast (< 1 second)
- Medium: 3-5 conditions → Moderate (1-3 seconds)
- Complex: 6+ conditions, nested groups → Slow (3-10+ seconds)
-
Member Count:
- Small (< 1,000): Fast
- Medium (1,000-10,000): Moderate
- Large (10,000-100,000): Slow
- Very Large (100,000+): Very slow (use static instead)
-
Field Types:
- Indexed fields: Fast (ID, email, created_at)
- Regular fields: Moderate (name, city, tags)
- Custom fields: Slower (depends on indexing)
-
Time-Based Filters:
- "in last X days": Fast (indexed)
- "between dates": Fast
- Complex date calculations: Slower
Optimization Tips:
- Keep filter count reasonable (3-5 conditions)
- Use indexed fields when possible
- Avoid deep nesting (max 2 levels)
- Consider static segment if performance suffers
Best Practices
Naming Conventions
Include "Live" or Time Window:
- ✅ "Active Cart Abandoners - Live"
- ✅ "New Subscribers - Last 7 Days (Live)"
- ✅ "High-Intent Leads - Current"
- ✅ "Inactive Users - 90+ Days (Live)"
Avoid Dated Names:
- ❌ "Q1 2024 Customers" (implies snapshot)
- ❌ "March Webinar Attendees" (implies fixed list)
- ❌ "Last Week's Leads" (confusing for live segment)
Filter Design
Time-Based Best Practices:
Good:
Last activity: in last 30 days
Created date: in last 7 days
Purchase date: more than 90 days ago
Avoid:
Created date: equals 2024-03-15 (too specific, won't update)
Last activity: before January 1 (static cutoff, won't update)
Relative Time Windows:
✅ "in last X days" - Always relative to today
✅ "in next X days" - Always relative to today
✅ "more than X days ago" - Always relative to today
❌ "between 2024-01-01 and 2024-03-31" - Fixed dates
Use in Automation
Workflow Triggers:
Perfect for Live Segments:
Trigger: Contact enters segment "New Subscriber - Last 24 Hours"
Action: Send welcome email series
Runs: Every 15 minutes
Result: New subscribers automatically enter welcome series
Workflow Conditions:
IF contact in live segment "High-Intent Leads"
THEN: Assign to sales rep
ELSE: Continue nurture sequence
Recurring Campaigns:
Daily Newsletter:
Audience: Live segment "Active Subscribers - Last 90 Days"
Schedule: Every weekday at 8 AM
Result: Always sends to currently active subscribers
Monitoring
Track Segment Growth:
Monday: "New Subscribers - Last 7 Days" = 234 members
Tuesday: Same segment = 312 members (78 new)
Wednesday: Same segment = 289 members (some aged out)
Set Alerts:
- Member count drops below threshold
- Segment grows unusually fast
- Query performance degrades
Review Regularly:
- Check filter criteria still makes sense
- Verify member count is reasonable
- Monitor query performance
- Update filters if needed
Common Live Segment Patterns
Welcome & Onboarding
New User Welcome:
Name: "New Users - Welcome Series (Live)"
Filters:
- Created date: in last 7 days
- Welcome email not sent: true
- Email is verified: true
Use: Automated welcome email workflow
Trial Activation:
Name: "Trial Users - Day 1-7 (Live)"
Filters:
- Trial started: in last 7 days
- Trial status: active
- Product usage: less than 5 events
Use: Trial activation sequence
Cart Abandonment
Recent Cart Abandoners:
Name: "Abandoned Cart - Last 24 Hours (Live)"
Filters:
- Added to cart: in last 24 hours
- Checkout completed: false
- Cart value: greater than $50
Use: Automated cart recovery email
Multi-Stage Recovery:
Segment 1: "Abandoned Cart - 1-4 Hours (Live)"
- Cart age: 1-4 hours
- Send: Gentle reminder
Segment 2: "Abandoned Cart - 24 Hours (Live)"
- Cart age: 20-28 hours
- Send: Discount offer
Segment 3: "Abandoned Cart - 48 Hours (Live)"
- Cart age: 44-52 hours
- Send: Final urgency email
Re-engagement
Inactive Users:
Name: "Inactive Users - 90+ Days (Live)"
Filters:
- Last login: more than 90 days ago
- Account status: active
- Re-engagement sent: false in last 90 days
Use: Win-back campaign
Email Inactive:
Name: "Email Inactive - No Open 60 Days (Live)"
Filters:
- Last email open: more than 60 days ago
- Email verified: true
- Subscription status: active
Use: Re-engagement email series
Lead Nurture
High-Intent Signals:
Name: "High-Intent Leads - Current (Live)"
Filters:
(Lead score: greater than 80) OR
(Viewed pricing: in last 7 days, at least 2 times) OR
(Submitted demo form: in last 3 days)
Use: Sales team alert, priority follow-up
Lead Scoring Threshold:
Name: "Hot Leads - Score 80+ (Live)"
Filters:
- Lead score: greater than 80
- Contact type: lead
- Assigned to sales: false
Use: Auto-assign to sales rep
Behavioral Targeting
Product Interest:
Name: "Feature A Interest - Last 14 Days (Live)"
Filters:
- Viewed feature A page: in last 14 days, at least once
- Current plan: does not include feature A
- Account status: active
Use: Upgrade campaign for Feature A
Content Engagement:
Name: "Blog Readers - Active (Live)"
Filters:
- Viewed blog page: in last 30 days, at least 3 times
- Subscribed to blog: false
- Email verified: true
Use: Blog subscription campaign
Troubleshooting
Segment Member Count Changing
Problem: Member count keeps changing when you check
This is NORMAL for live segments!
- Members are added/removed as data changes
- Count reflects current state
- Expected behavior
When to Investigate:
- Dramatic unexpected changes (500 → 5,000 members)
- Count drops to zero unexpectedly
- Constant zero members (filter too restrictive)
Solutions:
- Review filter logic
- Check time window settings
- Verify data quality
- Consider using static segment if you need fixed count
Poor Performance
Problem: Segment queries are very slow (> 10 seconds)
Causes:
- Too many members (> 100,000)
- Complex filter criteria
- Deep nested groups
- Unindexed fields
Solutions:
- Simplify filters: Remove unnecessary conditions
- Split segment: Create multiple smaller segments
- Use indexed fields: Filter on ID, email, created_at
- Switch to static: For large, infrequently-changing segments
- Optimize time windows: Use "in last X days" instead of complex date ranges
Workflow Not Triggering
Problem: Segment membership workflow trigger not firing
Common Issues:
-
Workflow checks too infrequently
- Default: Every 15 minutes
- Solution: Increase check frequency if needed
-
Contacts entering and exiting quickly
- Example: "Last 1 hour" segment
- Workflow checks every 15 min, might miss quick changes
- Solution: Widen time window or use webhook trigger
-
Filter criteria too narrow
- No contacts matching
- Solution: Preview segment, broaden filters
-
Workflow paused or disabled
- Check workflow status
- Solution: Activate workflow
Unexpected Members
Problem: Segment includes contacts you didn't expect
Debug Steps:
- Check OR logic: One condition matching includes contact
- Verify field values: Confirm contact actually matches
- Review time windows: "in last 30 days" includes full range
- Examine nested groups: Complex logic can be misleading
- Use preview: Sample individual member records
Example Debug:
Filter: (City = "Boston" OR Tags contains "vip") AND Email verified
Contact included: Mike
- City: Chicago (doesn't match)
- Tags: ["vip", "customer"] (MATCHES)
- Email verified: true (matches)
Result: Mike included because Tags contains "vip" (OR logic)
Live vs. Static Segment Comparison
| Feature | Live Segment | Static Segment |
|---|---|---|
| Member Storage | Not stored (queried) | Stored in database |
| Performance | Slower (query each time) | Fast (pre-computed) |
| Accuracy | Always current | Snapshot in time |
| Refresh | Automatic | Manual |
| Best For | Ongoing campaigns, behavior | One-time, large audiences |
| Processing | Instant (no processing) | Initial + each refresh |
| Member Count | Dynamic | Fixed until refresh |
| Historical Value | None (always current) | High (snapshots) |
| Query Time | 1-10 seconds | < 1 second |
| Max Recommended Size | 10,000 members | 1,000,000+ members |
Related Resources
- Segment Overview → - Introduction to segments
- Static Segments → - Snapshot-based segments
- Workflow Triggers → - Automate with segments
- Filter Builder → - Master filter logic
- Abandoned Cart Campaign → - Live segment use case