From chatbot to assistant: what we learned at municipalities
Research from early 2026 found that municipal chatbots gave a wrong answer more often than a right one. In the Dutch municipality of Deurne, an AI assistant has replaced the site search since September.
Ask a municipal chatbot what to do with asbestos, and it might tell you that the public works department will collect your Christmas tree again this year. That really happened, in research by Digimonitor (in Dutch).
In early 2026, Digimonitor assessed the answers of 39 municipal chatbots: 10 percent were correct and 64 percent were wrong. In 23 percent, the resident only got a link, and in 3 percent no answer at all.
More and more municipalities want to turn their chatbot into an assistant that actually answers. We've been talking about that with municipalities for a while now. In Deurne, vragen.ai has been live since September and replaces the site search.
Why do municipal chatbots so often give the wrong answer?
A classic chatbot works with scripts: it recognizes a question and picks an answer someone wrote in advance. That works for the questions you anticipated. If a resident phrases the question differently, the chatbot picks the wrong script or only sends a link. That's how the asbestos question ended up at the Christmas tree.
Every new question needs a new script, and every change to your website has to be made in the chatbot as well. So the chatbot is always one step behind the site.
What does the vragen.ai assistant do differently?
The vragen.ai assistant reads your website itself. It finds the passages that match the question, writes an answer and shows the source underneath. Click that source and the page opens with the passage that was used highlighted. That way, anyone can check in one click where the answer comes from.
When you update a page, the assistant uses the new text. So there's no second place to keep up to date. You notice that most with questions nobody had written a script for.
The national direction is the same: municipal assistants are adding generative AI (in Dutch), so they can also answer from a municipality's own information sources.
Aren't fixed answers more reliable?
A fixed answer feels safe, because someone wrote it and checked it. We understand that. But at a municipality, that checked text is already on the website. A fixed answer in the chatbot is then a second version of the same information, which someone has to maintain separately.
In vragen.ai, your web page is the checked text. If an answer needs to be given a certain way, you set that in a rule, for example "never mention an amount" or "for waste questions, point to the collection calendar".
A simple question doesn't need to cost much computing power either. For an everyday question, the assistant answers quickly, without thinking it over at length. You can read how that works in the article on how fast an AI agent is.
What does it cost, and how do you compare fairly?
An open source solution costs money too. The code is free, but hosting, support, maintaining answers and further development aren't. With shared solutions, a municipality pays, for example, a contribution per resident, plus a fixed monthly fee.
So don't compare on the rate alone. These questions help:
- What does it cost per answered question, at your volume?
- How many hours do staff spend writing and checking answers themselves?
- What happens to your costs when other participants leave or join?
- Can you take your instructions and conversations with you if you switch?
Our prices are public. Essential costs 349 euros a month for 5,000 answers (fair use), including the language model and the admin environment. Go over 5,000 for a month and you won't notice a thing. If you're consistently above it, we get in touch first, and Professional may be a better fit: 795 euros a month for 15,000 answers. You can cancel monthly.
Do we choose a national solution or our own assistant?
Working together certainly has value: municipalities share knowledge, costs and experience. But a shared assistant also means shared answers. If something goes wrong in one answer, every participant sees that mistake. Digimonitor saw this too: at municipalities sharing one chatbot, the asbestos answer pointed to the same wrong page everywhere.
With vragen.ai, every municipality has its own assistant, on its own website and with its own knowledge.
We do share, through the lessons. With Deurne, we worked out how the assistant should handle municipal knowledge, and we're turning that into a template. That way the next municipality doesn't start from scratch.
The functionality is shared too. vragen.ai is a SaaS product built on open source technology, and we keep developing it. What we build for one municipality is then ready for every municipality.
Whichever you choose, quality depends mostly on your content. When an answer isn't right, in about 80 percent of cases it comes down to the content. An AI assistant also helps you improve that content. You see what residents ask about and where your website doesn't have the answer. In the analysis, those questions are listed separately under "Missing content".
Deurne writes about it on its own website (in Dutch): it sees what people often ask, where they get stuck and which knowledge is missing.
How sovereign is it?
To us, sovereignty starts with knowledge. Your municipality built the information on its website itself, so the municipality also decides what an assistant does with it.
Language models change fast. With a model from a large provider, the maker decides which versions exist and when a version disappears. That's why we don't tie your knowledge to one model. For each assistant, you choose which model holds the conversation, and you can switch without starting over. If you want no question to leave the country, you choose an open model that runs in the Netherlands. The available models are listed under language models.
The rest stays yours too. Your knowledge base, settings and the questions asked are stored in the Netherlands. Your content stays on your own website, and you can export your instructions and conversation history and take them with you.
The team behind vragen.ai works at SWIS in Leiden. Since 1999, SWIS has been building for socially engaged organizations, such as governments, healthcare institutions and knowledge organizations. At SWIS, we call that sustainable digital change.
vragen.ai is listed in the Common Ground portfolio (in Dutch) and built on open source technology. Internally, we're discussing whether we can make the product itself open source. It's an ambition, but it also has to be feasible.
What if the assistant says something wrong?
Then you see it. Every question and every answer arrives in the admin environment, with the sources the assistant used and scores for reliability, relevance and source relevance.
That's why every project starts with testing. In Deurne, staff tested in two rounds of two weeks, and together with our own test questions that came to over 700 questions. Afterwards, Deurne's web coordinator saw only one real risk: that the municipality's own content is wrong. What the assistant gets wrong is usually wrong on the site too.
Deurne is happy to tell other municipalities about it. The page about the AI search (in Dutch) explains how to reach the team.
You also set what the assistant must never do. In the social domain, for example, it doesn't mention amounts and never says "you're entitled to". A staff member on the phone isn't allowed to either. It points to the page and to a person.
Which sources do you include?
The most important question in the setup is which knowledge the assistant may use, and which it must use.
A municipality often has several websites, such as the main site, a site for care and welfare or a jobs site. A resident doesn't always know which site has the answer, and they shouldn't have to. With one assistant across all those sources, there's one entry point for the answer to their question.
But start small. Deurne deliberately started with two of its own websites: deurne.nl and zorgindeurne.nl. Later, huisvoordesamenleving.nl and the budgets and annual accounts were added. The sources connected today are listed on the page about the AI search (in Dutch).
The council information system deliberately stayed out of the knowledge base, because the municipality has no control over what's in it. Letters to the council are public, but not checked. The assistant does know the site exists and refers to it.
If you do want to use that information, you can through LexAgent. It's included in your subscription and you switch it on yourself. With it, the assistant consults not only your own content but also the law and local regulations. The council information of over 300 municipalities can be added too, always with the source. It stays a separate source: you decide whether and when the assistant uses it.
Pages a municipality deliberately keeps out of Google, the assistant leaves out too. That works as intended.
A tip from practice: check whether sources sit at unusual addresses. In Deurne, the financial documents were on separate URLs, outside the rest of the site.
Where do you put it on the website?
Not only in the bottom-right corner. Another municipality ran a resident test, and testers there said they only try a chat in the corner once clicking and searching get them nowhere. When the assistant was prominently on screen, they started typing right away.
Deurne took the biggest step: the assistant replaces the site search.
Three lessons about the entry point:
- show example questions, so people see they can ask a full question
- show search results only once the answer is there, or people think the results are the answer
- say upfront that it's AI, which has been mandatory since August 2, 2026
How does the assistant sound, and for whom?
Deurne distinguishes three groups: residents with a care or income question, residents in general, and business owners. Still, the municipality chose one tone: informal, plain language at B1 level, no jargon.
At the start, Deurne also set how an answer ends: with a next step and a phone number you can click. Outside office hours, the contact form should be there instead of the number.
One wish from the Deurne team stuck with us: always give information first, and only then ask a follow-up question. Otherwise it feels like a chatbot.
Can the customer contact center use it too?
Yes. In Deurne, staff from the contact center tested along, with the questions they get on the phone.
For the contact center, a separate assistant can make sense. It then uses sources you don't want to show residents, such as a web archive with older information. You set that separation per assistant.
If the assistant can't help, residents shouldn't have to explain their question all over again. That's why we're building a warm handover to a staff member, who sees right away what has already been asked and answered. We expect it to be ready in early 2027. Until then, the assistant ends with a phone number you can click, or the contact form outside office hours.
How much work is it?
Less than you might think. The technical part is a few lines of code on your website.
The time goes into testing and decisions. In Deurne, the kick-off was in April, the test rounds were in June and July and the go/no-go followed in August. The assistant went live in September, after the council had seen it.
After launch, you fine-tune based on the conversations. That takes a few hours a month, not half a full-time role. Who does that and how to go about it is covered in managing your AI assistant.
Live within two weeks, and learning from the questions
It can be faster than in Deurne. At another municipality, the assistant was live within two weeks. Here's how we went about it.
On-site kick-off
Together with the municipality's team, we decided what the assistant may and may not do, how it sounds and which knowledge it uses. Everyone immediately asked their own questions to an assistant with default settings on their own website, so the team saw right away what already worked and what didn't.
Setting up the assistant
That same day, we turned the kick-off decisions into instructions. For example: never promise an amount or an entitlement, and mention help in the neighborhood first, and only then the municipality's own service desk.
Testing
The next morning, the team tested on its own. They asked questions and rated every answer with a thumbs up or down and a comment. A day later, the municipality tested with residents.
Putting the assistant on the website
Meanwhile, we coordinated with the municipality's web developer. It's less work than it sounds:
- the embed script is a few lines of code that loads the assistant you've already set up
- the developer adds the vragen.ai domain to the Content Security Policy (the list of sources the site's browser may load)
- a stylesheet puts the assistant in the site's house style
The municipality chose two phases. First a panel in the bottom-right corner of every page: a small job that can go live quickly. Then a prominent entry point on the homepage, which needs design work and ships with a regular release. The technical details are in the widget documentation.
Reviewing feedback and fine-tuning
We went through the test feedback together and adjusted the assistant. Search results appeared before the answer, for example, so testers thought the results were the answer. Now the answer and sources appear together.
A second lesson: when something wasn't on the site, the assistant kept asking people to rephrase. It's better when it says honestly that the information isn't there, explains what the site does cover and refers to a person. That's where you sharpen the instruction.
Live, and watching along
The go/no-go turned up no blocking issues. The assistant went live, and since then the municipality's web team has been following the conversations. When the team spots something, it adds a rule itself.
To us, that watching along is the most important step, because only the real questions show you how residents use the assistant.
Who stays in control?
We believe every resident deserves a reliable answer, and that the municipality itself decides what the assistant says on its behalf.
Whoever builds the knowledge should also own the conversation. The knowledge on your website is yours, so you decide how the assistant uses it. You don't need us for every change: in the admin environment, you adjust the rules yourself and choose the sources.
For every answer, you see which steps the assistant took, where it searched and which sources it read and cited. So you always know why an answer is the way it is, and where to adjust when it could be better. Deurne writes about this itself on its own website (in Dutch): the municipality follows which steps the assistant takes and how it arrives at an answer.
This way, residents find the information they're looking for. And where it isn't there, you get a signal behind the scenes that a page is missing or a text could be clearer.
Want to see what the assistant does with your own website? Create your demo. It's free and reads your own website, so you can test right away with the questions residents actually ask. Or ask the team in Deurne about their experience, they're happy to talk about it (in Dutch).
Short answers
Why do municipal chatbots give wrong answers?
Most work with scripts written in advance. If a resident asks the question differently than expected, the chatbot picks the wrong script or only sends a link. In early 2026, Digimonitor found 10 percent correct and 64 percent wrong answers across 39 Dutch municipal chatbots.
What's the difference between a chatbot and an AI assistant?
A chatbot picks a pre-written answer. An AI assistant reads the municipality's website itself, writes an answer to the question and shows the source. When the website changes, the answer changes with it.
What does an AI assistant cost for a municipality?
At vragen.ai, the Essential plan costs 349 euros a month for 5,000 answers (fair use), including the language model and admin environment. Compare solutions on the cost per answered question, and count the hours it takes to write and maintain answers.
Is a vragen.ai assistant sovereign?
The knowledge base, settings and conversations are stored in the Netherlands. vragen.ai is model-independent: for each assistant, you choose a model that runs in the Netherlands, in the EU or in the United States. You can export your instructions and conversation history and take them with you.
How long does it take to launch an AI assistant?
The technical part is a few lines of code. The lead time is in testing and decision-making. In Deurne, there were about five months between kick-off and launch, including two test rounds and a go/no-go. At another municipality, the assistant was live within two weeks.
More on this: vragen.ai for municipalities. Residents ask their question in their own words and get an answer from all your sources. Hosted in the Netherlands.