Documentation Index

Fetch the complete documentation index at: https://supporthub.usheru.com/llms.txt

Use this file to discover all available pages before exploring further.

Notification System Go-live

Prev

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 System

  • No 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

  1. Deploy the backend services.

  2. Deploy the frontend (CTA visible and linked).

  3. Prepare production AWS notification queues

  4. Run smoke tests: health checks, logs, metrics for 5–10 min.

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

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

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


  1. Assign Role 40 to the channel

    • Grants the channel access to the notification functionality.

Pilot execution

  1. Create a test consumer

    • Language allowed by the channel.

    • Country with active showtimes.

    • Wishlist with at least one valid movie.

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

  3. 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=? ;




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



Phase

Scope

Duration

Goal

Pilot

1 channel, 1 country, 50–200 users

1–2 days

Validate end-to-end



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

  1. Email translation

INSERT INTO translation 


  1. Channel properties


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