Presencia y Escritura

Indicadores de presencia en tiempo real: escritura, grabación y estado del chat.

Visión General

Los eventos de presencia son señales de metadatos de mejor esfuerzo y alta frecuencia. Trátelos como pistas transitorias de UI, no como estado duradero.

Reportar Presencia (Empresa → Cliente)

El operador reporta presencia vía Socket.io. El chat del cliente muestra indicadores "escribiendo..." o "grabando...".

cURL
curl -X POST https://api.ixblix.app/api/conversations/{conversationId}/presence \
  -H "X-API-Key: smci_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "type": "typing" }'

Tipos válidos: typing, recording, stopped.

Reportar Presencia (Cliente → Operador)

El chat del cliente reporta presencia. El operador recibe webhooks.

cURL
curl -X POST https://api.ixblix.app/api/conversations/{token}/presence \
  -H "Content-Type: application/json" \
  -d '{ "type": "typing" }'

Usa el token de la conversación (token del deeplink) en lugar de la clave de API.

Eventos de Webhook

EventoDescripción
TYPINGEl cliente comenzó a escribir.
STOPPED_TYPINGEl cliente dejó de escribir sin enviar.
RECORDINGEl cliente está grabando un mensaje de audio.
CHAT_CLOSEDEl cliente cerró la ventana del chat.

Payload del Webhook

Webhook TYPING
{
  "event": "TYPING",
  "companyId": "660f9511-...",
  "conversationId": "880fc844-...",
  "type": "typing"
}

Eventos Socket.io (Lado del Cliente)

La app web del cliente escucha estos eventos Socket.io:

  • presence — indicador de escritura/grabación del operador.
  • message_delivered — el dispositivo del operador recibió un mensaje del cliente.
  • message_read — el operador leyó un mensaje del cliente.