Use Case
When an order’s status changes, you want to automatically update the customer’s user role. This keeps access permissions in sync with order status throughout the order lifecycle.
Common scenarios:
- Activate membership when order completes
- Suspend access when order is refunded
- Grant pending access during processing
- Revoke access on cancellation
- Upgrade tier on subscription renewal
Step-by-Step Setup
1. Create a New Workflow
Navigate to Sequensy → Workflows in your WordPress admin and click Add New Workflow.
Name your workflow “Sync Role with Order Status” or “Membership Status Manager”.
2. Configure the Trigger
Select Order Status Changed as your trigger.
Key filters:
- From Status: Previous order status
- To Status: New order status
- Products: Membership/access products only
3. Set Up the Update User Role Action
Configure the role change:
| Setting | Example Value | Description |
|---|---|---|
| User | {customer_email} | Order customer |
| New Role | Active Member | Target role |
| Action | Replace | Replace current role |
4. Create Workflows for Each Transition
| From Status | To Status | Role Action |
|---|---|---|
| Pending | Processing | Pending Member |
| Processing | Completed | Active Member |
| Any | Cancelled | Customer (revoke) |
| Any | Refunded | Customer (revoke) |
| Any | On-Hold | Suspended Member |
5. Test Your Workflow
- Enable all related workflows
- Create a test order
- Progress through status changes
- Verify role updates at each step
- Test access permissions
Pro Tips
Cover all transitions: Create workflows for every important status transition to keep roles in sync.
Use appropriate roles: Create custom roles like “Pending Member” and “Suspended Member” for transitional states.
Notify on changes: Combine with Send Email to inform customers of access changes.
Consider refunds carefully: Decide whether partial refunds should affect access.
Status-to-Role Mapping
Membership Product Flow
Order Placed (Pending)
→ Role: Pending Member
→ Access: Limited preview
Payment Received (Processing)
→ Role: Processing Member
→ Access: Limited access
Order Completed
→ Role: Active Member
→ Access: Full access
Order Refunded
→ Role: Customer
→ Access: Revoked
Order Cancelled
→ Role: Customer
→ Access: Revoked
Role Transition Matrix
| From Status | To Status | Role Change |
|---|---|---|
| pending | processing | Customer → Pending Member |
| processing | completed | Pending Member → Active Member |
| completed | refunded | Active Member → Customer |
| any | cancelled | Any → Customer |
| any | on-hold | Any → Suspended Member |
| on-hold | processing | Suspended → Pending Member |
Implementation Examples
Membership Site
Workflow 1: Order Completed
- Products: Any membership product
- Role: Active Member
- Email: "Your membership is active!"
Workflow 2: Order Refunded
- Products: Any membership product
- Role: Customer
- Email: "Your membership has been cancelled"
Workflow 3: Order On-Hold
- Products: Any membership product
- Role: Suspended Member
- Email: "Your membership is temporarily suspended"
Course Access
Workflow 1: Order Processing
- Products: Course products
- Role: Enrolled Student
- Access: Course content unlocked
Workflow 2: Order Completed
- Products: Course products
- Role: Active Student
- Access: Full course + certificates
Workflow 3: Order Refunded
- Products: Course products
- Role: Customer
- Access: Course access revoked
Handling Edge Cases
Partial Refunds
Condition: Refund amount < order total
Action: Keep current role (partial refund doesn't revoke)
Note: Only revoke on full refund
Multiple Products
Condition: Order has multiple membership levels
Action: Assign highest tier role
Note: Use priority system for role selection
Existing Members
Condition: User already has "Lifetime Member" role
Action: Skip role update
Note: Don't downgrade lifetime members
Troubleshooting
Role not changing?
- Verify from/to status match
- Check workflow conditions
- Ensure user account exists
Wrong role assigned?
- Review workflow priority order
- Check for conflicting workflows
- Verify role name spelling
Access not updating?
- Clear caching plugins
- Check role capabilities
- Review content restriction settings