AI is worth adding where it removes a specific, repeated judgement: reading documents, routing requests, answering questions from your own content. We start from the task you want removed and work back to the smallest feature that does it, measured on your own material before rollout. Anything that must be exactly right keeps a person in the loop, and we design for that from the start rather than hoping the model is right.

Who this is for
- Questions that follow patterns. Staff or visitors ask the same things, and the answers already exist somewhere in your published pages and documents.
- Documents that arrive as scans or free text. Forms, invoices or applications that somebody retypes into a system field by field.
- A large library that is hard to search. Reports, publications and guidance where keyword search misses what people mean.
- Editors who draft, tag and translate every day. Work where a first draft saves time, as long as a person approves what is published.
- A product that needs an AI feature. Built into the product rather than bolted on beside it: see software product development.
What you get from an AI feature
- A defined task, with success and failure both measurable
- An evaluation set built from your own material, run before rollout and again whenever the model changes
- The feature inside the system your team already uses, not a separate tool
- Human review where the cost of being wrong is high
- A written record of what data may leave your system, and why
- The prompts, the evaluation set and the configuration, handed over with the source code
The data record is short and specific: each kind of data the feature touches, where it may go, and who agreed.
Sample Data decision record Assistant over staff policies · example.org
| Data | Where it may go | Why | Agreed by |
|---|---|---|---|
| Published policies Public | Hosted model, only the passages a question needs | Already public; the hosted model answers these questions better | Head of communications |
| Staff names and emails Personal | Self-hosted model only | Personal data; the provider agreement does not cover it | Data protection officer |
| Uploaded forms Personal | Not sent to any model; read by the self-hosted extraction step | The applicant terms keep these on your servers | Legal counsel |
| Conversation logs Internal | Kept on your servers, deleted after the review period | Needed to review wrong answers, not for anything else | Service owner |
An engineer reads it and replies within one business day.
How an AI feature is built
The first job is deciding what the model should and should not decide. The engagement is built around checking output, not around generating it: output is measured against your own examples before anyone relies on it.
How an AI feature is built
- Discovery The task, its volume, what a wrong answer costs, and which data may be sent where. You keep the task definition
- Prototype The feature working on a sample of your own documents or content, before you sign, measured against your examples. You keep the first evaluation results
- Fixed price Quoted once the task, the data route and the review step are agreed, with a running-cost estimate beside it. You keep the data decision record
- Build Integration, review screens, citations and a fallback for when the model is slow or unavailable. You keep the repository
- Acceptance The evaluation set passes the agreed threshold on your material before rollout. You keep the evaluation set
- Warranty Defects in the code we wrote are fixed by the team that wrote it. You keep the handover pack
RAG assistants, document extraction and semantic search
- RAG assistants that answer from your own content. A retrieval-augmented chatbot finds the passages in your pages, documents and knowledge entries that bear on a question, answers from those passages only, and cites them so the reader can check.
- Document extraction from scans and PDFs. Structured fields pulled from documents that arrive as scans or free text, with OCR where needed, and a person confirming before anything is committed.
- Semantic search over your Drupal content. Search that matches what somebody meant rather than the words they typed, over content you already publish.
- AI steps in editorial workflows. Drafting, summarising, tagging and translating inside the Drupal editor, with an editor reviewing before publication.
- Classification and routing. Requests sorted to the right queue, where the cost of a wrong route is that somebody moves it back.
Each of these is measured the same way: a set of real questions or documents, the answer each one should get, and a pass or fail against it, run before rollout and again whenever the model or the content changes.
Sample Evaluation set Assistant over staff policies · example.org
| Question | Passage that answers it | Assistant's answer | Result |
|---|---|---|---|
| How much unused leave carries over? Q-014 | Leave policy, section 4.2 | Up to five days, citing section 4.2 | Pass |
| Who signs off travel over budget? Q-022 | Travel policy, section 2.1 | The division director, citing section 2.1 | Pass |
| Can contractors use the IT helpdesk? Q-031 | IT policy, section 1.3: through their sponsor only | Yes, citing the helpdesk home page | Fail |
| What is the daily allowance on a field trip? Q-040 | None in the library | Says it cannot find this and points to the finance team | Pass |
We maintain our own Drupal module for assistants of this kind: it indexes site content and curated knowledge entries, answers through a hosted model, and keeps each conversation for review. Our learning platform EverLMS can assist course creation with AI, and its module is published on drupal.org as an AI-enabled LMS module.
Where AI earns its cost, and where it does not
The distinction is usually about what a wrong answer costs. Where the output is checked before it matters, or roughly right is useful, AI earns its place. Where being confidently wrong is expensive, ordinary code with explicit rules is better, and we say so rather than build the more interesting thing.
| Task | Works well when | Use ordinary code when |
|---|---|---|
| Reading documents | A person confirms the fields before they are saved | The document is a fixed form with fixed positions |
| Answering questions | Answers come from your content, with a citation | The answer decides money, eligibility, or a legal or medical question |
| Search | People describe what they need in their own words | They search by code, reference number or exact title |
| Drafting and translation | An editor reviews before publication | The text must be the same every time |
| Routing | A wrong route costs a click to fix | You must be able to show why each item went where it did |
Your data, and what leaves your system
This is the question procurement asks, so here is the plain version. With a hosted model, content is sent to a third party: faster to build and the strongest quality, but it needs an agreement with that provider and a recorded decision on what may be sent, and we configure it so only the passages a question needs leave. With a self-hosted model, nothing leaves your infrastructure: lower quality for the same money and more infrastructure to run, and the right answer when rules or contracts keep the data in. Mixed is common: a self-hosted model for anything touching personal data, a hosted one for public content.
An assistant over your own content What stays inside your infrastructure, and what crosses it with a hosted model
Your content Pages, documents and knowledge entries in Drupal
Indexed on your own servers
Search index Passages that match the question
Only the passages a question needs
Hosted model Outside your infrastructure, under an agreement
Self-hosted model Inside your infrastructure
Answer with citations
Reader or reviewer Checks the cited passages
Whichever applies, the choice is written down with the reasoning, so that when somebody asks in a year, or during procurement, the answer exists. The feature is also designed to degrade rather than fail: when the model is unavailable, slow or returns something unusable, the rest of the system keeps working.
What AI development costs
The build is quoted like any other feature, from the integration and the interface around it. What differs is the running cost: hosted models are billed by usage, so the cost grows with how much people use the feature. We estimate it from your real volume before building and set a cap, because a feature with an unpredictable bill is a feature somebody switches off. The published rate for AI and automation engineering, and the project sizes for larger builds, are on the pricing page.
Terms that hold
These terms hold across our services; where a service starts differently, its page says how. The full wording is on the warranty page and in why you own the source code.
- A prototype before you sign a build Before a build project is signed, we build a prototype at no charge: a design, a clickable prototype or a working demo on real code, so you decide against something real.
- You receive the system and its source code Custom work is yours from the first commit: the repository, custom modules, theme and deployment configuration. When we build your system on one of our platforms, you receive the whole system and its source code as well.
- A warranty on development work Development projects carry a 1-year warranty by default, up to 3 years. It covers defects in what we built, and applying the security releases of Drupal core and contributed modules while the warranty runs. Maintenance picks up where the warranty leaves off.
- Response targets we publish A first response in 4 hours for critical issues, 1 business day for high priority and 3 business days for normal. Support runs in business hours; cover outside them is an option, priced separately.
Questions we get asked
Where does our data go?
Where you decide, and the decision is written down. A hosted model sends the passages a question needs to a third party under an agreement; a self-hosted model keeps everything inside your infrastructure; mixed setups keep personal data on the self-hosted side.
How do we know the output is reliable?
You measure it before rollout, on your own material rather than a vendor demo, against an evaluation set you keep. Where accuracy cannot be guaranteed, the design keeps a person in the decision.
What happens when the model is wrong?
It will be, so the feature is designed for it: a person checks before anything is committed, answers carry a citation the reader can follow, and the surrounding system keeps working when the model is unavailable or returns nonsense.
Can you add an assistant to our existing Drupal site?
Yes. It is normally added to the site you already run rather than delivered as a separate product: it indexes the content you choose, answers from it, and sits wherever your visitors or staff need it.
Can we change model or provider later?
Yes, and it is designed for. You own the prompts, the evaluation set and the configuration as well as the code, so the feature can move to another model and be measured again before it does.
Is this worth it for us?
Sometimes the answer is no, and a clearer form or a simple rule removes the same work more reliably. The prototype, run on your own material, is where that gets decided.
Do you use AI to write the code as well?
We use AI assistance through our own workflow, and accountability for what ships does not change. How that works is in our FAQ on AI in our work.
Not covered here? Ask us directly.
Describe the taskAn engineer reads it and replies within one business day.
Build
Related services
- Custom Drupal Development
- Enterprise Website Development
- Custom Web Application Development
- Software Product Development
- Drupal Intranet and Portal Development
- Drupal Website Redesign and Theme Rebuild
- Drupal Multisite and Site Families
- Drupal Commerce Development
- Headless and Decoupled Drupal
- Drupal Module Development and Porting
- UI/UX Design for Web Platforms
- Outsource Drupal Development
Tell us the task, not the technology
Describe what somebody currently does by hand and how often. We will say whether a model helps, whether ordinary code would do it better, and what it would cost either way.
An engineer reads it and replies within one business day.