Upsell & Cross-sell
In-app proactive merchandising block
The shopper searches, browses, lingers — and the shelf quietly rearranges itself around them, before anyone opens a chat.
What it does
Most personalization waits for the customer to start a conversation, so the shoppers who never open the chat widget never see it. This is an always-on surface inside the app or site that reacts to live behavior — the search query just typed, the category just browsed, dwell on a product, what's sitting in the cart — and rotates in the recommendation or promo that fits this moment. A returning customer gets a memory-based offer at app open; a shopper who just toured a category sees a voucher for the adjacent product they'd naturally buy next. A never-empty fallback means the block always shows something sensible, even for a first-time visitor with no history.
How it works
- 1Trigger. behavioral events stream from the app or site — search queries, category and product views, dwell time, cart changes, app opens.
- 2Decision. the agent scores candidate offers against the live session and the customer's memory (past purchases, offers already shown, declines), with rotation logic and a never-empty fallback. A quality judge gates anything carrying a discount, and offers made stale by newer behavior — the item is already in the cart, the voucher would now double-discount — are pulled before they render.
- 3Action. the block re-renders in place inside the host product UI; for app-open offers, a push notification can carry the same offer to bring the customer back in.
- 4Follow-through. a tap opens the product page or a pre-filled cart, impressions, clicks, and conversions are written back to memory and analytics, and a holdout slice of traffic measures the lift the block actually causes.
Configuration
How the agent is wired for this use case.
- Host product UI slot (embed or SDK) · re-renders the merchandising block in place with the chosen offer
- Product catalog · reads live stock and pricing to score and validate candidate offers
- Promotions engine · resolves voucher rules and discount eligibility, applies the voucher to the cart
- Messaging channel · sends an app-open push carrying the same offer to bring the customer back
- Analytics store · writes impressions, clicks, and conversions back for memory and holdout measurement
What you need
The inputs this use case runs on. Your channels stay yours; the agent supplies the judgment.
Signals
search queries, category and product view events, dwell time, cart events, app-open events
Data
product catalog with live stock and pricing, promo and voucher rules, customer memory (purchase history, offers shown and declined), current session context
Guardrails
discount budget caps and voucher eligibility enforced before render; judge gating on every promo; rotation and frequency caps so the block recommends rather than nags; never-empty fallback content; holdout measurement so reported lift is causal
Metrics it moves
- conversion-rateup, because the offer appears at the moment of demonstrated intent instead of waiting for a chat
- aovup through adjacent-product vouchers that extend the basket the shopper already started
- attach-rateup on companion products surfaced right after the category browse that signals the need
Related use cases
See it on your own customer journey
Bring one drop-off, one churn cliff, or one silent segment. We will show you what a proactive agent with memory and judgment does with it.
Book a demo