There is a fixed priority order for user states, where the highest-priority state always wins regardless of which rule action (block/suspend/decline) triggered it:
UNACCEPTABLE > BLOCKED > TERMINATED > SUSPENDED > DORMANT > ACTIVE > CREATED
• Example: If Rule 1 (suspend action) sets state to Blocked and Rule 2 (block action) sets state to Terminated, the user ends up Blocked (higher priority than Terminated).
• The priority is based on the resulting user state, not the rule's action type. So a "suspend action" rule that sets state to Blocked is treated the same as a "block action" rule setting Blocked; the state itself determines precedence.
Webhook behavior for synchronous rules:
When multiple rules run synchronously, only the final, prevailing state is saved and only one USER_STATE_UPDATED webhook is sent, not one per rule.
Webhook behavior for sync + async rule mix:
If one rule is synchronous and another is asynchronous, they are processed separately (sync rules run first, async rules run afterward, and user state updates for async rules also complete asynchronously). This means the user's state can be updated twice, in two separate save operations - resulting in two USER_STATE_UPDATED webhooks for the same user activity, confirmed by testing.
References: API reference → Webhooks → USER_STATE_UPDATED event; Dashboard → Rules → User Rules (action & state settings)
User State Priority & Webhook Behavior for Conflicting Rules
When multiple user rules hit and try to set different user states, which state wins?