AI · iGaming · B2B Platform · 2025 — 2026
Hub AI
Every answer arrives holding its source. Then we taught it to read the page you are standing on.
See it in the Hub88 product documentation ↗
Role
Product Design · Research
Year
2025 — 2026
Outcome
20% → 80% of answers citing a source
Read
11 min read
Hub88 is one of the largest content aggregators in iGaming. Hundreds of game suppliers reach hundreds of operators through three surfaces: HubConnect Operator Zone, HubConnect Supplier Zone, and the Operator Backoffice.
The brief said "add an AI assistant." I spent three weeks trying to disprove it before I drew a single screen.
What the research found was two different problems wearing the same costume. That split became two releases: a cited assistant in September 2025, and a context-aware analyst in March 2026.
My Role
Product Designer, both releases. I ran discovery, built the personas and the query taxonomy, argued the container decision, specified the anatomy of an answer, and designed the context model and insights surface in release two. I took the data-privacy question to Legal myself rather than waiting for it to come back at me.
Team
PRD owner, 1 designer, 2 engineering leads, 1 technical writer
Timeline
10 months, two releases (Jun 2025 — Mar 2026)
Tools
Figma, v0, Jira, Confluence, product analytics
02
Discovery: testing the brief, not decorating it
Support was spending a large share of first-line capacity on questions the documentation already answered. That was the symptom everyone agreed on.
I wanted to know whether the cause was missing content or missing access, because those need completely different projects. If the docs genuinely lacked the answers, this should have been a documentation programme and not a product.

Swipe to read, or tap to enlarge
03
What the support queue was actually saying
I coded sampled tickets onto notes and clustered them by the job behind the question rather than the topic on the surface.
Four of the five clusters were retrieval and phrasing problems. People had the wrong vocabulary, needed a code example instead of prose, or were reading exact technical documentation in a second language. All solvable by an assistant that answers in your words and shows its source.
The fifth cluster was different, and I could not design for it yet.

Swipe to read, or tap to enlarge
Nobody can write a help page that knows what is in your table today. I parked that cluster on the board rather than pretending it was in scope, and it became the entire second release.
04
Two roles, inverse jobs
Operators and suppliers share the same three platforms to do opposite work. I built the profiles separately once I noticed that the same typed sentence needs a different answer depending on who sent it.
The asymmetry mattered more than either profile. Operator questions mostly have documented answers. Supplier questions mostly do not, because they are about live performance rather than platform behaviour.

Swipe to read, or tap to enlarge
05
Where in the work people get stuck
I mapped the full arc of a partner's life on the platform and marked every task where tickets or interviews showed someone reaching for help.
The marks cluster at both ends, and the two ends want opposite things. Onboarding and integration tasks are documented, so the problem is retrieval. Reporting and optimisation tasks are about live numbers, so no amount of writing helps.

Swipe to read, or tap to enlarge
That line through the middle of the map is what let me sequence two releases instead of attempting both at once and shipping neither well.
06
Not all questions are the same shape
I coded incoming questions by their opening intent rather than their subject. Six types emerged, and the split between what a knowledge base can serve and what it cannot is almost perfectly clean.
Factual, procedural, technical and routing questions are answerable from documentation. Diagnostic and analytical questions are not, because they are about the data in front of you.

Swipe to read, or tap to enlarge
This taxonomy became the scope line for release one. It also predicted, before we had a single line of telemetry, exactly where release two would have to go.
“An assistant was one of four options on the wall, not the premise. I wrote each route as an explicit "if we, then" bet so the team could argue with it rather than nod at it.”
08
Explored solutions and assumptions
Better search lost because the audit showed people did not know the words to search for. Rewriting the documentation lost on speed, and because a task-shaped rewrite still has to be read in a second language. Scaling support lost because cost grows with every new partner while expert time goes on lookups.
The assistant won because it closes vocabulary, language and location in one move. I accepted it on one condition.

Swipe to read, or tap to enlarge
Sourcing had to be a hard requirement, not a nice-to-have. On a platform where a wrong answer breaks a live integration, an unsourced answer is worse than a slow one.
“A confident assistant is a liability here. Every claim had to arrive carrying the document it came from, close enough to check in one click, so nobody ever had to take our word for anything.”
10
Three containers, one question: can you still see your data?
My starting hypothesis was that people wanted an immersive, full-width space for the conversation. It is what a chat product would do.
Testing killed it. The moment the answer sat away from the data, trust dropped, and users would not act on a number whose source they could not see. The immersive version was actively worse than the cramped one.

