[Intum](https://intum.pl/pomoc.md) / [Integracje](https://intum.pl/pomoc/integracje.md)

# [Integracja z Google Chat](https://intum.pl/pomoc/integracje/google-chat.md) | [API](#api)

Powiadomienia z Intum trafiają wprost do pokoju w Google Chat. Możesz podpiąć jeden albo wiele pokoi (np. osobny dla sprzedaży, osobny dla alertów dev) i wysyłać do nich wiadomości automatycznie z innych miejsc systemu.

## Co dostajesz

- Wysyłka wiadomości do dowolnej liczby pokoi Google Chat
- Każdy pokój to osobny kanał - możesz nadać mu własną nazwę (np. „Alerty produkcja”, „Sprzedaż”)
- Przycisk **Testowanie** przy każdym kanale - wpisujesz treść i sprawdzasz czy wiadomość dotarła
- Konfiguracja sprowadza się do wklejenia jednego URL-a z Google Chat

## Instalacja

1. Wejdź w **Ustawienia konta** → **Aplikacje i dodatki**
2. Znajdź **Integracja z Google Chat** i kliknij **Zainstaluj**
3. Po instalacji aplikacja jest dostępna w menu **Organizacja** → **Ustawienia**

## Skąd wziąć URL webhooka

W samym Google Chat:

1. Otwórz pokój, w którym mają lądować powiadomienia
2. Z menu pokoju wybierz **Aplikacje i integracje**
3. Kliknij **Dodaj webhook**
4. Nadaj webhookowi nazwę (np. „Intum”) i zatwierdź
5. Skopiuj wygenerowany URL - to długi link zaczynający się od `https://chat.googleapis.com/v1/spaces/...`

## Dodanie kanału w Intum

1. Otwórz aplikację **Integracja z Google Chat**
2. W polu **Nazwa kanału** wpisz własną nazwę (opcjonalnie - jak zostawisz puste, podstawi się automatycznie)
3. Wklej skopiowany URL webhooka
4. Kliknij **Dodaj kanał**

Aplikacja sama wyciąga z URL-a wszystko co potrzebne (identyfikator pokoju, klucz i token) i tworzy konektor. Po dodaniu automatycznie otwiera się panel testowy.

## Test wysyłki

Przy każdym kanale na liście jest przycisk **Testowanie**. Po kliknięciu rozwija się pole na treść wiadomości i przycisk **Wyślij do Google Chat**. Wiadomość trafia do wybranego pokoju - jeśli się pojawi, integracja działa.

## Wiele pokoi

Możesz dodać tyle kanałów, ile potrzebujesz - po prostu wklej kolejny URL webhooka i dodaj. Każdy kanał ma swój kod (`google_chat1`, `google_chat2`...) widoczny na liście. Po tych kodach inne moduły systemu mogą adresować, do którego pokoju ma trafić powiadomienie.

## Usuwanie kanału

Kliknij nazwę kanału na liście, żeby zobaczyć szczegóły. Na dole są dane konfiguracji i przycisk **Usuń konektor**. Po usunięciu powiadomienia do tego pokoju przestają działać - sam pokój w Google Chat zostaje nietknięty.

## Częste pytania

**Czy mogę zmienić pokój istniejącego kanału?**
Najprościej usunąć stary kanał i dodać nowy z URL-em do innego pokoju. Edycja jest dostępna w widoku szczegółów, ale przy zmianie pokoju i tak musisz wkleić nowy webhook.

**Czy mogę wysyłać do wątku w pokoju, a nie do głównego kanału?**
Tak - jeśli URL webhooka z Google Chat zawiera parametr `threadKey`, integracja go zapamiętuje i wiadomości trafiają do tego wątku.

**Co się stanie jak token wygaśnie?**
Google Chat przy zmianie webhooka generuje nowy URL. Wtedy w Intum trzeba usunąć stary kanał i dodać nowy.

---

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

Integracja opiera się na konektorze typu `alert/google_chat` (`Connect::Connector::Service::GoogleChat`). Apka Noe `google-chat-integration` (svelte) tworzy i zarządza konektorami na koncie.

## Pola konektora

| Pole | Wymagane | Opis |
|------|----------|------|
| `url` | tak | Host - zawsze `https://chat.googleapis.com` |
| `secret_token` | tak | Token z URL-a webhooka (parametr `token`) |
| `fields.room` | tak | Identyfikator pokoju (segment `/spaces/{room}/` z URL-a) |
| `fields.key` | tak | Parametr `key` z URL-a webhooka |
| `fields.threadKey` | nie | Opcjonalny - kieruje wiadomość do wątku w pokoju |
| `fields.message` | tak | Domyślna treść wiadomości (nadpisywana per wywołanie) |

## Wysyłka wiadomości

```
POST /connect/connectors/:id/method/send_message
Content-Type: application/json

{
  "params_json": "{\"message\": \"Treść wiadomości\"}"
}
```

Metoda `send_message` na konektorze wywołuje endpoint Google Chat z `text` ustawionym na przekazany `message` (a w razie braku - na wartość `fields.message`).

## Konektor systemowy

Kod `sugester2_google_chat_system` jest specjalny - jeśli zainstalowany na koncie systemowym, alerty z `Platform::SystemConnector.send_google_chat(text)` wysyłają tę samą treść co alerty SMS dla adminów (`System::Security::SecurityConfig.notify_admins`).

## Parsowanie URL-a webhooka

Format URL-a z Google Chat:

```
https://chat.googleapis.com/v1/spaces/{ROOM}/messages?key={KEY}&token={TOKEN}&threadKey={THREAD}
```

Apka instalacyjna sama wyłuskuje `room`, `key`, `token` i (opcjonalnie) `threadKey` z wklejonego URL-a i mapuje na pola konektora.