Skava Skava / Wiki

Elementy niestandardowe: API

Interfejs API to formularz, którego wypełnione wartości Skava wysyła jako JSON na adres, który wskażesz (Twój backend). Dzięki temu możesz bezpiecznie połączyć Skavę z własnymi systemami.

i

Interfejsy API zarządzasz w aplikacji webowej w sekcji Elementy niestandardowe → przełącz Interfejsy API. Tworzenie i edycja są zarezerwowane dla administratorów firmy; opublikowane interfejsy mogą następnie uruchamiać wszyscy członkowie firmy.

Konfiguracja interfejsu API

Interfejs składa się z pól wejściowych (tworzą one JSON), adresu docelowego oraz uwierzytelnienia.

  1. Tworzenie pól: Każde pole otrzymuje klucz JSON. Po prawej stronie widzisz na żywo podgląd JSON, który jest wysyłany do Twojego backendu dokładnie w ten sposób.
  2. Adres (URL): adres https:// Twojego backendu. Dozwolone są wyłącznie adresy HTTPS i publicznie dostępne (zobacz Bezpieczeństwo poniżej).
  3. Metoda: POST (domyślnie), PUT, PATCH lub GET. W przypadku GET wartości są dodawane jako parametry zapytania zamiast wysyłania w treści.
  4. Uwierzytelnianie: Ustaw nazwę nagłówka (np. Authorization) i prefiks wartości (np. Bearer ), a następnie zapisz token. Opcjonalnie ustaw datę wygaśnięcia.
  5. Pola odpowiedzi (opcjonalnie): Zdefiniuj za pomocą ścieżki, które wartości z odpowiedzi backendu mają być wyświetlane: np. order.id lub items[0].sku.
  6. Sprawdź za pomocą Ping i Test Request, a następnie kliknij Release.
Aplikacja webowa Skava: zakładka Pól interfejsu API. Na górze znajdują się automatycznie dołączone wartości kontekstowe (nazwa użytkownika, firma, projekt …), poniżej pola niestandardowe z kluczami JSON, po prawej stronie podgląd formularza i podgląd JSON na żywo.
Zakładka Pola: każde pole otrzymuje klucz JSON. Na górze automatycznie dołączane są wartości kontekstowe, takie jak użytkownik, firma i nazwa projektu. Po prawej stronie widzisz formularz i JSON na żywo: dokładnie to, co jest wysyłane do Twojego backendu.
Aplikacja webowa Skava: zakładka Endpoint interfejsu API z polami na adres URL, metodę POST, limit czasu, nagłówek uwierzytelniania, prefiks wartości Bearer oraz pole na zaszyfrowany token.
Zakładka Endpoint: adres docelowy (tylko HTTPS), metoda, limit czasu oraz nagłówek uwierzytelniania wraz z prefiksem wartości. Token jest przechowywany w formie zaszyfrowanej i nigdy nie jest dostarczany klientom.
Aplikacja webowa Skava: zakładka Podgląd interfejsu API. Pole odpowiedzi z kluczem JSON Success jest skonfigurowane, po prawej stronie podgląd tego, jak wynik będzie wyglądał w czacie.
Zakładka Podgląd (opcjonalna): zdefiniuj za pomocą ścieżki, które wartości z odpowiedzi backendu są wyświetlane. Po prawej stronie Skava buduje z nich kartę wyniku, dokładnie tak, jak później pojawi się w czacie.

Przechowuj token bezpiecznie

Token jest przechowywany zaszyfrowany i nigdy nie jest zwracany klientom: aplikacja pokazuje jedynie czy token jest ustawiony i kiedy wygasa. Przy wysyłaniu Skava dodaje go po stronie serwera do skonfigurowanego nagłówka. Jeśli ustawisz datę wygaśnięcia, Skava odrzuca wywołanie po upływie terminu i prosi o odnowienie tokenu.

Testowanie: Ping i Test Request

  • Ping: lekka kontrola dostępności. Sprawdza wyłącznie czy Twój adres odpowiada, nie wysyłając przy tym tokena ani danych formularza. Wyświetla dostępność, status i czas odpowiedzi. Idealny jako pierwszy krok.
  • Żądanie testowe: prawdziwa próba: wysyła dane przykładowe, w tym token, na Twój adres i pokazuje pełną odpowiedź oraz wyodrębnione pola odpowiedzi.

Jako administrator możesz uruchomić oba testy w trybie szkicu, aby zweryfikować integrację przed publikacją.

Aplikacja webowa Skava: zakładka Test interfejsu API z przyciskami Ping i Żądanie testowe, wynikiem Status 200 OK, czasem odpowiedzi oraz pełną odpowiedzią JSON z backendu.
Zakładka Test: Ping i Żądanie testowe obok siebie. Tutaj ze statusem 200, czasem odpowiedzi i pełną odpowiedzią backendu w formacie JSON.

Szkic i publikacja