Swipe to read, or tap to enlarge
So: beside, never over. A drawer, opened from the global top bar, the single element all three platforms share.
11
First run, and the languages
Three coach marks introduce the assistant and then get out of the way, with Skip on every step. It shipped with a Beta badge, because it was one, and pretending otherwise costs you the benefit of the doubt the first time it gets something wrong.
The language picker defaults to the browser locale and sits as a flag in the drawer header, applying instantly to interface and conversation together. Asking a language question during onboarding would have added a step for the overwhelming majority of users whose browser already knew the answer.

Swipe to read, or tap to enlarge

Swipe to read, or tap to enlarge
12
The anatomy of an answer
Every response carries three things without exception: a direct answer, the documentation it came from, and a formatted code block when the question is technical. Not "a link where relevant." Always.
What shipped went further than a link at the bottom. Citations attach to individual claims as chips you can click, so you can verify one sentence without auditing the whole reply. In the screen below, the rate limit and the error-handling advice each carry their own source, separately. Code arrives syntax-highlighted with a Copy affordance, because a technical answer you have to retype by hand is a technical answer you do not trust.
And under the input, permanently: "Responses are AI powered and can make mistakes." I fought to keep that visible rather than burying it in a tooltip.

Swipe to read, or tap to enlarge
An assistant that tells you where it might be wrong earns the credit it needs when it is right.
13
The states nobody puts in the deck
Two states decide whether an AI feature gets adopted, and both get skipped.
The empty chat, because a blank input teaches a technical user nothing. I built the opening state around four categories of real work, each carrying a pre-written question in the phrasing a partner would actually use. The starter prompt is the feature tour.
And failure. Answers take about twelve seconds, which is a long time to watch nothing happen, so the waiting state names what is happening and stays interruptible. When Hub AI cannot answer it says so and offers two exits: rephrase, or a human. History persists as a list of real questions, each deletable on its own, because people paste production logs into that field.

Swipe to read, or tap to enlarge

Swipe to read, or tap to enlarge

Swipe to read, or tap to enlarge
14
Documentation questions got answered. Data questions got gaps.
Look at where release one is standing in every screenshot above. The drawer is open on the Country page, beside a full table of turnover by market, answering a question about API authentication out of the documentation. It could not see a single number on the page next to it.
Release one went live on 16 September 2025 across all three platforms, instrumented before launch rather than after.
Because a citation was mandatory, every answer that could not produce one was logged automatically. The gaps then sorted themselves by question type, and the taxonomy I had drawn months earlier came back almost exactly as predicted.
The analytical and diagnostic questions were not only the ones the knowledge base failed. They were the ones people asked most often, over and over, because they were never resolved.

Swipe to read, or tap to enlarge
“Not a retrieval failure. A missing sense. We had built an assistant that had memorised the entire manual and could not see your desk, and users were exporting to Excel to answer a question they were already looking at.”
16
The smallest component carried the whole feature
Open Hub AI on a supported data page and it enters context mode on its own. A chip appears inside the chat input: Current Page: Partner List. Ask "who is the top performer here?" and here now means something.
It lives in the input, not the header, because context is a property of the question you are about to ask. And it has an X: one click strips the context and returns the assistant to knowledge-base mode. No dialog, no settings page. The control is exactly as heavy as the decision.

I argued against making context opt-in per page. Automatic, announced and revocable beats opt-in and undiscovered.
17
Taking the DOM to Legal
An assistant reading a page of partner revenue figures is a data-processing question wearing a UX costume. I took it to Legal and Compliance early, with a position rather than a question, and they signed off on the model.
The position: consent has to be legible and reversible at the moment of use. Not buried in an admin panel, not agreed once at onboarding and never seen again. Consent you cannot see is indistinguishable from no consent at all.
That is the real reason the chip is a chip. A settings toggle would have satisfied the compliance requirement completely and failed its intent, because nobody would ever have looked at it again.
18
A tab, not a dashboard
Page Insights turns the table you are looking at into charts. The alternative on the table was a full-screen dashboard overlay, and I pushed against it for the same reason the modal lost in release one: the moment the analysis covers the table, you cannot cross-check it.
The PRD left open whether insights should be a separate sidebar or a tab in the existing drawer. I closed it as a tab. Chat, History, Page Insight. A second drawer would have made users learn where the assistant lives twice, and implied the analyst and the assistant were different products.

