Go-Live Plan — Notification System
1) Objective
Deploy the Notification System to production ensuring that:
Emails are only sent when all activation conditions are met.✅
The unsubscribe/delete flow (CTA → endpoint → backend) is fully functional.✅
Channel-specific properties are correctly configured via the dashboard or database.✅
2) Pending items before Go-Live
Required implementations:
Frontend (FE)
Add the CTA: “Unsubscribe / Delete my data” visible in the user profile.✅
The CTA must call the backend endpoint, passing uuidConsumer.✅
Backend (BE)
Implement the deletion endpoint and its business logic:
Anonymize consumer data on the main usheru database (GDPR-compliant).✅
Send DeleteConsumerEvent to the ConsumerTopic✅
Disable notification preferences for the user.✅
Anonymize consumer data on the usheru notification database (GDPR-compliant).✅
3) QA & Validation
QA will validate the existingTest Plan titled✅
E2E Test Plan – Notification SystemNo new test cases will be created — QA only needs to confirm the existing ones have PASS status.✅
The test plan already covers:
Delivery conditions: Usheru ON ∧ Channel ON ∧ User ON ∧ ≥1 available movie.✅
Translation and fallback rules.✅
Email rendering (subject, images, footer).✅
Full delete/unsubscribe flow and audit verification.✅
Exit criteria (Go/No-Go):
✅ All tests marked as PASS.
4) Production Deployment
Steps
Deploy the backend services.
Deploy the frontend (CTA visible and linked).
Prepare production AWS notification queues
Run smoke tests: health checks, logs, metrics for 5–10 min.
Keep the new functionality disabled by default via configuration or feature flag (role 40).
Deployment window
Tuesday or Thursday, 9:00–12:00 CET .
5) Pilot Roll-out Plan
Channel setup
Multilanguage channels
If the channel supports multiple languages:
Ensure no movie-specific custom properties override the language rules, or
Force all users to receive notifications in a single selected language.
If a user’s language is not allowed → fallback to the channel’s defaultLanguage.
Channel properties configuration
Properties must be created via the dashboard using the prefix:
Each property should point to the appropriate URL for:
Privacy policy. engage.notifications.privacy-path
Terms & conditions. engage.notifications.terms-path
Unsubscribe / notification management page. engage.notifications.unsubscribe-path
Assign Role 40 to the channel
Grants the channel access to the notification functionality.
Pilot execution
Create a test consumer
Language allowed by the channel.
Country with active showtimes.
Wishlist with at least one valid movie.
Generate the first notification
Trigger manually or via scheduled job.
Verify the received email:
Correct language and translation.
Images, subject, and legal footer properly rendered.
CTA correctly redirects to the unsubscribe endpoint.
Import the remaining users
Validate file format (language, country, opt-in status).
Run dry-run if available, then execute the actual import.
Confirm successful import volume and no failed records.
select uuid_generate_v4(), c.uuid, 1,2,'PENDING',now(),jsonb_build_object('uuidConsumer', c.uuid::text, 'uuidChannel', ch.uuid::text, 'email', c.login::text, 'firstName', COALESCE(
NULLIF(p.name, ''), -- usa si no es vacío
NULLIF(p.fullname, ''), -- si name es vacío o null, prueba fullname
NULLIF(c.display_name, '')), -- si ambos son vacíos o null, usa display_name
'lastName', NULLIF(p.surname,''),'language', NULLIF(l.code,''), 'imageProfileUrl', NULLIF(c.avatar,'') ) as payload ,0,'SYSTEM',now() from consumer c
inner join channel ch on ch.id_channel = c.id_channel
inner join person p on p.id_person = c.id_person
inner join language l on l.id_language = p.id_language
where c.id_channel=? ;
Validate the first production notification
Check generation and delivery metrics.
Confirm that no invalid or duplicate emails were sent.
Attach evidence to ClickUp (QA Post-Go-Live validation).
6) Controlled Roll-out
8) Communication Plan
Internal:
Slack announcement with deployment window and on-call contact.
Infra team confirms validation after deployment.
Client (pilot channel):
Notify date/time of the pilot notification.
Share summary results once completed.
9) Definition of Done (Go-Live)
✅ The deletion endpoint is active, functions end-to-end, and every delete is recorded in the audit log.
✅ The unsubscribe / delete CTA is visible in the email and correctly triggers the backend flow.
✅ All test cases in the existing test plan are marked as PASS, with no open issues.
✅ The pilot channel is enabled for notifications (feature role active for that channel only).
✅ All required engage.notifications.* properties (privacy URL, terms URL, unsubscribe URL) are configured in the dashboard for the pilot channel.
✅ The pilot channel is live in production and has already sent at least one notification successfully.
✅ Measured delivery success rate is above 95%, and there are no critical errors in logs/metrics during the pilot window.
.10) Master data
Dashboard
Email translation
INSERT INTO translation
Channel properties
Channel role
Dashboard Settings
Channel
This section contains the channel-level configuration required to properly deliver and render notification emails.
Settings defined at this level apply to all notifications sent through the channel and include visual styling, branding assets, and other shared properties.
Logo
The Logo and Logo Small are used in notification emails and must be provided in PNG format to ensure proper rendering across email clients.
Style
Email styles are already configured to match the existing email templates. Modifying these settings may affect the final rendering and layout of notification emails.
Brand color: #f3baae
Text Color: #000022
Secondary Color: #333333
Background Color: #fff9ea
Private properties
The private properties configuration includes three required values used internally by the email notification pipeline. These properties must be configured for email notifications to operate correctly.
Translations:
The notification system includes a set of default translations used for common messages and labels.
These translations are provided by default and are available in English and Spanish.
Email Content:
Email content translations are defined using translation keys.
This section lists the 9 translation keys used in email notifications, along with their current Spanish (ES) translations:
engage.notifications.wishlist-incinema.subject :: Tus películas de deseos en cines
engage.notifications.wishlist-incinema.termsOfUse :: Términos y condiciones
engage.notifications.wishlist-incinema.privacyPolicy :: Política de privacidad
engage.notifications.wishlist-incinema.unsubscribe :: aquí
engage.notifications.wishlist-incinema.unsubscribeNote :: Si ya no desea recibir estos correos electrónicos, puede darse de baja
engage.notifications.wishlist-incinema.viewMore :: Ver todo
engage.notifications.wishlist-incinema.watch :: Reserva ahora
engage.notifications.wishlist-incinema.readMore :: Leer más
engage.notifications.wishlist-incinema.header :: ¡Una película de tu lista de deseos ahora está disponible para ver en tu cine local!
Website content:
Website content includes translation keys used for notification-related messages and POLL (survey) content, as well as the title displayed in the web interface. This section lists the 11 translation keys currently defined for notifications and POLL content, along with their Spanish (ES) translations:
public.header.link.notifications.configuration :: Configuración de notificaciones
notification.preference.wishlist_in_cinemas :: En cines
notification.preference.recommendations_desc :: ¿Te gustaría recibir recomendaciones de películas basadas en tus gusto, valoraciones o tu lista de deseos?
notification.preference.recommendations :: Recomendaciones para ti
notification.preference.new_film_releases_desc :: ¿Te gustaría recibir actualizaciones sobre nuevos estrenos que te puedan interesar?
notification.preference.new_film_releases :: Estrenos en cine
notification.preference.wishlist_film_updates_desc :: ¿Te gustaría recibir notificaciones sobre actualizaciones de contenido nuevo en las películas de tu lista de deseos?
notification.preference.wishlist_film_updates :: Actualizaciones de películas
notification.preference.wishlist_in_streaming_desc :: ¿Te gustaría recibir notificaciones cuando las películas de tu lista de deseos este disponibles en Streaming en tu ubicación?
notification.preference.wishlist_in_streaming :: Disponible en Streaming
notification.preference.wishlist_in_cinemas_desc :: Recibe notificaciones de las películas de tu lista de deseos que estan disponibles en los cines más cercanos.
Role
The API – Notifications role must be active at channel level in order to enable notification-related functionality.