Skip to content

Artificial Intelligence

Chatbot Development

We build chatbots that answer from your real content, know when to escalate to a human, and never pretend to be one — because a confidently-wrong assistant costs you more than no assistant at all.

Overview

A chatbot is one of the easiest things to demo and one of the easiest things to get badly wrong. The demo — a friendly box that answers a scripted question — takes an afternoon. The system that survives a real customer having a real problem at eleven at night is a different piece of engineering entirely, and the gap between the two is where most chatbot projects quietly fail. This is the service that builds the second thing: a conversational assistant that answers from your actual content, does something useful with the answer, and hands off to a person the moment it should.

The work spans a real spectrum, and choosing the right point on it is half the value. At one end sits the rule-based, flow-driven bot: predictable, cheap to run, incapable of surprising you, and equally incapable of handling anything you did not explicitly script. At the other sits the LLM-powered assistant grounded in your own knowledge through retrieval-augmented generation — flexible enough to answer questions you never anticipated in the words the customer actually used, but needing real guardrails so it answers from your content rather than inventing something plausible. Most useful deployments are honestly somewhere in between, and part of what you are paying for is a senior engineer telling you which parts of your problem want which.

We are blunt about the central risk, because it is the one nobody selling chatbots wants to name: a bad chatbot frustrates customers more than having no chatbot at all. The failure modes are specific and predictable — the assistant that answers confidently and wrongly, the dead-end that loops a distressed customer with no way to reach a human, and the bot that pretends to be a person until the pretence collapses. A good assistant is honestly scoped, grounded in real content, measured against real conversations, and always offers a path to a human. That is what we build, and it is why we sometimes talk a client out of the ambitious version.

Who it’s for — Teams drowning in high-volume repetitive queries, needing genuine round-the-clock coverage, or wanting an internal knowledge assistant — who understand that a bad bot is worse than none and want one built honestly.

What you get

  • A designed conversation and scope — what the assistant is for, what it will not attempt, and where it hands a customer to a person — agreed before anyone writes a prompt
  • The right engine for the job: a rule-based flow where predictability matters, an LLM assistant grounded in your content where flexibility does, or a deliberate mix of the two
  • A retrieval layer that grounds the assistant in your own knowledge — documents, help centre, policies, product data — so answers come from your content rather than the model’s imagination
  • Channel integration where your customers actually are — website, WhatsApp, Slack, Microsoft Teams, and voice where it fits — from one assistant rather than five rebuilds
  • Clean, context-carrying handover to human agents, so an escalation arrives with the conversation attached instead of asking the customer to start again
  • Back-end integration so the assistant can do things, not just talk — check an order, book a slot, look up an account — against your real systems with the right guardrails
  • Conversation logging, evaluation against real transcripts, and the monitoring to see where the assistant is helping, where it is failing, and what to fix next

What Chatbot Development does for you

  • Frustration designed out, not in

    The reason chatbots have a bad reputation is that most are built to contain customers rather than help them — no exit, no human, no honesty about their limits. We invert that. The assistant is scoped to what it can genuinely do, admits when it cannot, and offers a person before a customer has to fight for one. A support experience that respects the customer’s time is worth more than a deflection rate that looks good on a slide and quietly annoys everyone.

  • Answers from your content, not the model’s imagination

    A raw language model will answer anything, confidently, whether or not it knows — which is exactly what you do not want speaking for your business. Grounding the assistant in your own documents through retrieval means its answers are drawn from your policies, your help centre and your product data, and it can point to where an answer came from. That is the difference between an assistant that reduces support load and one that generates a new category of complaint.

  • An assistant that does things, not just talks

    The step-change in usefulness comes when the assistant is connected to your back-end systems and can actually act — check an order against your fulfilment system, book an appointment, look up an account, start a return. Connected carefully, with the right guardrails on anything consequential, that turns a chat window from a glorified FAQ into something that resolves the contact rather than describing how the customer could resolve it themselves.

