Skip to main content
Free WordPress plugin · UK processing

Your website, answering back.

VisitorAI puts an assistant on the front of your site that has actually read it. Visitors ask in plain English and get an answer from your real pages — with a link to where it came from.

When it cannot help, it takes their details instead of losing them. And because it runs through dijitul.ai, every message a customer types is processed in London.

Download free

Version 0.2.0 · WordPress 5.8+ · PHP 7.4+ · needs a dijitul.ai key

On a real site

London

do you deliver to the highlands?

We do — Highlands and Islands deliveries are £8.50 and take 3–5 working days rather than the usual 2. Orders over £75 are still free, but the longer timescale applies.

Delivery & Returns

and if I need it faster than that?

Our next-day service doesn't cover Highland postcodes, so 3 working days is the quickest we can promise. If you have a fixed date to hit, I can pass your details to the team and they'll tell you what's possible — what's the best email for you?

The delivery detail came off the site. The offer to pass it on came because the site does not answer the second question — and that is the enquiry you would otherwise never have heard about.

Why it is safe to put in front of customers

The objection to a chatbot is that it makes things up.

It is the right objection. Most site chatbots are a general-purpose model with your homepage stapled to the prompt, and they will confidently invent a returns policy. VisitorAI is built so that objection does not apply.

Grounded

It answers from your pages, or not at all.

Every reply is built from passages retrieved out of your own content. Where your site is silent, it says so instead of inventing a price, a lead time or an opening hour — the four things a wrong answer costs you a customer over.

Ringfenced

It will not be talked off-topic.

Ask it to write your homework, argue about politics or recommend a competitor and it declines and steers back. Retrieved content and visitor messages are both handed to the model as untrusted data, so a "ignore your instructions" line pasted into the chat — or hidden in a page by a contributor — does not become an instruction.

Bounded

It cannot run up a bill.

A public chat box is an anonymous endpoint spending your allowance. There is a cap per visitor, a cap per conversation, and a whole-site daily ceiling you set. Reach the ceiling and it stops politely rather than quietly carrying on.

It is still a language model, and it can still be wrong. The widget says so under every conversation, the sources are linked so an answer can be checked, and you should read what it has been asked rather than assume. Anything it genuinely cannot answer turns into an enquiry, which is the point.

How it answers

The search happens on your own server.

Most AI chatbots work by shipping your entire website to a third party, converting it into vectors, and keeping that copy so it can be searched later. It works well, and it means a complete duplicate of your content lives on somebody else's infrastructure indefinitely.

VisitorAI indexes your content into your own MySQL database and searches it there. When a visitor asks something, the plugin finds the relevant passages locally and sends only those, with the question. Your site is never uploaded, and there is no copy of it anywhere to leak, subpoena or re-embed.

  1. 1

    You index the site

    Pages are split on their headings, with navigation, menus and footers stripped out so every search does not match every page.

  2. 2

    A visitor asks something

    The plugin searches its local index — including any synonyms you have taught it — and picks the handful of passages that match.

  3. 3

    Those passages go to London

    The question and the matched passages are sent to dijitul.ai and answered by Claude in AWS Europe (London).

  4. 4

    The answer comes back with its sources

    Short, in your tone of voice, with links to the pages it used. If nothing matched, it says so and offers to take their details.

The honest trade-off

Local search matches on words. Vector search matches on meaning, and it is genuinely better at questions phrased in words that appear nowhere on your site.

We took the trade deliberately, and we closed most of the gap rather than pretending it is not there: the plugin stems words so delivery finds deliver, folds the previous question into short follow-ups so “how much is it?” still works, and gives you a synonym box for the vocabulary only you know about.

Word swaps

price   = cost, fee, tariff
delivery = shipping, postage
holiday  = annual leave, time off

Three lines like these fix more wrong answers than any amount of model tuning, because the mismatch is almost always vocabulary rather than reasoning.

Data residency

What your customers type stays in the UK.

A front-end chatbot is the one place on your site where members of the public type whatever they like — order numbers, addresses, health details, complaints about a named member of staff. You are the controller for all of it, and where it goes next is your decision to be able to answer.

