Přeskočit na hlavní obsah

Notifikace a personalizace (PRD-03)

info

Aktivní komunikace s uživatelem — push, watchdog, geolokace. Plné znění najdete níže na této stránce.

Scope​

FázeObrazovek
MVP1 (permission dialog)
F16 (centrum, nastavení, watchdog)
F2+2 (geolokace, mapa)
Celkem9

Typy notifikací (F1)​

TypPříkladTrigger
AutomatickáZrušení akce, změna termínuSystémová událost
PersonalizovanáNová akce dle preferencíOnboarding preference
ManuálníSezónní nabídky, soutěžeCMS kampaň
WatchdogUvolnění místa na vyprodané akciDostupnost change

Klíčové interakce​

  • Custom pre-prompt před systémovým permission dialogem
  • Swipe akce na notifikacích (smazat, ztlumit)
  • Deep link z každé notifikace na cílový screen
  • Quiet hours — žádné push 22:00–8:00

Detailní specifikace (Plné znění PRD)​

PRD-03: Notifikace a personalizace — Colosseum MA

Verze1.0
Datum2026-02-23
StavDraft
VlastníkSymbio — Analýza & Design

1. Přehled a cíle​

Notifikace a personalizace jsou klíčovým nástrojem pro budování dlouhodobého vztahu se zákazníkem. Zatímco web Colosseum Ticket funguje jako pasivní prodejní kanál, mobilní aplikace umožňuje aktivně oslovovat uživatele v pravý čas s relevantním obsahem.

Oblast pokrývá tři vzájemně provázané funkční celky:

  1. Push notifikace — proaktivní komunikace s uživatelem (automatická, personalizovaná, manuální)
  2. Notifikační centrum — in-app feed všech doručených notifikací s historií
  3. Watchdog — hlídač vyprodaných akcí s alertem při uvolnění místa

Cíle​

CílMetrikaFáze
Zvýšit návratnost uživatelů do aplikaceReopen rate po push notifikaciMVP → F1
Snížit zmeškané akce a neproběhlé nákupyPočet zrušených objednávek po zrušení/změně akceF1
Zvýšit konverzi z hlídačeKonverzní poměr watchdog → nákupF1
Dostat relevantní obsah k uživateliCTR personalizovaných notifikací vs. broadcastF1
Rozšířit reach pomocí geolokacePočet nákupů z geolokačních doporučeníF2+

Vazba na další PRD​

  • PRD-02 (Klientská zóna): Onboarding (S6) sbírá preference, které notifikační systém využívá pro personalizaci. Nastavení notifikací je přístupné z uživatelského účtu (P9).
  • PRD-01 (Nákup vstupenek): Watchdog se aktivuje z detailu akce (P3) u vyprodaných eventů. Notifikace vedou deep linkem na detail akce nebo checkout.
  • PRD-04 (Věrnostní program): Notifikace o bodech, odměnách a expiracích (F1 rozšíření).

2. User stories​

MVP​

IDRoleStoryAkceptační kritéria
US-03-01Nový uživatelChci rozumět, proč bych měl povolit notifikace, abych se mohl informovaně rozhodnoutCustom pre-prompt dialog s vysvětlením hodnoty se zobrazí před systémovým permission dialogem. Uživatel vidí konkrétní přínosy (změny akcí, připomínky, nabídky).
US-03-02Nový uživatelChci mít možnost notifikace odmítnout a později zapnoutOdmítnutí nezablokuje funkce aplikace. V nastavení účtu (P9) je odkaz na systémové nastavení pro pozdější aktivaci.
US-03-03Registrovaný uživatelChci dostat push notifikaci, když se změní nebo zruší akce, na kterou mám vstupenkuSystém odešle push při zrušení nebo změně termínu akce, na kterou má uživatel aktivní vstupenku.

F1​