Why teams choose us for Chatbot Development

  • You want an honest assessment of whether a rule-based bot, an LLM assistant or a mix fits your problem — made on your actual conversations and constraints, not on which is more impressive to demo — and you would rather be told the smaller version is the right one than sold the ambitious one that disappoints.
  • You care about the assistant answering from your real content, so it is built on a retrieval layer grounded in your documents and data rather than a bare model left free to improvise on your behalf.
  • You need it wherever your customers are — website, WhatsApp, Slack, Teams, voice — built once as a single assistant with per-channel handling rather than rebuilt five times and drifting apart.
  • You treat escalation and measurement as part of the product, not an afterthought — a clean handover to human agents and honest logging of where the assistant helps and where it fails, so it gets better on evidence rather than on hope.

What Chatbot Development includes

The concrete pieces of work this covers — scoped to what your problem actually needs.

  • Rule-based flows and decision trees

    Where a process is well-defined and predictability matters, a scripted flow is the right tool: a triage path, a structured intake, a booking sequence, a guided troubleshooting tree. It does exactly what you designed and nothing else, which is a feature when you need auditability and no surprises. We build these cleanly and we are honest about the limit — a flow cannot handle a question you did not anticipate, so we use it where the paths are genuinely finite rather than forcing an open-ended problem through a menu.

  • LLM assistants grounded in your knowledge

    For open-ended questions asked in the customer’s own words, we build assistants on a large language model grounded in your content through retrieval-augmented generation. The model handles the language; the retrieval handles the facts. This is what lets an assistant answer a question you never scripted using your real policies and documentation, and it is why grounding, not the model choice, is where most of the engineering effort goes.

  • Retrieval and knowledge grounding

    We build the layer that turns your documents, help centre, policies and product data into something the assistant can retrieve from and answer with: ingesting and chunking the content, indexing it for semantic search, and feeding the relevant passages into the model at answer time. Done well, this is what keeps the assistant tethered to your reality. Done badly, it retrieves the wrong passage and the model confidently builds a wrong answer on top of it — so we treat retrieval quality as a first-class thing to measure and tune.

  • Omnichannel deployment

    One assistant, deployed where your customers already are: an embedded web widget, WhatsApp, Slack and Microsoft Teams for internal or partner use, and voice where a spoken interface genuinely fits. We build the core assistant once and handle the per-channel differences — message formatting, buttons versus plain text, session and identity — so the experience is coherent across channels rather than five separately-drifting bots wearing the same name.

  • Human handover and escalation

    The single most important capability, and the one most bots lack. When the assistant reaches its limit — the customer is frustrated, the question is out of scope, the stakes are high, or they simply ask for a person — it hands over to a human agent cleanly, passing the full conversation so the customer never has to repeat themselves. We integrate with your existing help desk or live-chat tooling so escalation lands where your agents already work, not in a separate system nobody watches.

  • Back-end and systems integration

    To resolve a contact rather than describe it, the assistant needs to reach your systems: order and fulfilment data, a booking or CRM system, account lookups, a returns process. We wire these connections deliberately, with read actions treated differently from actions that change something or move money, and with confirmation and guardrails on anything consequential. This is what separates an assistant that answers questions from one that actually completes the task the customer came to do.

Where it fits

  • Customer support deflection for a high-volume desk

    A support operation where the same repetitive questions — order status, delivery times, returns, opening hours, basic account help — make up a large share of contacts. We build an assistant grounded in the help centre and connected to the order system so it resolves the routine cases end to end, deflecting them from the queue, while escalating anything it cannot handle to a human with the conversation attached. The measure of success is agents freed for the hard cases, not a deflection number that hides frustrated customers.

  • Round-the-clock coverage without a night shift

    A business whose customers need help outside working hours but for whom a permanent overnight team is not justified. The assistant covers the repetitive and well-understood questions at any hour, grounded in real content so its out-of-hours answers are trustworthy, and captures the rest into a clean queue with full context for the team to pick up when they are back — rather than leaving the customer with silence or a wrong answer nobody is awake to correct.

  • An internal knowledge assistant for staff

    An organisation whose own people lose time hunting through wikis, policy PDFs, HR documents and shared drives for answers that exist but are hard to find. We build an assistant grounded in those internal documents, deployed in Slack or Teams where staff already work, that gives straight answers with a pointer to the source document — respecting who is allowed to see what, so it never surfaces a policy or record to someone without the right access.

  • Augmenting a call centre with a first-line assistant

    A contact-centre operation wanting to handle the repetitive contacts before they reach an agent. The assistant sits at the front line on chat or voice, resolving the routine and triaging the rest — gathering the details an agent would otherwise spend the first two minutes collecting — then handing over warm, with the context captured, so the human starts the conversation already informed rather than from a cold open.