Swipe to read, or tap to enlarge

Swipe to read, or tap to enlarge
They are not. It is one thing that can now see.
19
Four metrics, one glance, nothing moved
Across the top sit the four metrics this audience actually uses: Turnover, GGR, Actives, Average Bet. Click one and everything below re-reads while the page behind stays exactly as you left it. Pivoting your analysis should never cost you your place in the data.
Every chart carries a Live Data badge. Early in release two, insights were generated from the visible DOM, which meant a chart built on page one of a paginated table looked exactly as authoritative as a chart built on everything. In a reporting tool, that is not a rough edge. That is a hazard.

Swipe to read, or tap to enlarge
Engineering went past what the design assumed and extended context beyond the DOM, so insights now cover the full dataset. The badge stayed anyway. The boundary moved; it did not disappear.
20
Insights that name themselves
Charts show you shape. They do not tell you what is worth worrying about.
So below the visuals, Hub AI writes three findings and each one gets a title. Concentrated Revenue. Thin GGR Margin. Then the reasoning behind it.
I insisted on the titles. An untitled paragraph of generated analysis is something you skim. A named finding is something you can disagree with, forward to a colleague, or take into a meeting. Disagreement is the point, which is why there is a chat input directly beneath it.

Swipe to read, or tap to enlarge
21
What we refused to build
The transactions page was excluded. It is the highest-volume table in the platform and it would overrun the context window, producing either a truncated answer that looks complete or a response too slow to use.
The Backoffice dashboard was cut after a conversation with the team lead who owns it, even though it was requested. Wrong shape for table-driven analysis. Insights landed on Reports pages instead.
Agentic actions stayed out of both releases. Hub AI will tell you how to raise a case. It will not raise one for you.
On a platform moving live money, the gap between advising and acting is not a missing feature. It is a liability boundary, and it deserved a decision rather than a roadmap slide.
22
What the instrumentation paid for
The share of answers able to cite the knowledge base went from roughly one in five in the first month to roughly four in five in the most recent stretch. Same assistant, same retrieval.
The design did not close that gap on its own, and I would not claim it did. What the design did was make the gap impossible to ignore. Because a citation was mandatory, every answer without one became a logged gap, which turned an invisible content problem into a queue somebody could work through.
The role split then did the rest. Suppliers hit gaps at roughly three times the operator rate, which proved supplier documentation was far thinner than operator-side. That one comparison redirected the content roadmap faster than any amount of advocacy would have.
Impact
20% → 80%
Share of answers able to cite a knowledge base source, first month to most recent
98.5%
Answer success rate across both operator and supplier roles
3×
Supplier knowledge gaps over operator gaps, the split that redirected the content roadmap
3 platforms
Operator Zone, Supplier Zone and Operator Backoffice, two releases, ten months
24
Reflection
The three weeks I spent trying to disprove the brief bought the whole project. Without the affinity map I would have built one assistant for two different problems, and it would have been mediocre at both. The fifth cluster on that wall, the one I could not design for, is the reason release two was a planned phase rather than a rescue.
The rule I am proudest of is the one that embarrassed us first. Mandating a citation on every answer meant the first month of logs said we were breaking that rule four times out of five. A softer rule would have hidden the number. Writing it as non-negotiable is what turned an invisible problem into a tracked one.
And the most consequential component in release two is the smallest. The context chip is a rounded rectangle with an X in it. Every serious conversation about privacy, trust and scope resolved into that one control.
What I would do differently: I would have drawn the provenance badge into the first sketch of the insights panel rather than adding it once the honesty problem became obvious. When a product hands someone a conclusion, the scope of that conclusion is part of the conclusion.
Result
20% → 80%
of answers able to cite a source first month to most recent.
Release one put a cited, multilingual assistant into the top bar of three platforms. Release two gave it eyes: a revocable page-context chip and an insights tab that turns any supported table into charts you can question.