Skip to content
mbmsabithb
All work

At noon

Need Help live for all customers

Sanad and Need Help

AI support agents for noon Business sellers and customers.

Role
Built end to end
Period
Oct – Nov 2026 (third version of an assistant I've built since 2024)
Built with
PythonFastAPIVertex AIMCPZoho DeskNext.jsReact

Sanad is an AI support assistant for sellers on noon Business, noon's B2B marketplace. It answers from help content, looks up the seller's own data, proposes small changes that the seller confirms, and hands off to the support team when it can't help. I built it end to end in eight days, then took the same approach to noon Business customers as Need Help, which is live for all of them.

8 days
first commit to merged code
12
read-only lookups
5
actions, each confirmed by the user
150
automated tests across both agents
Support assistant · illustration
  • Modelcan be wrong
  • Codedeterministic
  • Persondecides

A generic illustration of the pattern with an invented example. Not noon's interface, data or wording.

The design problem

People using a B2B marketplace ask questions that sit between documentation and their own data: why something isn't visible, what a status means, how to change a detail. A generic chatbot guesses. One with write access can do real damage.

The brief I set myself: an assistant that is useful inside the product, cannot step outside what the signed-in user may see or do, and never leaves them at a dead end. When it can't help, it passes the problem to the support team with the context attached.

How one message is handled

The model sits in the middle of a pipeline made of ordinary code, and a person sits at the end.

  • Modelcan be wrong
  • Codedeterministic
  • Persondecides
  1. 1

    Person asks

    From inside the product, on the page where the question comes up.

    Person
  2. 2

    Policy and scope checks

    Is the assistant enabled here, and is the request within the user's own account?

    Code
  3. 3

    Model plans

    Decides which lookups it needs and calls them as tools.

    Model
  4. 4

    Lookups run as the user

    Executed with the user's own permissions, so the assistant can't see more than they can.

    Code
  5. 5

    Grounded answer

    Facts must come from a source a tool returned, and answers show that source.

    Model
  6. 6

    Person confirms

    Any change or support request appears as a card. Nothing happens until the user clicks.

    Person

Principles I applied

Ground it and cite it
Answers are built from help content and the user's own data, and show where each fact came from.
Act as the user, never as a superuser
Lookups and changes go through the user's own permissions, so there is no separate path to get wrong.
Propose, then confirm
A change is shown as a card. Only the user's click makes it happen, and the riskier ones need a deliberate button, not a typed "yes".
No dead ends
When it can't help, it drafts a support request with the conversation attached, for the user to review and send.
Controllable by the team that owns it
The support team can adjust how it behaves and where it is switched on, without waiting for a release.
Tested like any other service
78 automated tests cover its rules, rollout and actions, so changes to the model or the prompts can't quietly break them.

Need Help: the same approach, for customers

Need Help brings the approach to noon Business customers and is live for all of them. It answers before it chats: it works out which questions fit the customer's own order or request, answers with their real details, and only then offers the assistant. It is read-only.

It is backed by an MCP server with 72 tests, alongside the Help Centre and an event-driven ticketing service that syncs to Zoho Desk. I built it in two days on top of Sanad.

Three versions over three years

  1. 2024

    v1: the toolbar chatbot

    A chat widget inside the partner toolbar, so it was available across the partner apps. Answers streamed to the user, with like and dislike feedback.

  2. 2025

    v2: close the loop

    A user who disliked an answer could turn the conversation into a support ticket. Added Arabic input and right-to-left support.

  3. Oct 2026

    v3: Sanad

    Reads the user's own data, proposes changes behind confirm cards, and raises support requests from the chat.

  4. Nov 2026

    Need Help

    The same approach for customers. Live for all noon Business customers.