Connect a read-only database
Paste a connection string for a least-privilege, SELECT-only role — we give you the script that creates it. Point it at a replica if you prefer.
Paste one script tag into your ERP, CRM or internal tool. Sonela then answers from your own live data — read-only, tenant-isolated, and grounded in a schema you approved.
This is the whole change to your app
Your widget key replaces the placeholder — nothing else changes.
Three steps, all from your browser. No agent to deploy, no connector to run, no engineering ticket in your customers' backlog.
Paste a connection string for a least-privilege, SELECT-only role — we give you the script that creates it. Point it at a replica if you prefer.
Sonela introspects your database and drafts a schema manifest. You hide what shouldn't be visible, confirm the tenant column, and approve. Nothing is queried until you do.
Drop the snippet into your app. The assistant appears in the corner, styled to your brand. No keys or connection details ever reach the page.
<script src="https://cdn.sonela.cloud/widget.js" data-key="pk_live_…" defer></script>
Built for the software you already run — line-of-business apps, CRMs, ERPs and internal tools, where the answers are sitting in a database nobody has time to query.
Every answer comes from a query against your live database. When Sonela can't answer from your data, it says so instead of inventing a number.
Model-written SQL passes an allowlist grammar before it runs, and each table reference is rewritten into a tenant-filtered subquery. Anything unexpected is rejected, not executed.
PostgreSQL is supported today. SQL Server and MySQL are next — each ships only with its full safety-test suite, because the SQL layer is the security boundary.
Bring your own key — Gemini, OpenAI, Azure OpenAI or any OpenAI-compatible endpoint. Your rows reach only the provider you chose, under your agreement.
A script tag, a widget key, done. Colours, name and greeting are set from your dashboard and apply live — no redeploy to restyle the assistant.
See questions, answer rates, latency and token spend per customer and per model — counts and costs only, never the text of anyone's question.
Connecting an AI to a business database is a trust decision. Here is exactly what happens to your data — including the parts most vendors leave out.
An allowlist validator rejects anything that isn't a SELECT, the query runs inside a READ ONLY transaction with a statement timeout and a row cap, and the database role you create can only read in the first place.
Every table reference is rewritten into a tenant-filtered subquery before execution. The tenant identity is bound server-side from a verified token — the browser can't assert it, and the model never sees it.
Answers grounded in your data are structurally uncacheable. Chat transcripts stay in the visitor's browser. Our metering stores counts, latency and token totals — never a question, an answer, or a line of SQL.
Connection strings and provider keys are encrypted with AES-256-GCM and decrypted only in memory to serve a request. No API we expose can read them back — you see the last four characters, and nothing more.
| Data | What actually happens |
|---|---|
| The question someone types | Reaches Sonela and the AI provider you chose. It is not stored afterwards. |
| Rows returned by a query | Pass through Sonela's memory to compose the answer, and reach your AI provider. Never written to our disks. |
| Your database credentials | Encrypted at rest. Used only to open a read-only connection. |
| Chat transcripts | Held in the visitor's browser for the conversation. We keep none. |
| Question or answer text in our metering | Never collected — counts, latency and tokens only. |
| Write access to your database | None, by design. There is no code path that writes. |
Sonela is a data processor: your questions and the rows that answer them transit our service and your chosen AI provider. We would rather say that plainly than bury it.
You bring your own AI key and pay your provider directly, so what you pay us doesn't move when your usage does. Prices in USD, excluding VAT.
14 days, no card. Enough to prove it works on your data. After 14 days or 200 questions the workspace pauses — everything you configured (schema, keys, branding, context) survives and resumes the moment you choose a plan.
For a live assistant inside one product or workspace.
For vendors embedding the assistant across a customer base.
Need more, or something on-premise? Tell us what you need.
No. Three independent layers stop it: the validator only permits read queries, the connection runs inside a READ ONLY transaction, and the database role you create has no write permission. Even a compromised model can't write.
A connection string for a SELECT-only role — we provide the script that creates it with least privilege. Many customers point us at a read replica and allow our static egress IP through their firewall.
Yes — that is what the Sonela Bridge is for. It is a small service that runs inside your network and reaches out to us for work; nothing needs to be opened to the internet, and the connection string stays on your machines rather than with us. You pick how it runs:
Have a server? Run the one service next to your database. Nothing lands on anyone's desk, and there is nothing for your team to install anywhere else.
No server? Run the bridge on an ordinary office PC — or on two or three of them for redundancy. They share the work, so the assistant keeps answering while any one of them is switched on.
Prefer a direct connection? Point Sonela at a read-only replica — your production database stays isolated, and the replica is the only thing we can ever see.
PostgreSQL today; SQL Server and MySQL are next, and each ships only once its full safety-test suite passes. For AI: Gemini, OpenAI, Azure OpenAI, or any OpenAI-compatible endpoint — you supply the key and stay on your own agreement with them.
Every query is rewritten so each table reference is filtered by tenant before it runs. The tenant identity comes from a token your server signs, never from the browser — so a user editing JavaScript in the page can't reach another tenant's rows.
No. We don't train anything. Your rows go only to the AI provider you chose, under the terms you already have with them — which is one reason we ask you to bring your own key rather than reselling ours.
It says so. Sonela answers from query results, so when the data can't support an answer it reports that instead of guessing — a wrong number delivered confidently is worse than no number at all.
Sonela is in private beta and we onboard each customer personally. Tell us what you run and we'll get you connected.