Customers
| Tool | REST endpoint | Annotations |
list_clients | GET /v1/clients | read-only, idempotent |
get_client | GET /v1/clients/{identifier} | read-only, idempotent |
create_client | POST /v1/clients | write (upsert if it already exists) |
update_client | PATCH /v1/clients/{phoneNumber} | write, partial |
delete_client | DELETE /v1/clients/{identifier} | destructive |
list_clients
Lists customers in the workspace grouped, with pagination and optional filters.
| Field | Type | Default |
limit | 1-200 | 50 |
offset | ≥ 0 | 0 |
sortBy | "name" \| "creationDate" | name |
sortDirection | "asc" \| "desc" | asc |
searchTerm | string | — |
tags | string[] (max 10) | — |
dateFilter | object | — |
get_client
| Field | Type | Required | Description |
identifier | string | yes | Customer ID or phone number (E.164). |
create_client
Creates a new customer; if one with the same phone number already exists, it updates it (upsert).
| Field | Type | Required |
phoneNumber | string E.164 | yes |
name | string | yes |
workspace | string | if multi-ws |
email, firstname, lastname, birthdate, gender, company, country, state, city, address, postalCode | string | no |
tags | string[] | no |
customFields | Record<string, unknown> | no |
owners | string[] | no |
Example
{
"name": "create_client",
"arguments": {
"phoneNumber": "+521234567890",
"name": "Ana López",
"email": "ana@example.com",
"tags": ["vip", "nuevo"]
}
}
update_client
Updates a customer by phone number. Only the fields provided are applied.
Accepts the same fields as create_client (all optional except phoneNumber), plus:
| Field | Type | Description |
status | "active" \| "blocked" | Customer status. |
delete_client
| Field | Type | Required |
identifier | string | yes |
workspace | string | if multi-ws |
Irreversible operation.