IDRoleStoryAkceptační kritéria
US-03-04Registrovaný uživatelChci být automaticky upozorněn den před akcíPush notifikace 24 h před začátkem akce s praktickými informacemi (čas, místo, QR odkaz).
US-03-05Registrovaný uživatelChci dostávat doporučení nových akcí podle mých preferencíSystém odesílá personalizované push notifikace na základě nastavených žánrů, lokalit a oblíbených pořadatelů (z onboardingu S6). Max 1 personalizovaná notifikace denně.
US-03-06Registrovaný uživatelChci vidět všechny notifikace na jednom místě v aplikaciNotifikační centrum (S19) zobrazuje chronologický feed všech doručených notifikací. Nové/nepřečtené jsou vizuálně odlišené.
US-03-07Registrovaný uživatelChci kliknutím na notifikaci přejít přímo na relevantní obsahKaždá notifikace obsahuje deep link — tap otevře detail akce, checkout, wallet nebo jinou cílovou obrazovku.
US-03-08Registrovaný uživatelChci si nastavit hlídač na vyprodanou akciNa detailu vyprodané akce (P3) CTA „Hlídat" aktivuje watchdog. Systém odešle push při uvolnění místa.
US-03-09Registrovaný uživatelChci spravovat své aktivní watchdogyObrazovka S10 zobrazuje seznam aktivních hlídačů s možností zrušení.
US-03-10Registrovaný uživatelChci si vybrat, jaké typy notifikací chci dostávatNastavení notifikací (S9) umožňuje toggle per typ: automatické, personalizované, manuální.
US-03-11Registrovaný uživatelChci mazat notifikace z feeduSwipe-to-delete nebo swipe-to-archive v notifikačním centru.
US-03-12Registrovaný uživatelChci dostat dotazník spokojenosti po návštěvě akcePush notifikace ~3 dny po akci s odkazem na krátký dotazník.
US-03-13Neaktivní uživatelChci být osloven po delší neaktivitěSystém odešle re-engagement push po definované době neaktivity (konfigurovatelné v CMS, default 30 dní).

F2+​

IDRoleStoryAkceptační kritéria
US-03-14Registrovaný uživatelChci vidět akce v mém okolí na mapěGeolokační obrazovka (S22) zobrazuje akce na mapě s nastavitelným radiusem.
US-03-15Registrovaný uživatelChci dostat notifikaci, když je v okolí zajímavá akcePush notifikace na základě aktuální polohy a preferencí uživatele. Vyžaduje „always" nebo „while using" location permission.
US-03-16Nový uživatelChci rozumět, proč aplikace potřebuje mou polohuCustom pre-prompt (X13) vysvětluje přínos geolokace před systémovým permission dialogem.

3. Funkční specifikace​

3.1 MVP scope​

Push notifikace — základní infrastruktura​

  • Permission flow: Při prvním spuštění (nebo po registraci) se zobrazí custom pre-prompt dialog (X12) s hodnotovou propozicí:
    • Headline: „Buďte v obraze"
    • Body: 3 bullet points s konkrétním přínosem (změny akcí, připomínky, doporučení)
    • CTA primární: „Zapnout upozornění" → spustí systémový permission dialog
    • CTA sekundární: „Teď ne" → dismiss, nikdy se nezobrazí znovu automaticky (uživatel může povolit ručně v nastavení)
  • Timing zobrazení: Po dokončení registrace nebo po 2. návštěvě aplikace (whichever comes first)
  • Základní notifikace v MVP: Jen systémové (zrušení/změna akce pro držitele vstupenky). Plný systém je F1.
  • Token management: Při povolení se device token uloží na backend, napojí na user account. Při odhlášení se token odpojí od účtu.

