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

# Canales de mensajería (Telegram, Slack, Messenger)

> Conecta bots de texto a asistentes desde Configuración → Canales

El texto multicanal permite que el mismo asistente responda a los clientes en Telegram, Slack, Messenger, Microsoft Teams, Discord, Google Chat, X y WhatsApp. El teléfono y la **voz** de WhatsApp usan la pila de voz de la plataforma; estos canales de mensajería son solo de texto (la voz de WhatsApp comparte las mismas credenciales de Meta que el texto).

## Herramientas (paridad con voz)

Las siete plataformas de mensajería comparten un mismo pipeline de respuestas. El asistente puede usar las mismas herramientas aptas para texto que en voz:

* Herramientas API (HTTP)
* Herramientas MCP (servidores de espacio de trabajo + asistente)
* Búsqueda en la base de conocimientos
* Integraciones de calendario (nativa / Cal.com / Calendly)
* Integradas: hora actual, horario comercial, enviar SMS, enviar correo electrónico, programar devolución de llamada, definir variable

Las acciones exclusivas de voz se omiten en los canales de texto: transferencia de llamada/asistente, finalizar llamada, DTMF/teclado, cobro con tarjeta. Las respuestas automáticas por correo electrónico usan la misma capa de herramientas (`purpose=email`).

## Requisitos previos

1. Tu plan incluye el canal que quieres conectar (Telegram, Slack, Messenger, Teams, Discord, Google Chat, X, WhatsApp texto / WhatsApp voz).
2. La base del webhook es tu **URL de la app base**: el host de la plataforma (por ejemplo, `https://app.famulor.io`) o el dominio personalizado verificado de este espacio de trabajo. No necesitas acceso a las variables de entorno del servidor; el producto genera las URLs de webhook por ti después de conectar un canal.
3. La IA de la plataforma para las respuestas de texto la configura el operador.

## Conectar (interfaz del producto)

Configuración → Canales → Telegram / Slack / Messenger:

1. Elige un asistente.
2. Conecta en un clic si está disponible (**Añadir a Slack**, **Conectar con Facebook**) o pega las credenciales manuales.
3. Configura los ajustes de conversación (más abajo).
4. Guarda: los webhooks de Telegram se registran automáticamente; Slack/Messenger **BYO** necesitan la URL de webhook mostrada. Las instalaciones one-click usan el webhook compartido de la plataforma.

### Slack: Añadir a Slack

Incorporación preferida (solo dominio de plataforma / workspaces raíz) con la **app Slack de Famulor** compartida: Configuración → Slack → **Añadir a Slack**. Los eventos llegan a `/api/webhooks/slack` y se enrutan por `team_id`. El pegado manual sigue como alternativa (hosts de marca blanca: solo manual).

API pública: `GET/POST /api/v1/slack/oauth` · MCP: `get_slack_oauth_config`, `start_slack_oauth`.

### Messenger: conectar con Facebook

La incorporación preferida (solo para dominio de la plataforma / espacios de trabajo raíz, no para hosts de marca blanca) usa la **misma app de Meta de la plataforma** que WhatsApp:

1. Configuración → Canales → Messenger → **Conectar con Facebook** (requiere HTTPS)
2. El usuario concede permisos de página → elige una página de Facebook → creamos el conector y llamamos a `subscribed_apps`
3. Los operadores de la plataforma configuran el webhook de Messenger a nivel de app de Meta en la **URL de la app base** (`/api/webhooks/meta/messenger-platform`) y se suscriben a **messages**
4. Los eventos se enrutan al conector del espacio de trabajo según el ID de página

Pegar el token de página a mano sigue disponible como alternativa (la URL de webhook por conector se muestra en Configuración).

API pública: `GET/POST /api/v1/messenger/facebook-login` · MCP: `complete_messenger_facebook_login`.

## Configuración de conversación

Se aplica a todos los canales de texto (Telegram, Slack, Messenger):

