Przejdź do głównej zawartości

Bilety

Bilet to wpis w kolejce wydawany klientowi w momencie dołączenia. Jest to podstawowa jednostka systemu kolejkowego — od ekranu wyświetlacza po interfejs stanowiska wszystko obraca się wokół biletów.

  • Numer biletu — kolejna liczba całkowita widoczna dla klienta, wydrukowana na paragonie z kiosku, pokazywana na ekranie wyświetlacza i widoczna na liście oczekujących na stanowisku. Numery są przypisane do kolejki i rosną monotonicznie — nigdy nie są resetowane.
  • Hash biletu — losowy ciąg 22 znaków o entropii 128 bitów. Ten hash jest anonimowym poświadczeniem dostępu klienta (zobacz niżej).
  • Stan — jedna z sześciu wartości (zobacz niżej).
  • Kolejka — kolejka, do której należy bilet.
  • Znaczniki czasu — kiedy bilet został utworzony, wywołany, zakończony itd.
  • Adnotacje (opcjonalne) — metadane wprowadzone przez personel: imię i nazwisko klienta, liczba osób oraz notatka w dowolnym tekście. Zobacz Adnotacje do biletu.

Bilet przechodzi w trakcie swojego cyklu życia przez następujące stany:

StanKońcowy?Znaczenie
WAITINGNieKlient znajduje się w kolejce, oczekując na wywołanie.
CALLEDNieStanowisko wywołało ten bilet; klient powinien podejść do stanowiska.
SKIPPEDNieStanowisko pominęło ten bilet. Można wywołać ponownie — personel może przywrócić go do WAITING.
COMPLETEDTakStanowisko oznaczyło obsługę jako zakończoną.
CANCELEDTakKlient anulował własne miejsce w kolejce.
NO_SHOWTakStanowisko potwierdziło nieobecność klienta. Liczony osobno od SKIPPED w statystykach.
WAITING → CALLED → COMPLETED
↘ SKIPPED → WAITING (stanowisko ponownie wywołuje klienta)
↘ NO_SHOW (stanowisko potwierdza nieobecność)
↘ CANCELED (klient anuluje odroczone miejsce)
WAITING → CANCELED (z inicjatywy klienta)
CALLED → CANCELED (z inicjatywy klienta)
SKIPPED → CANCELED (z inicjatywy klienta — usuwa z puli biletów możliwych do ponownego wywołania)

SKIPPED to odroczenie z możliwością ponownego wywołania — klient został pominięty, ale bilet nadal jest aktywny. Personel może przywołać klienta ponownie za pomocą akcji Przywróć do kolejki w widoku wyszukiwania na stanowisku, albo naciskając Cofnij w ciągu 5 sekund od pominięcia. Subskrypcja powiadomień push pominiętego klienta pozostaje aktywna, dzięki czemu powiadomienie push o ponownym wywołaniu dociera do niego nawet wtedy, gdy strona biletu została zamknięta.

NO_SHOW to potwierdzona, końcowa nieobecność. Bilet jest usuwany z puli biletów możliwych do ponownego wywołania i liczony osobno w statystykach. Używaj tego, gdy masz pewność, że klient odszedł.

Zobacz Obsługa nieobecności, aby poznać pełny przebieg pracy na stanowisku.

Personel może dołączyć do dowolnego biletu lekkie metadane za pomocą akcji Dodaj adnotację na stanowisku:

  • Imię i nazwisko klienta — widoczne na stanowisku przez cały czas. Na wyświetlaczu pokazywane tylko wtedy, gdy ustawienie Wzywaj po imieniu kolejki jest włączone, i wtedy tylko w skróconej formie („Imię N.”) — nigdy pełne imię i nazwisko.
  • Liczba osób — zawsze pokazywana na stanowisku i przesyłana do wyświetlacza (informacja o niskiej wrażliwości).
  • Notatka — wewnętrzna notatka w dowolnym tekście. Widoczna tylko na stanowisku; nigdy nie jest wysyłana do wyświetlacza ani do klienta.

Powód pominięcia (wprowadzany w polu Powód pominięcia (opcjonalnie), gdy bilet zostaje pominięty) jest zapisywany w polu notatki biletu i widoczny w widoku wyszukiwania na stanowisku.

Adnotacje mogą być dodawane lub aktualizowane w dowolnym momencie, dopóki bilet nie osiągnie stanu końcowego.

Bilet w stanie WAITING można przenieść do innej kolejki w tej samej lokalizacji za pomocą przycisku Przenieś na stanowisku. Jest to przydatne, gdy klient dołączył do niewłaściwej kolejki lub gdy wstępna ocena wykaże, że potrzebuje innej usługi.

Zasady przenoszenia:

  • Przenoszone mogą być wyłącznie bilety w stanie WAITING. Bilety w stanie CALLED muszą najpierw zostać zakończone, pominięte lub oznaczone jako nieobecność.
  • Kolejka źródłowa i docelowa muszą znajdować się w tej samej lokalizacji.
  • Kolejka docelowa musi mieć status ACTIVE.
  • Stanowisko musi być przypisane zarówno do kolejki źródłowej, jak i docelowej.
  • Wymagana jest aktywna subskrypcja.

