Skip to content
SelleenaAI

For small shops that sell in the DMs

Answer every message.
Invent nothing.

Selleena reads the messages your shop already gets, answers the ones it can prove from your own catalogue — in Bangla, English or Banglish — and hands the rest to you with the reason written down.

  • No card
  • No email confirmation loop
  • Five products is enough to start
Example thread Inbox · Messenger
Nusrat Jahan Via Messenger · Bangla detected Channel: Messenger
Today
  1. এই ভাসটার দাম কত?

  2. Answering automatically

    এই ভাসটার দাম ৳২,৪০০ — স্টকে ৩টি আছে।

    AI agent built-in rules Delivered

  3. Can you get it engraved before Friday?

  4. Handed to you — no answer was invented. needs a confirmed answer: engraving, delivery date
  5. We can engrave it — Thursday at the latest. Shall I reserve one?

    Rahim a person Delivered

An illustration, not a screenshot. Names, prices and times are sample data — but every label above is one the product really writes.

A shop owner behind the counter of a small homeware shop, reading a message on her phone.

Who it is for

The shop is a Page, a phone and a shelf of stock.

No warehouse, no fulfilment team, no support desk. One person answers everything — between customers, at night, on a phone that is also the till.

That is the queue Selleena works: the six questions a day the owner already knows the answers to, answered without her, so the one question that needs her is the one she sees.

Photograph — illustrative, not a customer of this product.

Channels

Messenger, Instagram, WhatsApp and a website widget — one inbox.

Languages

Bangla script, Banglish and English, detected message by message.

Answers from

Your catalogue, your shop settings and the rules you teach it.

Hands off when

It cannot source a price, a stock level or a delivery date.

The rule

A reply must be sourced. Or handed over. Never guessed.

Most assistants fail by inventing: a price that changed, a delivery date they cannot keep, English to a customer writing Bangla. That failure is what this product is built against.

“The assistant may only state what it can source. Everything else becomes a hand-off to a person, with the reason recorded.”

Sourced or silent

A price comes from a product row. A delivery time comes from a shop setting. When neither has the fact, there is no sentence to give the customer.

Reasons, not shrugs

A hand-off records why: needs a confirmed answer: price. You read the reason, not a transcript you have to re-diagnose.

Labelled by default

Every reply carries its author, the writer that produced it and its delivery state. Nothing claims to be sent that was only stored.

Three handmade ceramic vessels and a folded handwoven textile on a paper-covered table.

What it answers from

Every price it may state started as a row you wrote.

Three vases, three rows: a price, a stock count, a name. That is the whole permission the assistant has. When a row has no price, the answer has no price — and the thread is handed to you instead of a number being guessed at.

Added one at a time, imported from a spreadsheet, or synced from your store's product feed. All three end in the same table, and all three can be corrected in seconds.

Photograph — illustrative.

01 — How it works

A message, from arrival to answer.

Six steps, all of them visible in the inbox afterwards. Nothing here is a black box you have to take on trust.

  1. 1

    A message arrives

    Meta delivers a webhook. The signature is checked before the body is parsed, so a forged request never reaches the parser, and every delivery is stored for audit. A retried message is skipped, not answered twice.

  2. 2

    It is routed and stored

    Messenger, Instagram and WhatsApp funnel through one ingestion path, so a fix applies to every channel. The thread, the message and — if this is someone new — the customer profile are written before any reply exists.

  3. 3

    The language is read

    Bangla script, Banglish and English are recognised per message. Banglish is the one most assistants get wrong; treating it as English is how a bot answers in the wrong language.

  4. 4

    The gate runs

    Is auto-reply on for this shop? Is this thread paused? Is the assistant switched off entirely? A switched-off assistant does not call a provider at all — no request, no cost, no invented reply.

  5. 5

    An answer is drafted

    The intent is classified — price before greeting, so “hi, how much is it?” is answered as a price question. Two interchangeable writers respond: the built-in rule set, or a language model when a key is configured. Both obey the same limits, and the reply says which one wrote it.

  6. 6

    The honesty check, then delivery

    If the answer needs a fact the shop never supplied, the reply is withheld: the thread is flagged and a timeline event records why. Otherwise the reply is stored first, then delivered — so a failed send is still visible and labelled, rather than lost.

You see the outcome of all six steps in one place: the thread, the label on every reply, and the reason whenever a person was needed.

02 — Features

Everything it does, in plain sentences.

Grouped the way the workspace is: the inbox where the assistant works, the catalogue it answers from, the advice it writes, the home screen, the channels, and the account.

Workspace 01

Inbox and the assistant

One thread list for every channel. The assistant answers what it can prove and stops where it cannot.

