Security

Your agent talks to strangers all day

You decide which ones it answers, what it may reach on their behalf, and what it is allowed to say about itself. Every setting lives in Studio and none of them costs credits to change.

What you paste on your site

<script src="https://ceronica.duvi.ai/scripts/chat-bot-widget.js" defer></script><digiiq-chatbot agent-id="a7f3c2e1"></digiiq-chatbot>

Those two lines sit in the page source of every site you embed on. Anyone can read the highlighted id and paste them somewhere you never agreed to. Everything below is what stops them.

The short version,if you are in a hurry.

What stands between a stranger on your website and your customers' records.

Control 01

Listed sites only

The agent refuses to open anywhere you have not named. An empty list stops nothing, so Studio warns you while it is empty.

Allowed domains

example.com

www.example.com

pasted-elsewhere.comRefused

Control 02

Your server names the visitor

Duvi never takes a visitor’s word for who they are. Your own endpoint says so, in an HS256 token that lives no more than 120 seconds and is verified before the agent speaks.

Your endpoint returns

signed in{ "identity_token": "eyJhbGci…" } nobody signed in{}
Control 03

Records bound to identity

A field that decides whose data comes back is filled from the verified customer. The agent never sees the value and cannot invent one.

Tool: look up an order

FieldFilled by
customer_ididentity
order_refreference
Control 04

Keys you never see again

You paste a credential once and we encrypt it on arrival. Studio fills it into the request at call time, so the value never reaches the model.

Stored keys

stripe_liveEncrypted

••••••••••••Never shown

Control 05

It says what it is

A standing line before the agent’s first message, in your words, telling people they are talking to software.

Shown before the first message

Replies are generated. Check anything important with our team.

Control 06

Where your words go

Processed in the United States, and never sold. Conversations are also used to train Duvi models, which is set out in full further down.

Who trains on it

Duvi modelsYes

OpenAI, Google, AnthropicNo

What youset.

Where each of those lives in Studio, and the detail behind it. Open any row.

Allowed domainsBlocks any site you have not listed.Security tab

Enter the domain only, with no scheme and no path. A www host counts as a different host, so add both if you serve both. That one catches almost everybody, and it is the usual reason a widget does not appear.

Anything that is not a browser can claim any origin it likes, so treat this as the lock on the front door. Access, below, is the lock on the safe.

AccessTurns away anyone your server will not vouch for.Security tab

Leave it open and anyone may start a conversation, with verified identity used whenever your endpoint supplies it. Close it and an unidentified visitor is refused before any model call.

The token must be HS256, addressed to duvi, and live for no more than 120 seconds. We allow 30 seconds of clock drift either way, and the widget refreshes 15 seconds early so a short life costs you nothing.

To rotate a signing key, add the new one alongside the old, deploy it, then switch which key is in use. Nobody is rejected part way through the change.

The disclaimerTells people they are talking to software.Configure tab

One line before the agent speaks, in your words. Off until you turn it on, and saving it empty stores nothing.

Keep it separate from the opening line. A disclaimer is a standing statement about what the thing is; an opening line is not, and you will want to change them at different times.

Stored keysHolds a credential you never have to see again.Security tab

The value is entered once, in Studio, and never displayed again. Your tools refer to it by name rather than by value, and a field filled at call time never reaches the model.

Secrets belong in stored keys, never in a prompt. A determined visitor can often talk an agent into reading its own instructions back, so treat the prompt as something the customer may end up seeing.

We store conversations to run the platform, to bill your account, and to train and improve our models.

We do not sell personal information. Conversation data we handle for you is kept for as long as your agreement says. Here is everything that touches it.

Training

Messages and call transcripts are used to train and improve Duvi models. Tell us before you build if your business needs to be left out of that.

Model providers

Do not train on API traffic. OpenAI clears abuse logs within 30 days, Anthropic deletes inputs and outputs after 7.

Twilio

Carries the calls on a number you already own.Phone only

Pinnacle

Moves messages to and from your WhatsApp Business number.WhatsApp only

Meta

Does the same job through the WhatsApp Cloud API.WhatsApp only

United States

Where we operate, and where your information is processed.Location

Questionspeople ask.

Roughly in the order they ask them.

Do you train on my data?

Yes. Messages and call transcripts from the platform are used to train and improve Duvi models. Tell us before you build if your business needs to be left out of that.

Do your model providers train on my data?

No. OpenAI does not train on anything sent through its API unless you opt in, and clears its abuse logs within 30 days. Google gives the same undertaking on paid Gemini API traffic. Anthropic does not train on API traffic either and deletes inputs and outputs after 7 days.

Can one customer read another customer’s record?

Not if the field that selects the record is bound to identity. That value is filled from the verified customer and the agent never sees it, so it cannot be guessed or talked into changing.

A field the agent fills is whatever the visitor typed. Never use one for an account id or an order reference tied to an account.

Who can talk to my agent?

Anyone who can load a page on a domain you have listed. An empty list places no restriction at all, which is why Studio warns you while it is empty. Switch Access to signed-in visitors only and that narrows to people your own server will vouch for.

Where does my data live?

The United States. Where a transfer needs safeguards, we put them in place.

How long do you keep conversations?

As long as your agreement says. Anything else we hold, we keep only while the reason we collected it still applies, or while the law requires it.

Can I have my data deleted?

Yes. Depending on where you live you can ask to see, correct, delete or restrict your personal information, including under the GDPR and the CCPA. Write to us and we will act on it.

What happens when my credits run out?

We refuse the request rather than quietly giving you a worse answer. A new conversation will not open, and in one already running the next message is turned away while whatever is already streaming finishes.

Does connecting a service hand you my password?

No. Signing in sends you to that service, you approve the access there, and you land back in Studio. We never see the password. Services that use a key instead take one you created, encrypted the moment it arrives.