# Access Control

## What It Is

Access control determines who can chat with your public agent. By default, anyone with your public URL can start a conversation. You can restrict this so only invited people have access.

## Access Modes

Each public agent has one of three access modes:

| Mode | Who can chat |
|------|-------------|
| Open (default) | Anyone with the URL. No login required. |
| Gated | Invitation only. Visitors must be invited by you and authenticate before the chat loads. |
| Paid | Same as gated — visitors must be invited and authenticated. The label distinguishes paying clients from free invitees, for your own tracking. |

Gated and paid work identically — the difference is a label for your records. Both require visitors to authenticate before they can see the chat.

## How to Set It Up

Tell Maxy: "Set my public agent to gated access" or "Make the coaching agent invitation-only."

Maxy changes the access mode. The next visitor to your public URL will see a login screen instead of the chat.

## Inviting Visitors

Tell Maxy who to invite: "Invite sarah@client.co to the coaching agent" or "Give Tom access to my public agent — his number is 07700 900123."

Maxy creates an invitation and sends a magic link (email) or OTP (phone). The visitor clicks the link, sets a password, and gains access.

## What Visitors Experience

- **First visit (invited):** The visitor receives an email or message with a link. Clicking it takes them to your public URL where they set a password. After that, they're in the chat.
- **Return visits:** The visitor enters their email/phone and password to log in.
- **Expired access:** If their access period has passed, they see an expiry message with the date.
- **No invitation:** If someone reaches a gated URL without an invitation, they see a login screen with a note that access requires an invitation.

## Managing Access

All access management is done through conversation with Maxy:

- "Who has access to my coaching agent?" — lists active visitors
- "Revoke Sarah's access" — permanently deactivates her access
- "Extend Tom's access by 30 days" — pushes the expiry date forward
- "Set all access to expire after 90 days" — applies a default expiry to new invitations

Revoked access is permanent — the visitor cannot log in again unless re-invited.

## Visitor Identity

When a visitor is authenticated, your public agent knows their name and contact details. It can personalise responses ("Welcome back, Sarah") without needing to ask.

## Action Approval

External-facing actions — sending emails, WhatsApp messages, Telegram messages, and erasing contacts — require your approval before Maxy executes them. This is human oversight as required by the EU AI Act.

When Maxy needs to send a message or perform a consequential action, it drafts the action and queues it for your review. You'll see it in your next chat turn:

- "Approve it" — Maxy executes the action immediately
- "Reject it" — the action is cancelled
- "Change the subject to X" — Maxy modifies the action and executes the edited version

Internal operations (creating tasks, updating contacts, searching memory) execute automatically without approval.

### Changing the Policy

Tell Maxy to change which actions require approval:

- "Auto-send follow-up emails from now on" — emails execute without approval
- "Require approval for all WhatsApp messages" — restores the default gating
- "What actions currently require my approval?" — lists the current policy

Changes are per-account and take effect immediately.
