Enter password to view case study

Agentic AI · Telecom sales · Conversational UX

Streaming bundles in XOEai

Streaming bundles in XOEai

Bringing streaming bundles, streaming equipment and premium channels into XOEai, the AI assistant that guides sales agents through a live customer chat, designed to feel like part of the conversation.

XOEai · Agent console

XOEai in the agent console: the chat transcript on the left and a streaming bundle recommendation on the right that cites the customer’s apps

Product

XOEai, an agentic AI sales assistant

Role

Senior experience designer

Scope

Bundles, equipment and premium channels

Deliverables

Flows, light and dark UI, prototype, user flow and dev handoff

Overview

XOEai sits beside the chat transcript in the agent console. As the customer talks, it suggests what to ask, presents offers as cards the agent can act on, and keeps the cart updated. My work was to integrate streaming selections and bundles into that experience, so an agent can sell StreamSaver bundles, plan upgrades, and promote 4K Stream Boxes and premium channels without leaving the conversation.

Just as important, it had to be conversational. The assistant should ask, listen and respond the way a good agent would: one question at a time, in plain language, building on what the customer just said. It shouldn’t hand the agent a form.

Goals

Sell streaming inside the chat

Make it a conversation

Recommend from what the customer said

Numbers the agent can trust

One offer pattern everywhere

Ready to build

The problem

Streaming is harder to sell in a chat than internet. Customers already pay for some apps, every app has its own tiers, and some equipment isn’t compatible with what’s in the home. XOEai needed cards for all of it that fit the way it already presents offers, so the agent could recommend, adjust and add to the cart in one place. And it all had to happen without breaking the rhythm of the chat: a run of forms and checkboxes would turn a conversation into data entry.

Who I designed for

The sales agent, often in several chats at once, with the AI assistant open beside each one. What they need from it:

Know what to ask next

Led to a discovery question, with a reply ready to send, before any offer

Understand why an offer fits

Led to a reason line built from what the customer said

Quote numbers with confidence

Led to savings in dollars, price differences, and a running total before the cart changes

Not sell something the customer will regret

Led to the double-billing reminder and the legacy Flex box warning

Sound like themselves, not a script

Led to plain-language recommended responses the agent can send or edit first

Keep the chat flowing

Led to one card per turn, shown when the customer brings something up, with system steps that move on their own

How I worked

1

Map the journey

Wrote a flow spec covering featured bundles, build your own, browse all, tier upgrades and managing a bundle later.

2

Design the turns

Designed each step as a turn in the chat, built from XOEai’s Mercury components: assistant cards, offer rows, cart updates and user echoes.

3

Cover equipment

Added the 4K Stream Box, premium channels, and the customer whose legacy Flex box isn’t compatible.

4

Audit and iterate

Checked the bundle cards against the hardened offer pattern and reworked the flow around discovery.

5

Prototype everything

Linked every flow, including the steps the AI takes on its own, and mapped them in one user flow.

6

Annotate for handoff

Numbered every screen with behavior, data, content and accessibility notes, and flagged open questions.

Mapping the journey

I started with a flow spec: every card the assistant could show, numbered, with notes on what each button does. It covered five ways into a bundle, the upgrade step after it, and how equipment and premium channels follow.

Flow spec for streaming bundles and streaming equipment, with numbered notes for each card

The original spec: featured bundles, build your own, matching bundles, browse all, tier upgrades, then the 4K Stream Box, legacy Flex handling and premium channels

Then the offer pattern hardened

A separate initiative (Offer Presentation Hardening) standardized how XOEai presents any offer. The bundle cards were designed before it, so they no longer matched how internet offers looked and behaved.

What the hardened pattern sets

  • A title and one line on why the AI recommends it

  • A Recommended tag and offer rows with price and term

  • Two actions, not three

  • The card locks as “Card complete” after an action

  • The agent’s action echoed as a full sentence

Hardened internet offer card in XOEai with a recommended price option and See all offers and Add to cart buttons

The hardened internet offer card