Każdy interfejs zaczyna się jako szkic i można go swobodnie edytować. Gdy wszystko jest gotowe, publikujesz go przyciskiem Publikuj.

!

Po publikacji adres docelowy, metoda, pola, nagłówek uwierzytelniający i limit czasu są zablokowane. To celowe: nikt nie może cicho zmienić miejsca, do którego trafiają dane. Dokładnie trzy rzeczy pozostają modyfikowalne, ponieważ operacje ich wymagają: token i jego okres ważności (aby można było zastąpić wygasły lub zużyty token) oraz odbiorca, czyli czy tylko Twój zespół, czy też firmy partnerskie mogą go wywołać w czacie. W przypadku innych zmian tworzysz nową wersję.

Bezpieczeństwo

i

Aby zapobiec niewłaściwemu użyciu interfejsu, obowiązują surowe zasady: dozwolone są wyłącznie adresy HTTPS, a adres musi wskazywać na publiczny adres docelowy : adresy wewnętrzne (np. localhost, sieci prywatne lub metadane chmury) są odrzucane. Skava sprawdza to przy każdym wywołaniu, łączy się dokładnie z zweryfikowanym adresem, nie podąża za przekierowaniami oraz ogranicza limit czasu i rozmiar odpowiedzi.

Jak zespół korzysta z opublikowanego interfejsu

Po opublikowaniu interfejsu wszyscy członkowie firmy mogą go wywołać bezpośrednio z czatu, bez konieczności korzystania z edytora. Nie ma zbiorczego wejścia ani pośredniego okna dialogowego: każdy opublikowany element znajduje się w menu plus pod własną nazwą, wraz z logo firmy, która go oferuje.

  1. W czacie dotknij Plus na dole ekranu, a następnie dotknij elementu, którego chcesz użyć, na przykład Zamówienie materiałów.
  2. Wypełnij formularz i naciśnij Wyślij.
  3. Wynik pojawi się jako karta w czacie, widoczna dla wszystkich uczestników rozmowy.
Aplikacja webowa Skava: formularz do wypełnienia dla akcji API Zamówienie materiałów z polami numer artykułu, opis, ilość, jednostka, żądana data dostawy i uwagi, wraz z informacją o automatycznie dołączanych wartościach.
Krok 3: wypełnij formularz. Uwaga na dole wskazuje, które wartości są dołączane automatycznie.
Aplikacja webowa Skava: karta wyniku akcji API Zamówienie materiałów w czacie ze statusem 200, wprowadzonymi wartościami oraz odpowiedzią backendu (numer zamówienia, status, data dostawy) i rozwijanymi danymi surowymi.
Krok 4: karta wyniku w czacie, zawierająca wprowadzone dane i odpowiedź Twojego backendu.

Pozwól AI zbudować element

Jako administrator firmy nie musisz korzystać z edytora. Powiedz asystentowi Skava w czacie, np. „utwórz mi formularz zamówienia dla mojego katalogu z ilością i adresem dostawy”. Na tej podstawie tworzy szkic, później może zmieniać pola pojedynczo i zna Twój przesłany katalog artykułów: przy zamówieniach proponuje wybór produktu zamiast pola tekstowego na numer artykułu.

Może też ustawić: punkt końcowy i metodę oraz odbiorców („tylko członkowie firmy” lub „także osoby zewnętrzne w tym samym czacie”). W kwestii odbiorców najpierw pyta, zamiast od razu ustawiać, ponieważ to decyduje, kto może uruchamiać element z zewnątrz.

Czego nie dotyka: token dostępu. Nigdy o niego nie pyta i nigdy go nie przyjmuje, ponieważ wiadomości w czacie są przechowywane. Wpisujesz go samodzielnie w edytorze, inaczej żaden wywołanie nie zostanie wysłane. I nie może opublikować: ostatni krok pozostaje po Twojej stronie, więc nic nie staje się widoczne dla klientów bez sprawdzenia.

Kto może to uruchamiać

Karta „Punkt końcowy” określa, kto może korzystać z elementu. Domyślnie są to członkowie Twojej firmy. Drugie ustawienie otwiera dostęp dla osób zewnętrznych, ale tylko w czacie, w którym obecny jest ktoś z Twojej firmy: dokładnie ten przypadek, do którego to służy, czyli klient zamawiający u Ciebie. Gdy Twoja firma opuszcza czat, uprawnienie wygasa automatycznie.

Produkty z własnego katalogu

Po przesłaniu katalogu artykułów, budowa oferuje blok wybieracza produktów. Nie ma opcji do zarządzania: lista to Twój katalog. Osoba zamawiająca wyszukuje w niej, widzi obrazek, nazwę i numer artykułu, a Twój backend otrzymuje numer artykułu. Skava odrzuca numer, który nie znajduje się w Twoim katalogu. Dla ilości umieść obok zwykłe pole liczbowe.

