CRM v1 solo lectura
crm. clients_ search
Cuenta y busca los clientes del CRM, opcionalmente por parte del nombre, estado, etiqueta o fecha de alta. Devuelve el total, el total por estado y hasta 15 clientes con su estado, su dueño y su día de alta. Sin datos de contacto ni notas.
Última actualización
POST /api/v1/reads/crm.clients_search- Alcance del token
crm.clients_search@1- Permiso del workspace
api.crm.clients_searchapagado por defecto- Quién lee
- La persona detrás del token, con su rol. Quien deja el workspace deja de leer.
Tres permisos
Un token con ese alcance, que el dueño del workspace haya encendido la lectura, y que el rol de la persona la vea en el producto. Ninguna basta sola. Solo con OAuth →
Petición
| campo | tipo | reglas | |
|---|---|---|---|
search | string | opcional | max 200 |
status | "lead" | "qualified" | "client" | "churned" | "reactivated" | "completed" | opcional | |
tag | string | opcional | max 100 |
createdSince | string (date-time) | opcional |
Respuesta — output cuando status es done
| campo | tipo | reglas | |
|---|---|---|---|
total | integer | obligatorio | ≥ 0 |
totalIsMinimum | boolean | obligatorio | |
byStatus | map<string, unknown> | obligatorio | |
clients | object[] | obligatorio |
clients[]
| campo | tipo | reglas | |
|---|---|---|---|
name | string | obligatorio | |
status | "lead" | "qualified" | "client" | "churned" | "reactivated" | "completed" | obligatorio | |
owner | string | null | obligatorio | |
createdOn | string | obligatorio | ^\d{4}-\d{2}-\d{2}$ |
Ejemplo
# Reads take an OAuth access token, not an API key, and no idempotency key: reading changes nothing.
curl -X POST https://niiko.org/api/v1/reads/crm.clients_search \
-H "Authorization: Bearer $NIIKO_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
# 200 → done · 4xx → refused, with a named reasonPor qué puede negarse
Cada motivo dice quién puede arreglarlo y cómo; detail.message, cuando viene, dice qué hacer. Negativas y códigos HTTP →
invalid_inputrole_forbiddengrant_offreads_need_a_person
En los clientes
| @vorluno/niiko-sdk | niiko.searchClients() |
| niiko (Python) | niiko.search_clients() desde 0.3.0 · aún no está en el registro |
| niiko-cli | niiko read crm.clients_search |
| n8n-nodes-niiko | Sin lecturas: el nodo lleva una llave, y leer pide una persona por OAuth. |
| niiko-mcp-server | crm_clients_search readOnlyHint |
Historial
- Los SDK y la CLI leen
@vorluno/niiko-sdk,niikoyniiko-cli0.3.0 aceptan un token de acceso OAuth (accessToken,access_token=,niiko login --token) y tienen un método de solo lectura por lectura:getCollections(),get_collections(),niiko read kiipu.collections_get. Una lectura tiene dos desenlaces, hecha o negada, y no lleva clave de idempotencia. - Lecturas declaradas, solo con OAuth
POST /api/v1/reads/{id}contesta nueve lecturas declaradas —lo que se debe, lo cobrado, la agenda, el embudo, el mes—, nunca tablas ni texto que alguien escribió. Solo con un token OAuth, en nombre de una persona y con su rol (una llave de API recibereads_need_a_person); cada lectura tiene su interruptor en el workspace, apagado por defecto. El servidor MCP las lista como herramientas de solo lectura.