[Intum](https://intum.fr/aide.md) / [WebChat](https://intum.fr/aide/webchat.md)

# [WebChat](https://intum.fr/aide/webchat/webchat.md) | [API](#api)

## Czat na żywo z klientami

WebChat to moduł komunikacji w czasie rzeczywistym. Pozwala prowadzić rozmowy z klientami odwiedzającymi Twoją stronę internetową — bezpośrednio z poziomu panelu operatora.

## Jak to działa

1. Tworzysz [widget czatu](support-chat-widget) i osadzasz go na swojej stronie
2. Klient otwiera okno czatu i pisze wiadomość
3. Wiadomość pojawia się w panelu operatora w czasie rzeczywistym
4. Operator odpowiada — klient widzi odpowiedź natychmiast

## Rozmowy (Spaces)

Każda rozmowa z klientem to osobny "space". Rozmowa zawiera historię wiadomości i może być przypisana do operatora.

### Statusy rozmowy

- **Aktywna** — rozmowa w toku, klient czeka na odpowiedź
- **Zamknięta** — rozmowa zakończona

### Przydzielanie

Rozmowę można przydzielić do konkretnego operatora. Gdy operator odpowie na nieprzydzieloną rozmowę, system może automatycznie przypisać ją do niego.

## Panel operatora

Panel (`/webchat`) pokazuje:

- **Moje rozmowy** — rozmowy przypisane do Ciebie
- **Nieprzydzielone** — rozmowy czekające na operatora
- **Wszystkie** — pełna lista rozmów

Można filtrować po aktywnych rozmowach i rozmowach z opóźnioną odpowiedzią (powyżej 15 minut).

## Wiadomości

- Wiadomości przesyłane są w czasie rzeczywistym (WebSocket)
- Obsługa załączników — pliki, zrzuty ekranu
- Linki w wiadomościach są automatycznie klikalne
- Powiadomienia dźwiękowe o nowych wiadomościach

## Powiązanie z CRM

Rozmowę można powiązać z klientem lub kontaktem z modułu CRM. System może automatycznie rozpoznać klienta na podstawie adresu e-mail lub zewnętrznego ID.

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**

## Endpointy — Rozmowy (Spaces)

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/webchat/spaces.json` | Lista rozmów |
| GET | `/webchat/spaces/:id.json` | Pojedyncza rozmowa |
| POST | `/webchat/spaces.json` | Utworzenie rozmowy |
| PATCH | `/webchat/spaces/:id.json` | Aktualizacja rozmowy |
| DELETE | `/webchat/spaces/:id.json` | Usunięcie rozmowy |
| GET | `/webchat/spaces/my_spaces.json` | Moje rozmowy |
| POST | `/webchat/spaces/:id/close` | Zamknięcie rozmowy |
| POST | `/webchat/spaces/:id/open` | Ponowne otwarcie |
| POST | `/webchat/spaces/:id/change_responsible` | Zmiana operatora |
| POST | `/webchat/spaces/:id/add_client` | Powiązanie z klientem CRM |
| POST | `/webchat/spaces/:id/remove_client` | Usunięcie powiązania |

**Autoryzacja:** `Authorization: Bearer TOKEN` (uprawnienie: **webchat**)

### Pola space

| Pole | Typ | Opis |
|------|-----|------|
| `name` | string | Nazwa rozmowy |
| `widget_id` | integer | ID widgetu (wymagane) |
| `client_id` | integer | ID klienta CRM |
| `contact_id` | integer | ID kontaktu CRM |
| `responsible_id` | integer | ID operatora |
| `closed` | boolean | Czy zamknięta |
| `email` | string | E-mail klienta |

## Endpointy — Wiadomości (Messages)

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/webchat/messages.json` | Lista wiadomości |
| GET | `/webchat/messages/:id.json` | Pojedyncza wiadomość |
| POST | `/webchat/messages.json` | Wysłanie wiadomości |
| PATCH | `/webchat/messages/:id.json` | Edycja wiadomości |
| DELETE | `/webchat/messages/:id.json` | Usunięcie wiadomości |

### Pola message

| Pole | Typ | Opis |
|------|-----|------|
| `message` | string | Treść wiadomości (wymagane) |
| `space_token` | string | Token rozmowy |
| `widget_id` | integer | ID widgetu |
| `name` | string | Imię nadawcy (klient) |
| `email` | string | E-mail nadawcy |
| `url` | string | URL strony klienta |
| `kind` | string | Typ wiadomości |

## Przykład utworzenia rozmowy

```json
{
  "api_token": "TOKEN",
  "space": {
    "widget_id": 1,
    "name": "Jan Kowalski",
    "email": "jan@firma.pl",
    "message": "Cześć, potrzebuję pomocy"
  }
}
```