NetSendo v2.4.0: funkcje GOLD są teraz egzekwowane licencją
Jeśli uruchamiasz NetSendo na własnym serwerze, musisz dokładnie wiedzieć, z jakich funkcji możesz korzystać i co się stanie po wygaśnięciu licencji. Do tej pory oprogramowanie tego jasno nie określało. Jedynym limitem GOLD faktycznie sprawdzanym przez aplikację był limit Campaign Architect (3 plany na SILVER). Testy A/B, webinary automatyczne i hybrydowe oraz OpenRouter/Ollama działały na każdej instalacji, z licencją lub bez.
NetSendo v2.4.0 to zmienia. Plan GOLD sprzedawany na netsendo.com jest teraz sprawdzany spójnie na serwerze, w panelu, w publicznym API, MCP i NetSendo Brain. Dostajesz jedną centralną warstwę licencji, czytelne komunikaty o ulepszeniu w interfejsie i udokumentowaną odpowiedź 402 Payment Required dla integracji. Co najważniejsze, po wygaśnięciu licencji nic nie jest usuwane.
code: gold_required. Trwające testy się kończą, zapisani uczestnicy webinarów nadal dostają swoje sesje, a Twoje dane pozostają nienaruszone. Jeśli korzystasz z tych funkcji, sprawdź licencję przed aktualizacją.
🚀 Co nowego w v2.4.0
Jedna warstwa licencji
Wszystkie sprawdzenia GOLD przechodzą przez App\Licensing\Feature i LicenseService.
Spójnie wszędzie
Panel, publiczne API, MCP i Brain stosują te same zasady.
Interfejs świadomy GOLD
Odznaki, komunikaty i okno ulepszenia zamiast cichych błędów.
Bez utraty danych
Po wygaśnięciu licencji Twoja dotychczasowa praca zostaje zachowana (EULA §5.5).
Które funkcje wymagają teraz GOLD
- Testy A/B: bez GOLD nie utworzysz, nie edytujesz, nie dodasz wariantów, nie uruchomisz ani nie wznowisz testu. Dotyczy to tras
ab-tests.*,POST/PUT /api/v1/ab-tests,.../variantsi.../start. Obejmuje też wiadomości zapisywane zab_test_config(odrzucane zanim cokolwiek zostanie zapisane) oraz kroki Braincreate_ab_test/start_ab_test. Jeśli wiadomość ze szkicem testu zacznie się wysyłać bez GOLD, test zostaje anulowany, a wiadomość wychodzi w napisanej wersji. - Webinary automatyczne i hybrydowe: nie utworzysz ani nie skopiujesz takiego webinaru, nie zapiszesz harmonogramu ani czatu (
webinars.auto.schedule|import-chat|generate-chat|convert) i nie edytujesz skryptów czatu w kreatorze scenariuszy. Bez GOLD takie webinary przestają przyjmować nowe rejestracje (Webinar::canRegister()). - OpenRouter i Ollama: nie dodasz ich w ustawieniach AI, a każde wywołanie przez nie jest odrzucane. Wszędzie tam, gdzie aplikacja wybiera integrację AI (domyślna integracja, lista modeli, Brain, Campaign Auditor, CardIntel, AI w szablonach), używa teraz
AiIntegration::usable(). Bez GOLD korzysta zamiast nich z OpenAI, Anthropic, Gemini lub Grok.
Co działa po wygaśnięciu GOLD
ℹ️ Uwaga: Nic nie jest usuwane. Trwające testy się kończą i wysyłają zwycięski wariant. Nadal możesz przeglądać wyniki, wstrzymywać testy, wybierać zwycięzcę i usuwać testy. Osoby już zapisane na webinar automatyczny nadal dostają swoją sesję, a ustawienia webinaru pozostają dostępne do odczytu. Wiadomość, której test już się odbył, nadal można edytować, a istniejącą integrację OpenRouter/Ollama nadal można edytować lub usunąć.
Jak odmowa wygląda dla klientów API
Odrzucona funkcja zgłasza wyjątek App\Licensing\FeatureRequiresGold. Wywołania publicznego API i JSON dostają odpowiedź 402 Payment Required z polami code, feature, required_plan i upgrade_url. Oto przykład poglądowy (dokładne wartości mogą się różnić):
{
"code": "gold_required",
"feature": "ab_tests",
"required_plan": "GOLD",
"upgrade_url": "https://..."
}
MCP pokazuje pole message z odpowiedzi. Wizyty Inertia wracają z błędem gold_required i komunikatem flash.
Dla deweloperów: blokowanie własnych tras
Klucze funkcji GOLD to unlimited_ai_campaigns, advanced_ai, ab_tests, auto_webinars i hybrid_webinars. Trasy zabezpieczysz middleware licensed:<feature>, a funkcje sprawdzisz w kodzie metodami LicenseService::allows(), ensureAllows() lub features():
// Przykład poglądowy
Route::post('/ab-tests', [AbTestController::class, 'store'])
->middleware('licensed:ab_tests');
if ($licenseService->allows('auto_webinars')) {
// logika tylko dla GOLD
}
Na froncie każda strona otrzymuje license.features jako współdzielony prop Inertia. Nowy composable useLicense() udostępnia can('ab_tests') i requireGold(). Możesz też używać komponentów GoldBadge, GoldNotice i UpgradeModal. Okno otwiera się także wtedy, gdy wywołanie axios dostanie odpowiedź 402.
💼 Korzyści i przypadki użycia
- Jasne, przewidywalne zasady dotyczące funkcji w Twoim planie
- Odpowiedź 402 czytelna dla maszyn zamiast niejasnych błędów
- Trwające kampanie kończą się poprawnie nawet po wygaśnięciu licencji
- Teksty interfejsu po angielsku, polsku, niemiecku i hiszpańsku
E-commerce: testowanie tematów wiadomości
Właściciel sklepu na GOLD testuje A/B tematy maili o porzuconym koszyku i po zakupie. Jeśli licencja wygaśnie w trakcie testu:
- Trwający test się kończy i wysyła zwycięski wariant
- Wyniki pozostają dostępne do przeglądu
- Szkice testów są anulowane, a wiadomość wychodzi w napisanej wersji zamiast kończyć się błędem
SaaS: stałe webinary onboardingowe
Zespół SaaS używa webinaru automatycznego do onboardingu. Bez GOLD webinar przestaje przyjmować nowe zapisy, ale wszyscy już zapisani nadal dostają swoją sesję. Zespół ma więc czas na odnowienie licencji bez zawodzenia osób, które się zapisały.
Agencje: integracje obsługujące odmowy
Agencja automatyzuje kampanie klientów przez API i n8n. Dzięki odpowiedzi 402 gold_required workflow może wykryć ten przypadek, powiadomić właściciela konta i pominąć zablokowany krok zamiast zakończyć się błędem.
🛠️ Krok po kroku: aktualizacja do v2.4.0
- Najpierw sprawdź licencję
Przed aktualizacją sprawdź w panelu NetSendo plan licencji i datę wygaśnięcia. Jeśli korzystasz z testów A/B, webinarów automatycznych/hybrydowych lub OpenRouter/Ollama, upewnij się, że Twoja licencja GOLD jest aktywna.
- Spisz, z czego korzystasz
Zanotuj szkice testów A/B, webinary automatyczne przyjmujące zapisy i zadania Brain ustawione na modele OpenRouter lub Ollama. To w tych miejscach zobaczysz zmianę.
- Zaktualizuj instalację
Postępuj zgodnie z instrukcją aktualizacji w dokumentacji. W typowej instalacji Docker:
docker compose pull docker compose up -d - Przejrzyj ustawienia AI
Bez GOLD AI korzysta z OpenAI, Anthropic, Gemini lub Grok zamiast OpenRouter/Ollama. Upewnij się, że skonfigurowano co najmniej jednego z nich, inaczej funkcje AI nie będą miały dostawcy.
- Zaktualizuj klientów API
Obsłuż kod HTTP 402 w skryptach i integracjach, które wywołują
/api/v1/ab-testslub wysyłają wiadomości zab_test_config.
⚠️ Częsty błąd: Wiadomość zapisywana przez API z ab_test_config jest bez GOLD odrzucana w całości i nic nie zostaje zapisane. Jeśli chcesz, żeby wiadomość i tak wyszła, niech Twój klient ponowi żądanie bez konfiguracji A/B.
🐛 Poprawki i mniejsze zmiany
- Komunikaty Campaign Architect są przetłumaczone: okno limitu nie wyświetla już dosłownie
:limit, a licznik planów i odpowiedź 403 nie pokazują już surowych kluczy tłumaczeń (en, pl, de, es). - Poprawka domyślnej integracji AI:
AiService::getDefaultIntegrationmógł wybrać nieaktywną integrację Ollama, bo warunekorWherenie był zgrupowany. - Szybsze sprawdzanie licencji:
LicenseServiceodczytuje teraz plan jednym zapytaniem do bazy zamiast czterech. - Pokrycie testami:
GoldFeatureGatingTestdodaje 24 testy obejmujące SILVER, GOLD i wygasły GOLD dla każdej funkcji.
🎯 Wskazówki eksperta
W klientach API sprawdzaj code: gold_required zamiast traktować każde 402 tak samo. Loguj pole feature, żeby wiedzieć, co zostało odrzucone.
Nawet na GOLD skonfiguruj integrację OpenAI, Anthropic, Gemini lub Grok. Funkcje AI będą działać, jeśli licencja wygaśnie.
can() we własnym interfejsieJeśli rozszerzasz panel, ukrywaj lub blokuj kontrolki GOLD za pomocą useLicense().can(), żeby użytkownicy nie trafiali na błędy.
Trwające testy kończą się po wygaśnięciu licencji, ale nowe testy i zapisy na webinary zatrzymują się od razu. Odnowienie przed datą wygaśnięcia pozwala uniknąć przerwy.
✅ Podsumowanie
W v2.4.0 funkcje GOLD, za które płacisz, są teraz faktycznie sprawdzane przez aplikację. Testy A/B, webinary automatyczne/hybrydowe oraz OpenRouter/Ollama wymagają aktywnej licencji GOLD. Te same zasady obowiązują w panelu, API, MCP i Brain, a odmowy są czytelne zarówno w interfejsie, jak i w odpowiedziach API. Twoje dane pozostają nienaruszone, a wszystko, co już trwa, kończy się poprawnie. Sprawdź licencję, zaktualizuj klientów API i dopiero wtedy przeprowadź aktualizację.
Gotowy na aktualizację?
Przeczytaj informacje o wydaniu, zajrzyj do dokumentacji i zaktualizuj swoje NetSendo:
Pełną listę zmian znajdziesz na GitHubie. Jeśli NetSendo Ci pomaga, zostaw ⭐ na GitHubie!

