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

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

> Conecta Discord, Teams, Google Chat y otros canales de mensajería a un único asistente compartido

El texto multicanal permite que el mismo asistente responda a los clientes en Telegram, Slack, Messenger, Microsoft Teams, Discord, Google Chat, X y WhatsApp. Estos canales de mensajería son solo de texto; el teléfono y la voz de WhatsApp se configuran por separado. Sea cual sea el canal, toda conversación llega a [Historial](/es/monitoring/history).

## Herramientas (paridad con voz)

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 (motor integrado / Cal.com / Calendly / Acuity / eTermin — los calendarios de HighLevel son solo de voz)
* Integradas: hora actual, horario comercial, enviar SMS, enviar correo electrónico, programar devolución de llamada, definir variable

Las acciones exclusivas de voz no están disponibles en los canales de texto: transferencia de llamada o asistente, finalizar llamada, DTMF/teclado y cobro con tarjeta.

## Requisitos previos

1. Tu plan incluye el canal que quieres conectar (Telegram, Slack, Messenger, Teams, Discord, Google Chat, X, WhatsApp texto / WhatsApp voz).
2. Si un proveedor requiere un webhook, usa la URL exacta que aparece después de conectar el canal. Los dominios personalizados verificados son compatibles automáticamente.

## Conectar (interfaz del producto)

Settings → Channels → Telegram / Slack / Messenger:

1. Elige un asistente.
2. Conecta en un clic si está disponible (**Add to Slack**, **Connect with Facebook**) o pega las credenciales del bot manualmente.
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 en sus consolas de desarrollador. Las instalaciones con un clic no requieren copiar ninguna URL.

### Slack — Add to Slack

La incorporación preferida (solo dominio de la plataforma / espacios de trabajo raíz — no hosts de marca blanca) usa la **app de Slack compartida de Famulor**:

1. Settings → Channels → Slack → **Add to Slack**
2. Aprueba los permisos de Slack solicitados.
3. Vuelve a la configuración del canal y confirma que la conexión esté activa.

El pegado manual de bot token + signing secret sigue disponible como alternativa (la URL de webhook por conector se muestra en Settings). Los hosts de marca blanca solo tienen la opción manual (la app compartida aparecería como Famulor).

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

### Messenger — Connect with Facebook

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

1. Settings → Channels → Messenger → **Connect with Facebook** (requiere HTTPS)
2. Aprueba los permisos solicitados y selecciona una página de Facebook.
3. Vuelve a la configuración del canal y confirma que la conexión esté activa.

El pegado manual del token de página sigue disponible como alternativa (la URL de webhook por conector se muestra en Settings).

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:

| Ajuste                             | Valor por defecto | Descripción                                                                                                                                                                               |
| ---------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Response delay (seconds)**       | `5`               | Control deslizante `0`–`30`. Espera tras el último mensaje del cliente antes de dar una respuesta (agrupa ráfagas rápidas de varios mensajes). `0` = responde al instante a cada mensaje. |
| **Inactivity timeout (minutes)**   | `30`              | Minutos de inactividad tras el último mensaje del cliente antes de marcar la conversación como finalizada.                                                                                |
| **Allow re-triggering**            | 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.                       |
| **Conversation ended webhook URL** | vacío             | URL HTTPS opcional. Déjalo vacío para desactivarlo. Usa **Test webhook** para enviar un payload de ejemplo.                                                                               |

### Webhook de conversación finalizada

Tres cosas envían una entrega `conversation.ended`:

* **Inactivity** — el tiempo de inactividad configurado arriba transcurre sin ningún mensaje nuevo del cliente (se comprueba aproximadamente una vez por minuto).
* **Manual** — alguien selecciona **Actions → End conversation** en una conversación abierta en [Historial](/es/monitoring/history).
* **Test** — seleccionas **Test webhook** en la configuración del conector; esto siempre envía un payload de ejemplo realista, haya terminado o no una conversación real todavía.

Antes de enviarlo, la plataforma ejecuta los campos de [análisis](/es/assistants/analysis) configurados del asistente sobre la transcripción y cierra la conversación, así que el payload siempre lleva el análisis terminado en lugar de uno parcial. Por defecto, cada conversación notifica a su webhook una sola vez; activa **Allow re-triggering** si un cliente puede reanudar una conversación finalizada y quieres una notificación nueva la próxima vez que quede inactiva.

