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ázeObrazovekOdhad
MVP1 (permission dialog)1 h
F16 (centrum, nastavení, watchdog)19 h
F2+2 (geolokace, mapa)5 h
Celkem925 h

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

Celkový odhad (čistý design)

FázeObrazovkyHodiny
MVP11 h
F1619 h
F2+25 h
Celkem925 h

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?