How we approach Chatbot Development

We start from the conversations you are already having, not the technology we could deploy. That usually means reading real transcripts or tickets to find where the volume actually is, which questions repeat, and where a customer’s frustration turns from a query into a complaint. From that we scope the assistant honestly: the questions it should handle end to end, the ones it should answer partially and then hand over, and the ones it should not touch at all. An assistant that does three things reliably beats one that attempts thirty and gets a third of them wrong, and we would rather ship the former.

Then we decide, per part of the problem, between a rule-based flow and a grounded LLM assistant — and we are honest that these are different tools with different failure modes. A flow is predictable and auditable but brittle at the edges; an LLM assistant is flexible but needs grounding and guardrails to stop it confabulating. We build the grounding, the escalation path and the measurement as first-class parts of the system from the first slice, because those are precisely the parts a quick demo skips and precisely the parts that decide whether real customers are helped or annoyed.

How the engagement runs

We open by looking at the conversations you already have, because that is where the honest scope lives. Reading real transcripts and tickets tells us which questions repeat, where the volume concentrates, and where customers get frustrated — and that fixes what the assistant should attempt, what it should hand over, and what it should not touch. We decide, per part of the problem, between a rule-based flow and a grounded LLM assistant, and we agree the escalation rules and the measure of success up front. The deliverable of this phase is a scoped, honest design, not a promise that the assistant will handle everything.

From there we build in slices you can try. An early version handles a narrow, well-understood set of questions end to end — grounded in your content, with the human-handover path working from the first slice rather than bolted on later — and we test it against real conversations before widening its scope. We add channels and back-end integrations deliberately, watch the logs for where it helps and where it fails, and tune the retrieval and the guardrails on that evidence. You steer off a running assistant handling real questions, not a demo on a happy path, and the scope grows only as fast as the measured quality justifies.

How we architect it

At the centre of a grounded assistant is the retrieval pipeline. Your content — documents, help centre articles, policies, product data — is ingested, split into sensible chunks, and indexed for semantic search so that at answer time the system can find the passages relevant to what the customer actually asked. Those passages are given to the language model as the grounding for its answer, so it responds from your content rather than from whatever it absorbed in training. The quality of that retrieval step largely determines the quality of the assistant: fetch the wrong passage and a capable model will confidently build a wrong answer on top of it, which is why we treat retrieval as something to measure and tune, not set once and forget.

Around that core sits the integration architecture. A channel layer adapts the one assistant to each surface — web widget, WhatsApp, Slack, Teams, voice — handling the formatting and session differences without forking the logic. An action layer connects to your back-end systems for the things the assistant needs to do, with a clear separation between reading data and taking actions that change something, and confirmation on anything consequential. And the escalation path is architected as a first-class route, not an error case: when the assistant should defer to a human, it hands the full conversation to your existing help-desk or live-chat tooling so the customer is picked up in context. Every conversation is logged so the whole system can be evaluated and improved on real evidence.

Security

The first questions are about data. A grounded assistant reads your content and often your customers’ data, so we are deliberate about what it can retrieve and for whom: an internal knowledge assistant must respect existing access controls and never surface a document or record to someone without the right to see it, and a customer-facing assistant must only ever reach the account and order data belonging to the person it is talking to. We are careful about what conversation data is retained and for how long, about keeping personal data out of places it does not belong, and about the fact that customer messages may be processed by a model provider — which shapes what data is sent, what is redacted, and where the model runs when residency or sensitivity demands it stay on infrastructure you control.

The second concern is specific to LLM assistants: prompt injection. Because these systems follow instructions in natural language, content they read — a message from a user, or even text inside a document they retrieve — can try to hijack their behaviour, coax them past their guardrails, or trick them into revealing something they should not. We defend against this by constraining what the assistant is allowed to do rather than trusting it to refuse, keeping genuinely consequential actions behind confirmation and authorisation checks that live outside the model, treating retrieved content as untrusted input, and never giving the assistant a capability it does not need. The assistant’s instructions are a starting point, not a security boundary; the real boundaries are enforced in the systems around it.

