The work
SupportNon-profit

Donors asking a tree-planting charity where their money goes get an answer at any hour, in either language.

We4All
Chat with us
we4all.com
How many have been planted there?

I do not have a live exact number for Kenya to hand.

No number invented
Powered by Liberators OS

Asked for a figure it does not hold, it declines. That is the feature.

The situation

How this used to work

We4All plants trees, and not in one place. Greece, Kenya, Uganda, Nigeria, India, the United States, Brazil, Cyprus and more: fifteen countries and counting.

That spread is the whole support problem. Somebody who wants to know whether their donation puts a tree in a burnt Greek hillside or in a Kenyan village is not going to work it out by reading the site end to end. They are going to ask, at whatever hour it occurs to them, in Greek or in English.

The answers already existed. They were just spread across pages, in an organisation whose people are busy planting.

What we built

The system

A chat agent embedded on we4all.com, answering from the organisation's own knowledge, in Greek and in English, all day and all night.

It answers and it does nothing else. No agentic mode, no voice, no file or image generation, no sandbox. All of it is switched off in its configuration, on purpose. The platform can do those things. This deployment is a knowledgeable mouth and nothing more, which is the correct amount of power to hand a stranger on a public web page.

Its knowledge is stacked in a fixed order: the workspace's own briefing first, then the indexed documents, then the website. When two sources disagree, that hierarchy decides, rather than whichever text happened to sound most confident.

It arrives as one script tag and renders inside a shadow DOM, sealed from the host site. A support widget that inherits a stray rule from the page it sits on is how these things quietly break, and one that leaks its styles into a client's site is worse.

How it works

The pipeline, step by step

01 / Embed

One script tag, sealed off

A single script from os.liberators.ai, initialised with the organisation's token. Everything the widget draws lives inside its own shadow root, so the site cannot style it and it cannot style the site. The settings endpoint is gated on the origin: a request that does not come from their domain does not get their configuration.

EmbedOne script tag
<script src="https://os.liberators.ai/embed.js">
NexusChat.init({ token, apiUrl })
Rendered into a shadow rootSealed both ways
Settings, wrong originRejected
A widget that leaks its styles into a client’s site is worse than a broken one

One tag, sealed both ways, and a settings call that checks who is asking.

02 / Load

Two documents and a briefing

The knowledge is their site's own content plus a written knowledge pack, both indexed. On top sits a workspace briefing that carries the things a website buries: UN partner status, ISO 9001 and 14001, Candid Platinum, the countries, the team. That briefing outranks everything else it reads.

Source orderFixed
1
Workspace briefingUN partner, ISO, the countries, the team
Wins
2
Indexed documents2 documents, both ready
Then
3
The websiteWhatever the pages happen to say
Last
Not whichever text sounded most confident

When two sources disagree, the rank decides and not the tone.

03 / Know

Their programmes, not the internet's

Ask about Kenya and it comes back with the Green Planet initiative, the communities of Mulata, Kitui and Kakongo, the fruit-bearing and medicinal species they plant there, and the goal of five hundred thousand trees for 2026. That is not a general fact about tree planting. That is their work, and it is the difference between a knowledge base and a language model with a friendly greeting.

04 / Separate

Two donations, two continents

Plant a Tree in Greece goes to fire-affected and high-priority land. Plant a Tree in the World does not. The agent keeps those apart, because they are the two things a donor is actually choosing between, and getting it wrong sends their money somewhere they did not intend.

05 / Remember

There means Kenya

Asked how many have been planted there, two turns after Kenya was last named, it resolves the pronoun and answers about Kenya. Nobody asks their second question in full sentences. An agent that loses the subject makes the visitor do the work it was put there to do.

06 / Refuse

The instruction, and the proof it holds

Its prompt says never invent statistics. Anyone can write that line. So we pushed it: an exact Kenyan tree count, the one number it would be most tempting to produce. It said it does not have a live exact figure, and stopped. For an organisation whose whole public credibility is a count of trees, an agent that guesses at that count is not a support tool. It is a liability with a launcher button.

07 / Switch

Greek, off the same knowledge

The Greek site gets fluent Greek from the same knowledge base, not a translation layer bolted on the side. It asks qualifying questions back, and it quotes the real numbers: a donation starts at one euro, membership at five a month.

What changed

The result

It is in production and in use: three hundred and eighty eight messages answered through the live embed, the most recent of them today.

Every answer routes back into their site or to their inbox rather than ending in the chat window. The agent is a way through the organisation, not a replacement for it.

The part worth keeping is the part it will not do. Told to produce a number it does not hold, it declines. That is the only behaviour that makes the numbers it does give worth reading, and it is the whole reason a system like this belongs in front of a non-profit's donors at all.

The stack

Where it runs

  • Liberators OS
  • os.liberators.ai
  • GPT-5.1

Embed

  • embed.js v2.5.0
  • shadow DOM
  • token auth
  • origin-gated settings

Knowledge

  • 2 indexed documents
  • workspace briefing
  • Greek + English

Switched off

  • agentic mode
  • voice
  • file and image generation
  • sandbox

Free 30 minute call

Let's find where AI fits in your business

A 30 minute call, free, no commitment. You leave with two or three things worth building, whether or not you work with us.

Free, no commitmentYou own everything we buildNo slide deck