Moderar un Cliente

Un solo endpoint para el estado de moderación del cliente: declaras cómo quieres que quede y la API se encarga de los efectos.

PATCH https://api.platica.mx/v1/clients/{id}/moderation

Parámetros de URL

ParámetroTipoDescripciónRequerido
idstringPuede ser el ID del cliente o su número de teléfono en formato E.164 sin +

Cuerpo de la solicitud

Debes enviar al menos uno de status, resetStrikes o clearHistory.

CampoTipoDescripción
statusenumblocked para bloquear, active para desbloquear
reasonstringMotivo del bloqueo que queda registrado. Máximo 120 caracteres. Sólo aplica con status: "blocked". Por defecto: api_request
resetStrikesbooleanPone los strikes en cero. Implícito cuando envías status: "active"
clearHistorybooleanBorra además el registro de la última falta

Cómo se hace cada operación

Bloquear

{ "status": "blocked", "reason": "abuso_reportado" }

Desbloquear

{ "status": "active" }

Restablecer los strikes sin desbloquear

{ "resetStrikes": true }

Desbloquear y borrar todo el historial de moderación

{ "status": "active", "clearHistory": true }

Qué hace cada campo

status: "blocked"

  1. Deja al cliente en status: "blocked", con lo que sus conversaciones futuras nacen marcadas como spam y los agentes las omiten.
  2. Registra moderation.blockedAt, moderation.blockedBy y moderation.blockedReason.
  3. Marca como spam las conversaciones que el cliente ya tenía abiertas, para que el bloqueo aplique de inmediato. Las que ya estaban en spam, finished o expired no se tocan.

status: "active"

  1. Deja al cliente en status: "active" y limpia los campos moderation.blocked*.
  2. Pone los strikes en cero, aunque no lo hayas pedido. Si el contador se quedara donde estaba, la siguiente falta volvería a cruzar el límite y el cliente quedaría bloqueado de inmediato.
  3. Devuelve a finished las conversaciones que estaban en spam.

resetStrikes y clearHistory

resetStrikes pone moderation.totalStrikes en cero y borra moderation.lastAction. clearHistory borra además moderation.lastFlaggedAt, lastSource, lastCategories, lastMatchedTerms y lastSeverity.

Ninguno de los dos cambia el status: un cliente bloqueado sigue bloqueado después de restablecerle los strikes. Úsalos para perdonar a un cliente que acumuló faltas pero todavía no fue bloqueado.

Respuesta

{
  "status": "success",
  "message": "Client moderation updated successfully",
  "data": {
    "id": "274fc73cb7d84a17955914fdc1a1f9d0",
    "status": "active",
    "strikesReset": true,
    "clearedHistory": false,
    "previousStrikes": 3,
    "conversationsUpdated": 2
  }
}
CampoDescripción
idID interno del cliente
statusEstado con el que quedó el cliente
strikesResetSi los strikes se pusieron en cero
clearedHistorySi se borró el registro de la última falta
previousStrikesStrikes que tenía el cliente antes de la llamada
conversationsUpdatedCuántas conversaciones se sincronizaron. Siempre 0 si no enviaste status

Webhooks

Lo que enviastesource del client.updated
status: "blocked"api.client.blocked
status: "active"api.client.unblocked
Sólo resetStrikes / clearHistoryapi.client.strikes_reset

Cuando envías status recibes además un conversation.status.updated por cada conversación sincronizada.

Errores

CódigoMotivo
400El cuerpo no pide nada, trae campos desconocidos, o falta workspace cuando la API key tiene acceso a varios
404No existe un cliente con ese identificador