List Data Model
Each list has the following properties:- ID: Unique numeric identifier
- UUID: Unique universal identifier for public URLs
- Name: List name (1-500 characters)
- Type:
public,private, ortemporary - Opt-in:
singleordouble - Status:
activeorarchived - Tags: Array of tags for organization
- Description: Optional text description
- Created At: Timestamp when list was created
- Updated At: Timestamp of last modification
Creating Lists
Create New List
Click New and configure:
- Name: Required, unique identifier
- Type: Choose list visibility and purpose
- Opt-in Mode: Single or double opt-in
- Tags: Add organizational tags (optional)
- Description: Add context for the list (optional)
List Types
- Public
- Private
- Temporary
Public Lists
Visible on public subscription pages and available for self-service subscription.Use cases:- Newsletter signups
- Product announcements
- Marketing campaigns
- Blog updates
Public subscription pages are enabled via
app.enable_public_subscription_page settingOpt-in Modes
Lists support two confirmation workflows:Single Opt-in
Immediate Confirmation
Subscribers are immediately confirmed when added to the list.Characteristics:- Subscription status set to
confirmedinstantly - No confirmation email required
- Faster list growth
- Higher potential for invalid emails
- Offline signups
- Imported contacts
- Gated content downloads
Double Opt-in
Email Confirmation Required
Subscribers must confirm via email before receiving campaigns.Characteristics:- Subscription status starts as
unconfirmed - Confirmation email sent automatically
- Status changes to
confirmedafter click - Better list quality
- GDPR compliant
- Public signup forms
- GDPR/privacy compliance
- High-quality engagement lists
Configuring Double Opt-in
Double opt-in campaigns are sent automatically when enabled viaapp.send_optin_confirmation setting.
Opt-in email includes:
- Confirmation URL with list UUIDs
- Unsubscribe URL
- List-Unsubscribe headers (if enabled)
Public Subscription Pages
Public lists appear on the self-service subscription page at/subscription/form.
Subscription Page Features
Enable public pages via Settings → App →
enable_public_subscription_pageManaging Lists
Updating Lists
Modify list properties:- Name, type, opt-in mode
- Tags and description
- Status (active/archived)
Archiving Lists
Set list status toarchived to:
- Hide from campaign list selection
- Preserve data and relationships
- Prevent new subscriptions
- Maintain historical records
Deleting Lists
Deleting a list:- Removes all subscriber-list relationships
- Deletes from
subscriber_liststable - Campaign-list relationships are preserved with list name
- Cannot be undone
List Organization
Tags
Use tags to categorize lists:- Filtering in admin interface
- Organizing related lists
- Bulk operations
Description Field
Add context and notes:- Purpose of the list
- Target audience
- Campaign schedule
- Internal documentation
Subscriber-List Relationships
Thesubscriber_lists table manages the many-to-many relationship:
Subscription Statuses
- Unconfirmed
- Confirmed
- Unsubscribed
Awaiting double opt-in confirmation. Subscribers with this status:
- Do not receive regular campaigns
- Can receive opt-in campaigns (type:
optin) - Can be manually confirmed
Meta Field
Each subscription can have custom metadata (JSONB):List Analytics
View subscriber counts per list with breakdown by status:mat_list_subscriber_stats provides cached counts for performance.
Querying Lists
Filter Options
- Query: Search by name
- Type: Filter by
public,private,temporary - Opt-in: Filter by
singleordouble - Status: Filter by
activeorarchived - Tags: Filter by tag values
Minimal Mode
For performance, use?minimal=true to retrieve lists without JOIN operations (excludes subscriber counts).
Campaign Integration
Sending campaigns to lists:- Select one or more target lists when creating a campaign
- Campaign reaches subscribers with:
- Status:
enabled(subscriber level) - Subscription status:
confirmed(for regular campaigns) - For opt-in campaigns:
unconfirmedstatus
- Status:
List Names in Campaigns
Campaigns store list names even if lists are deleted:API Examples
Create List
Query Lists
Database Schema
Best Practices
Use Double Opt-in
For public-facing lists to ensure compliance and list quality
Tag Consistently
Develop a tagging system for easy filtering and organization
Document Lists
Use descriptions to explain list purpose and audience
Archive Instead of Delete
Preserve historical data by archiving unused lists