Drupal chatbot module for Drupal 10 and 11 sites
Asyntai delivers a proper Drupal chatbot module — not a pasted embed — built for Drupal 10 and 11. Drop it into /modules/, enable it under Extend, and manage it through the standard Configuration interface where every Drupal admin already works.
Try the Drupal chatbot on your live site
Paste the URL of your Drupal site and watch the bot respond to realistic visitor questions using your content
A Drupal module, with routing, permissions, and config entities
The Asyntai Drupal chatbot is structured the way Drupal expects a module to be structured — an .info.yml declaration, a routing file, a permissions file, a libraries definition, and a config form under Configuration → Web services. That means it plays nicely with your existing site build, Features/Config Split workflows, and staging deployments.
- Supports Drupal 10 and Drupal 11The module declares core_version_requirement for ^10 || ^11, with PHP 8.1 or higher, so it slots into any modern Drupal stack from drupal.org-based builds to fully composerized repos.
- Config form, not theme-header hacksConnection settings live at Configuration → Web services → Asyntai AI Chatbot, managed by a route controller and a permission entry — no editing theme templates, no hand-placing a snippet in page.html.twig.
- One-click connect through the Drupal adminOpen the configure page, click Get started, sign in to Asyntai in the popup, and the module persists the site ID for you. No API key wrangling between Drupal and the Asyntai dashboard.
Grounded in your nodes, views, and uploaded reference material
Drupal sites carry serious, structured content — program pages, policy documents, department directories, long-form articles, multi-step application flows. The Drupal chatbot crawls the published layer of that content and uses it to answer questions literally in the language of your site, not a generic summary a stock model might invent.
- Auto-index your published nodesBasic pages, articles, landing pages, glossary entries, event nodes, custom content types — anything exposed under a public URL is pulled into the chatbot's reference set automatically as the crawler walks your site.
- Upload PDFs, policies, and internal guidesProcurement guidelines, admissions handbooks, employee policy documents, grant instructions, compliance checklists — attach them to the chatbot for coverage of material that never appears on a public node.
- Plain-language instructions for tone and routing"Refer tuition fee questions to the bursar's office." "Link to the standard intake form for any enrolment question." "Never give legal advice — always direct to the compliance contact." Your rules, enforced on every reply.
Install the Drupal chatbot in four steps
The Drupal chatbot follows the same path every contributed module follows — drop it into /modules/, enable under Extend, configure, and it's live. If you've installed a drupal.org module before, nothing here will feel unfamiliar.
- Download the Asyntai module from your dashboard and extract it to /modules/asyntai/ inside your Drupal docroot (or the custom module path your settings.php uses).
- Sign in to your Drupal admin, go to Extend, search for "Asyntai", tick the checkbox, and click Install. Drupal handles dependency resolution automatically.
- Navigate to Configuration → Web services → Asyntai AI Chatbot, click Get started, and sign in to Asyntai in the popup. The connection is saved to your Drupal config storage.
- The Drupal chatbot is now embedded on every page served by your Drupal site. Review chats, train answers, and tune behaviour from asyntai.com/dashboard.
→ /modules/asyntai/ (extract archive)
→ Extend → Asyntai → Install
→ Configuration → Web services → Asyntai AI Chatbot
→ Get started → Sign in (connect popup)
# Drupal chatbot live across the site.
Drupal chatbot — common questions
What Drupal site builders, developers, and digital teams usually ask before rolling this out across a production site.
Which Drupal versions does this chatbot module support?
Drupal 10 and Drupal 11 — the module's .info.yml declares core_version_requirement: ^10 || ^11, and it requires PHP 8.1 or higher. For Drupal 7 or earlier Drupal 8/9 sites that no longer run on supported core, the recommended path is to embed Asyntai as a JavaScript snippet through a block or theme hook instead of the module.
Is the module composer-installable, or do I drop it into /modules/?
Both paths work. Copy the archive into /modules/asyntai/ on builds that manage contrib modules manually, or include it via composer if your project is fully composerized. Its directory layout matches the standard Drupal contrib convention — .info.yml at the root, src/ for PHP classes, config/, js/, and css/ directories alongside — so it behaves like any other module in drush, drupal console, or config export workflows.
Will this work alongside our existing Drupal theme and custom blocks?
Yes. The chatbot mounts a single widget library via asyntai.libraries.yml, attached as a page-bottom asset. It doesn't override theme regions, twig templates, or block placement — so your custom theme, Layout Builder regions, and contributed blocks continue rendering exactly as they did before. Uninstalling the module through Extend cleans the library attachment without leaving orphaned DOM nodes.
How does it fit multilingual Drupal sites running the core translation modules?
The Drupal chatbot is multilingual on top of Drupal's multilingual layer. Your site may use Content Translation, Configuration Translation, and Interface Translation to serve each language, but the chatbot adds 36 languages at the widget level and detects each visitor's language from their first message. A visitor on the French version of your site writing in Arabic gets an Arabic reply; a visitor on the Spanish version writing in Polish gets Polish — the chatbot doesn't require you to translate every source document into every language first.
Can it serve personalized answers for logged-in Drupal users?
Yes — on Standard and Pro plans through the User Context feature. Your Drupal theme or a small custom module can populate a window.Asyntai.userContext object with the current user's attributes (display name, role, organization, membership tier) before the library loads. The chatbot uses that context when answering, so authenticated users see account-aware replies while anonymous visitors see the generic knowledge-based responses.
Does it handle Drupal multi-site installations?
Yes. Each site in a multi-site setup can connect to its own separately trained chatbot, so a ministry running a portfolio of agency sites, or a university running faculty-level sub-sites from one Drupal codebase, can keep each chatbot scoped to its own content. Plan tiers cap active sites at one on Free, two on Starter, three on Standard, and up to ten on Pro — matching most department-level and small-ministry deployments.
What does this cost on a typical Drupal deployment?
Starts free with 100 messages a month for initial testing. The Standard plan runs $39 a month and covers 2,500 messages, which is enough for a mid-size department site or a busy higher-ed faculty portal. Pro sits above that for larger organizations, multi-site programs, and agencies managing chatbot deployments across multiple Drupal client sites.
Where do captured leads and chat transcripts go?
Every conversation appears in your Asyntai dashboard with full transcripts, the detected language, and any contact details the chatbot captured. Optional email notifications deliver the transcript to a mailbox of your choice when a lead is caught — handy for forwarding into Webform submissions, a CRM mail intake, or a shared inbox that your Drupal team already monitors.
Drupal chatbot — how it fits enterprise, public-sector, and higher-ed Drupal
Drupal occupies a specific slice of the web. The platform powers a disproportionate share of government portals, universities, research institutions, health authorities, large non-profits, and complex membership organizations — environments where content governance is strict, editorial workflows involve multiple roles, accessibility compliance is a hard requirement, and the site itself usually carries hundreds or thousands of structured content entries rather than a handful of brochure pages. A chatbot dropped into that environment has to respect the conventions Drupal teams already operate under. It needs to behave like a real module, not a rogue script; it needs to leave the theme and layout alone; it needs to coexist with Content Translation, Workbench, Paragraphs, Layout Builder, and whatever contrib stack the site depends on. Anything less than that gets refused during the first security review.
The Asyntai Drupal chatbot is packaged exactly as a Drupal module is expected to be packaged. The .info.yml file declares the name, the package (Chat), a configure route, and core_version_requirement for Drupal 10 and 11. The src/ directory holds the PHP classes behind the admin form and the controller responsible for the OAuth-style connect flow. A routing file defines the admin path; a permissions file restricts access to users with the appropriate capability; a libraries file attaches the widget CSS and JS as a proper asset library. A single configuration object stores the connected site identifier, which means the connection is exportable through configuration management, comparable in a staging-to-production deployment, and auditable through the same workflows the rest of your Drupal config passes through. Nothing about the module forces you to break the process you already use.
Installation lives inside the flows every Drupal administrator knows. The module folder goes under /modules/asyntai/ — or wherever your settings.php routes custom modules — alongside everything else contrib and custom. From the Extend page, a tick on the Asyntai row and the Install button resolves dependencies and enables the module. After that, Configuration → Web services → Asyntai AI Chatbot exposes the config form with a Get started button, which opens a popup to the Asyntai identity flow. You sign in to an existing Asyntai account or create a free one in the same popup, and the module records the connection into configuration storage. No API keys to paste between tabs; no hidden JavaScript in theme templates to find during the next redesign; no one-off customizations that a contractor will need to document for your successor.
Training the bot begins as soon as the connection is live. Asyntai walks the public URL space of your Drupal site the way a search engine would — home, department landing pages, program nodes, policy pages, article nodes, content type overviews, glossary entries — and builds a reference layer from what the crawler can render. For the subset of content that isn't on the public site (internal procurement guides, draft policy revisions, curriculum specifications that exist only as PDF attachments, HR handbooks, compliance manuals that live behind an intranet), you upload the material directly into the Asyntai dashboard, and the chatbot treats it as authoritative reference alongside the live crawl. Custom instructions, written in plain English rather than as templated prompts, shape how the bot answers: which contact to send users to for appeals, when to link to an intake form, which topics to refuse and defer to human staff, how formal or informal the tone should read.
Where Drupal really earns its reputation is in long, structured content — academic program descriptions, municipal service guides, benefit eligibility pages, research outputs, legal disclosures. Visitors struggle with that content because it's deep, hierarchical, and written for regulators as much as for end users. The chatbot cuts through that by letting someone simply ask: "Am I eligible to apply for this program?" "What's the deadline for the fall intake?" "Which department handles appeals for a denied application?" "Do I need the certification before enrolling or after?" Behind the scenes, the answer is pulled from the exact node the regulator approved, without the visitor needing to locate the page, scroll through it, and interpret the legal language. That reduces the load on generic contact forms and redirects the email volume your staff spends time on — without giving the visitor a templated, hollow response.
Multilingual coverage deserves a separate mention because Drupal's multilingual story is already one of the strongest in the CMS landscape, and the chatbot complements it rather than duplicating it. Your Drupal site may publish content across four, five, or ten languages through Content Translation. The Asyntai widget itself localizes its UI into 36 languages, and the AI detects each visitor's language from the first message they send. That means a Croatian citizen landing on the English version of a ministry portal can type in Croatian and get a Croatian reply, grounded in the English source content, without your content team ever creating a Croatian translation. The reverse works too — a French reader on the Arabic site gets French answers. For international universities, global non-profits, and governments with constitutional multilingual obligations, this fills the long tail of language demand that manual translation budgets can't justify.
Accessibility and compliance matter more on Drupal than on most stacks because of who runs Drupal. The widget ships with keyboard navigation, a visible focus ring, screen-reader-friendly announcements for new messages, and contrast-aware color choices that work across common institutional themes. It doesn't inject modal overlays on page load, doesn't block interaction with the underlying page, and doesn't hijack the keyboard when the user tabs through your site. If your organization is subject to WCAG 2.1 AA, Section 508, or the EU Web Accessibility Directive, the chatbot widget behaves in a way that's defensible under a procurement review — not as a guarantee of certification, but as a component that won't single-handedly fail the audit.
User Context is the feature Drupal teams reach for once the basic rollout works. Many Drupal sites have authenticated areas — a member portal for a professional association, a student section for an institution, a case-tracking page for a municipal service. In those sections, the anonymous chatbot experience isn't enough. You want a logged-in user to be greeted with answers that reflect what the site already knows about them. On Standard and Pro plans, your theme or a small helper module injects a window.Asyntai.userContext object before the widget loads, populated from $account->getDisplayName(), custom profile fields, role attributes, or whatever structured data your Drupal install carries for the current user. The chatbot then treats that data as part of the prompt and answers accordingly. "What's my next renewal date?" "When does my membership expire?" "What's the status of my grant application?" — the bot has the minimum context it needs without any direct access to Drupal's database.
Multi-site is a frequent Drupal pattern and the chatbot handles it naturally. A higher-education institution running a shared Drupal codebase with separate faculty, research institute, and alumni sites can connect each of those sites to its own chatbot with its own training, its own custom instructions, and its own branded widget. A federal agency running a portfolio of program-specific Drupal sites under one code repository can do the same — each program gets a dedicated bot, trained on the narrow content set it owns, capped at its own plan level. Plan tiers scale with deployment size: one site on Free, two on Starter, three on Standard, and up to ten on Pro. Agencies and digital partners running Drupal for multiple clients can consolidate those clients under a Pro plan and still keep each chatbot properly isolated.
Lead capture has a different shape on Drupal than on a consumer e-commerce site. Drupal inquiries tend to be higher-value and lower-volume: a prospective student asking about a doctoral program, a business filing a pre-tender question, a citizen seeking guidance on a benefit appeal, a donor requesting information about a capital campaign. When the bot can't resolve one of those itself, it captures the visitor's email (and any relevant detail the conversation surfaced), stores the full transcript in your Asyntai dashboard, and optionally emails the transcript to a mailbox of your choice. The pattern a lot of Drupal teams converge on is routing that notification into an existing Webform-driven intake or a shared department inbox — the chatbot does the first-pass triage, and the existing Drupal workflow takes over from there.
Insight from the dashboard is the part Drupal editors tend to underestimate until they actually look at it. Every conversation is logged and searchable, tagged by topic, detected language, and frequency of appearance. Editorial teams using this data discover the gaps between how staff write content and how visitors ask about it: the program page that never uses the word "tuition" even though half the questions about it do; the benefit eligibility node that's technically correct but phrased in a way no actual claimant would find through search; the policy update the communications team quietly shipped three weeks ago that turns out to confuse every reader who hits it. Over a quarter or two, those patterns turn into a concrete content-improvement backlog, grounded in real visitor language rather than editor guesswork.
The Drupal organizations that get the most from this chatbot tend to share a profile. Government portals handling high-volume citizen questions on eligibility, deadlines, forms, and contact paths. Universities and colleges running admissions, advising, and student-service information at scale across long content trees. Research institutions fielding repetitive questions from external partners, press, and prospective collaborators. Large non-profits and NGOs where an understaffed communications team is the single bottleneck between a well-funded programme and the people it's trying to reach. Membership associations running gated portals where members want account-aware answers. Public hospitals and health authorities serving patients through structured service directories. In each of these, the shared pattern is large content, long tails of visitor questions, and a human team too small to answer every inquiry personally.
Rolling this out doesn't require a platform redesign or a new editorial workflow. Install the Drupal chatbot module, enable it under Extend, connect it through Configuration, let the crawler index the public site, upload the internal reference material that isn't on public nodes, write a handful of custom instructions that codify how your organization communicates, and flip it live. Your Drupal content editors keep writing and publishing the way they always have. Your site's theme, layout, blocks, views, and translation workflows continue to behave exactly as they did before. The chatbot slots in as a quiet layer on top of all of that, carrying the visitor-facing conversation load your staff was never going to have time for.