Nastavení v účtu​

  • V uživatelském účtu (P9) položka „Notifikace" s ikonou:
    • Pokud povoleny: naviguje na nastavení notifikací (v MVP zobrazí pouze status „Notifikace zapnuty" + odkaz do systémového nastavení)
    • Pokud nepovoleny: CTA „Zapnout" s deep linkem do systémového nastavení iOS/Android

3.2 F1 rozšíření​

Typy notifikací — plný systém​

TypTriggerObsahDeep linkKonfigurovatelné v CMS
Automatické — ZrušeníEvent status → cancelled„[Název akce] byl zrušen. Vstupenky budou vráceny."Detail objednávkyNe (systémové)
Automatické — Změna termínuEventDate changed„[Název akce] má nový termín: [datum]."Detail akce (P3)Ne (systémové)
Automatické — PřipomínkaT-24h před EventDate„Zítra v [čas]: [Název akce] v [Venue]. Vaše vstupenky →"Detail vstupenky (S8)Časování (T-24h, T-2h)
Automatické — Info před akcíT-3h před EventDatePraktické informace (parkování, dress code, vstup)Detail akce (P3)Obsah per venue/event
Automatické — SpokojenostT+3d po EventDate„Jak se vám líbilo [Název akce]?"Dotazník (external link)Zapnutí/vypnutí, delay
Automatické — Re-engagementNeaktivita > X dní„Něco nového pro vás: [personalizovaná akce]"Home feed (P1)Threshold dní, obsah
Personalizované — Nová akceNový event matching preferencí„Nově v prodeji: [Název akce] — odpovídá vašim zájmům"Detail akce (P3)Frekvence, segmenty
Personalizované — Oblíbený pořadatelNový event od sledovaného organizátora„[Pořadatel] vypisuje: [Název akce]"Detail akce (P3)Frekvence
Manuální — Slevová akceCMS trigger (admin)Custom text + obrázekDle nastavení (P2, P3...)Plně konfigurovatelné
Manuální — SoutěžCMS trigger (admin)Custom textExternal link / in-appPlně konfigurovatelné
Manuální — BestselleryCMS trigger (admin)„Nejprodávanější tento týden: ..."Seznam akcí (P2)Plně konfigurovatelné
Manuální — Důležité sděleníCMS trigger (admin)Custom textDle nastaveníPlně konfigurovatelné
WatchdogMísto uvolněno pro hlídaný event„[Název akce] — uvolnila se místa! Kupte dříve, než zmizí."Seat map (P4) nebo neadresný výběr (S1)Ne (systémové)

Notifikační centrum (S19)​

  • Přístup: Ikona zvonku v navigaci (P1 header), badge s počtem nepřečtených
  • Layout: Vertikální chronologický feed (nejnovější nahoře)
  • Karta notifikace:
    • Ikona typu (systémová / personalizovaná / manuální / watchdog)
    • Titulek (bold pro nepřečtené)
    • Preview text (1–2 řádky)
    • Timestamp (relativní: „před 2 h", „včera", absolutní pro starší)
    • Obrázek (thumbnail, pokud je k dispozici — event poster)
  • Stavy: Nepřečtená (bold + accent dot), přečtená (regular), archivovaná (skrytá)
  • Interakce:
    • Tap → deep link na cílovou obrazovku
    • Swipe left → smazat
    • Swipe right → archivovat
    • Pull-to-refresh
    • „Označit vše jako přečtené" v header menu
  • Grouping: Notifikace se negroupují — flat chronologický feed. Výjimka: pokud přijde >3 notifikací stejného typu za < 1h, seskupí se do jedné s „+N dalších".
  • Retence: Notifikace se uchovávají 90 dní, poté se automaticky mažou.

Nastavení notifikací (S9)​

  • Přístup: Z uživatelského účtu (P9) → Nastavení notifikací, nebo z notifikačního centra (S19) → ikona ozubeného kola
  • Struktura:
    • Sekce „Automatické"
      • Toggle: Zrušení a změny akcí (default ON, nelze vypnout u vlastních vstupenek)
      • Toggle: Připomínky před akcí (default ON)
      • Toggle: Praktické informace (default ON)
      • Toggle: Dotazník spokojenosti (default ON)
      • Toggle: Připomenutí při neaktivitě (default ON)
    • Sekce „Personalizované"
      • Toggle: Nové akce dle preferencí (default ON)
      • Toggle: Novinky od oblíbených pořadatelů (default ON)
      • Odkaz: „Upravit preference" → navigace na editaci preferencí (z onboardingu S6)
    • Sekce „Akční nabídky"
      • Toggle: Slevové akce a soutěže (default ON)
      • Toggle: Bestsellery a doporučení (default ON)
    • Globální:
      • „Ztišit na 24 h" — dočasné pozastavení všech notifikací kromě zrušení akcí
      • Odkaz na systémové nastavení notifikací (iOS/Android)

Watchdog — hlídač vyprodaných (S10)​

  • Aktivace: Na detailu akce (P3) u vyprodaného eventu se zobrazí CTA „Hlídat dostupnost" místo standardního „Koupit vstupenky"
  • Potvrzení (X18): Bottom sheet s potvrzením:
    • „Budeme vás informovat, jakmile se uvolní místa na [Název akce]"
    • Info o push notifikaci
    • CTA: „Rozumím" (dismiss)
  • Správa watchdogů (S10):
    • Přístup: Z uživatelského účtu (P9) → Moje hlídače
    • Seznam karet: event obrázek, název, datum, venue, status badge („Hlídáno"), CTA: „Zrušit"
    • Prázdný stav (X22): Vysvětlení funkce + CTA „Procházet akce"
  • Backend logika:
    • Watchdog je per user + per EventDate
    • Při uvolnění místa (zrušení objednávky, timeout košíku, navýšení kapacity): push notifikace + záznam do notifikačního centra
    • Watchdog se automaticky zruší po: (a) nákupu vstupenky na hlídaný event, (b) konání akce, (c) manuálním zrušení
    • Max 10 aktivních watchdogů na uživatele (soft limit, konfigurovatelný v CMS)
  • Existující webová funkce: Watchdog existuje na webu (viz SCR-WEB-24–26). V MA rozšiřujeme o push notifikace a grafické rozhraní.

Anti-spam a frekvence​

  • Rate limiting per uživatel:
    • Max 1 personalizovaná notifikace denně
    • Max 2 manuální notifikace denně
    • Automatické (zrušení, změna) nemají limit — jsou vázány na reálné události
    • Watchdog: max 1 za event (po odeslání se watchdog deaktivuje)
  • Quiet hours: 22:00–08:00 — notifikace se zařadí do fronty a odešlou se po 08:00. Výjimka: zrušení akce v den konání.
  • CMS konfigurace: Admin může nastavit frekvenci manuálních kampaní, cílové segmenty, A/B testování textu.

3.3 F2+ rozšíření​

Geolokace — akce v okolí (S22)​

  • Permission flow (X13): Custom pre-prompt dialog:
    • Headline: „Objevte akce v okolí"
    • Body: „Ukážeme vám akce, které se konají blízko vás. Polohu použijeme jen pro doporučení."
    • CTA primární: „Povolit polohu" → systémový dialog (iOS: „While Using App" / „Always")
    • CTA sekundární: „Teď ne"
  • Mapový pohled (S22):
    • Mapa s piny akcí (clustering při zoom-out)
    • Radius slider (1–50 km, default 10 km)
    • Toggle: Mapa / Seznam
    • Filtrování: žánr, datum, cena (stejné filtry jako P2)
    • Tap na pin → preview karta (mini detail) → tap → detail akce (P3)
  • List pohled: Karty akcí seřazené dle vzdálenosti s uvedením „X km od vás"
  • Geofence notifikace: Push při vstupu do proximity zóny venue (konfigurovatelný radius v CMS, default 500 m). Max 1 geofence push denně.
  • Fallback: Pokud uživatel nepovolí polohu, zobrazí se manuální výběr města/lokality (stejný jako ve filtrech P2/S3).

3.4 K diskusi​

—


4. Business rules​

IDPravidloPodmínky
BR-03-01Notifikace o zrušení/změně akce jsou povinné a nelze je vypnoutPlatí pro držitele aktivní vstupenky na daný event
BR-03-02Personalizované notifikace vyžadují nastavené preferenceUživatel bez preferencí (bez onboardingu) nedostává personalizované push
BR-03-03Watchdog se automaticky deaktivuje po nákupuPokud uživatel koupí vstupenku na hlídaný event, watchdog se zruší
BR-03-04Watchdog se deaktivuje po konání akcePo EventDate se watchdog automaticky archivuje
BR-03-05Max 10 aktivních watchdogů na uživateleSoft limit — při pokusu o 11. watchdog se zobrazí upozornění
BR-03-06Quiet hours 22:00–08:00Notifikace se bufferují a odesílají po 08:00. Výjimka: urgentní (zrušení v den akce)
BR-03-07Manuální notifikace podléhají frekvenciAdmin nemůže odeslat >2 manuální push kampaně denně na jednoho uživatele
BR-03-08Token management při odhlášeníPři odhlášení se device push token odpojí od uživatelského účtu
BR-03-09Notifikace se uchovávají 90 dníPo 90 dnech se automaticky mažou z notifikačního centra
BR-03-10Geofence push max 1× denněUživatel dostane max 1 geolokační push notifikaci za den

5. Data model​

Notification​

AtributTypPopis
idUUIDUnikátní identifikátor
userIdUUIDFK → User
typeEnumautomatic, personalized, manual, watchdog
subtypeStringKonkrétní typ: cancellation, date_change, reminder, pre_event_info, satisfaction, re_engagement, new_event, favorite_organizer, promo, contest, bestseller, announcement, watchdog_alert
titleStringTitulek notifikace
bodyStringText preview
imageUrlString?URL event obrázku (thumbnail)
deepLinkStringIn-app deep link (formát: colosseum://event/{id}, colosseum://ticket/{id}, ...)
statusEnumunread, read, archived, deleted
sentAtDateTimeČas odeslání
readAtDateTime?Čas přečtení
expiresAtDateTimeČas automatického smazání (sentAt + 90 dní)
eventIdUUID?FK → Event (pokud je vázána na konkrétní akci)
campaignIdUUID?FK → NotificationCampaign (pro manuální)

Watchdog​

AtributTypPopis
idUUIDUnikátní identifikátor
userIdUUIDFK → User
eventDateIdUUIDFK → EventDate
statusEnumactive, triggered, purchased, expired, cancelled
createdAtDateTimeČas vytvoření
triggeredAtDateTime?Čas odeslání notifikace
cancelledAtDateTime?Čas zrušení uživatelem

NotificationPreference​

AtributTypPopis
userIdUUIDFK → User
cancellationsBooleanDefault: true (locked ON pro držitele vstupenek)
remindersBooleanDefault: true
preEventInfoBooleanDefault: true
satisfactionBooleanDefault: true
reEngagementBooleanDefault: true
personalizedEventsBooleanDefault: true
favoriteOrganizersBooleanDefault: true
promosBooleanDefault: true
bestsellersBooleanDefault: true
mutedUntilDateTime?Dočasné ztišení do daného času

DevicePushToken​

AtributTypPopis
idUUIDUnikátní identifikátor
userIdUUID?FK → User (null = nepřihlášený)
tokenStringFCM / APNs token
platformEnumios, android
createdAtDateTimeČas registrace
lastActiveAtDateTimePoslední aktivita zařízení

NotificationCampaign (CMS)​

AtributTypPopis
idUUIDUnikátní identifikátor
titleStringTitulek kampaně
bodyStringText notifikace
imageUrlString?Obrázek
deepLinkStringCílový deep link
targetSegmentJSONCílový segment (žánry, lokality, aktivita...)
scheduledAtDateTime?Plánované odeslání (null = okamžité)
statusEnumdraft, scheduled, sent, cancelled
sentCountIntPočet odeslaných
openedCountIntPočet otevřených

6. Edge cases a error states​

ScénářChování
Uživatel odmítne push permission v systémuAplikace funguje normálně, notifikace se ukládají do notifikačního centra (in-app), ale push se nedoručují. V nastavení se zobrazí CTA „Zapnout notifikace" s deep linkem do systémového nastavení.
Uživatel odmítne custom pre-prompt (X12)Systémový dialog se nezobrazí. Uživatel může povolit později z nastavení účtu. Pre-prompt se znovu nezobrazuje automaticky.
Push doručen, ale uživatel není přihlášenNotifikace se doručí na device (token-based). Po přihlášení se synchronizuje do notifikačního centra.
Watchdog trigger, ale uvolněná místa se okamžitě prodajíNotifikace se odešle. Pokud uživatel přijde na seat map a místa jsou znovu pryč, zobrazí se „Bohužel, místa se mezitím vyprodala" s možností znovu aktivovat watchdog.
Uživatel má 10 aktivních watchdogů a chce přidat dalšíDialog: „Dosáhli jste limitu 10 hlídačů. Zrušte některý ze stávajících." s odkazem na správu watchdogů (S10).
Notifikace s deep linkem na smazaný/zrušený eventFallback: zobrazí se info o zrušení akce s CTA „Prozkoumat podobné akce".
Quiet hours + urgentní notifikaceZrušení akce v den konání prochází i přes quiet hours. Ostatní se bufferují.
Uživatel vypne personalizované notifikace, ale má watchdogWatchdog funguje nezávisle na nastavení personalizovaných notifikací (jiná kategorie).
Geolokace odmítnuta (F2+)Mapový pohled (S22) zobrazí placeholder s CTA „Povolit polohu" + fallback na manuální výběr lokality.
Přechod z „While Using" na „Always" permission (F2+)Pokud uživatel povolí jen „While Using", geofence push nefungují. V nastavení se zobrazí info s CTA na upgrade permission.
Device bez připojeníNotifikace z push služby se doručí, jakmile je device online (OS-level buffering). In-app feed se aktualizuje při dalším otevření.
Smazaný účetVšechny watchdogy, notifikace a push tokeny se smažou (GDPR).

7. Screen mapping​

IDObrazovkaTypFázePopis
X12Permission — NotifikacePodpůrnáMVPCustom pre-prompt dialog s hodnotovou propozicí
S9Nastavení notifikacíSekundárníF1Toggley per typ, frekvence, odkaz na preference
S10Správa watchdogůSekundárníF1Seznam aktivních hlídačů, cancel, prázdný stav
S19Notifikační centrum — feedSekundárníF1Chronologický feed, read/unread, deep links, swipe akce
X9Empty state — NotifikacePodpůrnáF1Prázdný feed, CTA nastavit preference
X18Watchdog nastavenPodpůrnáF1Potvrzení aktivace hlídače
X22Empty state — WatchdogPodpůrnáF1Žádné hlídače, vysvětlení funkce
S22Geolokace / mapa okolíSekundárníF2+Mapový pohled, radius, list/map toggle
X13Permission — PolohaPodpůrnáF2+Custom pre-prompt pro geolokaci

8. Otevřené otázky​

Timing custom pre-promptu (X12) — Zobrazit po registraci, po 2. návštěvě, nebo obojí (whichever comes first)? Vliv na opt-in rate.

Watchdog — priorita notifikace — Pokud se uvolní místa a watchdog má 50 uživatelů, dostanou všichni notifikaci současně? Nebo priorita dle pořadí aktivace? (Race condition na omezený počet míst.)

Personalizace bez onboardingu — Pokud uživatel přeskočí onboarding (S6), mají se personalizované notifikace generovat na základě historie nákupů? Nebo zůstává bez personalizace do manuálního nastavení?

Dotazník spokojenosti — Interní řešení (in-app formulář) nebo napojení na external service (Survicate, Typeform)?

Re-engagement threshold — Kolik dní neaktivity = re-engagement push? Default 30 dní — odsouhlasit s klientem.

Geofence notifikace (F2+) — Vyžaduje „Always" location permission, což výrazně snižuje opt-in. Zvážit, zda implementovat, nebo se omezit na in-app mapový pohled.

Grouping notifikací — Aktuální návrh: flat feed s groupingem >3 za < 1h. Validovat s UX prototypem — není vhodnější grouping per event?