Security at Tulina
Tulina holds the keys to the tools you connect, so the first question anyone sensible asks is where those keys live and who can reach them. This page answers that, along with the rest of a normal vendor review, without you having to send the questionnaire first.
Last updated 11 October 2026
Hosting
European Union
The platform, its database, its object storage, its secrets and its credential vault are hosted in the Union, and all of it currently runs on Scaleway in France. Your working data never leaves the Union to be processed by us.
Credentials
AES-256-GCM
Every token and API key you connect is encrypted at rest. The master key lives outside the database in a secret manager and never touches disk, so a database dump is ciphertext and nothing else.
The agent
Never sees a secret
Credentials are decrypted at the moment of the call and never logged. They do not pass through the language model's context, so no prompt, transcript or model provider ever holds one.
01
How the platform is run
Isolation
Data is partitioned by user and by organisation, and every call runs on the credentials of the person making it. The platform runs on dedicated servers in its own private network, each behind its own firewall, and the machine serving the web app is a separate machine from the one holding credentials.
Access control
Sign-in is OAuth with PKCE against a self-hosted Logto, with no shared password anywhere. Access follows the roles an organisation's administrators set, and least privilege is the default: sensitive sources are closed until opened, and a connector is unavailable to an organisation until it is explicitly turned on. A team can only ever subtract from what its organisation allows.
What we never do with your data
We do not train models on it, sell it, or profile anyone for our own purposes. That is a contractual commitment under article 28, not a policy we could quietly change.
What we can see
We do not read the contents of your connected tools. Error monitoring receives the name of a failing operation and an opaque user identifier. IP addresses, cookies, headers and call arguments are all excluded by configuration, so a stack trace never carries your data.
Audit trail
Every tool call is logged: who ran it, which tool, how long it took, and whether it succeeded. No secret content is ever written to that log. An organisation can review its own workspace through it, and it is what anomaly detection and incident response are built on.
Detection and availability
Network-level intrusion prevention bans malicious addresses automatically, and availability and server resources are monitored continuously. The database is a managed, encrypted PostgreSQL instance, backed up daily with seven days of retention.
Secure development
Changes reach production through pull requests and automated checks, and every production release is a deliberate, tagged deploy rather than a side effect of merging. Secrets live in a managed secret store rather than in the code or on a developer machine.
You can read the code
The technical foundation the platform is built on is open source and auditable rather than asserted: oto-core, france-opendata, o-browser and otomata-calllog are all public. A reviewer who does not want to take our word for the claims above can go and check several of them.
Incident response
We notify you without undue delay once we become aware of a breach affecting your personal data, with what we know at the time and updates as we learn more. That commitment is contractual and sits in the DPA.
Vulnerability reports
Write to security@tulina.ai before disclosing anything elsewhere. Our terms grant a good-faith researcher permission to test, within limits set out on that page.
02
Documents
Four are published and binding. For anything else a review needs, write to security@tulina.ai.
Data processing agreement
The article 28 terms, incorporated into every contract. A signed copy on request.
Privacy policy
What we collect as controller, on what basis, and for how long.
Terms of use
Including the liability position and the responsible-disclosure permission.
Legal notice
The publishing entity, its registration and its host.
03
Who processes your data
Two groups, and the difference between them matters more than the names. The first runs the platform, for every customer. The second is touched only if you choose to touch it.
Engaged to run the platform
We host the backend on our own servers. These are the suppliers behind them.
Hosts the platform on dedicated, isolated servers, with its managed PostgreSQL database, object storage and secret storage. Everything the platform stores sits here.
Error tracking. Receives the name of a failing operation and an opaque user identifier, never your data: IP addresses, cookies, headers and call arguments are excluded by configuration.
DNS for the platform domains and the access gateway for administrative connections to our servers, plus bot checking on the website's forms where it is active. Platform traffic does not pass through it.
Engaged only by your own use
Tulina connects to around a hundred tools, and none of them is connected until you connect it. Which of the following ever receives anything therefore depends on what you install and run, not on being a customer.
With your own key, we are not in the loop. Most connectors run on credentials you supply. Your data travels to that provider under your existing contract with them, on your instruction. We pass it on and we are not the controller of what happens there.
With our key, the vendor sits on our account. A few enrichment and messaging connectors can run on a shared Tulina key instead, so you can try them without signing up separately. That is the only case where one of these vendors becomes a subprocessor of ours, and it starts the moment you use that connector and stops when you stop.
A workspace starts with nothing installed, and a connector stays unavailable to an organisation until an administrator turns it on, so an organisation that never enables enrichment never reaches any of this.
Two sets of providers are deliberately not on this page. The ones serving the tulina.ai website, its demo booking and its sign-up form, and the ones handling payment and billing, are listed on our privacy page instead. We are the controller for both, rather than your processor, and neither touches the data in your workspace.
Hosted multi-channel messaging, when you connect LinkedIn, WhatsApp or Telegram.
Waterfall enrichment of B2B contacts, when you run an enrichment that uses it.
Professional email lookup and verification.
B2B contact enrichment, phone and email.
Web search, and the hosted scraper the web reader falls back to when a page will not open with a plain fetch.
A disposable hosted browser, for the tools that work through a website rather than an API: Crunchbase search, Pennylane document filing, Brevo automations and the browser tool, and the web reader's last resort on a page that defends itself. Never a silent default: it runs only when a call uses one of these.
The catalogue changes as connectors are added. For the current list, and which of them can run on a shared key, see connectors. We tell customers before adding or replacing a subprocessor that processes their data, and you can object.
Running a security review?
Send us the questionnaire. We answer them ourselves rather than routing you through a portal, and we will tell you plainly where the answer is no.