Zdefiniuj kartę samodzielnie

Twój backend decyduje, co karta zawiera. Skava sprawdza tylko kształt, rozmiar i bezpieczeństwo, nigdy znaczenie: nie zna stanów zamówień ani nazw pól. Aby to zrobić, odpowiedz obiektem card:

{"card": {"v": 1, "title": "Order 10001", "state": "pending", "status_text": "Being picked", "fields": [{"label": "Tracking number", "value": "DPD123456789"}]}}

  • v musi być liczbą całkowitą 1. Bez niej odpowiedź nie jest traktowana jako karta i zastosowane jest mapowanie odpowiedzi skonfigurowane w elemencie.
  • state to tylko kolor i ikona: ok, pending, warn lub error. Wszystko, co niesie znaczenie, trafia do status_text jako swobodny tekst.
  • fields to lista etykiet i wartości, maksymalnie 20 pozycji. Zbyt długie wartości są skracane, a nie odrzucane, dzięki czemu zamówienie nigdy nie zawiedzie z powodu drobnego szczegółu.

Dane wprowadzone przez użytkownika należą do serwera: pozostają nietknięte niezależnie od tego, co wysyła Twoje zaplecze. Stanowią one zapis w czacie tego, co faktycznie zostało przesłane.

Zgłaszanie statusu później

Podczas uruchomienia elementu Skava wysyła dwie dodatkowe wartości: callback_url i callback_token. Później zgłoś tam nowy stan, a w czacie pojawi się nowa karta, również na telefonie, gdy ktoś na nią patrzy. Poprzednia karta pozostaje, co pozwala odczytać, jaki stan został zgłoszony. Wyślij ten sam obiekt card jak powyżej, metodą POST z nagłówkiem Authorization: Bearer <callback_token>. Trzy opcjonalne wartości umieszczaj obok karty:

  • seq: własny licznik. Raport o mniejszej lub równej wartości jest odrzucany, dzięki czemu dwa raporty nie mogą się wyprzedzić.
  • final: zamyka interakcję. Token staje się nieważny, a karta jest ostateczna.
  • notify: ustaw na false, aby opublikować kartę cicho, bez licznika nieprzeczytanych i bez powiadomienia. Do kroków pośrednich, które nie powinny nikogo budzić. Bez tego parametru karta jest zwykłą wiadomością.

Interakcja może opublikować maksymalnie 50 kart. Ten sam raport wysłany dwukrotnie nie generuje drugiej karty.

Skava odpowiada kodem 200 i listą hints, jeśli cokolwiek zostało skrócone lub usunięte, oraz kodem 422, jeśli karta była nieprzydatna. Interakcja przyjmuje raporty przez 90 dni.

Karty są wysyłane przez systemowy nadawcę Skavy, a nie przez osobę, która uruchomiła element, ani przez konto Twojej firmy. Informacja o tym, który system jest nadawcą, znajduje się w tytule karty.

Kompletny przykład do skopiowania znajduje się w repozytorium w katalogu example_order_server/ i działa na api.skava.io.

Powiązane

Chcesz raczej stworzyć szablon dokumentu do wypełnienia? Zobacz Custom Elements: Dokumenty.

Najczęściej zadawane pytania

Czym jest interfejs API w Skava?

To formularz, którego wypełnione wartości Skava wysyła jako JSON na adres, który wskażesz (Twój backend): przydatne do łączenia Skavy z własnymi systemami.

Kto może tworzyć i uruchamiać interfejsy API?

Tworzenie i edycja są zarezerwowane dla administratorów firmy. Opublikowany interfejs może następnie uruchamiać każdy członek firmy.

Jaka jest różnica między „Ping” a „Test Request”?

Ping sprawdza tylko, czy adres jest osiągalny: bez tokena i bez danych. Test Request wysyła przykładowe dane, w tym token, i pokazuje pełną odpowiedź.

Czy mój token API jest bezpieczny?

Tak. Token jest przechowywany w formie zaszyfrowanej i nigdy nie jest przekazywany klientom. Aplikacja pokazuje jedynie, czy token jest ustawiony, oraz kiedy wygasa.

Jakie adresy są dozwolone jako punkty końcowe?

Tylko publicznie dostępne adresy https://. Wewnętrzne cele, takie jak localhost, sieci prywatne lub metadane chmury, są odrzucane: chroni to przed niewłaściwym użyciem interfejsu.

Dlaczego nie mogę już zmienić opublikowanego interfejsu?

Adres docelowy, metoda, pola i nagłówek uwierzytelnienia są zablokowane po publikacji, aby nikt nie mógł cicho zmienić miejsca, do którego trafiają dane. Token, jego data wygaśnięcia oraz odbiorcy (tylko własna drużyna lub również firmy partnerskie) pozostają modyfikowalne; to właśnie w ten sposób wymieniasz wygasły token. W przypadku innych zmian tworzysz nową wersję.