Skip to main content

User State Priority & Webhook Behavior for Conflicting Rules

When multiple user rules hit and try to set different user states, which state wins?


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 ​oneUSER_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)



Did this answer your question?