| Ajuste                                         | Valor por defecto | Descripción                                                                                                                                                                       |
| ---------------------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Retraso de respuesta (segundos)**            | `5`               | Control deslizante `0`–`30`. Espera tras el último mensaje del cliente antes de responder (agrupa ráfagas rápidas de varios mensajes). `0` = responde al instante a cada mensaje. |
| **Tiempo de inactividad (minutos)**            | `30`              | Minutos de inactividad tras el último mensaje del cliente antes de marcar la conversación como finalizada.                                                                        |
| **Permitir reactivación**                      | desactivado       | Si está activado, el webhook de conversación finalizada puede dispararse de nuevo cuando el cliente reanuda una conversación finalizada y vuelve a quedar inactivo.               |
| **URL del webhook de conversación finalizada** | vacío             | URL HTTPS opcional. Déjalo vacío para desactivarlo. Usa **Realizar solicitud de prueba** para enviar un payload de ejemplo.                                                       |

### Webhook de conversación finalizada

Cuando una conversación finaliza (por tiempo de inactividad), la plataforma:

1. Marca la conversación como finalizada.
2. Ejecuta las variables de **análisis posterior a la llamada** del asistente sobre la transcripción del chat (el mismo `analysis_config` que en voz).
3. Envía (POST) un payload JSON a tu URL de webhook (si está configurada), incluidas las variables extraídas.

Cron: `/api/cron/messaging-inactivity` (cada minuto en la plataforma).

## Apps de plataforma que creas

| Canal       | Qué creas                                                                          | Campos clave                                                                                     |
| ----------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Telegram    | Bot mediante [@BotFather](https://t.me/BotFather)                                  | Token del bot                                                                                    |
| Slack       | App de Slack (Bot + Event Subscriptions)                                           | Token del bot `xoxb-…`, Signing secret                                                           |
| Messenger   | App de Meta de la plataforma (Conectar con Facebook) o app de Meta propia + página | Token de acceso de página, App secret, Verify token (BYO); Facebook Login para la ruta preferida |
| Teams       | Azure Bot                                                                          | App ID, App password                                                                             |
| Discord     | Aplicación de Discord                                                              | Token del bot, clave pública, Application ID                                                     |
| Google Chat | App de GCP Chat + cuenta de servicio                                               | JSON de la cuenta de servicio                                                                    |
| X           | App de desarrollador de X + webhook de Activity API                                | Consumer secret, token de usuario OAuth (o client ID + refresh token)                            |

Patrón de URL de webhook:

`https://app.famulor.io/api/webhooks/messaging/{platform}/{connector_id}`

Resolución del host (solo estas dos opciones, sin alternativa de revendedor/subdominio):

1. El dominio personalizado verificado propio de este espacio de trabajo, administrado en **Administrador de inquilino → Configuración → Dominios**
2. Si no, la **URL de la app base** de la plataforma

El `setWebhook` de Telegram usa automáticamente esa misma URL resuelta.

## API pública y MCP

* REST: `GET/POST /api/v1/messaging-connectors`, `PATCH/DELETE /api/v1/messaging-connectors/{id}`
* Plantillas de WhatsApp: `GET/POST /api/v1/whatsapp/templates`
* Voz saliente de WhatsApp: `POST /api/v1/calls/whatsapp-outbound`
* Herramientas MCP: `list_messaging_connectors`, `create_messaging_connector`, `update_messaging_connector`, `delete_messaging_connector`, además de herramientas de plantillas/llamadas de WhatsApp
* Etiqueta OpenAPI: **Messaging** / **Calls**

## WhatsApp

Configuración completa (credenciales, campos de webhook, plantillas, interruptores de voz): **[WhatsApp (Texto + Voz)](/channels/whatsapp)**.

* **Texto:** Meta Cloud API sobre `messaging_connectors` (`platform=whatsapp`), flag de plan `whatsapp_channel`.
* **Voz:** conector de voz de WhatsApp de la plataforma con las mismas credenciales; consulta [WhatsApp Voice](/telephony/whatsapp-voice), flag de plan `whatsapp_voice`.
* **Plantillas:** `GET/POST /api/v1/whatsapp/templates` (+ herramientas MCP).
* **Voz saliente:** `POST /api/v1/calls/whatsapp-outbound`.