Signs it’s time

  • A large share of your support volume is the same handful of questions asked over and over — order status, opening hours, password resets, returns — and answering them by hand is burning agent time that should go to the hard cases
  • Customers need help outside working hours and the honest options today are an empty inbox until morning or an expensive round-the-clock team
  • Your own staff waste time hunting through wikis, policy documents and shared drives for answers that exist somewhere, and an internal knowledge assistant would give them straight answers grounded in the real documents
  • You already run a call centre or support desk and want to deflect the repetitive contacts to an assistant so your people handle the conversations that genuinely need a human

Our working method

The organising principle is that a bad chatbot is worse than none, so we build against the specific ways they fail. Confidently-wrong answers are countered with grounding and with an assistant that is allowed — and prompted — to say it does not know rather than improvise. Dead-ends are countered by making human handover a first-class path that always exists. Pretending to be human is countered by simply not doing it: the assistant is honest about being an assistant, because the deception only ever buys a moment before it collapses into distrust. And thin scope beating broad-but-unreliable scope is a rule we hold to even when the broader version demos better.

We measure rather than assume. Real conversations are logged and reviewed, so we can see where the assistant genuinely helps, where it hedges, where it fails, and where customers bail out to a human — and we tune the retrieval, the prompts and the guardrails on that evidence rather than on a hunch that it feels better. We are equally willing to give the honest architectural answer: whether your problem wants a predictable rule-based flow, a grounded LLM assistant, or a mix, and where a lighter approach would serve your customers better than the ambitious one. We would rather scope you an assistant that reliably does a few things than bill you for one that attempts everything and annoys the people it was meant to help.

Technologies we build it with

Chosen per problem, not per fashion — this is the stack we most often reach for on this work.

How we deliver

  1. 01

    Discover

    We map the system, the constraints and the business it serves — including the parts nobody documented.

    Architecture brief

  2. 02

    Architect

    Decisions get made, written down and defended before a line of production code exists.

    Decision records

  3. 03

    Build

    Short cycles against working software. You see progress in the product, not in a status deck.

    Shipping increments

  4. 04

    Operate

    Monitoring, incident response and iteration. The system is alive, so the engagement is too.

    Runbooks & SLOs

What changes

  • Repetitive volume deflected

    The questions that repeat all day answered well by the assistant, so your people spend their time on the cases that actually need a person.

  • Grounded, not guessing

    Answers drawn from your real content through retrieval, with the assistant saying it does not know rather than inventing something plausible.

  • Always a human path

    A clean escalation that carries the conversation with it, so no customer is ever trapped in a dead-end with no way to reach a person.

Industries we serve

Domain knowledge changes what gets built. A few of the sectors we know before the first meeting.

How pricing works

  • Fixed-scope build for a well-defined assistant — a support bot over a known set of questions, an internal knowledge assistant over a defined document set, a single-channel deployment — quoted once the scope, the content and the integrations are understood, so you are not paying for ambition nobody has pinned down.
  • Monthly senior engagement for an assistant that grows and needs tending — widening scope, added channels, retrieval and guardrail tuning on real conversation data — where continuity and ongoing measurement matter more than a one-off handover.
  • Focused audit or rescue for an existing chatbot that frustrates customers — a review of where it gives wrong answers, where it dead-ends, how it is grounded and where it should escalate — priced by the assessment, with a plan to fix the worst failures first.

Typical timeline

  1. 01

    Scope, conversations and design

    One to two weeks reading real transcripts, deciding what the assistant should and should not attempt, choosing rule-based versus grounded LLM per part of the problem, and agreeing the escalation rules and the measure of success.

  2. 02

    Grounded assistant on a narrow scope

    Two to three weeks building the retrieval layer over your content and an assistant that handles a well-understood set of questions end to end, with human handover working from the first slice and tested against real conversations.

  3. 03

    Channels, integration and widening scope

    Adding the channels your customers use and the back-end connections that let the assistant act, widening its scope only as fast as the measured quality justifies, with guardrails on anything consequential.

  4. 04

    Measurement, tuning and handover

    Conversation logging and evaluation in place, retrieval and guardrails tuned on real evidence, and a handover so your team can see how the assistant is performing, maintain the content it draws on, and extend it.