Auditing the bundle cards

Version 1 featured bundles card with three bundles and No thanks, Build bundle and Add to cart buttons

v1: the featured bundles card

I reviewed the existing bundle flow and checked the numbers on each screen. Here’s what I found:

Offers before questions

Three bundles showed before anyone knew which apps the customer already paid for.

No reason given

Nothing told the agent why these bundles were highlighted, so nothing to say to the customer.

Three equal buttons

No thanks, Build bundle and Add to cart, with Add to cart live before a choice.

Designing it as a conversation

The audit kept pointing to one thing: v1 treated the chat like a checkout. It put a menu of options in front of the agent before the customer had said much. I set three rules so every card works as the next turn in the conversation.

Rule 1

Take turns

One question or one offer at a time. The assistant waits for the customer’s answer, then builds on it, like a good agent would.

Rule 2

Use the customer’s words

Reasons and recommended responses repeat what the customer said in plain language, so the agent can say them out loud without translating.

Rule 3

The thread is the record

Actions echo as full sentences and cart changes appear in the thread, so anyone reading back sees the conversation, not a list of clicks.

Key decisions

Decision 1

Ask first, then recommend

A bundle only saves money if it replaces what the customer already pays for. So, like a real conversation, the flow now opens with one discovery question instead of a list of offers.

Decision 2

Always show the why

Each recommendation cites what the customer said. An agent can only pass on a recommendation they understand.

Decision 3

One offer pattern

Bundles reuse the hardened offer card, so agents learn one pattern and developers build one component.

Decision 4

Catch what they’d regret

The assistant watches for overlap, like apps they pay for directly or an incompatible box, and flags it before the sale closes.

User flow

Four flows share one console: improved streaming bundles, the original bundle flow, streaming equipment (with the legacy Flex branch), and the internet offer the pattern came from. Each lane reads like a transcript: the assistant asks, the customer answers, and the assistant responds with the next card.

User flow diagram with four lanes: streaming bundles v2, streaming bundles v1, 4K Stream Box with the legacy Flex branch, and the internet offer

Solid arrows are agent clicks. Dashed purple arrows are steps the AI takes on its own. Gray dashed boxes are paths with no screens yet.

Conversational pacing

“Generating plans” and “Cart updated” advance after a beat, the way a person pauses before answering, so the agent never clicks just to keep the chat going.

Bundles hand off to equipment

Once upgrades are saved, the 4K Stream Box offer follows, so the whole entertainment sale reads as one conversation.

Both Flex outcomes designed

Keep or remove the old Flex box each lead to their own cart update, instead of a dead end.

Try the prototype

Every flow is linked, including the steps the AI takes on its own, so you can feel the pace of the conversation instead of reading about it. Pick a flow, then click through it like an agent would. Press R inside the prototype to restart.

Streaming bundles

4K Stream Box

Legacy Flex box

Internet offer

Dark mode

The improved flow: a discovery question, a recommendation built on the customer’s answer, the cart update, build your own and plan upgrades.

Final designs

Five screens make up the improved bundle flow. Each one is a turn in the conversation. Numbered notes match the pins in the Figma handoff, and every screen also works in dark mode.

CONVERSATIONAL

marks where the design keeps the exchange feeling like a conversation

Screen 1 of 5

Discovery question

Before showing any bundle, the assistant suggests one question about what the customer already pays for and wants to watch.

XOEai assistant card titled Find out what they watch first, with a recommended response and Skip to bundles and Send to customer buttons

Light

XOEai assistant card titled Find out what they watch first, with a recommended response and Skip to bundles and Send to customer buttons, dark mode

Dark, in the Xfinity (Dark) theme

1

Ask before offering

CONVERSATIONAL

The assistant’s first move is a question, not a list of bundles.

WHY

It’s how a good agent starts: ask, listen, then suggest. Bundles only save money when they replace apps the customer already pays for, and v1 offered three before anyone knew that.

2

A reply ready to send

CONVERSATIONAL

