# Why Behavly asks before it deletes or sends

> Behavly Agent, AI apps and the API can look things up and make changes, but deleting something or sending email to real people waits for a person. Here is where we drew that line, and why.

Source: https://behavly.io/blog/why-behavly-asks-before-it-acts · Behavly blog · Insights · November 6, 2026 · By Ardit Karavidaj, Founder & CEO, FoundryX

Behavly writes email to your customers. **Behavly Agent**, the chat inside Behavly, builds a campaign, drafts a reply or reports how a campaign is doing when you ask in your own words. AI apps such as Claude, ChatGPT, Gemini and Cursor can connect to Behavly and use the same actions, and so can your own code through the **Behavly API**.

So we hold one rule above the rest: an AI that writes to your customers should never surprise you. A lookup changes nothing. Every change an AI makes is recorded with a name. And when Behavly Agent, an AI app or a script asks to delete something or send email to real people, a person approves it first. This post explains where that line sits and why.

#### Asking Behavly Agent never changes anything on its own

Behavly Agent reads the same workspace you see: campaigns and their results, contacts and leads, patterns, the Unibox, templates, Insights and settings. It looks things up at the moment a question needs them, so every figure it gives you comes from your workspace as it is now.

A change is different. When a request would create, change, delete or send something, Behavly Agent first shows a **confirmation card** with exactly what will happen and which plan allowances it uses. Nothing runs until you choose **Confirm**, and a card left unanswered for 30 minutes expires.

Behavly Agent treats what it reads as information, never as instructions, so a reply from a stranger or a contact's name cannot tell it what to do. It never asks for or accepts a password, an API key or a card number: connecting a mailbox and paying for a plan happen on their own screens.

#### Deleting and sending wait for a person

AI apps on Behavly's MCP server and scripts on the API run the same actions as Behavly Agent, with the same rules. A lookup works with a **Read only** key. Creating or changing something needs a **Read & write** key. Deleting something, sending email to real people, or anything else that cannot be undone goes one step further: it waits for approval in Behavly.

We drew the line there on purpose. A draft can be edited and a setting can be changed back. An email that has reached someone's inbox cannot be called back. When an action cannot be taken back, a person should be the one who decides.

The call answers `202 approval_required` with a link. The key's owner opens it in Behavly and sees what is waiting, in words, with the details listed label by label. They approve or decline. The app can then ask how it ended: still waiting, running, done, failed, declined or expired.

**30 min** to approve or decline a delete or a send. Unanswered by then, it expires and nothing happens.

A Read & write key asks by default, under **Ask me before deleting or sending**. Turn that off only for an automation you trust.

#### A key can do only what its person can do

Every key acts as the person who made it, in the one workspace it was made in, with that person's role as it is when the call is made. Change someone's role and their keys follow. Remove them from the workspace and their keys stop. Behavly Agent works the same way: on a view-only role, lookups work and changes are refused.

- **Read only** looks things up. Every change is refused.
- **Read & write** looks things up and makes changes, as far as the person's role allows.
- **Send events only** is the key for your backend. It sends your product's events and nothing else, so if it ever leaks it cannot read your contacts or change anything.

Some things never happen through a key: creating and revoking API keys, connecting a mailbox, changing a plan, and creating or switching workspaces are done only in the Behavly app.

Revoke a key from its row under **Settings → API**, or disconnect an AI app under **Connected apps** on the MCP tab, and it stops working right away. Owners and admins can revoke any key in the workspace, and **Workspace access** turns every key off at once without deleting any.

#### Every change carries a name

**Settings → Account → Audit Logs** records account, campaign, workspace and compliance activity, with who did it and when. Changes made in the chat are marked **via Behavly Agent**. Changes made from outside Behavly are marked **via MCP** or **via API**, with the key's name, next to what people did in the app.

So who changed something always has an answer: a teammate, Behavly Agent acting for one, or a named key. The log can be filtered by activity type and exported as CSV, on every plan.

#### Emails Behavly writes can wait for your OK

Campaigns are where Behavly writes to your customers. A **Behavly Agent** step writes an email for each person from their activity, and an **Edited by Behavly** step keeps your template's design and edits the wording for each person.

Under **Review** in the bar above the path, turn on **Hold Behavly-written emails for approval**. Every email Behavly writes or edits then waits in **Review** until you release it, while templates sent as designed still go on time. Held emails do not expire. Choose **Send all**, or open each one to **Read**, **Send** or **Skip** it. You are reading real, final copy addressed to real people, not a template preview.

With Review on, you read every email Behavly writes before your customer does. We suggest keeping it on until you have read enough of what a campaign writes to trust it.

Before you activate, **Preview** writes an email step for a real person without sending it, and **Test** sends the whole path to your own inbox. Once a campaign runs, **Path review** suggests changes from its results, and nothing changes on its own: Behavly makes a change only when you **Approve** it.

#### Customer data is reduced before a model sees it

Keeping AI in check also means limiting what it sees. In **Settings → Account → AI & Privacy**, **Data sent to AI** sets how customer data is handled before it reaches the model:

- **Pseudonymize**, the recommended setting: identifiers such as emails, phone numbers and card numbers are replaced with tokens, and sensitive columns are dropped. The model still sees behavioral signals and fields that do not identify anyone.
- **Strict**: every free-text value is dropped as well. Only numbers, dates and aggregates reach the model.

Above both sits one switch. AI features can be turned off for the whole workspace, and then no prompt leaves it. Campaigns send only your templates, exactly as designed. A path with a step Behavly writes or edits cannot be activated, and a running one pauses itself until AI is back on. Behavly Agent is off too, and AI apps cannot connect at all.

Each Behavly Agent conversation is recorded in the AI access log on the same page. These controls are on every plan, Free included, because nothing a customer needs in order to stay safe should be behind an upgrade.

#### Get started

Behavly Agent, the API and MCP server, the AI & Privacy controls and the audit log are on every plan, Free included. Open **Settings → Account → AI & Privacy** to choose how data reaches AI, **Settings → API** to create a key with only the access it needs, and **Settings → Account → Audit Logs** to see what changed and who changed it.

Read more in [What Behavly Agent Can See And Do](https://behavly.io/help-center/agent/what-behavly-agent-can-see), [Connect AI Apps And Other Tools](https://behavly.io/help-center/agent/connect-ai-apps-mcp), [AI Controls](https://behavly.io/help-center/privacy/ai-controls) and [Review Before Sending](https://behavly.io/help-center/campaigns/approval), or start from the [API reference](https://behavly.io/api/v1/docs).

Start on the free plan: https://behavly.io/auth/login?mode=signup