Four channels, one inbox
Messenger, Instagram, WhatsApp and your website widget arrive in the same list, with unread counts kept per conversation and settled when you open one.
Answers in the customer's language
Bangla script, Banglish and English are detected per message and mirrored by default. A shop can pin one language instead.
Answers from your catalogue
Price and stock questions are answered from the product rows you supplied. Two products match the question? Then no price at all, and a person is asked.
Silence over guessing
A message it cannot read is stored, not answered, and handed over. Gibberish produces a profile but never a reply.
A reason on every hand-off
“needs a confirmed answer: price” is recorded on the conversation, with a timeline event, so you know what to check before you answer.
Take over as a person
Reply in the thread yourself. It is stored as your team — never as the assistant — and the assistant pauses on that thread by default, because two voices on one thread is worse than one.
Every reply is labelled
Author, writer and delivery state appear on the bubble: AI agent · built-in rules or team, then sent, failed, or not sent.
Customer profiles with provenance
Preferences and delivery address first, activity second. What the assistant inferred is marked as inferred; only a person's edit reads “confirmed by your team”.
Teach it a rule
Select any message and write a rule — “always offer gift wrap” — scoped to that customer or that kind of question. With no model configured it stops answering those messages instead of pretending to follow the rule.
An honest typing indicator
Messenger's real typing action where Meta supports it; a bubble labelled “Answering automatically” on your website; nothing faked on Instagram or WhatsApp.

Workspace 02

Products

The catalogue is the only place a price can come from. Getting your products in should not be the hard part.

Three ways in
One at a time in a form, in bulk from CSV or Excel, or by pointing Selleena at your store's product feed. All three end in the same table.
Unknown is a value
A missing price stays “not set”. Missing stock reads “stock not tracked” — which is not the same sentence as “0 in stock”.
A counted import report
Rows created, updated, unchanged and skipped — and each unreadable row named with its reason, instead of a silently wrong number.
Re-imports update
Rows are matched by external id, then SKU, then exact name. A column your file does not mention is never blanked.
Prices in any notation
“1 299,50 kr”, “SEK 299” and “৳2,500” are all read, both decimal conventions included. Anything unreadable becomes a named row error.
Feed sync, on demand
Saving a feed URL fetches nothing. Sync now fetches it, at most once every 20 seconds, and the last outcome stays visible in the page header.
Safe fetching
Public hosts only, redirects refused, a 10-second timeout and a 5 MB ceiling. An optional header credential is encrypted at rest and never returned.

Workspace 03

Marketing

Advice assembled from your own numbers — and every suggestion quotes the number it came from.

Evidence for every suggestion
“3 of the last 9 messages asked about price.” A suggestion with no evidence behind it is dropped before it reaches the page.
Two audiences, one screen
Your page gets advice about itself. Selleena staff get advice about Selleena. A shop account asking for the second gets a labelled refusal, not a hidden tab.
Notes the assistant keeps
Audience, what buyers keep asking for, the constraints holding answers back, the shop's voice. Each note carries its source, confidence and counted evidence.
Delete, don't edit
Assistant notes can be removed but not rewritten, so nothing stops being traceable to the numbers that produced it. Your own note stays yours.
Nothing is published
A brief is a draft. Nothing is posted, scheduled, spent or emailed — and the page says exactly that rather than implying an automation that does not exist.

Workspace 04

Overview

The home screen answers the three questions an owner actually asks, in that order.

Is anything running?
A status band at the top: assistant on, paused, or a count of conversations that need a person.
What did it do?
Handled without you, handed to you, and still waiting — counted from your own rows, never a placeholder figure.
What still needs me?
One list of the conversations a person should open, each with the reason it was handed over.
One switch for the assistant
Pausing is a real write, shown in the rail, the overview and the inbox. While paused nothing calls a provider.

Workspace 05

Channels

Where your customers already write. Added in Settings, with the credential handling spelled out.

Facebook Messenger
The Page you connect during onboarding. Its access token is encrypted at rest and never serialised into a response.
Instagram
Attached through the Page that owns the account, so there is no second consent screen. Disabled until a Page exists, with the reason on the disabled button.
WhatsApp Business
Cloud API number and token are validated against Meta before they are stored, so a typo fails immediately instead of at the first customer.
Website widget
One script tag, Shadow DOM, a per-shop key and a list of allowed origins, throttled per IP. It labels itself “Answered automatically”.
Dry run, clearly labelled
With no Meta credentials nothing pretends to send. The inbox says Dry run and every reply reports not sent.

Workspace 06

Account, settings and safety

Five settings sections, and the security decisions behind them, written where you can read them.

Five sections, saved deliberately
Account, shop details, AI setup, channels, website. A section's save button stays disabled until something in that section actually changed.
A read-only sign-in email
Rendered as output, not as an input, so there is nothing to submit and nothing to spoof.
Sessions that survive the network
Short-lived access tokens with rotating refresh tokens, plus a short grace window, so an interrupted page load does not sign you out.
No account enumeration
A wrong password and an unknown email are indistinguishable, and a reset request answers the same way every time.
Tenancy by 404
Another shop's record is not “forbidden” — it does not exist. Existence is never leaked.
Throttled by scope
Login, signup, password reset and the public widget each carry their own rate limit.
Accessible by default
WCAG 2.2 AA, verified by automated audits at zero violations: visible focus everywhere, keyboard-operable dialogs, reduced motion respected, one h1 per page.

Not a mockup

The home screen, as it renders.

Captured from the running app with the demo workspace loaded — 12 replies sent without the owner, 3 conversations handed over, and the reason recorded beside each one. Nothing in it was retouched for this page.