Una entrega tiene este aspecto:

```json theme={null}
{
  "event": "conversation.ended",
  "timestamp": "2026-08-26T14:32:07.000Z",
  "reason": "inactivity",
  "data": {
    "tenant_id": "9f86d081-0000-4000-8000-000000000020",
    "conversation_id": "c1b2c3d4-0000-4000-8000-000000000010",
    "platform": "telegram",
    "status": "closed",
    "duration_sec": 187,
    "message_count": 6,
    "conversation": {
      "id": "c1b2c3d4-0000-4000-8000-000000000010",
      "platform": "telegram",
      "external_thread_id": "123456789",
      "external_user_id": "123456789",
      "external_user_name": "Max Mustermann",
      "started_at": "2026-08-26T14:28:40.000Z",
      "ended_at": "2026-08-26T14:32:07.000Z",
      "last_customer_message_at": "2026-08-26T14:29:55.000Z"
    },
    "connector": { "id": "1b2c3d4e-0000-4000-8000-000000000030", "name": "Support Telegram", "platform": "telegram" },
    "assistant": { "id": "2c3d4e5f-0000-4000-8000-000000000040", "name": "Support Assistant" },
    "transcript": "Customer: Hi, I need help with my order.\nAssistant: Of course — what's your order number?",
    "messages": [
      { "id": "msg-1", "role": "user", "direction": "inbound", "text": "Hi, I need help with my order.", "created_at": "2026-08-26T14:28:40.000Z" }
    ],
    "analysis": {
      "summary": "Customer asked about an order and got help finding it.",
      "sentiment": "positive",
      "success": true,
      "success_reason": "The order was located and the delivery date confirmed.",
      "data": { "order_number": "12345" },
      "analyzed_at": "2026-08-26T14:32:07.000Z"
    }
  }
}
```

`reason` es `inactivity`, `manual` o `test`. `conversation`, `connector`, `assistant`, `transcript` y `analysis` también se repiten en el nivel superior del payload, para receptores más antiguos construidos sobre esa forma plana en lugar del envoltorio `data`. Dentro de `analysis`, solo están presentes las partes que activaste en el asistente — sentimiento, éxito junto con su motivo, y un mapa `data` con tus propios campos extraídos; consulta [Análisis](/es/assistants/analysis) para ver la forma completa.

Configura el destino en el campo **Conversation ended webhook URL** de arriba, o con `PATCH /api/v1/messaging-connectors/{id}` / `update_messaging_connector` — cada conector de canal tiene su propia URL. Para volver a enviar una entrega después de los hechos — por ejemplo, tras una reevaluación que cambió el análisis — usa **Resend webhooks** en la conversación dentro de [Historial](/es/monitoring/history).

## Conectores Beta

Otros diez canales se conectan de la misma manera en cuanto tu espacio de trabajo activa **Beta Features** en **Settings → Workspace**: Freshdesk, Gmail, Outlook, Zendesk, ServiceNow, Intercom, Zoho Mail, AgentMail, Instagram y Zulip. Sus entradas permanecen fuera de **Settings → Channels** hasta que actives Beta Features.

