Hashlogics
AI chatbot development

AI chatbots and voice assistants

A bot your customers do not have to escape from

You get an assistant that answers from your own content and knows what it does not know. On the cases that matter, it passes the caller to a person. Measured before launch, watched after.

The standard

Every chatbot demo works, because the person demonstrating it asks the questions it can answer. Real users do not. They arrive angry and halfway through a problem, using words nobody on your team would use. Then they ask the one thing the bot was never given. What separates a useful assistant from the kind customers learn to bypass is the handover. Knowing which questions it must refuse, and passing those to a human without making the customer start again. We design that first.

The problem

Customers do not hate bots. They hate dead ends

Ask people why they hate chatbots and nobody says the writing was poor. They say it would not let them through. The loop, the same three suggested replies, the phone menu with no zero.

That is a design failure, not a model failure. A bot deflecting every request is scored on deflection, so it deflects the ones it should not. Meanwhile the questions it answers confidently and wrongly never appear in any report, because a wrong answer that nobody challenges looks exactly like a success.

So we build two things before the conversation. A list of what the assistant must never answer alone, agreed with the people who own the risk. And a handover that carries the whole conversation across, so your customer never starts again from the top.

The boundary

Where this sits next to our other AI work

A chatbot is the interface. What sits behind it decides which of our services you actually need, and the honest answer is usually more than one.

If the assistant answers from a document library, the engineering underneath is retrieval, and RAG development is the page describing how we build it. If the assistant books, cancels, refunds or updates a record, it is an agent, and the safety work is a different size. If you want drafting or summarising with no conversation at all, that is generative AI development.

  • 01Chat interface plus your documents: this page, built on retrieval.
  • 02Chat interface plus permission to change your systems: read the agents page first.
  • 03No conversation, just output: generative AI development.
The work

Assistants we have shipped

Named systems, running for named clients.

A voice agent answering the shop phone

ZhoopZhoop's agents take live customer calls over Twilio and book work while every technician is under a car. Deepgram handles speech and turn-taking, and staff see every transcript across all branches.

An assistant that asks before it searches

Military Cruise Deals lets a traveller describe the trip in plain words. The module asks a few follow-up questions, then turns the request into a validated search across ships, ports and dates.

A messaging assistant customers already have installed

ZhoopZhoop also runs on the Twilio WhatsApp Business API, so a customer asks about their repair in the app they use anyway. Outbound agents call suppliers to collect and compare parts quotes.

An assistant that waits for a yes

Trading CoPilot sends each alert to the trader over Telegram and waits for approval before executing anything through the broker connection. The bot proposes. A person decides.

What happens to one messageLive
  1. UnderstandWhat did they actually ask for?
  2. Check scopeIs this on the refuse list? Hand over now.
  3. RetrievePull from your content, not the model's memory.
  4. Answer or admitCite the source, or say it does not know.
  5. Hand overWhole conversation carried across to a person.
  6. ScoreEvery run graded against your cases.

The second station is the one most builds skip. Checking scope before retrieval is what stops an assistant improvising an answer to a question it was never meant to touch.

The hardest part

Writing the list of things it must never answer

This is a business conversation, not a technical one, and it is where the risk actually lives. Someone has to decide what the assistant does with a medical symptom, a legal threat, a safety report, or a request to reverse a charge.

We run that session with the people who carry the consequence: support leads, legal, whoever signs off refunds. The output is a written list. It goes into the build as a rule that fires before retrieval, so the assistant hands over rather than reasoning its way to an answer.

  • Emergencies and safety reports route to a person immediately, every time.
  • The assistant may say it does not know. Most demos have no way to express that.
  • Anything irreversible waits for approval, which is a design decision rather than a prompt.
  • Transcripts are kept and reviewable, so a complaint can be checked rather than argued about.
The stack

What we build on

Conversation

Claude APIOpenAI Chat CompletionsDeepgram Voice AgentFunction calling

Channels

Twilio Programmable VoiceTwilio WhatsApp Business APITelegram BotWeb chatSMS

