Namici Chatbot
Namici Lab — in-house product
A WhatsApp sales assistant that learns how your best salesperson types, answers from your own catalogue, and puts every word it says on a screen you can edit

Namici Chatbot answers a WhatsApp Business number. It knows what the business sells, quotes prices from its own catalogue, sends its photos, recognises when somebody is ready to buy, and hands that conversation to a person at the right moment. There are no flows to draw and no decision tree to maintain: you tell it who it is and what you sell, and it holds the conversation.
The challenge
Most WhatsApp bots sound like bots for a reason that has nothing to do with the model: nobody ever told them how the business actually writes. "Be friendly and professional" produces the same paragraph-shaped assistant every time — it opens with "Thank you for contacting us!", lists all six chairs with bullet points and prices, and answers a question about a sore back with a brochure. Customers on WhatsApp are used to talking to a person who sends two short lines, asks one question at a time and gives an opinion when asked for one, and anything else reads as a machine the moment it replies.
Sounding like the team
Describing a voice in a prompt produces a caricature, so the system measures it instead. You upload your best salesperson's real WhatsApp exports — the ordinary .txt files WhatsApp gives you — and it counts how that person types: median words per reply, how often they answer in fewer than five words, how many messages they send in a burst before waiting, and the longest reply they ever send. Those exact figures go into the model's instructions. It also lists the phrases that person genuinely uses and how often, and a human decides which the bot may copy; a phrase switched off goes in as a banned list, so the bot will not use it even though it appears throughout the examples. The samples teach rhythm and technique and never facts, which is what lets the same system run a furniture shop, a property agency and a dental clinic without touching the code.
Answers come from the catalogue, not the model
Everything the bot states is retrieved from two sources the business edits in the dashboard: a catalogue of what it sells, and a knowledge base of everything else — opening hours, delivery areas, warranty terms, returns. Both are searched by meaning rather than keyword, so "my back hurts by the afternoon" finds the ergonomic chair without anybody having tagged it that way, and the bot decides mid-conversation whether to search the catalogue, search the knowledge base or check that an item code is still available. Getting information in is an upload rather than retyping: a PDF, Word file, Excel workbook or CSV price list is read by a model and proposed as rows, and every row is shown as new, update or error — with the existing price beside the new one — before anything is written. Anything that is not clearly a number, like "price on request", is flagged rather than guessed at, because a hallucinated price is quoted to a customer as fact.
Every word it says is a setting
An editable prompt is table stakes; the harder part is everything nobody thinks of as a prompt. Identity, sales approach, safety rules, reply format, what counts as a customer committing, what a search says when it finds nothing, what the model is told when a customer sends an uncaptioned photo or voice note, and the greeting sent verbatim as the first impression — all of it is on a screen. There are no defaults hiding behind an empty field, because a default is a rule the person running the business cannot read and does not know exists; instead every empty field shows a worked example, and one button fills them all with suggested wording through the normal save path. A simulator runs the exact same pipeline as WhatsApp, a prompt preview shows the real instructions the bot will be given for a given question, and an example tester shows which past exchanges it would draw on, so a strange answer can be traced to the words that caused it.
Where the bot stops
The moment somebody agrees to the next step — a site visit for one business, a fitting for another — the conversation switches to a human and the people you nominate get a push notification on their phones. Every conversation is answered by the bot, by a person, or a mix, and staff can take one over from the dashboard and hand it back, with both written into the conversation's timeline; typing a reply by hand takes it over automatically, because somebody typing almost never wants the bot to answer the next message. Along the way it quietly builds a lead record from the conversation itself — who they are, what they asked about, what they need before they will buy — with fields the business names for itself rather than a form the customer fills in.
Built to be handed to a team
Each WhatsApp number points at its own persona, which decides the voice, the rules and which catalogues and knowledge folders it may reach, so a sales line and a support line can run from one installation and know nothing about each other. A number with no persona says nothing rather than borrowing somebody else's voice, because a bot answering as the wrong business costs trust in a way a missed message does not. Credentials are encrypted with AES-256-GCM and never returned to the browser, incoming webhooks are signature-verified, and uploaded chat exports are stored outside the public folder because they contain customers' names and numbers. Startup checks report what is not ready before the first request, and the deploy refuses to run when something is configured in a way that would fail silently — the failures worth engineering against are the ones that never produce an error.
Try it yourself
Message the demo bot on WhatsApp at +62 878 2169 7205 — it is a furniture shop today, so ask for a recommendation, argue with the price and ask for a photo. Then open the read-only dashboard at demo-chatbot.namicilab.com to read the instructions the bot is actually given, see the catalogue its answers came from, and follow the conversation's timeline. The dashboard account cannot change anything, so nothing you click breaks the demo for the next person.
Built with
AES-256-GCM
Encrypts stored credentials
NestJS
API and message pipeline
PostgreSQL
Database for catalogue, conversations and leads
Open AI
Language model and embeddings
PgVector
Vector search behind retrieval
NextJs
Dashboard
What the build covers
- WhatsApp assistant on a WhatsApp Business number, with the Graph API version pinned per number
- Reply length, message bursts and rhythm measured from uploaded WhatsApp .txt exports and written into the instructions
- Recurring phrases listed with counts, each one allowed or banned by a person
- Past exchanges retrieved by similarity to the question, classified as business, rapport or off-topic, with a few pinned to every reply
- Catalogue with shared columns, free-form attributes, price ranges and verbatim price notes, grouped into catalogues per bot
- Knowledge base organised as folders, with each bot limited to the folders it is given
- Semantic search over catalogue and knowledge, plus an availability check by item code, chosen by the bot mid-conversation
- Per-row indexing status, with one button to index the backlog
- Catalogue import from PDF, Word, Excel or CSV, reviewed row by row as new, update or error before anything is written
- Knowledge upload split into editable entries before indexing, with the split made finer or coarser on screen
- Contacts with bulk import, search and filters
- Every instruction and fallback message editable in the dashboard, with worked examples and one-click suggested wording
- Incoming photos, videos, documents, voice notes and stickers turned into words the model can act on
- Item photos and videos sent with the reply, without resending what the conversation already received
- Automatic handover with push notification when a customer commits, on wording the business defines
- Bot, human and mixed modes per conversation, with takeover, hand-back and direct replies logged on the timeline
- Confidence score on each bot reply
- Leads captured from the conversation, moved through six stages, with custom fields per business
- Message templates written, submitted to Meta, status-checked, reconciled and broadcast from one screen
- Simulator running the real pipeline, a prompt preview and an example tester
- Separate personas per WhatsApp number, silent when none is assigned
- Reports on conversation volume, daily trend and average response time, with every conversation stored and searchable
- Roles down to read-only, per-device sessions, AES-256-GCM credentials and signature-verified webhooks
- Startup checks and a deploy that refuses silent misconfiguration
Got an Idea?
Let's shape it into something people love to use.