Pozycjonowanie po przeniesieniu — bilet zachowuje pierwotny czas dołączenia klienta powiększony o karę 5 minut. Zachowuje to już odczekany czas, jednocześnie uniemożliwiając klientowi wyprzedzenie osób, które czekają w kolejce docelowej już dłużej.

Hash biletu zostaje zachowany — adres URL strony biletu klienta pozostaje ważny. Bilet otrzymuje w kolejce docelowej nowy, kolejny numer. Aktualizacje w czasie rzeczywistym są natychmiast przesyłane do obu kolejek.

Zobacz sekcję Przenieś bilet do innej kolejki przewodnika po stanowisku, aby poznać instrukcje krok po kroku.

Klienci są anonimowi — dołączenie do kolejki nie wymaga logowania ani konta. Zamiast tego 22-znakowy hash biletu służy jako dowód własności klienta. Jest osadzony w adresie URL strony biletu:

https://customer.jonot.io/{org}/{location}/{queue}/{ticket-hash}/

Znajomość hasha dowodzi, że dany bilet należy do Ciebie. API używa hasha do autoryzacji:

  • ticketByHash — sprawdzenie swojego biletu i pozycji
  • cancelTicket — anulowanie własnego biletu (działa dla biletów w stanie WAITING, CALLED i SKIPPED)

To rozwiązanie jest celowe: eliminuje wszelkie tarcia przy dołączaniu do kolejki. Bez konta, bez aplikacji, bez hasła — wystarczy adres URL.

Hash ma 128 bitów entropii (odpowiednik UUID v4), co sprawia, że odgadnięcie hasha biletu innego klienta jest obliczeniowo niewykonalne.

W normalnym użyciu dołączanie pozostaje pozbawione tarcia. Jako zabezpieczenie przed nadużyciami, jeśli pojedyncza kolejka odnotuje w krótkim czasie nietypowo duży skok liczby dołączeń, klienci dołączający przez internet (kod QR lub link) mogą zostać poproszeni o szybką weryfikację „nie jestem robotem”, zanim ich bilet zostanie wydany. Większość rzeczywistych odwiedzających przechodzi ją niezauważalnie. Pojawia się ona wyłącznie podczas takich nagłych skoków ruchu — przy normalnym ruchu żadna weryfikacja nie jest pokazywana — i nigdy nie dotyczy stacjonarnego kiosku, którego dołączenia są zaufane na podstawie poświadczenia urządzenia.

Gdy bilet znajduje się w stanie WAITING, strona biletu klienta pokazuje szacowany czas oczekiwania. Ten sam szacunek jest pokazywany na ekranie potwierdzenia po dołączeniu na kiosku, dzięki czemu klient opuszcza kiosk z liczbą do zapamiętania. Jest to szacunek najlepszy z możliwych, a nie gwarancja.

Szacunek jest obliczany na podstawie ostatnich odstępów czasu obsługi w danej kolejce: jeśli w ciągu ostatnich 90 minut istnieje wystarczająca liczba zakończonych biletów, serwer wyznacza medianę czasu obsługi i mnoży ją przez pozycję klienta w kolejce (liczba osób przed + 0,5). Gdy klient jest następny w kolejce (zero osób przed nim), szacunek podawany jest jako zero. Gdy ostatnia historia jest zbyt uboga, jako wartość zastępczą stosuje się skonfigurowany dla kolejki przewidywany czas obsługi. Szacunek ma wskaźnik pewności (high, gdy wyznaczony na podstawie danych na żywo lub gdy klient jest następny, low, gdy zastosowano skonfigurowaną wartość domyślną).

Szacunek jest pokazywany wyłącznie dla biletów w stanie WAITING w kolejce o statusie ACTIVE. Nie jest pokazywany, gdy kolejka jest wstrzymana, i znika, gdy bilet zostaje wywołany.

  1. Klient dołącza przez kod QR lub kiosk → bilet zostaje wydany w stanie WAITING.
  2. Klient otwiera stronę biletu → widzi swoją pozycję w kolejce oraz, jeśli jest dostępny, szacowany czas oczekiwania w czasie rzeczywistym.
  3. Gdy stanowisko wywołuje jego numer, bilet przechodzi do stanu CALLED → strona klienta aktualizuje się natychmiast.
  4. Klient podchodzi do stanowiska. Po obsłudze stanowisko oznacza bilet jako COMPLETED.
  5. Jeśli klient nie zareaguje, stanowisko może:
    • Pomiń → bilet przechodzi do stanu SKIPPED (odroczenie z możliwością ponownego wywołania). Ekran klienta pokazuje, że został pominięty, wraz z opcjami oczekiwania lub ponownego dołączenia.
    • Nieobecność → bilet przechodzi do stanu NO_SHOW (końcowy). Statystyki liczą to osobno od pominiętych biletów.
  6. Pominięty klient może zostać ponownie przywołany przez personel (wraca do stanu WAITING na początku kolejki) lub może anulować swoje miejsce i dołączyć ponownie na końcu.