> ## 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.

# Messaging-Kanäle (Telegram, Slack, Messenger)

> Verbinde Textbots über Einstellungen → Kanäle mit Assistenten

Mit Multi-Channel-Text beantwortet derselbe Assistent Kunden auf Telegram, Slack, Messenger, Microsoft Teams, Discord, Google Chat, X und WhatsApp. Telefon und WhatsApp **Voice** nutzen den Voice-Stack der Plattform; diese Messaging-Kanäle sind reine Textkanäle (WhatsApp Voice nutzt dieselben Meta-Zugangsdaten wie Text).

## Tools (Voice-Parität)

Alle sieben Messaging-Plattformen teilen sich eine Antwort-Pipeline. Der Assistent kann dieselben textsicheren Tools wie bei Voice nutzen:

* API-Tools (HTTP)
* MCP-Tools (Workspace- + Assistenten-Server)
* Wissensdatenbank-Suche
* Kalender-Integrationen (nativ / Cal.com / Calendly)
* Built-ins: aktuelle Uhrzeit, Geschäftszeiten, SMS senden, E-Mail senden, Rückruf planen, Variable setzen

Reine Voice-Aktionen werden auf Textkanälen übersprungen: Anruf-/Assistenten-Weiterleitung, Anruf beenden, DTMF/Tastatureingabe, Zahlungskarten-Erfassung. Automatische E-Mail-Antworten nutzen dieselbe Tool-Ebene (`purpose=email`).

## Voraussetzungen

1. Dein Plan umfasst den Kanal, den du verbinden möchtest (Telegram, Slack, Messenger, Teams, Discord, Google Chat, X, WhatsApp Text / WhatsApp Voice).
2. Die Webhook-Basis ist deine **Basis-App-URL** – entweder der Plattform-Host (z. B. `https://app.famulor.io`) oder die verifizierte Custom Domain dieses Workspaces. Du brauchst keinen Zugriff auf Server-Umgebungsvariablen; das Produkt baut die Webhook-URLs automatisch, sobald du einen Kanal verbindest.
3. Die Plattform-KI für Textantworten wird vom Betreiber konfiguriert.

## Verbinden (Produkt-UI)

Einstellungen → Kanäle → Telegram / Slack / Messenger:

1. Wähle einen Assistenten.
2. Verbinde per One-Click, wo verfügbar (**Zu Slack hinzufügen**, **Mit Facebook verbinden**), oder füge Bot-Zugangsdaten manuell ein.
3. Konfiguriere die Konversationseinstellungen (siehe unten).
4. Speichern – Telegram-Webhooks werden automatisch registriert; Slack/Messenger **BYO** brauchen die angezeigte Webhook-URL. One-Click nutzt den gemeinsamen Plattform-Webhook (kein URL-Kopieren).

### Slack – Zu Slack hinzufügen

Bevorzugtes Onboarding (nur Plattform-Domain / Root-Workspaces – nicht Whitelabel) nutzt die **gemeinsame Famulor-Slack-App**:

1. Einstellungen → Kanäle → Slack → **Zu Slack hinzufügen**
2. Nutzer erteilt Bot-Scopes in Slack → wir speichern Bot-Token, Signing Secret (Plattform) und `team_id`
3. Plattformbetreiber konfigurieren Event Subscriptions einmal an der **Basis-App-URL** (`/api/webhooks/slack`), Socket Mode **aus**
4. Events werden anhand der Slack-`team_id` an den Workspace-Connector geroutet

Manuelles Einfügen von Bot-Token + Signing Secret bleibt als Fallback (Webhook-URL pro Connector in den Einstellungen). Whitelabel behält nur Manual.

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

### Messenger – Mit Facebook verbinden

Das bevorzugte Onboarding (nur Plattform-Domain / Root-Workspaces – nicht für Whitelabel-Hosts) nutzt dieselbe **Plattform-Meta-App** wie WhatsApp:

1. Einstellungen → Kanäle → Messenger → **Mit Facebook verbinden** (HTTPS erforderlich)
2. Der Nutzer gewährt Page-Berechtigungen → wählt eine Facebook-Seite aus → wir legen den Connector an und rufen `subscribed_apps` auf
3. Plattformbetreiber konfigurieren den Messenger-Webhook auf Meta-App-Ebene an der **Basis-App-URL** (`/api/webhooks/meta/messenger-platform`) und abonnieren **messages**
4. Events werden anhand der Page-ID an den Workspace-Connector geroutet

Das manuelle Einfügen des Page-Tokens bleibt als Fallback verfügbar (die Webhook-URL pro Connector wird in den Einstellungen angezeigt).

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

## Konversationseinstellungen

