Namici Chat Interface
Namici Lab — open-source product, MIT licence
A free, open-source inbox for n8n chatbots: when a person needs to step in, they take the conversation over and reply in the same Telegram or WhatsApp thread the customer is already using.

Namici Chat Interface (namici-ci) is a chat inbox for n8n workflows. The bot answers in n8n; when a person needs to step in, they take the conversation over from the inbox and reply in the same chat window the customer is already using — same Telegram thread, same WhatsApp conversation, no second contact. It is free, MIT-licensed, and one deployment per business.
1. The challenge
Building an AI agent in n8n is the easy half. The hard half arrives the first time a customer needs a person: there is nowhere for a colleague to read the conversation, no way for them to answer without asking the customer to message a different number, and nothing stopping the bot from replying over the top of them the moment the customer writes again. Most teams end up with the bot switched off entirely, or with a person copying messages between a phone and a workflow log.
2. One column is the whole handoff
Every conversation carries a single flag, AI or human. n8n posts each incoming message to the inbox, and the reply tells it whether to run the agent at all: while the conversation belongs to a person, the answer is no and the workflow simply stops, so the bot cannot talk over a colleague rather than merely being told not to. Typing a reply takes the conversation over automatically, because leaving it on AI would let the bot answer the customer's next message on top of the operator's, and it stays with the person until somebody deliberately presses Hand back to AI. There is no timer, because a timer is a guess about when a human is finished.
3. Channel-agnostic on purpose
The inbox never talks to Telegram or WhatsApp itself; n8n does. Incoming messages arrive from one inbound workflow per platform, and every reply the operator sends goes to one shared outbound webhook that delivers it on whichever platform the conversation came in on. That means it works with any chat platform an n8n workflow already supports, and adding one is a branch in the workflow rather than a change to the app. Images follow the same path: n8n uploads them through the inbox's own API with the key it already holds, so the workflow never needs database credentials and the inbox stays the only thing that touches the data.
4. Saved before it is sent
An operator's reply is written to the thread first and handed to n8n second. If the workflow is down, the message is still visible in the conversation and the inbox reports it as not delivered, so the operator knows to retry instead of wondering whether it went out twice. The bot's own replies are posted back to the inbox as well, so the operator reads the same thread the customer saw — without that, the inbox would show questions with no answers. The same honesty applies to WhatsApp's 24-hour rule: outside it a free-form reply is saved and shown as undelivered rather than silently lost.
5. An inbox people can actually work in
New messages arrive over Supabase Realtime rather than a poll, so an idle tab makes no requests at all and a new message appears the moment it is saved. The unread total shows in the tab title, and opening a chat clears it rather than waiting for a reply. A bell in the sidebar turns on a two-note chime and a desktop notification when the tab is in the background; it stays quiet for the conversation already open and never fires for the bot's own replies. Long threads open on the newest thirty messages and load older ones as you scroll up, keeping your place instead of jumping to the top.
6. The build
A Next.js app on Supabase, which supplies the Postgres database, staff sign-in, the realtime feed and image storage. n8n talks to it only through four API routes guarded by a shared key, using a server-only service key, while the browser holds nothing but the public key — so row-level security is what stands between a logged-out visitor and the inbox. The chat-media bucket is deliberately public, because Telegram and WhatsApp fetch an image by URL when sending it, and signed links would expire and break every image already in the thread. It deploys to Vercel as-is, or on your own server under PM2 behind nginx, and the code is on GitHub under the MIT licence: use it, change it, run it for clients.
Built with
Next.js
The inbox and the API routes n8n calls
Supabase Postgres
Conversations, messages and the AI/human flag
Supabase Auth
Staff sign-in and the row-level security behind it
Supabase Realtime
Pushes new messages to open inboxes without polling
Supabase Storage
Public bucket for images sent and received
n8n
Runs the AI agent and talks to Telegram and WhatsApp
PM2
Keeps the app running on a self-hosted server
What the build covers
- Staff inbox listing every conversation with its channel, contact, latest message preview and unread count
- Per-conversation AI or human mode, returned to n8n on every incoming message as whether to run the agent
- Take over and Hand back to AI from the open conversation, with no automatic timeout
- Sending a reply switches the conversation to human automatically
- Operator replies delivered through one n8n outbound webhook to whichever platform the chat came from
- Bot replies posted back so the inbox shows the full thread
- Replies saved before delivery, with delivered or not reported back to the operator
- Images in both directions, uploaded through the inbox API so n8n never holds database credentials
- Live updates over Supabase Realtime, with no polling
- Unread total in the tab title, cleared when a chat is opened
- Optional chime and desktop notification for background tabs, remembered per browser
- Threads paged thirty messages at a time as you scroll up, keeping your place
- Staff sign-in with Supabase Auth and row-level security on every table
- Four API routes — inbound, bot message, reply and upload — with a shared key for n8n and a staff session for replies
- SQL migrations that create the tables, the realtime publication and the media bucket
- Deploys to Vercel, or to your own server with a PM2 process file and a documented nginx setup
- Open source under the MIT licence
Got an Idea?
Let's shape it into something people love to use.