Policy Actions
What happens when bookings violate policy rules
Policy Actions
Policy actions determine what happens when a booking matches a policy rule or falls outside policy limits. There are four possible actions.
The Four Actions
| Action | Icon | Behavior | User Experience |
|---|---|---|---|
| Allow | ✅ | Booking proceeds normally | No restrictions, can book directly |
| Warn and Allow | ⚠️ | Warning shown, booking allowed | User acknowledges warning, then books |
| Require Approval | 📋 | Booking becomes a request | User submits request, admin reviews |
| Block | 🚫 | Booking is prevented | Cannot proceed, must choose alternative |
Booking Flow Decision Tree
Allow
The booking is fully compliant. No restrictions apply.
When used:
- Booking is within all policy limits
- Price is under budget
- Cabin class/star rating is allowed
- Advance booking requirement is met
User sees:
- Green "Within Policy" status
- "Confirm Booking" button
- Direct booking flow
Warn and Allow
The booking has minor violations, but the company allows it with acknowledgment.
When used:
- Slight budget overrun
- Preferred but not required standards not met
- Company wants visibility without blocking
User sees:
- Amber "Out of Policy" status
- Warning message describing violation
- "Confirm Booking" button (after acknowledging)
- Direct booking flow
Example violations:
- "Exceeds budget by 50,000 IQD"
- "Selected cabin class (Premium Economy) is not preferred"
Require Approval
The booking has significant violations and requires manager/admin approval before proceeding.
When used:
- Significant budget overrun
- Business class on routes where it's not standard
- Extended stays beyond normal limits
User sees:
- Amber "Requires Approval" status
- Violation details
- Reason code selector (optional)
- Request notes field
- "Submit Request" button instead of "Confirm Booking"
Flow:
- User submits booking request
- Admin reviews request in dashboard
- Admin approves or rejects
- If approved, booking proceeds
- If rejected, user is notified
Block
The booking violates hard limits and cannot proceed.
When used:
- Prohibited cabin classes (e.g., First Class)
- Destinations not allowed
- Extreme budget violations
- Policy-prohibited options
User sees:
- Red "Booking Blocked" status
- Violation details
- Disabled "Confirm Booking" button
- Suggestion to choose alternatives
Users cannot override blocked bookings. They must select an in-policy alternative.
Default Action vs. Rule Override
Each policy has a default action that applies to all violations. Individual rules can override this with a specific action.
Example
Policy settings:
- Default action:
REQUIRE_APPROVAL
Flight rules:
- Rule 1: Domestic flights, Economy → Action: (none) → Uses default (
REQUIRE_APPROVAL) - Rule 2: Any flight, First Class → Action:
BLOCK→ Overrides default
Result:
- Domestic economy over budget → Requires approval
- First class on any route → Blocked
This hybrid approach allows:
- One default for most violations
- Specific overrides for special cases
Choosing the Right Action
| Scenario | Recommended Action |
|---|---|
| Minor preference violations | Warn and Allow |
| Budget overruns up to 20% | Warn and Allow or Require Approval |
| Budget overruns over 20% | Require Approval |
| Prohibited options (First Class) | Block |
| Emergency travel exceptions | Allow (with separate emergency policy) |
Tracking Violations
All policy violations are logged regardless of action:
- Who violated
- What policy/rule
- Violation details (price, cabin class, etc.)
- Action taken
- Resolution (for approval requests)
Admins can view violation analytics in Policies → Violations.