A recommended response in plain language the agent can send as is, or click to edit in the composer.

WHY

Agents juggle several chats. A drafted question keeps this one moving, and editing it keeps the agent’s own voice.

3

Skip to bundles

A secondary path straight to the featured bundles.

WHY

If the customer already named their apps, the agent shouldn’t have to ask again.

4

Send to customer

CONVERSATIONAL

Posts the message to the transcript and marks the card complete. The assistant then waits for the customer’s reply.

WHY

The agent stays the one talking to the customer. The AI drafts, then takes its turn only after the customer answers.

Screen 2 of 5

Recommendation

The customer said they pay for Netflix and HBO Max and want Premier League soccer. The assistant recommends the bundle that keeps both and adds Peacock.

Streaming bundle recommendation card citing the customer’s apps, with the Peacock, Netflix, HBO Max bundle selected and expanded

Light

Streaming bundle recommendation card citing the customer’s apps, with the Peacock, Netflix, HBO Max bundle selected and expanded, dark mode

Dark, in the Xfinity (Dark) theme

1

Why this bundle

CONVERSATIONAL

The reason line cites what the customer just said, in their words: Netflix, HBO Max, Premier League.

WHY

The recommendation answers the customer’s last message instead of changing the subject. “Based on what you told me” lands better than a generic pitch.

2

The hardened offer card

Recommended tag, title and a billing line: the same card the internet offer uses.

WHY

One offer pattern across products means agents learn it once and developers build it once.

3

Preselected and expanded

The best fit loads selected, with its details open. The other bundles stay collapsed.

WHY

The common path becomes one click: Add to cart.

4

Savings in dollars

“Save $8/mo vs. paying for each app” under the price.

WHY

v1 mixed “27% Savings” with “Save $18/mo”. One dollar figure is easier to say out loud and to check.

5

A cancel reminder

The last bullet reminds the agent about the Netflix and HBO Max plans the customer pays for now.

WHY

Bundling doesn’t cancel those plans. Flagging it while the agent is still selling heads off a surprise bill.

Screen 3 of 5

Added to cart

The bundle is in the cart, the total is right, and the assistant spots a problem the customer would only notice on their next bill.

Cart updated card showing New total $50 to $72 per month, followed by a card titled Help them avoid paying twice with a recommended response

Light

Cart updated card showing New total $50 to $72 per month, followed by a card titled Help them avoid paying twice with a recommended response, dark mode

Dark, in the Xfinity (Dark) theme

1

Echo the action

CONVERSATIONAL

“Added Peacock, Netflix, HBO Max bundle to cart”, not the button label.

WHY

The thread reads back like a conversation, not a log of clicks, the same as the hardened internet flow.

2

Cart math you can trust

$50 → $72/mo: the old total plus the $22 bundle.

WHY

v1 showed $50 → $80 for a $22 bundle, and the cart pill never changed.

3

Help them avoid paying twice

CONVERSATIONAL

The assistant notices the customer pays for Netflix and HBO Max directly and drafts a friendly reminder, with an offer to text the steps.

WHY

A bundle that doubles their bill turns into a complaint. Raising it as a tip, in the flow of the chat, makes it helpful rather than a warning.

4

Send or move on

Send the reminder, or go straight to plan upgrades.

WHY

The agent decides what the customer hears. The AI only suggests.

5

The pill matches

The cart button shows $72.00, the same number as the card.

WHY

Two different totals on one screen is how agents lose trust in the tool.

Screen 4 of 5

Build your own

When none of the featured bundles fit, the agent builds one, starting from what the customer already said.

Build a bundle card with Peacock included in every bundle, Netflix and HBO Max checked, and Back and Show 3 bundles buttons

Light

Build a bundle card with Peacock included in every bundle, Netflix and HBO Max checked, and Back and Show 3 bundles buttons, dark mode

Dark, in the Xfinity (Dark) theme

1

Starts from the conversation

CONVERSATIONAL

Netflix and HBO Max load checked, labeled “Customer pays for this today”.