Gilt für jeden Textkanal (Telegram, Slack, Messenger):

| Einstellung                                | Standard | Beschreibung                                                                                                                                                                       |
| ------------------------------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Antwortverzögerung (Sekunden)**          | `5`      | Regler `0`–`30`. Wartet nach der letzten Kundennachricht, bevor eine Antwort gesendet wird (fasst schnelle Nachrichtenfolgen zusammen). `0` = antwortet sofort auf jede Nachricht. |
| **Inaktivitäts-Timeout (Minuten)**         | `30`     | Minuten der Inaktivität nach der letzten Kundennachricht, bevor die Konversation als beendet markiert wird.                                                                        |
| **Erneutes Auslösen erlauben**             | aus      | Wenn aktiviert, kann der „Konversation beendet"-Webhook erneut auslösen, sobald der Kunde eine beendete Konversation fortsetzt und danach wieder inaktiv wird.                     |
| **Webhook-URL für „Konversation beendet"** | leer     | Optionale HTTPS-URL. Leer lassen, um zu deaktivieren. Nutze **Testanfrage senden**, um ein Beispiel-Payload zu senden.                                                             |

### Webhook „Konversation beendet"

Wenn eine Konversation endet (Inaktivitäts-Timeout), macht die Plattform Folgendes:

1. Markiert die Konversation als beendet.
2. Führt die **Post-Call-Analyse**-Variablen des Assistenten gegen das Chat-Transkript aus (dieselbe `analysis_config` wie bei Voice).
3. Sendet ein JSON-Payload per POST an deine Webhook-URL (falls gesetzt), inklusive der extrahierten Variablen.

Cron: `/api/cron/messaging-inactivity` (läuft auf der Plattform jede Minute).

## Plattform-Apps, die du anlegst

| Kanal       | Was du anlegst                                                                            | Wichtige Felder                                                                           |
| ----------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Telegram    | Bot über [@BotFather](https://t.me/BotFather)                                             | Bot-Token                                                                                 |
| Slack       | Famulor-Slack-App (Zu Slack hinzufügen) oder eigene Slack App (Bot + Event Subscriptions) | OAuth-Install; oder Bot-Token `xoxb-…` + Signing Secret (BYO)                             |
| Messenger   | Plattform-Meta-App (Mit Facebook verbinden) oder eigene Meta-App + Page                   | Page Access Token, App Secret, Verify Token (BYO); Facebook Login für den bevorzugten Weg |
| Teams       | Azure Bot                                                                                 | App-ID, App-Passwort                                                                      |
| Discord     | Discord Application                                                                       | Bot-Token, Public Key, Application-ID                                                     |
| Google Chat | GCP Chat App + Service Account                                                            | Service-Account-JSON                                                                      |
| X           | X Developer App + Activity API Webhook                                                    | Consumer Secret, OAuth User Token (oder Client-ID + Refresh-Token)                        |

Webhook-URL-Muster:

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

Host-Auflösung (nur diese zwei – kein Reseller-/Subdomain-Fallback):

1. Die eigene verifizierte Custom Domain dieses Workspaces, verwaltet unter **Tenant Admin → Settings → Domains**
2. Sonst die **Basis-App-URL** der Plattform

Telegram `setWebhook` nutzt automatisch dieselbe aufgelöste URL.

## Public API & MCP

* REST: `GET/POST /api/v1/messaging-connectors`, `PATCH/DELETE /api/v1/messaging-connectors/{id}`
* WhatsApp-Vorlagen: `GET/POST /api/v1/whatsapp/templates`
* Ausgehende WhatsApp-Voice-Anrufe: `POST /api/v1/calls/whatsapp-outbound`
* MCP-Tools: `list_messaging_connectors`, `create_messaging_connector`, `update_messaging_connector`, `delete_messaging_connector`, plus WhatsApp-Vorlagen-/Anruf-Tools
* OpenAPI-Tag: **Messaging** / **Calls**

## WhatsApp

Vollständige Einrichtung (Zugangsdaten, Webhook-Felder, Vorlagen, Voice-Toggles): **[WhatsApp (Text + Voice)](/channels/whatsapp)**.

* **Text:** Meta Cloud API über `messaging_connectors` (`platform=whatsapp`), Plan-Flag `whatsapp_channel`.
* **Voice:** Plattform-WhatsApp-Voice-Connector mit denselben Zugangsdaten – siehe [WhatsApp Voice](/telephony/whatsapp-voice), Plan-Flag `whatsapp_voice`.
* **Vorlagen:** `GET/POST /api/v1/whatsapp/templates` (+ MCP-Tools).
* **Ausgehende Anrufe:** `POST /api/v1/calls/whatsapp-outbound`.
