Documentation Index
Fetch the complete documentation index at: https://docs.kaireonai.com/llms.txt
Use this file to discover all available pages before exploring further.
Tutorial: Cross-Sell
This tutorial walks through a cross-sell flow that recommends a second product to existing customers. The system needs to know what each customer already owns, what they’re likely to buy next, and how much incremental revenue each candidate offer brings (not just what they’d buy anyway). Business scenario: a bank’s existing-customer base owns one or more of: checking, savings, credit card, mortgage, brokerage. Marketing wants to recommend the next product per customer — and avoid recommending one they already have, one their tier doesn’t qualify for, or one they’d convert on without prompting (sleeping dogs). What you’ll build:- A Customer schema that tracks current product holdings
- 4 cross-sell offers with eligibility tied to existing holdings
- A flow that uses uplift modeling (T-learner) so the system optimizes incremental revenue, not raw conversion
- Channel-aware ranking so the right offer surfaces on the right surface (email vs. in-app vs. branch)
1. Define the schema with product holdings
2. Define cross-sell offers with holding-aware qualification
hasCreditCard == false keeps the platform honest.
3. Configure the cross-channel routing
Cross-sell often runs across email, in-app, and (for high-value offers) branch. The Channel entity captures each.partial coupling means a placement that can’t be filled doesn’t cascade-empty its sibling placements in the same channel — useful when the cross-sell flow runs at the channel level and you want each placement decided independently.
4. Wire the cross-sell decision flow
Wu: 0.20 in the ranking weights. This activates the uplift dimension of PRIE-U — the platform looks up the per-customer CATE estimate and downweights offers the customer would have converted on anyway (sure things) while boosting offers that move the needle (persuadable).
5. Train the uplift model
PRIE-U needs an uplift signal. The platform ships T-learner and X-learner endpoints — see Uplift Modeling for the full math. For each candidate offer:decision_traces + interactions from the last 90 days, fits two propensity models (one on treated, one on holdout), and stores per-customer CATE estimates that the runtime can look up at decision time.
You need at least 30 days of decision.made.v1 + interaction.recorded.v1 events with a holdout group before the uplift signal becomes reliable.
6. Get a recommendation
For a 36-month-tenure premium customer with no credit card:savings is rank-2, not rank-1, even though its raw propensity is reasonable. The CATE estimate is negative (-0.04) — the customer would have opened a savings account anyway, so the platform’s uplift dimension suppresses it in favor of the credit card where the offer actually moves the needle.
This is the cross-sell game: don’t pay attribution dollars for conversions you’d get for free.
7. The four uplift segments
The platform classifies every (customer × offer) pair into one of four buckets via the CATE estimate:| Segment | CATE | Behavior |
|---|---|---|
| Persuadable | > +0.05 | Offer moves the needle; surface it |
| Sure thing | -0.05 to +0.05 | Will convert anyway; deprioritize |
| Lost cause | < -0.05, low base | Won’t convert; suppress |
| Sleeping dog | < -0.05, high base | Would have converted but offer backfires; suppress strongly |
8. What’s next
- Layer contact frequency — add a
customer_total_capcontact policy (max 4 contacts per customer per month across cross-sell + other categories) so the program doesn’t crowd out service messages. - Add an A/B holdout — run a 10% holdout that gets no cross-sell. The platform’s uplift z-test computes the incremental revenue, not just the conversion rate.
- Per-channel ranking — the same offer at rank-1 on email may not be rank-1 on in-app. Channel preferences live in the
Channelentity and PRIE’sRdimension picks the surface match. - Multi-step sequencing — for high-value cross-sells like mortgages, wire a multi-step Journey so the email lead is followed (after qualifying response) by a branch appointment offer.
See Churn Prevention for the retention scenario, Industry Templates for ready-made starter kits, or Uplift Modeling for the CATE math.