En lugar de pegar un token de bot o un secreto de app, estos canales se conectan mediante el flujo de conector OAuth de Famulor: inicia sesión en la cuenta una vez, y Famulor mantiene la conexión activa. Además de la [configuración de conversación](#configuración-de-conversación) que comparten todos los canales de texto, un conector Beta puede añadir:

| Ajuste                    | Qué hace                                                                                                                                                                | Dónde se aplica                                       |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| **Reply mode**            | Envía la respuesta del asistente automáticamente, o la guarda como borrador en el buzón para que un compañero la revise y la envíe.                                     | Gmail, Outlook                                        |
| **Watch**                 | Qué parte del buzón responde el asistente: la bandeja de entrada (por defecto), todo el buzón, o una única etiqueta o carpeta.                                          | Gmail, Outlook, Zoho Mail                             |
| **Extra action**          | Una capacidad adicional específica de ese servicio — aplicar una etiqueta, etiquetar un ticket, reaccionar a un mensaje, y similares. Desactivada hasta que la actives. | Cada conector Beta, una acción cada uno               |
| **Import existing items** | Al conectar, hasta dónde retroceder para importar mensajes ya existentes — la última hora, 24 horas o 7 días. Por defecto, solo mensajes nuevos.                        | Freshdesk, ServiceNow, Intercom, Zoho Mail, Instagram |

<Warning>
  **Import existing items** no es una importación silenciosa: cada mensaje importado recibe una respuesta real y automática del asistente. Déjalo en **Only new messages** a menos que quieras que el asistente responda a tu bandeja de mensajes pendientes existente.
</Warning>

## Facturación

Enviar y recibir mensajes en Telegram, Slack, Messenger, Teams, Discord, Google Chat, X y los conectores Beta cuesta créditos por mensaje, a la tarifa **Messaging (sent)** / **Messaging (received)** de tu espacio de trabajo — la misma tarifa que usa el [texto de WhatsApp](/es/channels/whatsapp#facturación). Las tarifas actuales están en la [página Usage](https://app.famulor.io/usage); consulta también [Cómo se factura el uso](/es/billing/minutes).

## 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 de Famulor (Add to Slack) o app de Slack propia BYO (Bot + Event Subscriptions) | Instalación OAuth; o token del bot `xoxb-…` + Signing secret (BYO)                               |
| Messenger   | App de Meta de la plataforma (Connect with 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)                            |

Copia la URL de webhook específica del conector que se muestra en **Settings → Channels**. Telegram la configura automáticamente después de guardar.

## API pública y MCP

* REST: `GET/POST /api/v1/messaging-connectors`, `PATCH/DELETE /api/v1/messaging-connectors/{id}`, `GET /api/v1/messaging-connectors/{id}/watch-options` (etiquetas de Gmail / carpetas de Outlook y Zoho Mail), `POST /api/v1/messaging-connectors/{id}/ended-webhook-test`
* Slack OAuth: `GET/POST /api/v1/slack/oauth`
* Plantillas de WhatsApp: `GET/POST /api/v1/whatsapp/templates`
* Voz saliente de WhatsApp: `POST /api/v1/calls/whatsapp-outbound`
* Herramientas MCP: `list_messaging_connectors`, `list_messaging_connector_watch_options`, `create_messaging_connector`, `update_messaging_connector`, `delete_messaging_connector`, `test_messaging_ended_webhook`, `get_slack_oauth_config`, `start_slack_oauth`, 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)](/es/channels/whatsapp)**.

* **Texto:** chat de WhatsApp Business, cuando esté incluido en tu plan.
* **Voz:** llamadas de WhatsApp en la misma conexión, cuando estén incluidas en tu plan — consulta [WhatsApp Voice](/es/telephony/whatsapp-voice).
* **Plantillas:** `GET/POST /api/v1/whatsapp/templates` (+ herramientas MCP).
* **Voz saliente:** `POST /api/v1/calls/whatsapp-outbound`.

## Email

Configuración completa — conectar un dominio, crear direcciones, definir valores por defecto: **[Configuración del canal de correo electrónico](/es/channels/email)**. Las conversaciones de correo aparecen en [Historial de correo electrónico](/es/email/history) junto a tus otros canales.

## SMS

Un número del espacio de trabajo compatible con SMS y con **Allow outbound SMS** activado puede enviar texto mediante la herramienta integrada **Send SMS** — desde un asistente durante una llamada o un chat, o como paso de una automatización (por ejemplo, una confirmación tras terminar una llamada, o un recordatorio de cita). Consulta [SMS](/es/api-reference/sms) para ver qué números califican y la API de envío.

Unas pocas prácticas hacen que el SMS sea útil en lugar de molesto:

* Mantén los mensajes cortos y directos — el SMS no tiene formato enriquecido, y se factura por segmento de 160 caracteres (70 si usas emojis o caracteres acentuados), así que la longitud cuesta dinero.
* Incluye instrucciones de exclusión (opt-out) donde la ley local lo exija.
* Envíate un mensaje de prueba a ti mismo antes de soltar una plantilla en una campaña completa.
* Vigila el gasto de SMS en **Usage**, especialmente después de cambiar una plantilla o dirigirte a un país nuevo.
