Serlion

Security and privacy

What Serlion does with your keys, your visitors’ messages and your account, how each protection works, and where it stops. This page is written from how Serlion’s code works today, and says so where a protection has limits. Where a setting is yours, it says where to find it.

Can anyone read my AI provider key?

On a Bring Your Own Key plan you give Serlion the key to your AI provider. It is the most valuable secret on your account, so this is what happens to it.

Stored encrypted

A key is checked with the provider when you add it, then encrypted with AES-256-GCM before it is saved. Serlion never sends it back to you or to your browser. The dashboard shows the provider, the name you gave the key and its last four characters.

The same encryption covers the credentials you give Serlion for connected services (CRM, help desk, shop, newsletter, calendar, Notion, messaging channels, alert addresses, custom actions and webhook signing secrets) and the secret behind two-factor sign-in.

Where it stops. To answer a visitor, the service has to decrypt the key and send it to your provider. Encryption protects the stored copy, not that moment of use.

Standby keys

You can keep up to five keys. One is active and the others wait as standbys. If the active key is rejected or has no credit left, the next standby answers that same message, takes over, and Serlion emails you. If the problem looks temporary, such as a timeout or a provider outage, the active key stays active and a standby answers only that message.

You control it. Add, name, switch and delete keys, and read each key’s history, under “AI provider” in your dashboard.

Deleting a key

To delete an AI key, Serlion emails a 6-digit code to the person who is signed in. The code works for that person, that key and that one action, for 10 minutes and 5 tries. If a co-owner adds, switches or deletes a key, the owner gets an email.

On a Managed plan

There is no key of yours to protect. Serlion supplies the model, and your visitors’ messages go to the AI providers in the provider list further down.

What if someone copies my website key?

They can, because it sits in your page. That is why a website key is held to the limits of a website visitor, and why each key can carry limits of its own.

Two kinds of key

A website key (it starts with sk_live_) goes in the snippet on your page, so anyone who views the page source can read it. Treat it as public. A server key (it starts with serlion_sk_) is for your own server and never belongs in a web page. Serlion stores only a one-way hash (SHA-256) of a server key and shows the key once, when you create it. Afterwards the dashboard shows only its first characters.

You control it. Create, name and delete keys under “API keys”. Only the owner and co-owners can see or change keys.

Limits on each key

Every key can have a monthly cap on new conversations, an expiry date and a list of allowed domains (up to 20). An expired key is refused. A key at its cap refuses new conversations. A request from a domain that is not on the key’s list is refused. A key for example.com does not cover www.example.com, so list both.

You control it. Set all three when you create a key, and change them later in its settings.

Reminders, rotation and deletion

Serlion emails the owner 14 days and 3 days before a key expires. Rotating a key gives the same key (same assistant, same settings) a new secret, and the old one stops working at once, so pages that still carry the old website key stop answering until you update the snippet. Deleting a key needs the same emailed 6-digit code as an AI key.

Where it stops. A list of allowed domains is checked against the Origin header a browser sends. The next section says what that does and does not stop.

How do I prove a website is mine, and what does that stop?

You add a website under “Domains” and prove it with a code only the site’s owner can place. Any one of the three ways is enough. Press Check now in the panel to see what follows.

Your websites

example.com

Not verified

Waiting for you to verify it.

How to verify

Show us that example.com is yours in any one of these three ways, then press Check now.

Add a TXT record at your domain’s DNS provider.

Name / Host

_serlion-verify

Your DNS provider may ask for the full name instead:

_serlion-verify.example.com

Value

serlion-verify=a1b2c3d4e5f60718293a4b5c6d7e8f90

This covers all your subdomains. DNS changes can take a few minutes to a few hours.

We’ll keep checking for 24 hours and email you when it works.

Lock your widget

Stops other websites from using your widget in a browser.

Only allow my verified domains to use my chat widget

It does not stop someone calling your API with a forged header, so keep your keys private too.

Verify a domain first.

Allow localhost for development

Lets the widget work on your own computer while you build.

The values are the real record names and formats, with an example domain and an example code. The code is 32 characters, different for every website you add.

