Clientes

ToolEndpoint RESTAnotaciones
list_clientsGET /v1/clientslectura, idempotente
get_clientGET /v1/clients/{identifier}lectura, idempotente
list_client_conversationsGET /v1/clients/{clientId}/conversationslectura, idempotente
create_clientPOST /v1/clientsescritura (upsert si ya existe)
update_clientPATCH /v1/clients/{phoneNumber}escritura, parcial
delete_clientDELETE /v1/clients/{identifier}destructiva
block_clientPATCH /v1/clients/{identifier}/moderationdestructiva
unblock_clientPATCH /v1/clients/{identifier}/moderationescritura
reset_client_strikesPATCH /v1/clients/{identifier}/moderationdestructiva

Las tres herramientas de moderación pegan al mismo endpoint declarativo: la API expone uno solo porque los verbos se traslapan (desbloquear ya restablece strikes), pero aquí se conservan como verbos porque el nombre de la herramienta es lo que le dice al agente qué hace.

Además de status, get_client devuelve el objeto moderation completo. list_clients sólo devuelve status.


list_clients

Lista clientes del workspace agrupados, con paginación y filtros opcionales.

CampoTipoDefault
limit1-20050
pageTokenstring
offset≥ 0 (máx 100000)0
sortBy"name" \| "creationDate"name
sortDirection"asc" \| "desc"asc
searchTermstring
status"active" \| "blocked"
tagsstring[] (máx 10)
dateFilterobjeto

status: "active" incluye a los clientes que nunca tuvieron un estado explícito.

pageToken es el cursor de la respuesta anterior y se prefiere sobre offset; no se combinan.


get_client

CampoTipoRequeridoDescripción
identifierstringID del cliente o número de teléfono (E.164).

Además del perfil, devuelve el estado de moderación del contacto (strikes acumulados, última falta, motivo y fecha del bloqueo). Esa sección sólo aparece si el contacto tiene historial o está bloqueado.


list_client_conversations

Lista todas las conversaciones del cliente en todos sus canales y agentes, incluidos chats API. Cada resultado incluye el resumen completo sin messages: id, conversationId, clientId, agentId, canSendDirectMessage, workspaceId, channelId, contactName, phoneNumber, topic, platform, source, status, operation, messageCount, owners, tags, creationDate y lastUpdate.

id es el documento canónico, conversationId identifica el hilo y clientId identifica al cliente. canSendDirectMessage solo puede ser false en WhatsApp, Instagram y Messenger/Facebook, según el último mensaje del usuario; en chats internos de Platica siempre es true.

CampoTipoRequeridoDefaultDescripción
clientIdstringID del cliente o teléfono E.164.
channelIdstringnoFiltra por canal.
agentIdstringnoFiltra por agente principal.
limit1-200no50Máximo de resultados.
offset≥ 0no0Offset de paginación.

create_client

Crea un nuevo cliente; si ya existe uno con el mismo teléfono, lo actualiza (upsert).

CampoTipoRequerido
phoneNumberstring E.164
namestring
workspacestringsi multi-ws
email, firstname, lastname, birthdate, gender, company, country, state, city, address, postalCodestringno
tagsstring[]no
customFieldsRecord<string, unknown>no
ownersstring[]no

Ejemplo

{
  "name": "create_client",
  "arguments": {
    "phoneNumber": "+521234567890",
    "name": "Ana López",
    "email": "ana@example.com",
    "tags": ["vip", "nuevo"]
  }
}

update_client

Actualiza un cliente por su número de teléfono. Sólo se aplican los campos provistos.

Acepta los mismos campos que create_client (todos opcionales excepto phoneNumber) más:

CampoTipoDescripción
status"active" \| "blocked"Bloquea o desbloquea al contacto, con los mismos efectos que block_client / unblock_client.

delete_client

CampoTipoRequerido
identifierstring
workspacestringsi multi-ws

Borrado irreversible. El documento del contacto se conserva con sus identificadores de canal, pero se limpian sus datos personales, etiquetas y campos personalizados, y deja de aparecer en listados. Sus notas privadas y los adjuntos de éstas se eliminan de forma definitiva.


block_client

Bloquea a un contacto: sus conversaciones futuras nacen como spam, los agentes dejan de responderle y las que ya estaban abiertas se marcan como spam para que el bloqueo aplique de inmediato.

CampoTipoRequeridoDescripción
identifierstringID del cliente o teléfono (E.164).
workspacestringsi multi-ws
reasonstring (máx 120)noMotivo que queda registrado. Por defecto api_request.

Ejemplo

{
  "name": "block_client",
  "arguments": {
    "identifier": "+521234567890",
    "reason": "abuso_reportado"
  }
}

unblock_client

Desbloquea a un contacto, devuelve a finished las conversaciones que el bloqueo había marcado como spam y pone sus strikes en cero, para que una sola falta más no lo vuelva a bloquear. El registro de la última falta se conserva.

CampoTipoRequerido
identifierstring
workspacestringsi multi-ws

reset_client_strikes

Pone en cero los strikes de moderación del contacto. No lo desbloquea: para eso usa unblock_client, que ya restablece los strikes de paso. Úsala para perdonar a un contacto que acumuló faltas pero todavía no fue bloqueado.

CampoTipoRequeridoDescripción
identifierstringID del cliente o teléfono (E.164).
workspacestringsi multi-ws
clearHistorybooleannoBorra además el registro de la última falta (categorías, términos, severidad).