Documentation Index
Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
Use this file to discover all available pages before exploring further.
Subscribers
Subscribers are the core of Sequenzy. They represent contacts in your email marketing database—people who receive your campaigns, transactional emails, and automated sequences.Subscriber Data Model
Each subscriber has the following properties:| Property | Type | Description |
|---|---|---|
email | string | Unique email address (required) |
firstName | string | First name |
lastName | string | Last name |
status | enum | Current status: active, unsubscribed, bounced |
tags | string[] | Array of tag names attached to subscriber |
customAttributes | object | Flexible key-value store for custom data |
createdAt | datetime | When the subscriber was created |
updatedAt | datetime | When the subscriber was last modified |
Subscriber Status
Subscribers can have one of three statuses:Active
The subscriber can receive emails. This is the default status when a subscriber is created.Unsubscribed
The subscriber has opted out. They will not receive campaigns or sequences, but may still receive transactional emails if required.Bounced
The email address is invalid or unreachable. Sequenzy automatically updates this status when emails bounce.Custom Attributes
Custom attributes allow you to store any data about subscribers. Use them for:- User IDs from your application
- Subscription plans or tiers
- Geographic information
- Purchase history
- Preferences
- Dates and timestamps like signup time, renewal date, or latest checkout attempt
Using Attributes in Emails
Custom attributes are available as template variables:Using Attributes in Conditions
Filter campaigns and create sequence conditions based on attributes:field_equals: Check exact matchfield_contains: Check if value contains stringfield_greater_than: Numeric comparisonfield_less_than: Numeric comparison
2026-03-20 or full timestamps like
2026-03-19T10:56:03+00:00, Sequenzy stores them in a way that supports exact
matches and before/after-style range filters.
Commerce Attributes
Commerce integrations can sync revenue and order metrics onto subscriber profiles.| Attribute | Type | Description |
|---|---|---|
mrr | Number | Monthly recurring revenue from billing providers |
ltv | Number | Lifetime value |
aov | Number | Average order value |
ordersCount | Number | Total known order count |
totalOrders | Number | Alias for total known order count |
totalSpent | Number | Total known store spend |
AOV when either aov or legacy averageOrderValue is present.
Older commerce data may include
totalRevenue or averageOrderValue.
Sequenzy treats totalRevenue as an ltv fallback and averageOrderValue as
an aov fallback so subscriber views do not show duplicate cards for the same
metric.Purchased Products
Subscriber profiles show purchased products when Sequenzy has product-level purchase data.- Stripe purchased products come from Stripe payment history and product catalog data
- Shopify and WooCommerce purchased products come from
ecommerce.order_placedline items - Product cards can show image, name, provider, variant, quantity, price, and last purchase time when those fields are available
lineItems[].providerProductId. Variant-level display and matching also uses lineItems[].providerVariantId.
Tags
Tags are labels that categorize subscribers. They’re essential for:- Segmentation - Target campaigns to specific groups
- Automation Triggers - Start sequences when tags are added
- Filtering - Find subscribers with specific characteristics
Learn More About Tags
Deep dive into tag management and best practices
Lists And Visibility
Subscriber lists can be either public or private.- Public lists appear in the subscriber email preferences page, so subscribers can subscribe or unsubscribe from them individually.
- Private lists stay internal. You can still use them for targeting, organization, imports, and automation logic, but subscribers will not see them in the preferences center.
Newsletter or Product Updates. Internal cohort names and operational buckets are usually a better fit for private lists.
Subscriber Lifecycle
Creating Subscribers
Via API
Auto-Creation
Subscribers are automatically created when you:- Add a tag to a non-existent email
- Trigger an event for a non-existent email
- Send a transactional email to a non-existent email
Updating Subscribers
Use PATCH to update subscriber data:Custom attributes are merged, not replaced. To remove an attribute, set it to
null.Filtering Subscribers
When sending campaigns, you can filter subscribers by:| Filter | Operators | Example |
|---|---|---|
| Status | is, is_not | Status is “active” |
| Tags | contains, not_contains | Tags contains “customer” |
contains, not_contains | Email contains “@company.com” | |
| Email Provider | is, is_not | Email Provider is Google |
| Date Added | less_than, more_than | Added after 2026-03-01 |
| Name | contains, not_contains | First name contains “John” |
- Rolling relative values like
7 days ago,last week, or3 days from now - Fixed dates like
2026-03-01orMar 1 2026
less_than means “within/after this point” and more_than means “before/older than this point”. Rolling values update automatically as time passes. Fixed dates stay fixed.
If a custom attribute stores a date or timestamp, you can use the same values in attribute comparisons such as renewal_date < 3 days from now.
Email provider detection runs in the background. We normalize major providers into stable buckets such as Google, Microsoft, and iCloud, so Gmail and Google Workspace filter together, Outlook/Hotmail/Microsoft 365 filter together, and dozens of regional providers like UKR.NET, Seznam, Onet, GMX, and Telenet can also be filtered directly.
Engagement Filters
Engagement filters (emailSent, emailOpened, emailClicked, emailBounced, emailComplained) accept two kinds of value:
- A rolling time window:
7d,30d,90d,180d, orall - A specific sent campaign:
campaign:<campaign_id>
AND lets you target narrow audiences that rolling windows can’t express. For example:
- “Subscribers who bounced the launch announcement but did not bounce the follow-up”:
- “Subscribers who opened the March newsletter and then clicked the April promo”:
Saved Segment Logic And Counts
Saved segments can combine filters with eitherAND or OR logic at every group level:
- Use
ANDwhen every filter must match - Use
ORwhen any one filter should match
last_login within 90 days AND (plan_end is empty OR plan_end is before today). In the API, nested segments use the v2 root shape with kind: "group" and children containing filter leaves or more groups. Existing flat filters plus filterJoinOperator requests still work.
Saved segments support two additional segment-only fields:
event- filters by custom subscriber events. Use values likesaas.purchase:30d,saas.purchase:all, orsaas.purchase:5:30dwithat_least/less_than_count.segment- references another saved segment by ID, so you can compose one segment from another. Sequenzy protects evaluation from cycles and excessive nesting depth.
- Matched contacts - every contact that matches the segment definition, regardless of status
- Active subscribers - matched contacts who are still eligible for campaigns
Date Filter Examples
Rolling relative examplesBest Practices
1. Capture Data at Sign-up
Collect custom attributes when users first sign up:2. Keep Attributes Updated
Sync changes from your app to Sequenzy:3. Use Tags for Segments
Tags are more flexible than custom attributes for segmentation:4. Clean Your List
Regularly remove bounced and unengaged subscribers:- Remove hard bounces immediately
- Consider removing subscribers who haven’t opened in 6+ months
- Use re-engagement campaigns before removing inactive subscribers
Related
Tags
Learn about tagging and segmentation
Events
Track subscriber actions with events
Sequences
Automate emails based on subscriber data
API Reference
Subscribers API documentation