Skip to main content

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:

  1. Runs your filter criteria against current database
  2. Finds all contacts/companies/deals matching right now
  3. Doesn't store the member list (queries on demand)
  4. 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

  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 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:

  1. Click Preview button
  2. See contacts matching filters right now
  3. Check current member count
  4. 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:

  1. Campaign Send:

    User clicks "Send Campaign" →
    System queries live segment →
    Gets current member list →
    Sends to those members
  2. Workflow Trigger:

    Every 15 minutes →
    System queries "New Subscribers" live segment →
    Finds contacts who entered segment since last check →
    Triggers workflow for new members
  3. 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:

  1. 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)
  2. 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)
  3. Field Types:

    • Indexed fields: Fast (ID, email, created_at)
    • Regular fields: Moderate (name, city, tags)
    • Custom fields: Slower (depends on indexing)
  4. 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:

  1. Review filter logic
  2. Check time window settings
  3. Verify data quality
  4. Consider using static segment if you need fixed count

Poor Performance

Problem: Segment queries are very slow (> 10 seconds)

Causes:

  1. Too many members (> 100,000)
  2. Complex filter criteria
  3. Deep nested groups
  4. Unindexed fields

Solutions:

  1. Simplify filters: Remove unnecessary conditions
  2. Split segment: Create multiple smaller segments
  3. Use indexed fields: Filter on ID, email, created_at
  4. Switch to static: For large, infrequently-changing segments
  5. 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:

  1. Workflow checks too infrequently

    • Default: Every 15 minutes
    • Solution: Increase check frequency if needed
  2. 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
  3. Filter criteria too narrow

    • No contacts matching
    • Solution: Preview segment, broaden filters
  4. Workflow paused or disabled

    • Check workflow status
    • Solution: Activate workflow

Unexpected Members

Problem: Segment includes contacts you didn't expect

Debug Steps:

  1. Check OR logic: One condition matching includes contact
  2. Verify field values: Confirm contact actually matches
  3. Review time windows: "in last 30 days" includes full range
  4. Examine nested groups: Complex logic can be misleading
  5. 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

FeatureLive SegmentStatic Segment
Member StorageNot stored (queried)Stored in database
PerformanceSlower (query each time)Fast (pre-computed)
AccuracyAlways currentSnapshot in time
RefreshAutomaticManual
Best ForOngoing campaigns, behaviorOne-time, large audiences
ProcessingInstant (no processing)Initial + each refresh
Member CountDynamicFixed until refresh
Historical ValueNone (always current)High (snapshots)
Query Time1-10 seconds< 1 second
Max Recommended Size10,000 members1,000,000+ members