CRM v1 solo lectura
crm. month_ summary_ get
Lee cómo va el mes, pieza por pieza y con las mismas cifras que daría cada lectura: clientes nuevos, lo cobrado, propuestas enviadas y aceptadas, tratos ganados, citas y el resultado contable. Una pieza que el rol de la persona no ve, o cuya lectura está apagada, vuelve en unavailable.
Última actualización
POST /api/v1/reads/crm.month_summary_get- Alcance del token
crm.month_summary_get@1- Permiso del workspace
api.crm.month_summary_getapagado 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
Sin campos.
Respuesta — output cuando status es done
| campo | tipo | reglas | |
|---|---|---|---|
periodStart | string | obligatorio | ^\d{4}-\d{2}-\d{2}$ |
periodEnd | string | obligatorio | ^\d{4}-\d{2}-\d{2}$ |
newClients | object | null | obligatorio | |
collected | object | null | obligatorio | |
proposals | object | null | obligatorio | |
dealsWon | object | null | obligatorio | |
appointments | object | null | obligatorio | |
monthResult | object | null | obligatorio | |
unavailable | object[] | obligatorio |
unavailable[]
| campo | tipo | reglas | |
|---|---|---|---|
piece | "new_clients" | "collected" | "proposals" | "deals_won" | "appointments" | "month_result" | obligatorio | |
reason | "role" | "off" | obligatorio |
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.month_summary_get \
-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.getMonthSummary() |
| niiko (Python) | niiko.get_month_summary() desde 0.3.0 · aún no está en el registro |
| niiko-cli | niiko read crm.month_summary_get |
| n8n-nodes-niiko | Sin lecturas: el nodo lleva una llave, y leer pide una persona por OAuth. |
| niiko-mcp-server | crm_month_summary_get 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.