Build

PythonFastAPILangGraphTypeScriptReactWebSocketsPostgreSQLRedis

Run

AWSDockerSentryGitLab CI
A client, in their own words

I am extremely happy with the results and would highly recommend Hashlogics to anyone.

Daniel Khin · CEO, PremiumAudit.io

The usual chatbot project against ours

The difference shows on the calls nobody rehearsed.

CriterionThe usual approachHow we build
What it is measured onDeflection rate. Fewer tickets looks like success.Correct answers plus clean handovers, scored on graded cases.
Questions outside its scopeIt answers anyway, confidently.A refuse list fires first and routes to a person.
Reaching a humanBuried, or absent by design.One step, with the conversation carried across.
Where answers come fromThe model's memory, which cannot be checked.Your content, cited, with room to say it does not know.
Wrong answersInvisible. Nobody logs a confident mistake.Transcripts kept, runs replayable, cases re-scored on every change.
After launchThe contract ends at go-live.An agreed service level, or a documented handover to your team.
Questions, answered
01How do we stop it giving a customer the wrong answer?

You limit what it may answer, and you ground the rest in your own content with the source attached. The refuse list is agreed with your team before the build starts, and it fires before the model reasons about anything. For the questions it does handle, a reviewer can check the cited passage in seconds rather than trusting the wording.

02Will it just annoy customers who want a person?

Only if you hide the exit, and we do not build it that way. Reaching a human is one step, and the transcript travels with the customer so nobody repeats themselves. An assistant that hands over quickly on the hard cases gets more trust on the easy ones.

03Can it answer the phone as well as a chat window?

Yes. ZhoopZhoop runs voice agents over Twilio with Deepgram handling speech and turn-taking, alongside a WhatsApp assistant on the same system. Voice is harder than chat because interruptions and silence both mean something, and the handover rules matter more when somebody is waiting on the line.

04How do you measure whether it is actually good?

Your team writes the answers they would accept for a set of real conversations, including the awkward ones. Every release is scored against that set before it ships, and the same set runs again whenever the model changes. Deflection rate on its own is the metric that hides the failures.

05What about emergency or safety calls?

Those go straight to a person, and the rule is written before anything is built. An assistant that attempts a safety question is a liability whatever its accuracy, because the cost of the rare wrong answer is not recoverable. We treat that as a design constraint rather than a setting.

06Can it use the tools we already run?

Usually, and the limit is your systems rather than the model. We have shipped assistants wired to Twilio, WhatsApp, Telegram, calendars and internal databases. Where a system has a weak API, the assistant proposes the change and a person applies it, which is slower and considerably safer.

07We are a small business. Is this worth it below enterprise scale?

A single high-volume conversation is often where it pays best, and a multi-branch repair shop is not an enterprise. ZhoopZhoop started with one problem: calls going unanswered while everyone was working. Narrow scope with one clear job beats a general assistant that does everything adequately.

08Who owns the assistant and its transcripts?

You do. Source code, prompts, graded cases, transcripts and infrastructure accounts are yours in writing before work starts. Scoping conversations cost nothing, and where we have to go inside an existing codebase to answer honestly, a paid two-week diagnostic comes first.

Verified
Start

Anyone can ship the agent. We answer the pager.

We build AI agents and automation, then stay on under an agreed service level. A senior engineer reads every brief, and your call gets scheduled within 24 hours.

What happens next

  1. 01

    You send a brief or book a call

    Two minutes, whichever you prefer.

  2. 02

    A senior engineer replies within 24 hours

    Not a sales rep.

  3. 03

    Honest scoping, in writing

    And if we’re not the right fit, we say so.

Abdul Basit, CEO of Hashlogics

“I started Hashlogics because too many teams ship a demo, get paid, and disappear. We build to a standard we’d run ourselves — and we stay to keep it running.”

Abdul Basit · CEO · a direct line

Not ready to talk? Take the checklist.

12 questions to ask any AI agency before you sign. They separate a demo shop from a team that ships to production.

Get the checklist

Free · no newsletter