Action Analysis brings enterprise-grade decision transparency to every tenant. Access it from the Live Console or via the API at
GET /api/v1/customers/:customerId/why-not/:offerId.Business Value
| Scenario | How Why-Not Helps |
|---|---|
| Customer complaints | Support agent looks up why a promotion was not shown, sees “frequency cap exceeded” instantly |
| Campaign debugging | Marketer discovers a qualification rule is blocking 40% of the target audience |
| Compliance audits | Auditor verifies that exclusion decisions follow documented policy |
| Model validation | Data scientist confirms propensity scores are flowing through the pipeline correctly |
How It Works
When you request a Why-Not analysis, KaireonAI replays the full decision pipeline for that specific customer-offer pair:Enrich customer data
Queries all schema tables for the customer’s data (demographics, transactions, behavioral attributes).
Evaluate qualification rules
Runs every active qualification rule and reports whether it applies to this offer, whether it passed or blocked, and the exact reason.
Evaluate contact policies
Checks frequency caps, cooldown periods, and suppression rules against the customer’s interaction history.
Using Why-Not Analysis
From the API
Response Structure
The response includes four sections:| Section | Description |
|---|---|
verdict | eligible or blocked — the final outcome |
summary | Human-readable explanation of the verdict |
qualification | Per-rule breakdown with pass/block/skip status and reasons |
contactPolicy | Per-policy breakdown with pass/block/skip status and reasons |
Example Response
Understanding the Results
Qualification Rule Results
Each rule returns one of three statuses:| Status | Meaning |
|---|---|
passed | Rule applies to this offer and the customer meets the criteria |
blocked | Rule applies and the customer fails the criteria — offer is ineligible |
skipped | Rule does not apply to this offer (scope mismatch) |
Contact Policy Results
| Status | Meaning |
|---|---|
passed | Policy applies and the customer is within limits |
blocked | Policy applies and the customer has exceeded the policy (e.g., frequency cap, cooldown) |
skipped | Policy scope does not match this offer |
Supported Rule Types
| Rule Type | What It Checks |
|---|---|
attribute_condition | Customer attribute against a threshold (e.g., income >= 50000) |
offer_attribute | Offer-level field value (e.g., productType == "credit_card") |
frequency_cap | Number of impressions within a time period |
cooldown | Hours since last contact |
API Reference
See the full Why-Not API Reference for endpoint details, field descriptions, and error codes.Next Steps
Qualification Rules
Configure the rules that determine offer eligibility.
Contact Policies
Set up frequency caps, cooldowns, and suppression rules.
Decision Traces
View full pipeline execution traces for any decision.
1:1 Operations Manager
Real-time monitoring console with built-in Why-Not access.