What proving it gives you

A Verified badge. The assistant is told your real web address, so it does not invent links to pages that are not there. And the option to lock your widget to your verified domains.

A domain can be verified by one account only, and the first account to prove it keeps it. Proving by DNS covers the domain, www and every subdomain. The tag and the file cover the domain and www only.

What the lock stops

With the lock on, your widget answers only pages on a domain you have verified. The match is on the host name, so http or https and the port do not matter, and a request with no usable browser origin is refused. Your own computer can be allowed separately while you build.

A website that is turned away is listed in your dashboard under “Your widget was blocked here”, with a button to add it (at most 20 websites from the last 30 days). The first time you verify a domain, the lock is switched on for you, unless you had already decided. You can switch it off.

You control it. Switch the lock and the localhost setting under “Domains”. If a co-owner changes the lock, the owner gets an email.

What it does not stop

The lock reads the Origin header that a browser sends. A script that is not a browser can write any Origin it likes, so it can claim to be your site. The lock does not stop that, and neither does the domain list on a key.

What limits the damage is the monthly cap on each key, your plan’s monthly credits and the limits per sender (see Limits further down). So treat a website key as public, give it a cap, and keep server keys out of web pages.

Who can sign in, and what can they do?

Each person signs in as themselves. Nobody has to share the owner’s login to help.

Passwords and codes

Passwords are stored as bcrypt hashes, so Serlion cannot read them back, and need at least 8 characters. A password reset link is valid for 60 minutes, works once and is stored hashed. Codes emailed to confirm your address are 6 digits, valid for 15 minutes, with 5 tries. Sign-in attempts are limited to 10 a minute from one network address.

Sign in with Google is checked on the server against Google itself, not taken on trust from the browser.

Two-factor sign-in

Every person can turn on two-factor sign-in with an authenticator app (6-digit codes that change every 30 seconds) and gets 10 single-use recovery codes. The app’s secret is stored encrypted and the recovery codes are stored hashed. After a correct password there are 5 minutes and 5 tries to enter the code, and 10 wrong codes in 15 minutes lock further code checks for that person, however many addresses the guesses come from.

Serlion emails you when two-factor is turned on or off or a recovery code is used. Turning it on signs out every other session.

You control it. Turn it on for yourself under “Settings”. It is optional, except for co-owners, who must keep it on.

Where it stops. Two-factor means an authenticator app and recovery codes. Nothing else is offered, so no text-message codes and no hardware keys.

One sign-in for Serlion and Lanus Agent

After a full sign-in, including the two-factor code, your browser also gets a cookie that lets Lanus Agent recognise you, so you do not sign in twice. The cookie is created only after two-factor is done, so it never skips it. Only a hash of its value is stored. It ends when you sign out, change or reset your password or close the account, after 30 days without use, and 90 days after you signed in at the latest.

Where it stops. This is not enterprise single sign-on. There is no SAML and no SCIM, and you cannot connect your own identity provider.

Roles

The owner can do everything. A co-owner can do everything except billing, legal matters, closing the account and adding or removing co-owners. An admin manages settings and the team but cannot see keys or connections. An agent answers conversations and sees leads and feedback, and nothing else: every page is closed to agents unless it is on a short list, so a page added later stays closed until someone opens it on purpose.

A person becomes a co-owner only when the owner types a code that is emailed to the owner, and that person needs two-factor on. Invitations to join the team expire after 72 hours. A new sign-in replaces the person’s previous session.

You control it. Invite people, set roles and remove them under “Team”. How many seats you have depends on your plan.

See the plans

What happens to what my visitors type?

How long conversations are kept

A conversation is kept for the period of your plan, counted from its last message. A sweep that runs once a day then deletes the messages, the files the visitor uploaded and Lanus Agent’s copy.

PlanKept for
Free15 days
Starter90 days
Pro180 days
Scale365 days
Custom180 or 365 days, as chosen for the plan (90 on plans set up before October 2026)

You control it. As the account owner, choose 7 or 30 days instead (never longer than your plan) by asking Lanus Agent in the dashboard. Lanus Agent asks you to approve the change. You can delete any conversation yourself at any time under “Conversations”.