The Overview screen: a status band reading Running, with a few waiting for you; four counted figures — 12 replies sent without you, 3 conversations the assistant stopped on, 5 customers, 5 products; a digest of what happened while you were away; the three conversations that need a person, each with its reason; and a list headed What it will never do.

03 — Channels

One inbox, wherever the customer wrote.

A conversation is the thread; a customer is the person. They are kept separate because one human may write on Messenger and again on your website.

Channels, how each one connects, and its state in this build
Channel How it connects In this build
Messenger Page OAuth during onboarding; token encrypted at rest, verified webhook. Real path, dry-run boundary — replies are stored and marked not delivered.
Instagram Linked through the Page's business account; no second consent screen. Real path, same dry-run boundary.
WhatsApp Business Cloud API number id and token, validated against Graph before storage. Real path, same dry-run boundary.
Website widget Script tag, per-shop key, allowed origins, throttled per IP. Live. Answers through the same agent, labelled “Answered automatically”.

Every channel writes through one ingestion path, so a fix or a guard applies to all four — not just the one that reported the bug.

04 — Honesty

Where the line is, and how you can tell.

An assistant's credibility comes from what it refuses to do. These are refusals built into the product, not guidelines for it.

It will never

  • Invent a price, a stock level, a delivery date or an order status.
  • Call a stored reply a delivered one.
  • Claim it followed a rule when no model is configured — it stops answering instead.
  • Show an inference as a confirmed fact.
  • Quote a statistic in advice without the count behind it.
  • Post, schedule, spend or email anything on its own.

And it says so when

  • A reply came from the built-in rules rather than a language model.
  • A message was stored but not delivered — dry run, failed, or not sent.
  • A customer note was inferred rather than confirmed by your team.
  • A channel is a dry run rather than a live Page.
  • An advice brief was written by rules because no model key exists.
  • A tab is disabled because your account cannot use it, and why.

This build, stated plainly

Assistant
Answers out of the box with the built-in rule set. A model key is optional, and each reply names its writer.
Meta delivery
Runs dry in this environment: replies are stored, labelled, and reported as not delivered.
Product feeds
Parser, upsert and the private-address guards are tested; no live shop endpoint has been fetched yet.
Typing indicator
Real on Messenger where Meta accepts it, labelled on the website widget, absent elsewhere rather than simulated.

05 — Craft

Quiet on purpose.

The interface is Scandinavian in the plain sense: paper, ink and rules. Type and spacing do the work that boxes and shadows usually do.

Rules, not cards

A hairline where a boundary is real. Sections are separated by a single line, not a rounded rectangle with a shadow under it.

One accent

Deep violet, kept for actions and focus. Everything else is warm paper, ink and two greys.

Nothing decorative

No gradients, no glass, no emoji standing in for an icon, no shadow outside the things that actually float.

Measured, not claimed

Ink sits at 16.8:1 and secondary text at 7.2:1 on the paper. Four breakpoints are checked for overflow rather than eyeballed.

Paper #fafaf7
Ink #191917
Accent #4b3f72
Rule #e5e4dc

Semantic HTML, compiled Tailwind, self-hosted Inter and a Bengali subset, inline SVG icons. No framework at runtime and no third-party font request.

06 — Questions

The things people ask first.

If something is missing, the in-product text is usually the more precise answer — it is written next to the control it describes.

Do I need a Facebook Page to start?

Yes. The assistant answers where your customers already write, and the Page is what Selleena connects to. The connection is a gate on the server, not a checkbox: onboarding cannot be completed without it. Instagram and WhatsApp are added later in Settings, and the website widget can run on your own site.

What happens when it does not know the answer?

It stops. The conversation is flagged for a person, the reason is recorded, and the customer is told a human will confirm rather than being given a guess. That holds for prices, stock, delivery dates and anything the message did not make clear.

Does it really answer in Bangla?

Bangla script, Banglish and English. The language is detected per message and mirrored by default, and a shop can pin one language instead. Bangla, Banglish and English are handled by the same reply gate, so a language change never lowers the standard for what may be stated.

Do I need an AI provider or an API key?

No. The built-in rule set composes answers from your catalogue and settings with no key at all. If you configure one, a language model writes the reply under the same constraints — and every reply states which of the two produced it, so nothing ever claims a model wrote text the rules wrote.

Can a person take over a conversation?

Yes, from the thread itself. Your reply is stored as your team, never as the assistant, the hand-off is cleared, and the assistant pauses on that thread by default so two voices are not answering the same customer at once.

Who can read my shop's conversations?

Only your workspace. Page tokens are encrypted at rest and never returned by any endpoint, and a request for another shop's record answers 404 rather than confirming that it exists.

Does it post or send anything on my behalf?

It replies to customers who wrote to you, and nothing else. Marketing briefs are drafts: nothing is posted, scheduled, spent or emailed, and the page says so in its own words.

Start here

Connect one Page. Answer tonight.

Sign up, describe your shop, add five products. Selleena starts with the questions you answer every day — and tells you when a person is needed instead.

No card. Four steps to a connected shop.