A Segment is a named, dynamic audience defined by a filter expression over the contact graph. Filters combine 80+ signals: identity (phone, email, language, country, timezone), contact fields (any custom field), tags, opt-in status, lifecycle stage, Kanban column, last-message-recency, last-purchase-recency, total spend, order count, channel preference, AI conversation outcomes, broadcast engagement (opened, clicked, replied), flow executions (entered, completed, dropped at node X). Filters compose with AND, OR, NOT and nested groups — same expressive power as SQL but exposed through a clickable builder.
Membership is dynamic and incremental. The segment engine listens to every event in the platform (message in/out, order, tag change, field update) and incrementally re-evaluates which segments the affected contact belongs to. A contact who just placed their fifth order automatically enters the "VIP — 5+ orders" segment within seconds, no rebuild required. The segment-entered event itself is a flow trigger, so onboarding to VIP can fire a thank-you template the same minute.
Segments compose with each other. Create "VIP" and "Lapsed" as base segments, then define "Lapsed VIPs" as VIP AND Lapsed. The derived segment updates automatically when its parents do. This pattern lets teams build a library of reusable audience primitives ("Active Hindi Speakers", "High-Intent Last 30 Days", "Refund Recently") and combine them per campaign without rebuilding query logic each time.
Every downstream module consumes segments. Broadcasts target by segment with a live count preview. Flows branch on "contact is in segment X". AI assistants gate access by segment for premium-only features. Dashboards filter by segment to show the funnel for just that cohort. Exports stream the current snapshot or a scheduled refresh. The segment is the universal join key across SabNode modules — define an audience once, every tool reads from the same definition.