Where it stops. Contact details a visitor leaves (a lead) are not on that clock. A lead stays until you delete it, delete its conversation or close the account. Uploaded files that no message ever used are removed after 48 hours.

Visitors can delete their own chat

The chat window has a “Delete this chat” button, on by default. It erases the whole conversation in one step: the messages, the files the visitor uploaded, the lead made from the chat, scheduled follow-up emails and webhook deliveries, the notes, leads and tickets Serlion created in a connected CRM or help desk, and Lanus Agent’s copy. Only a row saying that a visitor deletion took place is kept, with no content.

The same applies to Telegram, WhatsApp and email chats. By email, the visitor first confirms through a link sent to their address, because a sender address can be forged.

You control it. As the account owner, turn the button on or off by asking Lanus Agent in the dashboard. That change always needs your approval.

Where it stops. What you copied yourself is yours to remove, and so is a CRM contact, which may predate the chat, or a person already on your newsletter list. Serlion sends a conversation.deleted event to your webhooks so you can remove your copies.

Consent, notice and the visitor’s device

In consent mode the chat cannot start until the visitor ticks a box that links to your privacy page. Nothing is stored before that, and Serlion keeps the time and the page address the box pointed to as proof. In notice mode the visitor sees a link and is not blocked. Both need a privacy page address from you, and without one neither is shown.

Before a visitor uses the chat, the widget at most notes for that session that a pop-up or teaser was shown, and in consent mode it writes nothing at all. Once they use the chat, it keeps a random conversation ID for up to 15 days, so a returning visitor lands in the same conversation, and a small copy of the widget’s look (colours, layout, name), never visitor details.

You control it. As the account owner, set the mode and the privacy page address by asking Lanus Agent in the dashboard. Lanus Agent asks you to approve the change.

Where it stops. Serlion records the consent. The privacy page it links to is yours.

Card numbers

A number of 13 to 19 digits that passes the card-number check is replaced with its last four digits before the message is stored, emailed, forwarded or sent to the AI. This is always on.

Where it stops. It looks for card numbers only. A password, an ID number or any other secret a visitor types is treated like any other text.

Does the visitor know it is an AI?

Lanus is instructed never to claim to be human and to say plainly that it is an AI if asked. It is also told not to invent prices, policies or availability, and not to say which AI company built it. What your own systems return to it is passed in as data, with an instruction to ignore anything inside that tells it to do something.

Where it stops. These are instructions to an AI model, not code, so they are no guarantee for every reply. The header of the chat window always shows “AI assistant”, in the visitor’s language, and you cannot switch that off. Individual messages are not labelled. If you want to say more up front, put it in your greeting under “Widget”.

What Lanus will and will not say

What does Serlion send to other systems?

Only what you switch on, to the place you name. The optional services are listed with the providers further down.

Webhooks

You can register up to 5 HTTPS addresses and choose which events each one receives. Every delivery is signed with the Standard Webhooks method (HMAC-SHA256), so your server can check it with an existing library. After you rotate a signing secret, the old one keeps signing for 24 hours. A delivery is tried 7 times over about 21 hours, and an address that fails for 3 days is switched off and you get one email.

You control it. Set up addresses, choose events and rotate secrets under “Developers”.

Where it stops. Delivery is at least once and the order of events is not guaranteed, so use the webhook-id header to ignore duplicates. Webhooks are on the plans that include the developer API.

See the plans

Addresses Serlion calls

Webhooks, custom actions, lead forwarding, the pages you import into the knowledge base and the checks that verify your domain go only to HTTPS addresses. Serlion refuses an address that resolves to a private or internal network, including the cloud-metadata address. The check runs inside the connection itself, so the address it checked is the address it connects to. Webhooks and custom actions never follow redirects.

Custom actions

A custom action lets the assistant look something up in your own system, such as an order status. Actions only read. You define the address, the parameters and the credentials, and the AI supplies only values for the parameters you declared. It never chooses the host, the path shape, the headers or the credentials. Each value is checked, length-limited, masked for card numbers and encoded before it is sent.

