---
name: "admin_save_person"
area: "admin"
title: "Add or change a person"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/admin_save_person"
mcp_server: "https://api.conecto.chat/mcp/admin"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/admin/admin_save_person"
---

# Add or change a person (`admin_save_person`)

Adds a person as a member or auditor, or changes their name, teams, areas or end of access.

Add someone to the account as a member (their own assistant works in their teams) or an auditor (reads everything, changes nothing), or change one: their name, teams, areas and the day their access ends. They are told by email when added. Making someone an owner, admin or billing person is the owner's.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

Someone new should connect their own assistant, or an advisor needs to read for a while.

- For letting everyone at the company ask to join, use [admin_save_domain](https://conecto.chat/tools/admin/admin_save_domain.md).

## Say this to your agent

> Add Felix Wagner from the warehouse, felix.wagner@hansenvoss.example, to the Warehouse team.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `email` | string | yes | 3 to 254 characters. |  |  |
| `name` | string | no | Up to 120 characters. |  |  |
| `role` | string | no |  | `"member"`, `"auditor"`, `"admin"`, `"billing"`, `"owner"` | `"member"` |
| `teams` | array of strings | no | Their teams, replacing the ones they are in. Up to 20 items. |  |  |
| `areas` | array of strings | no | For an account without teams: the areas their assistant works in. |  |  |
| `access_until` | string | no | The last day of their access, like 2027-03-31. Up to 10 characters. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `admin_save_person` on the MCP server `https://api.conecto.chat/mcp/admin` with these arguments:

```json
{
  "email": "felix.wagner@hansenvoss.example",
  "name": "Felix Wagner",
  "teams": [
    "Warehouse"
  ]
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/admin_save_person \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "felix.wagner@hansenvoss.example", "name": "Felix Wagner", "teams": ["Warehouse"]}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "admin_save_person",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "person": {
      "email": "felix.wagner@hansenvoss.example",
      "name": "Felix Wagner",
      "role": "member",
      "areas": null,
      "access_until": null,
      "teams": [
        {
          "team": "Warehouse",
          "manager": false
        }
      ],
      "added_by": "key 1 (Pip)",
      "added_at": "2026-10-14T08:00:00+00:00"
    },
    "added": true
  }
}
```

`result`: person: their email, name, role, areas, access_until and teams; added: whether they are new, in which case they got an email.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `invalid_input` | 400 | The address, an area or access_until is not valid, or it is the owner's address. | Fix the value the message names. |
| `not_found` | 404 | No team has that name. | admin_overview lists the teams. |
| `owner_required` | 403 | The key doesn't run the account, or the role asked for is above member. | Use a key of the company-wide team, or hand the owner a link: account_owner_link with page people. |
| `limit_reached` | 409 | The account has 100 people besides the owner. | Remove someone first. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [admin_overview](https://conecto.chat/tools/admin/admin_overview.md): The account page's Home in one read: balance, spending, limits, teams, people, keys, systems and rentals. Free up to 1,000,000 reads a month.
- [admin_save_setup](https://conecto.chat/tools/admin/admin_save_setup.md): Saves the answers to the first questions: the AI the business uses, the jobs to hand over, the systems it runs and its size. Free.
- [admin_list_people](https://conecto.chat/tools/admin/admin_list_people.md): Who besides the owner can open the account, with role, teams, areas and end of access, and the requests to join waiting. Free up to 1,000,000 reads a month.
- [admin_remove_person](https://conecto.chat/tools/admin/admin_remove_person.md): Takes a person's access away at once, with their own assistants. Free.
- [admin_list_domains](https://conecto.chat/tools/admin/admin_list_domains.md): The company's email domains on the account: proved or not, how people on them join, and the TXT record that proves each. Free up to 1,000,000 reads a month.
- [admin_save_domain](https://conecto.chat/tools/admin/admin_save_domain.md): Adds the company's email domain, proves it with a TXT record, and sets how people on it join. $0.001 a call.
- [admin_remove_domain](https://conecto.chat/tools/admin/admin_remove_domain.md): Takes a domain off the account; people who joined with it stay. Free.
- [admin_decide_join_request](https://conecto.chat/tools/admin/admin_decide_join_request.md): Approves someone who asked to join, as a member in their domain's team, or declines them. $0.001 a call.
- [admin_list_join_codes](https://conecto.chat/tools/admin/admin_list_join_codes.md): The one-time codes made for other bots to join, with their team, areas, expiry and the bot that used each. Free up to 1,000,000 reads a month.
- [admin_make_join_code](https://conecto.chat/tools/admin/admin_make_join_code.md): A one-time code another bot uses to join this account, for one team and its areas. $0.001 a call.
- [admin_revoke_join_code](https://conecto.chat/tools/admin/admin_revoke_join_code.md): Withdraws a join code no bot used yet. Free.
- [admin_list_bridges](https://conecto.chat/tools/admin/admin_list_bridges.md): The bridges inside the company's network: online or not, last check-in, version and the systems each serves. Free up to 1,000,000 reads a month.
- [admin_make_bridge](https://conecto.chat/tools/admin/admin_make_bridge.md): A new bridge for systems behind the company's firewall, with its token (shown once) and the steps for IT. $0.001 a call.
- [admin_revoke_bridge](https://conecto.chat/tools/admin/admin_revoke_bridge.md): Stops a bridge at once; calls waiting for it fail at no cost. Free.
