# Permissions and safety

> What a connected AI assistant can and cannot do in Korala, which documents it works with, and how to disconnect.

Source: https://docs.korala.ai/ai-agents/permissions

---

You decide what an assistant may do on Korala's consent page, once per connection.

![Korala's consent page: the headline "Connect an AI assistant to Korala?", the assistant's name and host marked as unverified, four permission checkboxes with "Send and void documents" cleared, a note that it works with real documents, and Cancel and Connect buttons.](https://docs.korala.ai/img/ai-agents/consent.png)

## Before you connect

An assistant creates documents from templates, because a chat has no file to
upload. Each plan includes a number of documents from templates a month; the
free plan includes 5, the same as its signed documents. When you have used
them, the assistant can still view your documents and save templates, and it
tells you that it cannot create another document until the next month or a
plan change.

Korala emails you each time an assistant is connected in your name, with the
name it gave, where it connected from and what it may do. If you did not
connect it, open **Settings → AI Assistants**, disconnect it and change your
password.

## Permissions

| Permission | The assistant can | Default |
| --- | --- | --- |
| **View documents and templates** | List and read documents, templates, signers, fields and audit trails. Preview a Markdown agreement without saving it. | On. You cannot switch it off. |
| **Prepare documents** | Create drafts, add recipients and place fields. Also rename a draft and remove its recipients and fields. It cannot send or void. | On |
| **Create and edit templates** | Save a Markdown agreement as a reusable template. Also delete, duplicate or replace the file of any template in your organization. | On |
| **Send and void documents** | Send a draft to its signers, and void a document. | Off |

With **Send and void documents** off, the assistant answers a send request with a link. Open the link, review the document in Korala and send it yourself. Turn the permission on once you trust how your assistant handles drafts.

A permission covers more than the tools named after it. The connection's token works against Korala's REST API directly, so an assistant that can make HTTP requests can use every endpoint its permissions allow. **Create and edit templates** reaches every template in your organization, including ones you made in the dashboard.

The [tool reference](https://docs.korala.ai/ai-agents/tools) lists the permission each tool needs.

## Real documents

A connected assistant works with your real documents. The consent page says so: "It works with your real documents: what it prepares is legally binding once signed, and documents it creates from templates count against your plan. It can never sign on anyone's behalf, and you can disconnect it at any time in Settings → AI Assistants."

Documents the assistant creates from templates, and documents it sends, count against your plan like your own. Creating from a template needs **Prepare documents** alone, so a connection can incur charges with **Send and void documents** off, on plans that charge per document created from a template.

For a safe first try, leave **Send and void documents** off. The assistant prepares drafts and gives you a link to review, and Korala emails nobody.

An assistant cannot see, change or send test documents, meaning the documents and templates a test-mode API key made. Korala answers `404` for them and leaves them out of the assistant's lists. Korala ignores a `sandbox` flag in an assistant's request. API keys keep a test mode: see [API key (CI and headless)](https://docs.korala.ai/ai-agents/api-key#setup).

## Limits that apply to every connection

- An assistant cannot sign a document for anyone.
- Korala keeps signers' signing links and tokens out of every tool result.
- Korala allows 120 requests a minute per connection. One request is one protocol message, and a single tool call takes several, so an assistant reaches the limit sooner than 120 tool calls. Past that, Korala answers with `429` until the minute passes.
- Korala also allows 600 API requests a minute per connection, counting the requests its tool calls make.
- The sign-in endpoints allow 20 client registrations and 120 other requests a minute per network address.

## Who can connect an assistant

An organization Owner or Admin. A Member who reaches the consent page sees an explanation and a **Cancel** button. If you have two-factor authentication turned on, you confirm it before Korala approves the connection.

## The warnings on the consent page

The consent page shows the name the assistant calls itself and the host that receives the approval. Korala marks both as unverified, because any program can register under any name.

The page then advises: "Continue only if you started this from your own assistant a moment ago. If a link brought you here, cancel."

The advice guards against one attack. Someone sets up a connection from their own assistant and sends you the sign-in link. If you approve it, their assistant gets access to your organization's documents. A connection you started yourself opens this page seconds after you asked for it, in a browser your assistant opened. Treat a consent page that arrives by email, chat or a web page as hostile and choose **Cancel**.

## Disconnect an assistant

1. In the Korala web app, open **Settings → AI Assistants**. Owners and Admins see this page; Members do not.
2. Find the assistant under **Connected assistants**. Each row shows the name, the permissions, the connected date and the last use, or "never used".
3. Choose **Disconnect** and confirm.

![Settings → AI Assistants in Korala, listing a connected assistant named "Claude Code" with three permissions, its connected date, "never used" and a Disconnect button.](https://docs.korala.ai/img/ai-agents/settings-connected.png)

![The Disconnect confirmation dialog in Korala, asking you to confirm before the assistant loses access.](https://docs.korala.ai/img/ai-agents/settings-disconnect.png)

Disconnecting takes effect on the assistant's next request.

Before you connect anything, the same page shows the server address with a copy button and five setup tabs: Claude, ChatGPT, Claude Code, Codex and Cursor.

![Settings → AI Assistants in Korala with no assistants connected, showing the server address with a copy button and tabs with setup steps.](https://docs.korala.ai/img/ai-agents/settings-empty.png)

## Connections that end by themselves

A connection ends in six cases:

- You disconnect it in **Settings → AI Assistants**.
- The person who approved it leaves the organization or stops being an Owner or Admin.
- The assistant goes 30 days without using it. Its refresh token expires.
- One year passes since the approval. Each approval lasts one year at most.
- The assistant revokes the connection itself.
- Korala sees a refresh token used twice. Korala treats that as theft and ends the connection.

To continue after any of these, connect again.

## Audit trail

The API's [audit trail](https://docs.korala.ai/guides/audit-trail) response carries `metadata.actor` (`type`, `clientName`, `connectionId`, `userId`) on the events `document_created`, `document_sent` and `document_voided` when an assistant did them. The dashboard and the Certificate of Completion do not show it yet.

A document created from a plain PDF or DOCX template writes no `document_created` event, so that step has nothing to attribute.