The answer is cut to 4,000 characters, and you can list the only fields the AI may see. Serlion logs the outcome, status, duration and parameter names, never values or answers, for 30 days.

You control it. Define and test actions under “Developers”.

Where it stops. Custom actions are on the plans that include them.

See the plans

Alerts to your team

Alerts to Slack, Microsoft Teams, Google Chat or Discord carry the visitor’s name and contact details and up to 300 characters of their message, because that is what lets your team act. Alerts through Telegram carry only what happened and a link to the conversation: no names, no contact details, no messages.

You control it. Choose where alerts go under “Connectors”.

Where it stops. You connect those services with your own account, so what arrives there is yours to look after.

Newsletter sign-ups

A visitor is added to your Mailchimp or Brevo list only if they tick an unticked box in the pre-chat form. The consent and the exact wording they saw are stored with the lead, and a lead cannot be queued without it. Leads that existed before you connected are never sent. Mailchimp gets the person as pending and sends its own confirmation email. Brevo adds them to the list, or sends your double opt-in template when you set one.

You control it. Connect the service, choose the list and word the checkbox under “Connectors”.

Where it stops. Someone who is already on your list stays there when a chat is deleted. The list is yours.

Lanus Agent

Lanus Agent is a stand-alone app where you ask questions about what your customers say. It receives only conversations of businesses that have signed in to Lanus Agent, and only once a conversation has been quiet for 10 minutes. Each one is sent under a random ID, never the real conversation ID. Before Lanus Agent stores a conversation, fixed rules mask email addresses, IBANs, phone numbers, labelled bank account numbers, card numbers, security codes, passwords and US social security numbers, and an AI pass looks for names and postal addresses.

Lanus Agent keeps its copy as long as Serlion keeps the conversation. When Serlion deletes a conversation, deletes it for a visitor, purges it or erases the account, the deletion of Lanus Agent’s copy is queued in the same step and retried for up to 30 days.

Where it stops. Names and addresses depend on an AI model, so they are best effort. The phone rules leave unusual formats alone on purpose, so they do not damage dates, prices and order numbers.

More about Lanus Agent

Which companies handle my data, and where?

This is the list from the Privacy Policy and the Data Processing Agreement, so you do not have to open either. The hosting facts are exactly the ones those documents state.

Your account data and the text of your conversations are stored in Germany. Files (attachments and your logo) are stored with Cloudflare, as its row says.

Provider
What it does
Where
Transfer basis
Hetzner Online GmbH
What it doesApplication servers and the PostgreSQL database holding accounts, settings and conversation history.
WhereGermany (EU)
Transfer basisNone required
Cloudflare, Inc.
What it doesHosting and delivery of the serlion.com website; storage (Cloudflare R2) for files visitors attach to a conversation and for the logo you upload; and, if you set up a custom chat domain, the connection that carries the chat traffic for that domain.
WhereGlobal edge network; file storage may sit outside the EU; company based in the USA
Transfer basisStandard Contractual Clauses

Payments through Stripe are not switched on yet. They start no earlier than 30 days after we email customers about this change. A payment provider receives only the account holder’s own details and purchase, never a conversation or anything a visitor wrote. Stripe works for us as a processor for the billing records of your subscription. For what you enter at checkout, Stripe is the seller of record and decides for itself how that data is used, under its own privacy notices.

On Bring Your Own Key plans your replies are written by the provider you pick, using your key, so the providers below do not write them. One step still runs on our own OpenAI account: when your assistant searches your knowledge base, the visitor’s message is sent to OpenAI to find the matching passages. Serlion Agent uses the same providers in the same way.

You connect each of these with your own account, under your own terms with that provider, and Serlion passes data to and from it only because you switched it on. Once data arrives there, you are the controller for it.

On a Bring Your Own Key plan you choose the provider yourself, from Groq, OpenAI, Google, Anthropic, Together AI, Fireworks AI, OpenRouter. Each of them is based in the USA and is one of the AI providers listed above. One step still runs on our own OpenAI account: the search in your knowledge base. Objections to a provider go to the legal address below, under the procedure in the Data Processing Agreement.

