> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zelto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kapso (WhatsApp)

> Conecta un proyecto de Kapso y trae a Zelto las conversaciones de WhatsApp que atienden tus agentes, sin audio y sin código de carga.

[Kapso](https://kapso.ai) es WhatsApp para desarrolladores: tu agente recibe un
número de WhatsApp, y Kapso le entrega cada mensaje (a través de un Workflow de
Kapso o de tu propio webhook) y guarda la conversación. Zelto se conecta al mismo
proyecto y convierte esas conversaciones en
[conversaciones](/es/docs/conversations) que puedes revisar, sobre las que puedes
ejecutar [monitores](/es/docs/monitors) y de las que puedes obtener
[hallazgos](/es/docs/findings), exactamente igual que una llamada de voz, pero
sin grabación.

## Conectar

1. Abre **Configuración → Integraciones → Kapso** y haz clic en **Conectar Kapso**.
2. Pega la **clave de API del proyecto** de Kapso. Créala en la configuración de
   tu proyecto de Kapso, en **API Keys**. Zelto la usa para listar tus números de
   WhatsApp, leer conversaciones y registrar su webhook.

Puedes conectar varios proyectos de Kapso a una misma organización.

## Importar tus números

En Kapso, un agente habla como un **número de teléfono de WhatsApp**, así que en
Zelto cada número importado es un [agente](/es/docs/agents). Importa desde
**Agentes → Agregar agente → Kapso**, o desde el paso de conexión de **Primeros
pasos**, que lista todos los números del proyecto con su volumen reciente de
conversaciones.

Importar un número hace tres cosas:

* **Registra el webhook de Zelto en el número** dentro de Kapso, suscrito a los
  eventos `whatsapp.conversation.inactive` y `whatsapp.conversation.ended` con una
  ventana de inactividad de 60 minutos. No hay nada que pegar.
* **Importa el historial** de conversaciones activas en los últimos 30 días (o las
  últimas 2000, lo que sea menor) desde el selector de onboarding, y 14 días desde
  la página de Agentes.
* **Lee el prompt del agente** cuando el número lo atiende un Workflow de Kapso:
  Zelto sigue el workflow vinculado al número y guarda el prompt de sistema de su
  nodo `agent` en el agente de Zelto. Los números atendidos por un agente externo
  (tu propio servidor detrás de un webhook de Kapso) se importan sin prompt; Kapso
  no tiene ninguno que ofrecer.

## Cómo un hilo de WhatsApp se convierte en conversaciones

Una conversación de Kapso es el hilo completo de un contacto con tu número. Vive
hasta que alguien la cierra a mano, así que no es la unidad adecuada para
analizar: un cliente recurrente sería una única transcripción sin fin.

En su lugar, Zelto divide cada hilo en **sesiones** —ráfagas de mensajes sin
pausas de 60 minutos o más en su interior— y guarda **una conversación de Zelto
por sesión**. Una sesión se ingiere cuando lleva en silencio ese tiempo (justo
cuando Kapso emite `whatsapp.conversation.inactive`) o cuando el hilo se cierra.
Los mensajes entrantes son los turnos del cliente; los salientes, los del agente.
Imágenes, documentos, ubicaciones, respuestas interactivas y audios (usando la
transcripción de Kapso) se muestran como turnos entre corchetes.

<Note>
  Kapso no registra si un mensaje saliente lo envió la IA, una persona desde la
  bandeja de entrada de Kapso o tu API. Zelto atribuye todos los turnos salientes
  al agente. Si una persona tomó el control de la conversación, sus respuestas se
  leen como turnos del agente.
</Note>

Las sesiones de menos de cuatro turnos se guardan pero no se analizan, la misma
regla que siguen las llamadas de voz.

## Vías de entrega

* **Webhook (principal)**: los eventos de cierre de sesión de arriba. Kapso firma
  cada entrega con el secreto compartido que se muestra en **Administrar**; Zelto
  lo verifica y solo acepta eventos de los números que importaste.
* **Sincronización horaria (respaldo)**: cada número importado se vuelve a leer
  cada hora en busca de hilos activos desde la última sincronización, así que un
  webhook pausado o perdido se recupera en menos de una hora. Ambas vías se
  deduplican por sesión, así que nada llega dos veces.

### Registrar el webhook a mano

Si Zelto no pudo registrar el webhook (por ejemplo, una clave sin permisos de
webhooks), abre **Configuración → Integraciones → Kapso → Administrar** y crea el
webhook en Kapso tú mismo:

* **URL**: la URL del webhook que muestra la tarjeta.
* **Secreto**: el secreto del webhook que muestra la tarjeta, pegado como
  `secret_key`.
* **Eventos**: `whatsapp.conversation.inactive` y `whatsapp.conversation.ended`.
* **Ventana de inactividad**: 60 minutos, para que la idea de "silencio" de Kapso
  coincida con el límite de sesión de Zelto.

## Verificar la primera conversación

Escribe a tu número de WhatsApp, intercambia unos cuantos turnos y espera a que
pase el periodo de silencio. La sesión aparece en
[Conversaciones](/es/docs/conversations) con la insignia de Kapso en su agente.
Hasta entonces, la tarjeta **Conexiones** del agente muestra el último webhook que
Kapso entregó y marca los rechazados: un `401` casi siempre significa que el
secreto del webhook en Kapso no coincide con el de la tarjeta.

## Estado de la conexión y desconexión

La tarjeta lista los proyectos conectados, la URL del webhook y el secreto
compartido. **Desconectar** elimina la clave de API guardada y, en la medida de lo
posible, los webhooks que Zelto registró en tus números con esa clave; las
conversaciones ya ingeridas se conservan.

## Relacionado

* [Chatbots y conversaciones de texto](/es/docs/integrations/chatbot-text-conversations): la vía de carga genérica para agentes de texto en otras plataformas.
* [Conversaciones](/es/docs/conversations): dónde aparecen las sesiones de WhatsApp.
* [Agentes](/es/docs/agents): cómo Zelto modela cada número.
* [Hallazgos](/es/docs/findings): qué revela el análisis de cada sesión.
