Lagoona · for your CTO
What the agents can touch, where your data goes, and who can see it.
The technical facts behind Lagoona's AI agents, Coral and Insights, checked against the code. Including the things we don't have yet. For Reef, see Reef for CTOs.
- EU hostedEvery Lagoona service runs in one EU region, in the Netherlands.
- Encrypted at restBookings and Coral documents are encrypted with AES-256-GCM.
- Facts, not transcriptsDashboards store what happened ("booked, 4 people"), not what was said.
- Zero packagesNo third-party code libraries in Lagoona's services, so there's no supply chain to compromise.
1 · The parts
Four small services, each with one job
Each service is a single Node.js app with no third-party packages. Each has its own storage, and none can read another's.
| Part | What it does | Where it runs | What it keeps |
|---|---|---|---|
| Website | The public site and live demos | Netlify, as static pages | Nothing. No tracking cookies, no adverts |
| Lagoona assistant | The agents, Rock, Coral, Horizon, Manta, accounts and roles | Railway, EU West (Netherlands) | Its own storage volume: accounts, bookings, Coral documents, approved answers |
| Insights | Dashboards for every level, and the Exec view | Railway, EU West (Netherlands) | Facts only, never conversations |
| Voice | The optional Talk button in the browser | Railway, EU West (Netherlands) | Nothing. Calls aren't recorded: speech becomes text to answer, then it's discarded |
Over 750 automated checks run before every update: 661 in the assistant and 99 in Insights. Reef has its own 132.
2 · What the agents can do
They work on top of your tools, not inside them
An agent can only reach what the business connects. It never gets a login to anything else.
Always
- Says it's an AI, whatever the brand or white label
- Answers only from the business's own information
- Waits for an owner's OK before anything is sent, ordered or changed (Manta)
- Uses a new learned answer only after an owner approves it
- Checks real availability before confirming a booking, once connected to the diary or stock
Never
- Pretends to be a person
- Gets access to systems the business hasn't connected
- Shares one business's data with another
- Stores chat transcripts in the dashboards
- Records voice calls
3 · Coral
Invoices and contracts: the part a CTO asks about first
Coral reads supplier invoices and contracts and flags price rises, possible double charges and renewals. Here is exactly how it handles them.
| Question | Answer |
|---|---|
| Who can open it? | Only the business's own managers and execs. Never staff. Never the IT provider (MSP), whatever other access the business has given them. |
| How is it stored? | Encrypted with AES-256-GCM. The key is kept only in the host's secret settings, never on the storage itself. If the key is missing, Coral locks and refuses to save rather than overwrite anything. |
| What does the AI see? | Each document once, when it's added, to pull out the facts: supplier, item, price, dates and notice periods. Every finding is then worked out with plain arithmetic from those facts, not guessed by the AI. When a manager asks a question or reads the monthly brief, the AI sees only the findings and the few document passages that match, and answers from those. |
| Can we check its findings? | Yes. Every finding links to the exact document and line it came from. |
| Are questions kept? | No. Questions and answers aren't stored, only a monthly count. |
| Limits | 5 MB or about 60 pages per file. Remove any document at any time. |
| Who switches it on? | Lagoona, or the owner of the business's MSP account. The client's own staff can't switch it on. |
| Is it financial or legal advice? | No. It flags and explains; it isn't an accountant or a lawyer. |
4 · Who sees what
Each person sees only their own part
Access is given per partner, client, group or location, and flows down, never up or sideways.
| Role | Can |
|---|---|
| Viewer | Look at dashboards and settings for their part |
| Manager | Also change business info, approve answers and run their part |
| Owner | Also invite and remove people, and manage white label |
| Exec | An owner, or a manager an owner ticks as Exec, sees the whole company in Coral and the Exec view |
| The MSP | Runs the accounts it manages, but sees a client's data only if that client gives it access. Never Coral |
Every change is recorded in a change log (who, what, when) that can't be edited from any page.
5 · Sign-in
How accounts are protected
| Control | How it works |
|---|---|
| Passwords | Salted scrypt. Never stored as text |
| Sessions and links | Random tokens, stored only as SHA-256 hashes. Invitations last 7 days, password resets 1 hour |
| Cookies | HttpOnly, Secure, SameSite=Strict |
| Wrong passwords | 8 tries, then that address waits 15 minutes |
| Opening Insights and Reef | A signed pass (Ed25519) for one person, one place and one role, valid for 60 seconds and usable once |
| Removing someone | They're signed out of Lagoona, Insights and every connected Reef straight away |
6 · What's stored
What we keep, and for how long
| Data | How it's kept |
|---|---|
| Bookings | Encrypted. Customer details removed 90 days after the booking. A person's data can be deleted on request |
| Coral documents | Encrypted, until the business removes them |
| Horizon figures | Encrypted daily totals (sales, staff hours, stock counts, bookings), kept about 13 months. Staff names in a rota are counted, never stored. An owner can delete a location's figures at any time |
| Manta emails | Encrypted. Only emails the business forwards to its Manta address. Deleted 90 days after they're done. Nothing is sent without a person's approval |
| Dashboards | Facts only. Unanswered questions are kept short, with emails, numbers and names stripped out first |
| Accounts | Names, emails, roles. Passwords only as salted hashes |
| Mistakes | Deleted answers go to a 30-day recycle bin. A daily snapshot of all data is kept for 14 days, and any one client can be restored on its own |
| Voice | Nothing. Not recorded |
7 · Outside services
Every outside company involved
| Company | Role | Needed? |
|---|---|---|
| Railway | Hosts the Lagoona services and their storage, in the EU (Netherlands) | Yes |
| Netlify | Serves the public website | Yes (website only) |
| Anthropic | The AI model behind the agents, through its commercial API. Under Anthropic's commercial terms, API data isn't used to train its models by default | Yes |
| Resend | Sends emails (invitations, password resets, booking confirmations, approved Manta replies), and receives the emails forwarded to Manta | Yes |
| Deepgram, ElevenLabs | Turn speech into text and text into speech for the Talk button | Only with voice |
| Google Calendar | Reads busy times so bookings never clash | Only if the business connects it |
A data processing agreement (DPA) is available on request, with your proposal.
8 · What we don't have yet
Better you hear it here than find it later
| Question | Answer |
|---|---|
| SOC 2 or ISO 27001? | No. Lagoona is a small UK business and isn't certified. This page is our answer instead: specific, and checkable. |
| Independent penetration test? | Not yet. Over 750 automated checks run before every update, including ones that prove people can't see outside their part and that a sign-in pass works once. |
| Sign in with our own Microsoft or Google identity? | Not yet. Everyone has their own Lagoona login and role. |
| Hosting outside the EU, or in our own cloud? | Not as standard. Everything runs in one EU region. Talk to us if you need something else. |
| A formal uptime SLA? | Not yet. Every Lagoona service is watched 24/7 by Reef, and problems come with the cause and the fix. |
Questions this page didn't answer?
A 15-minute technical call with the person who built Lagoona. Bring your hardest question.