Segments are saved audience rules. They combine contact data, tags, custom attributes, membership, checkout, and activity.
Tags are team-scoped labels you can attach to team contacts.
Use tags for simple lifecycle markers such as vip, trial, webinar-attendee, or needs-follow-up.
Attributes are custom fields for a team’s contacts. They can be visible in profiles or onboarding.
Activity
Activity tracks behavior such as login, search, lesson started, and lesson completed.
Segments
Segments combine conditions and return matching contacts.
Use segments to answer practical questions:
- Who bought Product A but has not completed onboarding?
- Who watched fewer than three lessons this month?
- Who is tagged
vip and has not logged in recently?
- Who should get a reactivation email?
Tag and hub condition shapes
Most condition types (email, first_name, has_product, …) take a primitive value, but the tag and hub-membership types have a specific write shape that differs from what they return:
For has_tag, use the tag slug, not its id — { "tag_id": … } / { "tag_ids": … } is the compiled/read-back shape and is rejected on input (“Extra inputs are not permitted”), which is why every id-based attempt fails. A 422 "One or more condition references failed to compile." means a referenced tag slug or hub was not found for your team, or the operator is unsupported for that type; the CLI names the exact offender (the unresolved slug / cross-team ref) in the error line (mio ≥ the MIO-2590 build).