July 4, 2026|6 tecnologías

WhatsApp Chatbot + Omnichannel Shared Inbox

Omnichannel WhatsApp platform: an agent answers and qualifies 24/7, and your team takes over from one shared inbox with the full history in view.

WhatsAppEvolution APILLMNext.jsPusherDocker

What an omnichannel inbox for WhatsApp actually is

An omnichannel inbox is a single screen where the sales team sees and answers every conversation the business has, no matter which channel it came through or whether a bot or a person sent the first reply. That is exactly what this project is, built on WhatsApp: a conversational agent that answers and qualifies around the clock, backed by an omnichannel platform where the team picks the conversation back up with the full history in front of them.

The difference from a standalone chatbot is where the conversation ends. A bot answers the first message and then, the moment the question gets serious, leaves it orphaned. Here the message comes in, gets qualified, and lands somewhere a human can follow it — which is where deals actually close.

🧩 The problem: leads go cold between the bot and the rep

The classic gap isn't the missing bot — it's the handoff. The bot answers well, the customer asks something that needs a person, and the conversation either dies or moves to a personal phone nobody else can see. The team loses context, the customer repeats everything, and the lead goes cold while someone digs for what was said.

A shared inbox exists to close that gap: there is no "after the bot", there is one conversation that the agent handles sometimes and a person handles other times.

💬 The conversational agent: answer, qualify, route

The agent replies to every incoming message: it resolves common questions, qualifies the lead with natural questions — not a button menu — and routes it to the right rep based on what they need. It works at any hour, so the business stops losing whoever writes in on a Sunday night.

📥 The shared inbox: where the team takes over

Conversations don't die in the bot: they live in a unified inbox where the team sees the full history, takes over when needed, and logs the outcome. The bot → human handoff is seamless — the customer never notices that who's typing changed.

Because it's multi-tenant, each team sees only its own conversations: isolation is enforced in the database, not in the front end.

🔧 The engineering under the chat

  • Evolution API with WhatsApp self-hosted in Docker on a dedicated VPS: the most important channel in the business doesn't depend on a middleman.
  • Signed webhooks with constant-time cryptographic verification of every inbound event.
  • Distributed rate limiting (GCRA) to protect the platform and, above all, the WhatsApp number itself.
  • Realtime via Pusher: a message shows up in the team's inbox the instant it arrives.
  • Multi-tenant isolation with PostgreSQL RLS plus role-based permissions over what each person can see and do.
  • LLM orchestration on Next.js + Neon/Drizzle, deployed on Vercel.

🔐 Why self-hosted instead of a third-party API

Renting the channel from a closed platform means the conversations, the number, and the customer history all live in someone else's house, under their message caps and their price list. With Evolution API on your own VPS, the data and the number stay on the business's side and the cost doesn't scale with every conversation. The trade-off is owning the infrastructure — which is why the signed webhooks and the rate limiting are there. They aren't decoration; they're what keeps the number healthy.

🎯 Outcome

No lead goes cold from a slow reply or a botched handoff: the agent answers and qualifies, the team only spends time on conversations worth having, and everything is on the record in one place instead of scattered across personal phones.

🔗 Keep reading

Is your WhatsApp overloaded and your team losing conversations? Message me on WhatsApp and let's look at it.

Interested in a similar project?

I can help you create custom solutions that drive your business.

Let's Talk About Your Project