NetSendo
Platform Updates

NetSendo v2.4.0: funkcje GOLD są teraz egzekwowane licencją

NetSendo Team7 min czytania

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.

TL;DR: W v2.4.0 testy A/B, webinary automatyczne/hybrydowe oraz dostawcy AI OpenRouter/Ollama wymagają aktywnej licencji GOLD. Bez niej (brak klucza, SILVER lub wygasły GOLD) nowe użycia są odrzucane, a klienci API dostają odpowiedź 402 z 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, .../variants i .../start. Obejmuje też wiadomości zapisywane z ab_test_config (odrzucane zanim cokolwiek zostanie zapisane) oraz kroki Brain create_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

  1. 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.

  2. 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ę.

  3. Zaktualizuj instalację

    Postępuj zgodnie z instrukcją aktualizacji w dokumentacji. W typowej instalacji Docker:

    docker compose pull
    docker compose up -d
  4. 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.

  5. Zaktualizuj klientów API

    Obsłuż kod HTTP 402 w skryptach i integracjach, które wywołują /api/v1/ab-tests lub wysyłają wiadomości z ab_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::getDefaultIntegration mógł wybrać nieaktywną integrację Ollama, bo warunek orWhere nie był zgrupowany.
  • Szybsze sprawdzanie licencji: LicenseService odczytuje teraz plan jednym zapytaniem do bazy zamiast czterech.
  • Pokrycie testami: GoldFeatureGatingTest dodaje 24 testy obejmujące SILVER, GOLD i wygasły GOLD dla każdej funkcji.

🎯 Wskazówki eksperta

1
Sprawdzaj kod, nie tylko status

W klientach API sprawdzaj code: gold_required zamiast traktować każde 402 tak samo. Loguj pole feature, żeby wiedzieć, co zostało odrzucone.

2
Miej zapasowego dostawcę AI

Nawet na GOLD skonfiguruj integrację OpenAI, Anthropic, Gemini lub Grok. Funkcje AI będą działać, jeśli licencja wygaśnie.

3
Używaj can() we własnym interfejsie

Jeśli rozszerzasz panel, ukrywaj lub blokuj kontrolki GOLD za pomocą useLicense().can(), żeby użytkownicy nie trafiali na błędy.

4
Ustaw przypomnienie o odnowieniu

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!

#licensing#gold-plan#ab-testing#webinars#ai#api#release-notes
Udostępnij