# Módulo de Suscripción a Newsletters

# Descripción General

El módulo de newsletters permite a los usuarios del diario digital administrar los boletines a los que desean suscribirse desde su perfil.

Importante:
Este módulo no envía correos electrónicos directamente.
Su responsabilidad es gestionar las preferencias de los usuarios y despachar webhooks cada vez que se modifica una suscripción.

El servicio que recibe los webhooks debe ser implementado por su equipo de desarrollo.
Ese servicio será el encargado de integrarse con la plataforma de envío de correos (Mailchimp, Sendgrid, etc.).

# Diagrama de Flujo

ScreenShot

# Funcionalidades

  • Gestión de Categorías y Grupos de Categorías

    • Los administradores pueden crear grupos de categorías (ej. Deportes, Política, Cultura). ScreenShot
    • Dentro de cada grupo se pueden registrar categorías (ej. Resumen Deportivo, Análisis Político Semanal). ScreenShot
  • Campos

    • Nombre: Título de la categoría.
    • Código interno: ID único que se asocia a la categoría. Este campo es importante porque será el que indique en el webhook el estado de la suscripción al newsletter.
    • Sitio: Únicamente disponible para los multisites, indica a qué sitio pertenece.
    • Grupo: Indica a qué grupo pertenece.
    • Visibilidad: Este selector define si se muestra o no en el panel de usuario.
    • Asignar a nuevos usuarios: Cuando está activo, vincula automáticamente a un usuario con la categoría al momento de registrarse.
    • Exclusivo para suscriptores: Categorías en las que solo se pueden asociar usuarios con suscripción activa.
  • Panel del Usuario

    • Nueva sección en el perfil llamada “Newsletters”.
    • El usuario puede:
      • Seleccionar y deseleccionar categorias(newsletters) disponibles.
  • Webhooks de Sincronización

    • Cada vez que el usuario guarda sus preferencias, se despacha un webhook con datos de usuario y un objeto con todas las categorias indicando su estado.
    • Si la categoria esta seleccionada entonces el valor sera true en caso contrario false
    • El servicio intermedio debera interpretar y sincronizarce con el sender de correos.

# Flujo de Integración

  1. Acción del Usuario

    • El usuario guarda sus preferencias. ScreenShot
  2. Generación de Webhook

    • El módulo dispara un webhook con la siguiente estructura:
//En la primera interacción del usuario.
{
  "action": "NEWSLETTER_CREATION",
  "subscriber": {
    "id": 23,
    "user_id": 1234,
    "site": null,
    "first_name": "Jhon",
    "last_name": "Doe",
    "mail": "doe.jhon@wyleex.com",
    "age": 25,
    "gender": "male",
    "categories": {
      "code-sports": "false",
      "code-police": "false",
      "code-hollywood": "true",
      "code-weather": "false",
      "code-10am": "true"
    },
    "has_active_subscription": false,
    "resource_has_benefit_card": false,
    "created_at": "2025-09-09T09:34:50-03:00",
    "updated_at": "2025-09-09T09:34:50-03:00"
  }
}
//En las siguientes interacciones.
{
  "action": "NEWSLETTER_UPDATE",
  "subscriber": {
    "id": 23,
    "user_id": 1234,
    "site": null,
    "first_name": "Jhon",
    "last_name": "Doe",
    "mail": "doe.jhon@wyleex.com",
    "age": 25,
    "gender": "male",
    "categories": {
      "code-sports": "true",
      "code-police": "true",
      "code-hollywood": "true",
      "code-weather": "false",
      "code-10am": "true"
    },
    "has_active_subscription": false,
    "resource_has_benefit_card": false,
    "created_at": "2025-09-09T09:34:50-03:00",
    "updated_at": "2025-09-09T09:34:50-03:00"
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  1. Despacho del webhook
  • Este webhook se va a despachar a la url previmente configurada en el panel administrador.

ScreenShot

# API - Newsletters

Adicionalmente, Wyleex brinda la posibilidad de obtener y actualizar los datos asociados al módulo. La documentación (swagger) correspondiente se encuentra disponible en el administrador de Wyleex, dentro de la sección API → API Doc.

ScreenShot