Route it to a model in the United States and you have made a restricted transfer, which needs an Article 46 safeguard and — where the vendor relies on standard contractual clauses, as Anthropic does — a transfer risk assessment that is yours to complete.

VisitorAI runs through dijitul.ai, where inference happens in AWS Europe (London) and nowhere else. There is no international transfer to assess, because there is no international transfer. A request that cannot be served in London fails rather than quietly routing somewhere it should not.

Enforced in the plugin, not promised in a policy

  • There is no "use Anthropic directly" option — unlike AdminAI, this plugin has one route out and no way to change it
  • The gateway address is fixed in code, not a settings field somebody can repoint at a US endpoint
  • Only Claude Sonnet 4.6 and Claude Opus 4.6 are selectable, because they are the models that can be invoked in London
  • Test connection reports the residency tier your key is actually on, and warns loudly if it is not UK-only
  • Visitor IP addresses are used for rate limiting and stored only as a salted hash
  • Conversations are discarded after two hours unless they produced an enquiry, and enquiries are deleted on a schedule you set

Hosting in the EEA is also a lawful answer, and we are not going to tell you otherwise — UK → EEA transfers are covered by adequacy. The UK tier matters where your own procurement, sector rules or client contracts ask for a UK answer specifically. dijitul Ltd is not a law firm and this is not legal advice.

What you get

Everything it knows, you put there.

Three sources, in order of how much it should trust them. Notes you write outrank uploaded documents, which outrank the pages it scraped — so correcting a wrong answer takes one paragraph, not a rewrite of the page that caused it.

Trained on your site

Pages, posts and any custom post type you tick. Re-read automatically when you edit them, with a full pass nightly.

Notes you write

Facts that live nowhere on the site — parking, lead times, what you do not do. These outrank your pages when the two disagree.

Uploaded documents

Price lists and FAQs as plain text, Markdown or CSV. A two-column CSV is read as a question-and-answer list.

Enquiry capture

When it cannot answer, or when someone wants a quote, it takes a name and contact details and emails them to you.

Sources under every answer

Replies carry links to the pages they came from, so a visitor can read the detail and you can see where it got it.

Word swaps

Visitors say "price", your site says "fee". One box of synonyms fixes more wrong answers than anything else in the plugin.

Enquiries

A bot that only answers questions is worth less than a search box.

The visitors worth catching are the ones asking something your site does not cover. Today they read two pages, find nothing, and leave — and you never learn they existed.

VisitorAI recognises those moments. When it cannot answer, or when somebody is clearly after a quote or a booking, it offers to take their details, records what they were asking about, and emails it to you with the conversation attached. It asks once, and it never invents a name or an email address it was not given.

Everything lands in an Enquiries screen inside WordPress. Nothing is sent to a CRM you do not own, and there is a hook for pushing it into one you do.

New enquiry — email to you

Name Rachel Okonkwo
Email r.okonkwo@example.co.uk
Page /delivery-and-returns
Reason Could not answer

What they asked about

Needs a Highland delivery for a fixed date next Thursday. Our next-day service does not cover her postcode, so she wants to know what is possible.

Cost control

It is an anonymous endpoint spending your money.

That single fact drives most of how this plugin is built. Four layers, because every one of them is defeatable on its own.

Signed sessions

A signed, short-lived token issued per visitor. WordPress nonces are cached along with the page for logged-out visitors, so they are the wrong tool here.

History on your server

The browser holds a session id and nothing else. It cannot pad the conversation to inflate a bill, or forge a reply that says the product is free.

Per-visitor limits

Messages per hour, messages per conversation, message length, and a minimum gap between messages.

A daily ceiling

One number, for the whole site, that you set. Reach it and the assistant stops until tomorrow. This is the backstop the others fall back to.

The plugin also reads your live allowance from the gateway. Once it is spent, the widget stops rendering altogether — a visitor sees no chat box, rather than a chat box that apologises. Cloudflare Turnstile can be added for a silent check before anyone's first message.

Getting started

