Przejdź do treści
Intum

Support Chat Widget

Aktualizacja: 2 min czytania

Endpointy widgetów

Metoda Ścieżka Opis
GET /webchat/widgets.json Lista widgetów
GET /webchat/widgets/:id.json Pojedynczy widget
POST /webchat/widgets.json Utworzenie widgetu
PATCH /webchat/widgets/:id.json Aktualizacja widgetu
DELETE /webchat/widgets/:id.json Usunięcie widgetu

Autoryzacja: Authorization: Bearer TOKEN (uprawnienie: webchat)

Pola widget

Pole Typ Opis
name string Nazwa widgetu (wymagane)
title string Tytuł wyświetlany w czacie
description text Opis pod tytułem
color string Kolor HEX
active boolean Czy aktywny (domyślnie true)
orientation string Pozycja widgetu
placeholder string Tekst zastępczy w polu wiadomości
user_name string Wyświetlane imię operatora
locale string Język widgetu
email string E-mail kontaktowy
own_css text Własny CSS
introduce boolean Czy wymagać przedstawienia się
any_user boolean Czy wszyscy użytkownicy obsługują
offline_messages boolean Czy przyjmować wiadomości offline
offline_messages_welcome string Wiadomość powitalna offline
offline_messages_reply string Tekst po wysłaniu wiadomości offline
poke text Tekst attention grabbera
selected_responsible_id string ID domyślnej grupy/zespołu
department_id integer ID działu
opening_time object Harmonogram godzin pracy

Pola w fields (JSONB)

Klucz Typ Opis
sound_notifications boolean Powiadomienia dźwiękowe
use_avatar boolean Wyświetlaj avatar
avatar_option string widget lub user
just_name boolean Tylko imię (bez nazwiska)
require_client_data boolean Wymagaj imienia/e-maila
allow_client_attachments boolean Zezwól na załączniki
allow_auto_assign boolean Auto-przydzielanie do operatora

Publiczny endpoint (bez autoryzacji)

GET /webchat/widget_data

Pobiera dane widgetu i wiadomości dla sesji czatu.

Parametr Opis
token Token sesji (space_token)
widget_id ID widgetu

Odpowiedź:

{
  "messages": [...],
  "description": "Opis widgetu",
  "user_name": "Jan",
  "title": "Pomoc",
  "active": true,
  "open": true,
  "messages_after_hours": true,
  "closed_message": "Jesteśmy offline",
  "widget_avatar": "https://...",
  "require_client_data": false,
  "allow_client_attachments": true
}

Godziny pracy (opening_time)

{
  "opening_time": {
    "timezone": "Europe/Warsaw",
    "monday": { "from": "08:00", "to": "17:00" },
    "tuesday": { "from": "08:00", "to": "17:00" },
    "wednesday": { "from": "08:00", "to": "17:00" },
    "thursday": { "from": "08:00", "to": "17:00" },
    "friday": { "from": "08:00", "to": "16:00" }
  }
}

Kod osadzenia

<link rel="stylesheet" href="STYLESHEET_URL">
<div class="sugester-widget" id="intum-webchat-widget"></div>
<script>
  var intumEchoOrigin = "wss://echo.intum.net";
  var intumChatConfig = {
    accountUrl: "https://konto.intum.pl",
    account_id: 123,
    widget_id: 1,
    widget_token: "TOKEN",
    email: "",
    checksum: "SHA256_HASH",
    sound_notifications: true,
    locale: "pl"
  };
</script>
<script src="WIDGET_URL"></script>
<script>webChatWidget = new IntumWebchatWidget(intumChatConfig, intumEchoOrigin);</script>

Komunikacja WebSocket

Widget łączy się z serwerem echo przez Phoenix Channels:

  • Kanał: webchat:user/{widget_token}/{room_token}
  • Wysyłanie: push("new_msg", { message, widget_id, ... })
  • Odbieranie: event new_msg z wiadomością operatora