Back to blog
Engineering·2026-03-15·7 min read

How we built our conversational AI engine

How we built our conversational AI engine

When we started building chatbots for clients back in 2022, we did what everyone does. We grabbed an off-the-shelf framework, plugged in the OpenAI API, and shipped. It worked, mostly. But the more projects we took on, the more we kept running into the same problems.

The first issue was that every chatbot felt the same. Different clients, different industries, but they all sounded like the same generic assistant. The second issue was performance monitoring. We had no real way to know if the bot was actually helping or just annoying people. And the third issue, and this one was a big deal for some of our clients, was that platforms like WhatsApp were getting really good at detecting automated accounts and banning them.

So around mid-2023 we made the call to build our own thing.

Starting with the orchestration layer

The first thing we built was what we internally call the ConvoEngine. It's basically an abstraction layer that sits between our chatbots and the AI models. Instead of hardcoding which model to use, the engine evaluates each conversation and picks the best model for the situation. Some conversations need the reasoning power of a big model. Others just need a fast, cheap response for a simple FAQ. The engine handles that automatically.

We also built a memory system on top of it. Most chatbot frameworks treat each message as independent. Our system maintains context across conversations, so if a customer talked to the bot last week, the bot remembers what they asked about. This sounds simple but it made a massive difference in how natural the conversations feel.

The stealth problem

This one was tricky and honestly, we went through several iterations before we got it right. Messaging platforms use behavioral analysis to detect bots. They look at typing speed, response time, message patterns, and a bunch of other signals. If your bot responds in 200ms every single time with perfectly formatted messages, it gets flagged pretty quickly.

Our StealthLayer introduces controlled variability into everything the bot does. Typing indicators, realistic pauses between messages, occasional typos that get "corrected," variable response lengths. We even modeled response timing curves based on real human conversation data. The result is that our bots are, as far as the platform can tell, indistinguishable from a human operator.

We've been running this in production for over a year now with zero detections.

Analytics that actually matter

The last piece was the dashboard. Most chatbot analytics are pretty basic, they tell you how many messages were sent and maybe a satisfaction score. We needed more than that.

Our analytics system tracks the full conversation funnel: how did the customer arrive, what did they ask, did the bot successfully answer, did the conversation lead to a sale or an appointment. We also built sentiment tracking that flags conversations where the customer is getting frustrated, so a human can jump in if needed.

For our clients this has been the most valuable part. They can see exactly which questions the bot handles well and which ones need work, and they can measure the actual business impact of the automation.

Where we are now

The platform is live across multiple industries, from healthcare clinics to car dealerships to fashion brands. Each deployment is customized to the specific industry workflows, but they all run on the same core infrastructure. That means improvements we make for one client benefit everyone.

We're still iterating. The AI space moves fast and we're constantly integrating new models, testing new approaches, and refining the stealth algorithms. But the foundation is solid, and the results speak for themselves.

If you're thinking about implementing conversational AI and want something more robust than a basic chatbot, we should talk.

Ready to get started?

Let's talk