Four steps, about ten minutes.

  1. 1

    Download and install it

    Plugins → Add New → Upload Plugin. The plugin is free; it just does nothing yet.

  2. 2

    Paste your key

    VisitorAI → Setup. Press Test connection — it reports your plan, your allowance and the residency tier you are on.

  3. 3

    Index your content

    Tick the post types it should read, then Rebuild the index. A few hundred pages takes under a minute.

  4. 4

    Switch it on

    Set the tone, the opening line and the colour, then tick Show the assistant to visitors.

It refuses to go live until there is a key and something in the knowledge base, so there is no state where a visitor meets an assistant that knows nothing.

Requirements

WordPress
5.8 or later
PHP
7.4 or later
Database
MySQL 5.7+ or MariaDB 10.2+
Key
Any dijitul.ai plan — Solo upwards
WooCommerce
Optional — products can be indexed

Full-text search is used where your database supports it and falls back to a simpler search where it does not. The Setup screen tells you which one you have.

Live demo

It is running on this page.

The assistant in the corner is VisitorAI, trained on this website instead of yours. Same widget, same prompt, same rule that it answers from the site or not at all. Ask it what a plan costs, where your prompts are processed, or how this differs from calling Anthropic directly.

Then try to catch it out. Ask it something this site does not cover, and watch it say so rather than invent an answer — that behaviour is the entire product.

This site is not WordPress, so the demo re-implements the plugin’s server side in Laravel — but it loads the plugin’s own widget, speaks the same protocol, and goes through the same public API on the same UK-only tier a customer would use. The “Powered by dijitul.ai” line at the bottom of the panel is what your visitors will see too — you are looking at the real thing. Lead capture is switched off here; on a real install this is where it would offer to take your details.

Questions

The things people ask before installing it.

Is the plugin really free?

Yes. The plugin is a free download and there is no licence fee, upsell or paid tier inside it. It does nothing without a dijitul.ai API key, because the answers are generated by Claude and that costs money to run. The Solo plan at £29/month is where most single sites start.

Does my whole website get uploaded somewhere?

No. The search that decides which passages are relevant runs inside your own MySQL database. Only the handful of matching passages travel with the visitor's question. Nothing is embedded, vectorised or stored by us, and your content is not used to train anything.

What stops it making things up?

Two things. It is instructed to answer only from the passages it is given and to say so plainly when they do not cover the question. And it is given very little room to improvise — replies are short, and the passages it used are linked underneath so you can check them.

It is still a language model. It can be wrong, the widget says so, and you should read the enquiries it produces rather than assume every conversation went well.

Can someone abuse it to run up my bill?

It is designed on the assumption that they will try. Sessions are signed, conversation history is held on your server rather than in the browser so it cannot be padded, and there are per-visitor hourly limits, a per-conversation message limit and a site-wide daily cap. Cloudflare Turnstile can be switched on for a silent check before a visitor's first message.

The plugin also reads your live allowance from the gateway and hides the widget entirely once it is spent, rather than greeting visitors and then failing in front of them.

Where are visitors' messages processed?

In AWS Europe (London), on Claude Sonnet 4.6 or Claude Opus 4.6. The plugin cannot be pointed anywhere else: the endpoint is fixed in code and only models that can be invoked in London are selectable. Press Test connection in the plugin and it reports the residency tier your key is actually on.

What about PDFs and Word documents?

Not supported, deliberately. Extracting text from a PDF in PHP on shared hosting is unreliable, and on a scanned document it produces silent gibberish — gibberish the assistant would then quote to a customer as fact. Paste the text into a note instead, which takes a minute and works every time.

Will it slow my site down?

The widget is about 20KB of CSS and JavaScript with no framework and no build step, loaded at the end of the page. It makes no network request until a visitor opens it. Indexing runs in the background, and the page-load check for whether to show it is cached.

How is this different from AdminAI?

Same gateway, opposite side of the login. AdminAI is for you: it reads your database, pulls reports and makes changes with your approval. VisitorAI is for the public: it reads only your published content, changes nothing, and never touches your database beyond its own tables.

Put it on one site and read what people ask.

The plugin is free and the questions it cannot answer are worth reading on their own — they are the pages your website is missing.

14 days free · cancel any time · nothing charged today

Questions about a specific compliance requirement? olly@dijitul.uk