What stops a stranger running up my bill?

Every new conversation uses one credit of your plan’s monthly credits, so the limits are about conversations as much as messages. These are the numbers in the code today.

Per conversation, sender and website

A request counts against its conversation, its sender and the whole website, or against none of them. One abusive visitor is stopped at their own limit without using up the allowance of everyone else. A request that a limit turns away stores nothing.

What is countedLimit
Messages in one conversation20 a minute
Messages from one network address to one website60 a minute
New conversations started from one network address on one website30 an hour
Messages a visitor can send in one conversation100
AI replies in one conversation40 an hour
Length of one message2,000 characters
Everything arriving at one website600 messages a minute
AI replies for one business on Serlion’s AI, all its channels together3,000 an hour
Test chats in your dashboard on Serlion’s AI60 an hour, 200 a day
Web pages read into the knowledge base by address20 an hour

Caps you set

The cap on a key (see Website keys above) and your plan’s monthly credits are checked in one step when a conversation starts, so two visitors cannot both take the last place. Serlion emails you when you reach 80% and 100% of the plan.

You control it. Set a cap on each key under “API keys”. Your plan’s credits are on the Pricing page.

See the plans

Limits that protect Serlion’s AI

Serlion pays for the AI behind its Managed plans, so it also keeps a daily ceiling on all of it together, far above normal use, and emails itself at 80% and at 100%. If the ceiling were ever reached, a chatbot on Serlion’s AI would tell visitors it cannot answer right now and offer to pass their details on, until midnight UTC. A chatbot that uses your own AI key keeps working. The demo chats and the playground on this website have daily ceilings of their own.

Where it stops. A ceiling like this protects the bill and can also pause the AI for a while. That is why it is set far above what customers use.

Sign-in and email

Sign-in routes allow 10 attempts a minute from one network address. Serlion sends at most 8 sign-up and password emails an hour to one address, and by default a business gets at most 10 lead emails an hour, with the rest in one summary email.

Where it stops. The counters live in the memory of the running server, so a restart clears them. They slow abuse down. They are not a promise that none gets through.

Can I take my data out, and make Serlion delete it?

Export

Conversations and leads download as CSV files, and a conversation export can run 10 times an hour. Anything a visitor typed that a spreadsheet would read as a formula is neutralised, so opening the file does not run it.

You control it. Export under “Conversations”.

Where it stops. The two exports are conversations and leads. There is no one-click export of the whole account.

Delete one conversation or one lead

When you delete a conversation yourself, it is erased the same complete way a visitor’s delete erases it (see Visitor privacy above). Deleting a lead removes it, cancels anything still waiting to send it to a CRM or newsletter, and cancels webhook deliveries that carry it.

You control it. Delete under “Conversations”.

Closing your account

When you close your account, sign-in stops for everyone on the account straight away. After 30 days a daily sweep erases the account: conversations, leads, uploaded files, keys, team members, the credentials stored for connected services and Lanus Agent’s copy. Seven days before, Serlion emails you a warning, and it never erases an account less than 24 hours after that email. Erasure waits until the warning can be sent.

Where it stops. A closed account cannot be reopened from the dashboard, so write to us before the 30 days are over. Serlion erases its own copies only. What it already sent into your CRM, help desk, shop, newsletter or Notion stays there. Files in storage are removed after the database rows, and a storage failure is logged rather than blocking the erasure.

What Serlion does not claim

Serlion does not claim a SOC 2 report, an ISO 27001 certificate, penetration-test results or an uptime figure, and it does not call itself “GDPR-compliant”, because compliance also depends on how you use the product. This page also makes no claim about backups, because the code it is written from does not show them. If you need any of these to decide, ask before you buy.

Privacy PolicyData Processing AgreementTerms of Service

Ask about security

Questions about how Serlion handles your data go to the first address. Anything with a deadline attached, such as a visitor’s data request, a DPA to sign or an objection to a provider, goes to the second, so it never waits in a support queue.

What Serlion does with your data, and what it does not claim, is written out on one page.

Security and privacy