Siren

Enums & Constants Reference

Complete reference of feature flags, status values, currencies, engagement triggers, incentive types, resolvers, and other constants used throughout Siren.

Last updated: April 8, 2026

Feature flags

The Features constants control which capabilities an extension declares support for. Extensions return these from their getSupports() method to tell Siren which engagement triggers and conversion types they enable.

ConstantValueWhat it enables
Features::CouponscouponsCoupon-based engagement tracking
Features::CoursescoursesCourse completion engagement triggers
Features::LessonslessonsLesson completion engagement triggers
Features::PostspostsBlog post visit engagement triggers
Features::RenewalsrenewalsRenewal conversion type
Features::FormsformsForm submission engagement triggers
Features::ManualOrderingmanual_orderingManual product ordering support

Source: Siren\Extensions\Core\Enums\Features

Frontend feature flags

The frontend build system uses a separate set of flags to control which admin screens are available. These are injected at build time and cannot be changed at runtime.

FlagLiteEssentials
programsyesyes
collaboratorsyesyes
conversionsyesyes
engagementsyesyes
opportunitiesyesyes
obligationsyesyes
fulfillmentsyesyes
transactionsyesyes
programGroupsnoyes
distributorsnoyes

Status values

Collaborator status

StatusDescription
activeParticipating in programs, earning rewards
pendingAwaiting approval
inactiveTemporarily disabled
rejectedApplication denied
deletedSoft-deleted

Program status

StatusDescription
activeRunning and processing conversions
inactivePaused, not processing
draftNot yet published
deletedSoft-deleted

Conversion status

StatusDescription
pendingAwaiting commerce event completion
approvedConfirmed, obligation being calculated
completeFully processed with obligation created
rejectedDenied (e.g., refund)
deletedSoft-deleted

Engagement status

StatusDescription
activeCredit claim is live, awaiting conversion
completeConverted into an obligation
expiredEngagement window elapsed

Obligation status

StatusDescription
pendingAwaiting approval or fulfillment
approvedConfirmed, ready for payout
completeIncluded in a fulfillment and paid
rejectedCancelled or denied
deletedSoft-deleted

Fulfillment status

StatusDescription
pendingCreated, not yet processing
processingPayment in progress
completeAll payouts disbursed
failedPayment processing failed

Payout status

StatusDescription
paidDisbursed to collaborator
unpaidAwaiting payment

Transaction status

StatusDescription
pendingCommerce event received, not finalized
completeOrder confirmed and finalized
failedTransaction did not complete

Distributor status

StatusDescription
activeRunning distributions on schedule
inactivePaused
deletedSoft-deleted

Currencies

Siren ships with the following currencies registered. Extensions can register additional currencies via the CurrencyRegistryInitiated event.

CodeSymbolName
USD$US Dollar
EUREuro
GBP£British Pound
JPY¥Japanese Yen
CAD$Canadian Dollar
AUD$Australian Dollar
NZD$New Zealand Dollar
CHFCHFSwiss Franc
CNY¥Chinese Yuan
INRIndian Rupee
BRLR$Brazilian Real
MXN$Mexican Peso
SGD$Singapore Dollar
HKD$Hong Kong Dollar
KRWSouth Korean Won
SEKkrSwedish Krona
NOKkrNorwegian Krone
PLNPolish Zloty
TRYTurkish Lira
THB฿Thai Baht
MYRRMMalaysian Ringgit
ZARRSouth African Rand
RUBRussian Ruble

All monetary values in Siren are stored as integers in the smallest currency unit (e.g., cents for USD). See Amount & Currency for conversion utilities.

Engagement trigger types

Engagement triggers define what actions create credit claims for collaborators.

Core triggers (always available)

IDLabelDescription
referredSiteVisitSite VisitedCustomer arrives via a collaborator’s referral link
manualManual AttributionAdmin manually attributes a transaction to a collaborator

Feature-dependent triggers

IDLabelRequires
boundCouponUsedCoupon Code UsedFeatures::Coupons
boundPostUsedBlog Post VisitedFeatures::Posts
collaboratorProductSoldCollaborator Product Sold(product ownership)
courseCompletedCourse CompletedFeatures::Courses
lessonCompletedLesson CompletedFeatures::Lessons
collaboratorFormSubmittedForm SubmittedFeatures::Forms

Extensions can register custom engagement triggers via the EngagementTriggerRegistryInitiated event.

Conversion types

IDLabelSupported incentive types
saleSalesaleFixedPerTransaction, saleFixedPerProduct, saleTransactionPercentage
leadLeadleadFixed
renewalRenewal(requires Features::Renewals)

Incentive types

Incentive types define how reward amounts are calculated.

Core (Lite + Essentials)

IDLabelDescription
saleFixedPerTransactionFixed per transactionFlat amount per qualifying transaction
saleTransactionPercentagePercentage of transactionPercentage of the transaction total

Essentials only

IDLabelDescription
saleFixedPerProductFixed per productFlat amount per qualifying product in a transaction
leadFixedFixed per leadFlat amount per lead conversion

Incentive resolvers

Resolvers determine how rewards are distributed when multiple collaborators have engagements for the same conversion.

Core (Lite + Essentials)

IDLabelDescription
newestBindingWinsNewest engagement winsLast collaborator to engage gets the full reward
oldestBindingWinsOldest engagement winsFirst collaborator to engage gets the full reward

Essentials only

IDLabelDescription
topScoreWinsTop score winsHighest engagement score gets the full reward
evenlySharedPoolShared engagement poolReward split equally among all engaged collaborators
everyBindingWinsEvery engagement winsEach engaged collaborator receives the full amount
performanceSharePoolPerformance-weighted poolReward distributed proportionally by engagement score

Program group sorters

When programs are in a group, the sorter determines which program takes priority for a given conversion.

IDDescription
newestBindingWinsMost recent engagement determines which program fires
oldestBindingWinsFirst engagement determines which program fires

Line item filter types

Programs can filter which line items in a transaction are eligible for reward calculation.

TypeDescription
inCategoriesOnly items in specific product categories
withSkusOnly items matching specific SKUs
withTypesOnly items of a specific type (products or subscriptions)
collaboratorOwnedOnly items owned by the collaborator

Distribution frequency

Distributors use these frequencies to schedule reward distributions.

ValueDescription
weeklyDistributes rewards every week
monthlyDistributes rewards every month
yearlyDistributes rewards every year

Roles

ConstantValueDescription
Roles::CollaboratorcollaboratorAffiliate or partner participating in programs
Roles::PlatformManagerplatform_managerFull administrative access
Roles::FulfillmentManagerfulfillment_managerCan manage payouts and fulfillments
Roles::ProgramManagerprogram_managerCan manage programs and collaborators
Roles::CreativeManagercreative_managerCan manage promotional creatives
Roles::GoalManagergoal_managerCan manage goals and targets