WHY

The customer never has to repeat themselves. v1 opened blank, so the agent re-entered what they had just been told.

2

Included, not a choice

Peacock shows as “In every bundle”: checked, disabled and announced that way to screen readers.

WHY

v1’s checked Peacock looked like an option the agent could turn off.

3

A live result count

“Show 3 bundles” updates as boxes change, and disables at 0 with a hint.

WHY

It replaces “Show related bundles”, so the agent knows what they’ll get before clicking.

4

Back, not None

Back returns to the recommendation unchanged.

WHY

“None” didn’t say what would happen next.

Screen 5 of 5

Plan upgrades

After the bundle is added, the assistant offers ad-free upgrades for the apps in it, with the new monthly total before anything changes.

Plan upgrades card with Netflix and HBO Max sections, a running total of plus 13 dollars and new total 85 dollars per month, and Keep current plans and Update cart buttons

Light

Plan upgrades card with Netflix and HBO Max sections, a running total of plus 13 dollars and new total 85 dollars per month, and Keep current plans and Update cart buttons, dark mode

Dark, in the Xfinity (Dark) theme

1

Only the apps they bought

One section each for Peacock, Netflix and HBO Max.

WHY

v1 offered Disney+ and Hulu upgrades after adding a bundle with HBO Max.

2

Price differences

Each option shows what it adds (“+$7.00/mo”). The included tier says “Included”.

WHY

The agent quotes the change to the bill, not a retail price they have to subtract.

3

A running total

CONVERSATIONAL

“2 upgrades selected: +$13.00/mo” and “New total $85/mo”.

WHY

The agent can say the new bill out loud in one sentence before it lands in the cart.

4

Keep current plans

A clear way to decline.

WHY

v1 only had Update cart, so saying no meant typing.

5

One cart update

Update cart posts a single “Package edited” update and updates the pill.

WHY

v1 said “bundle added” after an edit and left the total unchanged.

After the bundle

Streaming equipment

Once streaming is in the cart, the assistant offers a 4K Stream Box, then premium channels based on the customer’s interests. Some customers have a legacy Flex box that can’t run alongside it, so the assistant has to catch that before the sale closes.

CONVERSATIONAL

Each offer opens with a plain-language line the agent can say (“Okay, now let’s look at the 4K Stream Box, which lets you stream everything in one place”), followed by one yes-or-no question. It feels like the next turn in the chat, not a new form.

4K Stream Box card with a quantity stepper and No thanks and Add to cart buttons

1. Choose how many boxes

Card titled You have an old Flex box with a caution alert and Keep Flex box and Remove Flex box buttons

2. Legacy Flex box warning

Cart updated card reading Flex box removed, 4K Stream Box added

3. Flex box removed, 4K box added

In dark mode

4K Stream Box quantity card in dark mode
Legacy Flex box warning in dark mode
Flex box removed cart update in dark mode

Quantity in the card

A stepper (minimum 1) next to the product, with four short feature bullets.

WHY

Customers with several TVs can ask for more boxes without the agent leaving the card.

Warn before the sale closes

If the account has a legacy Flex box, a caution alert names the customer and explains the conflict.

WHY

Selling a box that can’t work in the home means a return and a second call.

Both answers lead somewhere

Remove Flex box swaps the equipment. Keep Flex box takes the 4K box back out of the cart.

WHY

Each choice gets its own cart update, so the agent always sees what the customer will be billed for.

Still open with the team at the time of this feature creation

  • In the current Streamstore live flow the card says the first box is free, but the cart total jumps by more than the box should cost. To check with product and devs.

  • “No thanks” on the quantity card needs its own path; today it shares the add action.

  • Does the customer need to return the Flex box? If so, the steps belong in the cart update.

Annotated for development

Every screen in every flow has an annotated copy in the Figma file: numbered pins on the design, matching notes beside it, and a link back to the original. A shared section specs the parts that repeat, so the per-screen notes stay short.

