Przejdź do treści
Intum Pomoc
Aktualizacja: 2 min czytania
Na tej stronie

Pokoje i wiadomości czatu firmowego przez API. Moduł chat musi być aktywny na koncie, a token mieć uprawnienie chat.

Autoryzacja: Authorization: Bearer TOKEN Content-Type: application/json; charset=utf-8

API Endpoints

Metoda Ścieżka Opis
GET /chat.json Pokoje zalogowanego usera (sidebar panelu)
GET /chat/rooms.json Wszystkie pokoje konta (tylko admin; wyszukiwarka q, kind)
GET /chat/rooms/:id.json Pojedynczy pokój
POST /chat/rooms.json Utworzenie/znalezienie pokoju (patrz rodzaje niżej)
PATCH /chat/rooms/:id.json Zmiana nazwy pokoju (owner/admin)
DELETE /chat/rooms/:id.json Usunięcie pokoju (owner/admin)
GET /chat/rooms/:id/members.json Członkowie pokoju (nazwa, login, email, avatar)
POST /chat/rooms/:id/add_member.json?user_id=X Dodanie osoby (pokoje group/subject)
POST /chat/rooms/:id/remove_member.json?user_id=X Usunięcie osoby (owner/admin)
POST /chat/rooms/:id/join.json Dołączenie do pokoju group
POST /chat/rooms/:id/leave.json Opuszczenie pokoju (DM-a nie da się opuścić)
POST /chat/rooms/:id/mark_read.json Oznaczenie pokoju jako przeczytany
GET /chat/rooms/:id/messages.json Historia pokoju, od najnowszych (before_id do paginacji)
POST /chat/rooms/:id/messages.json Wysłanie wiadomości
GET /chat/messages.json Wszystkie wiadomości konta (tylko admin; q, kind, room_id)
PATCH /chat/messages/:id.json Edycja własnej wiadomości
DELETE /chat/messages/:id.json Usunięcie wiadomości (autor/admin)
POST /chat/messages/:id/toggle_reaction.json?emoji=👍 Dodanie/zdjęcie reakcji

Uwaga: :id pokoju i wiadomości to uuid (string). W URL-ach panelu pokoje mają numer per konto (scoped_id, np. /chat/3-nazwa), ale API używa uuid z pola id.

Rodzaje pokoi (kind)

  • dm - rozmowa 1:1, unikalna per para userów. POST z user_id znajduje albo tworzy:
{ "chat_room": { "kind": "dm", "user_id": 5 } }
  • group - nazwany kanał; twórca zostaje ownerem, user_ids dodaje członków:
{ "chat_room": { "kind": "group", "name": "Ogólny", "user_ids": [5, 7] } }
  • subject - rozmowa w kontekście obiektu (jeden pokój per obiekt, find-or-create). Dozwolone subject_type: Organize::Task, Organize::Project, Organize::Team, Mail::Email, Helpdesk::Ticket, Crm::Client. Dostęp dziedziczony z obiektu (wymagane uprawnienie modułu). Pokój teamu od razu dołącza członków zespołu:
{ "chat_room": { "kind": "subject", "subject_type": "Organize::Task", "subject_id": 123 } }

Wysłanie wiadomości

{ "chat_message": { "content": "Treść wiadomości", "parent_id": null } }
  • content - markdown; parent_id (uuid) spina wątek (odpowiedź pod wiadomością)
  • Wzmianka w treści to token z ID: @[Imię Nazwisko](user:5) - user 5 dostanie powiadomienie (jeśli jest członkiem pokoju); @all / @here powiadamia wszystkich członków z włączonym dzwonkiem
  • Wiadomości mają kind: message (od usera), system (automatyczne, np. dodanie członka), agent (od agenta AI)

Typowe przepływy

  1. Napisz do osoby: znajdź user_id (GET /account/users.json?q=nazwisko) → POST /chat/rooms.json (kind: dm, user_id) → POST /chat/rooms/:id/messages.json
  2. Napisz o zadaniu: POST /chat/rooms.json (kind: subject, Organize::Task, subject_id) → wyślij wiadomość; rozmowa pokaże się też w timeline zadania między komentarzami
  3. Podsumuj rozmowę: GET /chat/rooms/:id/messages.json (od najnowszych; doczytuj starsze przez before_id = id ostatniej pobranej) → streść treści

Czy ten wpis był pomocny?

Komentarze