NetSendo v2.11.2: czat webinarowy i poprawki stref czasowych
Wyobraź sobie, że Twój auto-webinar trwa i pokój wygląda dobrze: wideo działa, odliczanie też. Ale panel czatu pokazuje „Ładowanie czatu…” i nigdy się nie ładuje. Zaplanowane pytania się nie pojawiają, widzowie nie mogą o nic zapytać, a w pokoju widać „0 widzów”. Do tego sesja zarezerwowana na 19:00 zaczyna się o 20:00.
NetSendo v2.11.2 to wydanie poprawkowe, które usuwa te problemy. Uruchamia czat w pokoju webinaru, poprawia obsługę stref czasowych w całym module webinarów i naprawia obliczenia dat, które przestały działać po aktualizacji do Carbon 3.
subscribed_days_ago, priorytety CRON Brain i przypomnienia w Google Calendar. Prowadzący powinni sprawdzić nadchodzące webinary na żywo i hybrydowe.
🚀 Co nowego w v2.11.2
Czat webinaru działa
Pokój ma publiczny endpoint czatu z odpytywaniem, wysyłaniem wiadomości i moderacją.
Poprawne strefy czasowe
Wpisane godziny są odczytywane w strefie webinaru i zapisywane w UTC.
Dokładny czas oglądania
Czas oglądania jest liczony dla każdej wizyty, więc za obecnych uznaje się tylko osoby, które obejrzały wymagane minimum.
Poprawki dat dla Carbon 3
Warunki automatyzacji, punktacja CRON i przypomnienia w kalendarzu znów poprawnie liczą czas.
Czat w pokoju webinaru
Pokój pod adresem /webinar/{slug}/watch/{token} miał panel czatu, ale bez kodu i endpointu za nim. Teraz pokój co 4 sekundy sprawdza nowe wiadomości i wysyła wiadomości na ten sam adres. Wysyłanie ma limit dla każdej rejestracji:
GET /webinar/{slug}/chat/{token} # pobieranie wiadomości (co 4 s)
POST /webinar/{slug}/chat/{token} # wysyłanie wiadomości (z limitem)
W auto-webinarach i webinarach hybrydowych skrypt czatu jest odtwarzany według zegara sesji każdego widza. To trochę jak napisy zsynchronizowane z odtwarzaniem u każdego widza:
- Linia ustawiona na
00:25pojawia się 25 sekund po rozpoczęciu sesji danego widza. - Widzowie, którzy dołączą później, widzą to, co „powiedziano” przed ich przyjściem.
- Linie, na które jeszcze nie pora, nigdy nie trafiają do przeglądarki, więc widz nie przeczyta ich wcześniej w źródle strony.
- Linie „pokaż losowo” są wybierane raz dla każdego widza, więc nie zmieniają się między odpytaniami.
Tryby czatu ze Studia działają teraz w pokoju:
- Tylko prowadzący: widzowie nie mogą wysyłać wiadomości.
- Tylko Q&A: wiadomości są zapisywane jako pytania.
- Moderowany / wymaga zatwierdzenia: inni widzowie nie widzą wiadomości, dopóki jej nie zatwierdzisz. Wiadomość czekająca na zatwierdzenie nie jest już wcześniej pokazywana innym widzom.
- Tryb powolny: widzowie muszą odczekać między wiadomościami.
Nagrania pokazują liczbę widzów ze Studia (bazowa ± wariancja) zamiast „0 widzów”. Gdy wyłączysz Czat włączony, panel znika z pokoju, a w już otwartych pokojach znika przy następnym odpytaniu. Studio nie pokazuje już surowego klucza webinars.chat.disabled, a jego teksty czatu są przetłumaczone na wszystkie cztery języki.
Obsługa stref czasowych
Godziny webinarów psuły dwa błędy stref czasowych. Panel wysyła godzinę rozpoczęcia bez strefy, a była ona odczytywana jako UTC. Webinar w Warszawie ustawiony na 19:00 zaczynał się więc o 20:00 zimą (o 21:00 latem). Tymczasem strona zapisu i e-maile wyświetlały zapisane cyfry i nadal podawały 19:00.
Wpisana godzina jest teraz odczytywana w strefie webinaru (albo w strefie Twojego konta, jeśli webinar nie ma własnej) i zapisywana w UTC. Sloty auto-webinarów zawierają teraz przesunięcie względem UTC:
{
"slot": "2026-11-12T18:40:00+01:00"
}
Wartość z przesunięciem, np. 2026-11-20T18:00:00Z, je zachowuje. Formularz edycji pokazuje teraz, w jakiej strefie edytujesz, a utworzenie webinaru z godziną, która już minęła, jest odrzucane. Każde miejsce, które pokazuje godzinę, przelicza ją na właściwą strefę: strona zapisu, ekran podziękowania, strona oglądania, e-maile, bloki dat w kreatorze stron oraz tokeny {{webinar_date}} i {{webinar_time}}.
⚠️ Prowadzący: sprawdźcie nadchodzące webinary na żywo i hybrydowe. Webinary zaplanowane przed tą wersją zachowują zapisaną godzinę, czyli tę, której już używały odliczanie i przypomnienia. Webinar wpisany jako 19:00 w Warszawie pokazuje teraz wszędzie 20:00. Jeśli chodziło o 19:00, otwórz webinar, ustaw ponownie 19:00 i zapisz.
Obliczenia dat w Carbon 3
Carbon 3 zwraca różnice ze znakiem. $later->diffInDays($earlier) jest teraz ujemne, a Carbon 2 zawsze zwracał liczbę dodatnią. To zepsuło kilka funkcji:
subscribed_days_agonigdy nie pasował, więc automatyzacje, które go używały, nigdy się nie uruchamiały. Teraz liczy pełne dni od dołączenia subskrybenta do listy zdarzenia.- CRON Brain dawał najniższy priorytet agentom, które najdłużej były bezczynne. Agent uruchomiony ostatnio 14 dni temu dostawał −16 zamiast 25. Teraz priorytet rośnie z liczbą dni od ostatniego udanego uruchomienia agenta.
- Przypomnienia w Google Calendar dla zadań CRM docierały jako „0 minut przed”. Zadania z przypomnieniem, ale bez terminu, synchronizują się teraz z domyślnymi przypomnieniami kalendarza.
- Wyjście z pokoju webinaru zwracało HTTP 500, bo czas oglądania był ujemny, a MySQL odrzucał go w kolumnie bez znaku.
- Import czatu sesji na żywo do skryptu czatu auto-webinaru kończył się błędem, bo każda wiadomość dostawała ujemny czas wyświetlenia. Teraz wiadomości zachowują swoje przesunięcie względem początku sesji.
- „Śr. czas trwania” w Ustawienia → CRON nie jest już ujemny.
💼 Korzyści i przypadki użycia
SaaS: wiecznie zielone webinary onboardingowe
Prowadź codzienny auto-webinar, który wygląda jak sesja na żywo:
- Zaplanuj częste pytania na momenty, w których pojawiają się w demo.
- Używaj trybu tylko Q&A, aby zbierać prawdziwe obiekcje użytkowników wersji próbnej.
- Taguj osoby, które naprawdę obejrzały webinar, i wysyłaj im sekwencję konwersyjną opartą na dokładnym czasie oglądania.
E-commerce: komunikacja zależna od czasu
Użyj naprawionego warunku subscribed_days_ago, aby:
- wysłać rabat lojalnościowy 30 dni po dołączeniu subskrybenta,
- zaprosić starszych subskrybentów na webinar premierowy o właściwej godzinie lokalnej.
Agencje: klienci w wielu strefach czasowych
Webinar każdego klienta używa teraz własnej strefy czasowej, od strony zapisu po przypomnienia e-mail i plik kalendarza. To mniej zgłoszeń od uczestników, którzy przyszli godzinę za wcześnie lub za późno.
🛠️ Krok po kroku: aktualizacja i weryfikacja
- Zrób kopię bazy danych
Przed aktualizacją wykonaj zrzut MySQL. To zawsze dobry nawyk przy instalacjach self-hosted.
- Pobierz nową wersję
Zaktualizuj wdrożenie Docker:
docker compose pull docker compose up -dAutomatyczna migracja dodaje nową kolumnę
webinar_registrations.visit_started_at. - Sprawdź nadchodzące webinary
Otwórz każdy nadchodzący webinar na żywo lub hybrydowy. Formularz edycji pokazuje teraz jego strefę czasową. Jeśli godzina jest błędna, wpisz ją ponownie i zapisz.
- Skonfiguruj czat
W Studiu sprawdź, czy opcja Czat włączony jest aktywna, wybierz tryb czatu i w razie potrzeby ustaw tryb powolny.
- Przetestuj jako widz
Zarejestruj się testowym adresem e-mail, wejdź do pokoju i sprawdź, czy linie skryptu pojawiają się we właściwych momentach, a wysyłane wiadomości podlegają Twoim ustawieniom moderacji.
- Sprawdź automatyzacje
Reguły z
subscribed_days_agozaczną teraz pasować. Przejrzyj je, aby zaległa grupa pasujących subskrybentów nie dostała wiadomości, których nie chcesz im wysyłać.
ℹ️ Uwaga: Sesje auto-webinarów zarezerwowane przed tym wydaniem zachowują zapisane godziny. Tylko nowe rezerwacje używają poprawionej strefy slotów.
🎯 Wskazówki ekspertów
Widzowie, którzy dołączą później, widzą wcześniejsze linie, więc aktywny początek sprawia, że pokój wydaje się żywy dla wszystkich.
Przy większych sesjach na żywo moderowany czat z trybem powolnym ogranicza spam i utrzymuje kolejkę do zatwierdzenia w rozsądnych rozmiarach.
Import czatu znów działa, więc możesz skopiować czat udanej sesji na żywo do skryptu auto-webinaru. Czas wiadomości zostaje zachowany.
Nadaj każdemu webinarowi i harmonogramowi własną strefę czasową zamiast polegać na ustawieniach konta, zwłaszcza w agencjach.
Jeśli masz własne rozszerzenia, wyszukaj wywołania diffIn* i otocz je abs() albo zamień kolejność argumentów tam, gdzie potrzebujesz wartości dodatniej.
Inne poprawki: publiczne strony webinarów deklarują teraz swój rzeczywisty język zamiast zawsze lang="pl", ekran podziękowania pokazuje godzinę jako „12.11.2026 · 21:25” w każdym języku, a komunikat pokoju „Twoja przeglądarka nie może odtworzyć tego wideo” jest przetłumaczony.
✅ Podsumowanie
v2.11.2 sprawia, że webinary NetSendo są bardziej niezawodne. Czat działa, a skrypty auto-webinarów odtwarzają się według osi czasu każdego widza. Godziny webinarów odpowiadają ustawionej strefie czasowej, a lista „obecnych” odzwierciedla rzeczywisty czas oglądania. Ponieważ NetSendo jest self-hosted, dane webinarów, logi czatu i listy subskrybentów zostają na Twoim serwerze.
Gotowy na aktualizację?
Zaktualizuj do v2.11.2 i sprawdź nadchodzące webinary:
Poznaj więcej integracji, a jeśli NetSendo pomaga Twojej firmie, daj nam gwiazdkę na GitHubie.