Why teams choose us for Chatbot Development

  • Honest about the failure modes

    We name the risk most vendors will not: a bad chatbot frustrates customers more than no chatbot. Everything we build is designed against the specific failures — confident wrong answers, dead-ends, fake humanity — because we have seen what they do to a support experience. If a smaller, reliable assistant is the right answer for your problem, we will tell you so.

  • Grounding and guardrails as engineering, not a prompt

    Keeping an assistant tethered to your real content and safe against prompt injection is real systems work — retrieval you can measure, actions constrained outside the model, escalation as a first-class path. We build those as architecture rather than hoping a cleverly-worded instruction holds, because instructions are a starting point, not a security boundary.

  • We operate what we build

    We run the assistants we ship, so the unglamorous parts — logging, evaluation against real conversations, tuning the retrieval when it drifts, watching where customers bail to a human — are built in from the start. We optimise for an assistant that keeps helping customers over months, not one that looks impressive in a scripted demo on day one.

  • It fits your support operation

    This work sits alongside real customer-service and call-centre delivery, so the assistant is built to complement your people rather than replace them badly. Escalation lands where your agents already work, the assistant handles the repetitive load, and the hard conversations reach a human warm and in context — which is the arrangement customers actually thank you for.

How to engage us

Three ways to work with us on this — chosen to fit the problem, not our margin.

Related services

Part of AI Development. Other work we do alongside this.

Common questions

Will the chatbot make things up and give customers wrong answers?

That is the failure we engineer against hardest, because a confidently-wrong answer is worse than no answer. A bare language model will answer anything whether or not it knows, so we do not deploy one bare. We ground the assistant in your own content through retrieval, so its answers are drawn from your real documents and data, and we build it to say it does not know and offer a human rather than improvise when it lacks grounding. We also measure this on real conversations rather than assuming it is fine — because the only way to know how often an assistant is wrong is to look.

Should we build a rule-based bot or an LLM-powered assistant?

It depends on your problem, and often the answer is a mix. A rule-based flow is predictable, auditable and cheap to run, but it can only handle paths you explicitly scripted — ideal for a booking sequence or a structured triage, useless for an open-ended question asked in the customer’s own words. A grounded LLM assistant is flexible enough to handle questions you never anticipated, at the cost of needing real grounding and guardrails to stop it confabulating. We decide per part of your problem, on your actual conversations, and we will tell you honestly where the simpler tool is the better one.

What happens when the chatbot cannot help — can customers reach a person?

Always. Human handover is the single most important thing we build, and we treat it as a first-class path rather than an error case. When the assistant hits its limit — the question is out of scope, the customer is frustrated, the stakes are high, or they simply ask for a person — it hands over cleanly to a human agent and passes the full conversation, so the customer never has to start again. We integrate that escalation with your existing help desk or live-chat tooling so it lands where your agents already work. A dead-end with no human escape is exactly the failure we refuse to ship.

Can the chatbot actually do things, like check an order or book an appointment?

Yes, and that is where an assistant becomes genuinely useful rather than a talking FAQ. We connect it to your back-end systems — order and fulfilment data, a booking or CRM system, account lookups, a returns process — so it can complete the task the customer came to do. We are deliberate about the difference between reading information and taking an action that changes something or moves money: consequential actions sit behind confirmation and authorisation checks enforced outside the model, so the assistant’s flexibility never becomes a way to do something it should not.

What about security and customer data — and can the bot be tricked?

Both are core to how we build. On data, we are deliberate about what the assistant can retrieve and for whom — an internal assistant respects your existing access controls, and a customer-facing one only ever reaches the data of the person it is talking to — and careful about what conversation data is retained, and about the fact that messages may be processed by a model provider, which shapes what is sent and where the model runs. On being tricked, prompt injection is a real risk with LLM assistants: content they read can try to hijack their behaviour. We defend against it by constraining what the assistant is allowed to do in the systems around it rather than trusting its instructions to hold, and by treating everything it reads as untrusted input.

Let’s talk about Chatbot Development.

Tell us what you’re building or fixing. A senior engineer reads every enquiry and replies within a business day.

Two fields required. We reply to real enquiries — no list, no sequence.