Visit the site
Visit the siteOrganizations Involved
Community contributions
Droptica maintains the Droopler distribution on Drupal.org, contributes Polish translations for contrib modules, and sponsors DrupalCamp Poland. The team publishes technical Drupal content on the Droptica blog and the Nowoczesny Drupal YouTube channel, including RAG and AI integration patterns from production Drupal projects shared with the wider community.
ProjektMagazin.de is a Drupal publishing platform for project management professionals in German-speaking countries. Founded in 2000, it offers articles, methods, and downloadable templates to a growing professional audience.
As the content library expanded, users spent too much time searching for information already in the CMS. The project added a retrieval-augmented generation chatbot integrated with Drupal: editors keep publishing as before, while readers ask natural-language questions and receive accurate answers with links to source articles. The implementation connects Drupal content to a production RAG chatbot.
About the project
ProjektMagazin.de is a Drupal publishing platform for project management professionals in German-speaking countries. Founded in 2000, it offers articles, methods, and downloadable templates. As the library grew to thousands of resources, users spent 10–15 minutes searching for answers that already existed in the CMS. The goal was to add a retrieval-augmented generation (RAG) chatbot that stays aligned with Drupal content, cites sources, and scales without runaway API costs.
Challenge
The platform needed to:
- Answer natural-language questions across multiple content types and taxonomies.
- Attribute every response to specific Drupal content, with category and author context.
- Keep the chatbot index aligned with the CMS when editors save or unpublish content.
- Control large language model (LLM) API costs as traffic grows.
- Block prompt injection and keep responses within allowed boundaries.
Solutions
Drupal as the content source of truth
Custom JSON endpoints and JSON:API expose articles, taxonomy terms, and custom entities from Drupal. Each indexed item carries taxonomy assignments, author metadata, and custom fields so retrieval can filter precisely and cite sources readers trust. The indexing layer reads the same entity data editors manage in the CMS, not a separate copy.
Real-time synchronization
Entity save hooks and webhooks trigger partial re-indexing when editors publish or update content in Drupal. Only changed entities are processed. A nightly cron job reconciles any missed updates. Users receive answers based on current articles, not stale copies.
Two-stage retrieval
Vector search retrieves roughly 20 candidate document chunks. An LLM then grades each chunk for relevance to the question and passes only the top matches to response generation. Simple conversational prompts route to a lightweight path, skipping retrieval when it is not needed.
Caching and cost control
Frequently asked questions are cached. Cached responses return in under 100 ms without new LLM calls. Combined with question classification, API spend dropped by roughly 95% compared with a naive always-retrieve approach.
Security
Input validation, isolated system prompts, response filtering, and monitoring reduce prompt-injection risk in production.
Chat interface embedded in Drupal
A custom chat UI integrates with the existing Drupal theme, works on desktop and mobile, and collects user feedback on answer accuracy for ongoing tuning.
Result
Search time dropped from 10–15 minutes to seconds for typical questions. Cached queries respond in under 100 ms; new questions still complete in seconds. Editorial changes propagate to the chatbot index within seconds via webhooks. The chatbot runs in production; the client reports high user satisfaction.
Examples of implemented features:
- Natural-language Q&A with links back to source articles and categories.
- Multi-content-type indexing via dedicated Drupal API endpoints.
- Real-time and scheduled sync between Drupal and the vector index (Elasticsearch).
- Response caching for high-volume questions.
- In-chat feedback for continuous improvement.
Why Drupal was chosen
ProjektMagazin.de already relied on Drupal to manage a large, structured knowledge base with rich metadata, editorial workflows, and taxonomy-driven content. Alternatives such as a standalone search appliance or a separate knowledge base would have duplicated content outside the CMS and broken editorial workflows.
Drupal's entity model, JSON APIs, and extensibility made it the natural hub for both public content and the AI layer. Editors keep publishing in familiar tools while the chatbot consumes the same canonical data the site displays. Event hooks and custom endpoints allow real-time synchronization when content changes, without replacing the existing CMS.
Technical Specifications
Drupal version:
Key modules/theme/distribution used:
Thunder provides the publishing workflow ProjektMagazin.de already relies on: structured content types, taxonomy, and editorial tools for thousands of articles and templates. The chatbot project extended this CMS rather than replacing it.
JSON:API and custom JSON endpoints expose Drupal entities with taxonomy, author, and custom field metadata to the retrieval pipeline. This keeps the chatbot aligned with canonical CMS content and enables source attribution in answers.
Elasticsearch (via Drupal integration) powers site search and vector similarity search for the chatbot index, supporting scalable RAG retrieval as the content library grows.
AI (Drupal contrib) aligns the platform with Drupal AI patterns for production integrations alongside the custom RAG pipeline.