Integracje
Telegram — przejęcie rozmowy
Jak podpiąć Telegram do Clovie, żeby konsultant mógł przejąć rozmowę z klientem na żywo.
Wymagania
- Konto Telegram (dla każdego konsultanta)
- Bot utworzony w @BotFather z ustawionym
@username - Produkcyjny URL aplikacji (
NEXT_PUBLIC_APP_URL) dostępny z internetu — Telegram musi dosięgnąć webhooka
1. Utwórz bota
- W Telegramie otwórz @BotFather
/newbot→ nazwa i username (np.mojafirma_support_bot)- Skopiuj token API
2. Połącz bota w panelu
- Panel → Integracje → sekcja Telegram
- Wklej token → Połącz bota
- Backend waliduje token (
getMe), zapisuje go zaszyfrowany i rejestruje webhook:https://clovie.pl/api/webhooks/telegram/{organizationId}?secret=...
3. Powiąż konto konsultanta
Każdy członek workspace, który ma odpowiadać z Telegrama:
- Integracje → Telegram → link Połącz mój Telegram (krótki deep link — limit Telegrama 64 znaki)
- Otwórz ten link w Telegramie (nie wyszukuj bota ręcznie)
- Jeśli nic się nie stanie — naciśnij Start na dole czatu
- Bot odpowiada: „✅ Konto powiązane…”
Powtórz dla wszystkich konsultantów w zespole.
4. Włącz w widgecie
- Konfigurator asystenta → krok Podstawy
- Włącz Poproś konsultanta
- Opublikuj asystenta
W widgecie pojawi się pole akcji, gdy handoffAvailable: true w API config (Telegram + ≥1 powiązany konsultant).
Przepływ
- Gość klika Poproś konsultanta →
POST /api/v1/handoff/request(handoffStatus: requested) - Wszyscy powiązani konsultanci dostają powiadomienie z przyciskiem Dołącz
- Konsultant klika Dołącz →
active(tylko jeśli nie ma innej aktywnej rozmowy — max 1 na konsultanta) - Dwukierunkowy czat: widget ↔ Telegram (polling w widgecie)
- Gość może Anuluj oczekiwanie w stanie
requested→ powrót dobot - Konsultant kończy: Zakończ rozmowę lub
/zakoncz→ rozmowaclosedw DB; w widgecie baner + Rozpocznij nową rozmowę
Typowe problemy
| Objaw | Rozwiązanie |
|---|---|
| Brak powiadomień | Sprawdź powiązanie konta konsultanta; bot musi być połączony |
| Webhook nie działa lokalnie | Użyj tunelu (Cloudflare) lub testuj na stagingu z publicznym HTTPS |
handoff_unavailable w widgecie |
Włącz handoff w wizardzie + Telegram + co najmniej 1 konsultant |
| „Rozmowa już przejęta” | Inny konsultant kliknął Dołącz pierwszy |
| „Masz już aktywną rozmowę” (Telegram) | Zakończ bieżącą rozmowę (/zakoncz) przed przejęciem kolejnej |
| „Nie udało się poprosić…” / brak przycisku | Rozmowa closed → Rozpocznij nową rozmowę; sprawdź Origin (403) lub rate limit (429) |
| Historia rozmów pusta / 401 | Middleware musi mieć publiczną trasę /api/v1/conversations (bez Clerk) |
| Link powiązania nie działa | Użyj linku z panelu (krótki token w Redis — limit deep linku 64 znaki) |