Annotated recommendation screen with numbered pins and matching notes for reason line, ranking, expanded bullets, actions and an open pricing question

The recommendation screen in the handoff, with one open question flagged in amber

How notes are tagged

BEHAVIOR

COMPONENT

DATA

CONTENT

ACCESSIBILITY

Each note says what to build and which XOEai component it is. Amber “Open question” notes mark what isn’t decided yet.

What’s covered

  • Shared patterns: offer card, cart update, user echo, recommended response, Card complete

  • Streaming bundles: 5 screens

  • 4K Stream Box: 6 screens

  • Legacy Flex box: 3 screens

  • Internet offer: 7 screens

  • Dark mode: all 36 screens, with their own prototype flows

A reusable kit

The marker and note are Figma components with number, title, type and body properties, so the team can keep annotating without detaching anything.

Questions I flagged for the team

Each one is pinned as an amber note on the screen it affects, grouped here by who can answer it.

Pricing

FOR THE OFFERS TEAM

  • Should bundle savings be measured against each app’s retail price, or against what this customer pays for those apps today?

  • Are StreamSaver prices fixed, or do they change after a promo period or by market? If so, the card needs to show the term.

  • When a customer upgrades an app to ad-free, is that billed at the bundle rate or the app’s regular price?

  • The 4K Stream Box card says the first box is free. What do additional boxes cost, so we can show it on the card?

Cart and data

FOR ENGINEERING

  • Which service owns the cart total, so the cart update card and the cart pill always read the same number?

  • Adding a free 4K box takes the total from $50 to $172. Is that test data, or is something else being added?

  • How reliably can the assistant tell which apps a customer pays for from the transcript, and what should it do when it isn’t sure?

  • Can we detect a legacy Flex box on the account before the agent clicks Add to cart?

Paths and states

FOR PRODUCT

  • When a customer says no thanks to a bundle or the 4K box, where should the assistant take the conversation next?

  • What should “Continue discovery” ask once the assistant already has enough for an offer?

  • If generating plans times out or fails, do we retry automatically or show the agent a fallback?

  • After a customer keeps their Flex box, do we still offer premium channels?

Content and policy

FOR CONTENT DESIGN AND LEGAL

  • Can the assistant suggest customers cancel their own Netflix and HBO Max plans, or does that wording need legal review?

  • Who owns the premium channel descriptions?

  • What does “Save cart for later” save, and how does the agent or customer get back to it?

  • Does the customer need to return the Flex box, and should the cart update say how?

What this shows

Designing for an AI assistant is mostly deciding what it should notice, what it should say, and what it should leave to the person. These are the rules I designed to.

It’s a conversation, not a checkout

  • One question or offer per turn, and the assistant waits for the reply

  • Recommendations answer what the customer just said, in their words

  • Drafted responses sound like a person, and the agent can edit them

  • The thread reads back as a conversation, with every action in a sentence

The AI suggests, the agent decides

  • Responses are drafted, never auto-sent

  • Every card has a clear way to decline or skip

  • The assistant only acts on its own for system steps, like generating plans or updating the cart

Show your work

  • Each recommendation says why, in the customer’s own terms

  • Savings, price differences and totals appear before the cart changes

  • The transcript keeps a plain-language record of every action

Look out for the customer

  • Flag subscriptions they’d end up paying for twice

  • Catch equipment that won’t work in the home

  • Never let two totals on one screen disagree

Built to be built

Reusing the hardened offer card and XOEai’s components means streaming adds behavior rather than new UI. The handoff spells out the data each card needs: subscriptions pulled from the transcript, a ranking rule, overlap detection, and one source of truth for the cart total. Every screen also works in dark mode, because everything is linked to Mercury’s theme tokens instead of fixed colors.

What’s next

Next, I’d settle the open pricing and cart questions with the offers team, design the decline and “continue discovery” paths, and bring the discovery-first pattern to equipment and channels. Then I’d test with agents in live chats to see how often the double-billing reminder gets sent and how quickly they get from question to cart.