> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Notification Layer

> Sigue la entrega de notificaciones, inspecciona cada notificación y sus intentos de entrega, configura los perfiles de entrega de email, SMS y webhook, y cambia los ajustes de entrega en Lerian Console.

La Notification Layer es el área de la Console para las notificaciones que la plataforma envía por email, SMS y webhook. Úsala para:

* Seguir las cifras de entrega en la pantalla **Overview**.
* Encontrar una notificación, leer sus intentos de entrega y reintentarla o cancelarla.
* Configurar los perfiles de entrega que envían cada canal.
* Cambiar los ajustes de runtime del servicio de entrega.

## Abrir la Notification Layer

***

Haz clic en el ícono de engranaje (<Icon icon="gear" />) en la barra de navegación superior y selecciona **Notification Layer**. La misma entrada también está en la barra lateral de Settings. El área tiene su propia barra lateral con cuatro pantallas: **Overview**, **Notifications**, **Delivery Profiles** y **Settings**.

Con Access Manager, la entrada necesita el permiso de lectura sobre notifications. Sin ese permiso, **Notification Layer** no aparece en el menú de engranaje ni en la barra lateral de Settings.

Cada pantalla y cada acción necesita su propio permiso:

| Pantalla o acción | Permiso con Access Manager |
| - | - |
| **Overview**, **Notifications** y el detalle de una notificación | Lectura sobre notifications |
| **Retry delivery** y **Cancel notification** | Creación sobre notifications |
| **Delivery Profiles** y el detalle de un perfil | Lectura sobre delivery profiles |
| **New delivery profile** | Creación sobre delivery profiles |
| **Save changes** y **Edit credentials** en un perfil | Actualización sobre delivery profiles |
| **Delete** en un perfil | Eliminación sobre delivery profiles |
| **Settings** | Lectura sobre systemplane, el recurso que guarda los ajustes de runtime |
| Guardar un cambio en **Settings** | Actualización sobre systemplane |

## Overview

***

La pantalla **Overview** resume la entrega de notificaciones en todos los canales. Seis tarjetas están en la parte superior:

| Tarjeta | Qué muestra |
| - | - |
| **Total** | El número de notificaciones. |
| **Delivered** | Las notificaciones con el estado **Delivered**. |
| **Delivery Rate** | Las notificaciones entregadas como porcentaje de las entregadas y las fallidas juntas. |
| **Failed** | Las notificaciones con el estado **Failed** o **Exhausted**. |
| **Pending** | Las notificaciones con el estado **Pending** o **Processing**. |
| **p95 Latency** | El percentil 95 de la latencia de los intentos de entrega. El percentil 99 aparece debajo. |

Debajo de las tarjetas:

* **Total Attempts** y **Avg Attempts per Notification** cuentan los intentos de entrega.
* **Top Failure Reasons** muestra las fallas por motivo, por ejemplo **Invalid recipient** o **Rejected by Twilio**. Un motivo sin etiqueta muestra su código de falla.
* **Volume by Channel** muestra el número de notificaciones en cada canal.
* **Recent Notifications** lista las notificaciones más recientes con su **Status**, **Channel**, **Recipient**, **Subject**, **Priority** y fecha **Created**.

Si la Console no puede leer las cifras, la pantalla muestra **Could not load notification overview** en lugar de todas ellas. Haz clic en **Retry** para leerlas de nuevo.

## Notifications

***

La pantalla **Notifications** lista las notificaciones de la plataforma. La tabla tiene las columnas **Status**, **Channel**, **Subject**, **Recipient**, **Priority** y **Created**. Para abrir una notificación, abre el menú de la columna **Actions** y selecciona **View**.

### Estados de las notificaciones

| Estado | Significado |
| - | - |
| **Pending** | La notificación espera su próximo intento de entrega. |
| **Processing** | Un intento de entrega está en curso. |
| **Delivered** | El proveedor aceptó el mensaje. Este estado es final. |
| **Failed** | El último intento falló. |
| **Exhausted** | El servicio no hace más intentos, porque los intentos se agotaron o la falla es permanente. |
| **Canceled** | Alguien canceló la notificación. Este estado es final. |

### Filtrar la lista

Abre el panel **Filters** para acotar la lista:

* **Status**: haz clic en uno o más chips de estado.
* **Channel**: **Email**, **SMS** o **Webhook**.
* **Recipient**: el destinatario exacto.
* **Correlation ID**: el identificador de correlación de la notificación.
* **Failure code**: los códigos de falla del resumen, los más frecuentes primero.
* **Created from** y **Created to**: el rango de fechas de creación.

Un campo con valor muestra **Clear** junto a su etiqueta. **Clear filters** vacía todos los campos. **Items per page** define el tamaño de la página.

### Detalle de la notificación

La pantalla **Notification Detail** muestra una notificación en tarjetas:

* La primera tarjeta muestra el estado, el canal, **ID**, **Subject**, **Recipient**, **Destination**, **Priority** y **Correlation ID**.
* **Delivery** muestra **Attempts** (usados y máximo), **Scheduled at**, **Next attempt at**, **Delivered at**, **Failed at**, **Canceled at**, **Canceled by**, **Provider message ID**, **Failure code**, **Created at** y **Updated at**.
* **Metadata** y **Failure detail** aparecen como JSON cuando la notificación los tiene.

**Back to notifications** vuelve a la lista.

### Intentos de entrega

La tarjeta **Delivery attempts** lista los intentos, el más antiguo primero, como **Attempt 1**, **Attempt 2** y así sucesivamente. Cada intento muestra:

* Su resultado y la hora del intento.
* **Provider**: el perfil de entrega que hizo el intento.
* **Response**: el código de respuesta, cuando hay uno.
* **Latency**: la duración del intento, en milisegundos.
* El mensaje de error, cuando el intento falló.
* **Response body**: haz clic en él para expandir el cuerpo que devolvió el proveedor.

Cuando la notificación todavía no tiene intentos, la tarjeta muestra **No delivery attempts recorded yet.**

### Reintentar o cancelar una notificación

**Retry delivery** está disponible cuando el estado es **Failed** o **Exhausted**. Confirma en el cuadro de diálogo **Retry delivery?**. La notificación vuelve a **Pending** y el servicio intenta la entrega de nuevo.

**Cancel notification** está disponible cuando el estado es **Pending**, **Processing** o **Failed**. Confirma en el cuadro de diálogo **Cancel notification?**. No puedes deshacer una cancelación. El servicio no hace ningún nuevo intento de entrega.

## Delivery Profiles

***

Un perfil de entrega conecta un canal con un proveedor y guarda las credenciales de ese proveedor. La pantalla **Delivery Profiles** lista los perfiles con las columnas **Name**, **Channel**, **Provider**, **Status**, **Priority**, **Default** y **Updated**. El menú de la fila en **Actions** tiene **View** y **Delete**.

Cuando un canal tiene más de un perfil activo, el servicio usa primero el perfil con la prioridad más alta. Un empate va al perfil predeterminado y luego al perfil más antiguo. El servicio omite los perfiles inactivos.

### Crear un perfil de entrega

<Steps>
  <Step title="Abre el formulario">
    Haz clic en **New delivery profile**.
  </Step>

  <Step title="Ponle nombre al perfil">
    Escribe un **Name**.
  </Step>

  <Step title="Elige el canal y el proveedor">
    Selecciona el **Channel** y luego el **Provider**. No puedes cambiar ninguno de los dos después de crear el perfil.
  </Step>

  <Step title="Define los campos de selección">
    Define el **Status**, la **Priority** y el interruptor **Default for this channel**.
  </Step>

  <Step title="Define los límites">
    Si quieres, escribe un **Rate limit (per second)** y un **Daily limit**. Un límite vacío significa sin límite.
  </Step>

  <Step title="Completa la configuración del proveedor">
    Completa los campos de la sección **Provider configuration**. Los campos cambian según el proveedor, como muestran las siguientes secciones.
  </Step>

  <Step title="Guarda">
    Haz clic en **Save**. La Console vuelve a la lista.
  </Step>
</Steps>

### Proveedores de email y SMS

Cada canal tiene sus propios proveedores. Un asterisco (\*) marca un campo obligatorio.

| Canal | Proveedor | Campos de configuración |
| - | - | - |
| **Email** | **SMTP** | **Host**\*, **Port**\*, **From**\*, **Username**, **Password** |
| **Email** | **AWS\_SES** | **AWS region**\*, **Access key ID**\*, **Secret access key**\*, **Session token**, **From**\* |
| **Email** | **SENDGRID** | **API key**\*, **From**\*, **From name** |
| **SMS** | **TWILIO** | **Account SID**\*, **Auth token**\*, **From**\* |
| **SMS** | **ZENVIA** | **API token**\*, **From**\* |
| **SMS** | **INFOBIP** | **API key**\*, **Base URL**\*, **From**\* |

**From** es el remitente que ven los destinatarios, como una dirección de email o un ID de remitente de SMS aprobado. El **Port** de SMTP acepta un valor de 1 a 65535.

### Proveedor de webhook

El canal **Webhook** tiene un proveedor, **HTTP\_WEBHOOK**. El perfil no guarda la dirección del endpoint: cada notificación de webhook lleva su propia dirección en **Destination**.

El perfil de webhook tiene estos campos:

* **Signing secret (HMAC)**: opcional. El servicio firma el cuerpo de la solicitud con este secreto, para que el destino pueda verificar el remitente.
* **Destination auth**: cómo se autentica el servicio ante el destino. Selecciona **none** para ninguna autenticación.
* **Custom headers**: pares opcionales de nombre y valor que el servicio envía en cada solicitud.

El valor de **Destination auth** agrega sus propios campos:

| Destination auth | Campos |
| - | - |
| **basic** | **Username**\*, **Password**\* |
| **bearer\_static** | **Token**\* |
| **oauth2\_client\_credentials** | **Auth URL**\*, **Client ID**\*, **Client secret**\*, **Scope**, **Audience** |
| **jwt\_exchange** | **Auth URL**\*, **Token path**\*, **Expires-in path**\*, **HTTP method**, **Custom headers**, **Request body (JSON)** |

Para **oauth2\_client\_credentials** y **jwt\_exchange**, **Auth URL** es el endpoint de token que el servicio llama antes de entregar el webhook. Para **jwt\_exchange**, **Token path** y **Expires-in path** son las rutas JSON del token de acceso y de su tiempo de vida en la respuesta.

### Detalle del perfil de entrega

La pantalla **Delivery Profile** muestra el estado, el canal y el proveedor del perfil en la parte superior. Puedes cambiar estos campos:

* **Name**
* **Status**
* **Priority**
* **Rate limit**
* **Daily limit**
* **Default profile for this channel**

Haz clic en **Save changes** para guardarlos. Cuando la prioridad o un límite ya tiene un valor, puedes cambiar ese valor, pero no puedes borrarlo.

La sección **Lifecycle** muestra **ID**, **Channel**, **Provider type**, **Consecutive failures**, **Last success**, **Last failure**, **Created at** y **Updated at**. **Consecutive failures** vuelve a cero después de la siguiente entrega exitosa.

### Reemplazar las credenciales

La sección **Provider configuration & credentials** no muestra las credenciales guardadas. Para reemplazarlas:

<Steps>
  <Step title="Abre el editor">
    Haz clic en **Edit credentials**.
  </Step>

  <Step title="Completa cada campo">
    Completa todos los campos que quieres conservar. Los campos secretos, como contraseñas, claves de API y tokens, se abren vacíos.
  </Step>

  <Step title="Guarda">
    Haz clic en **Save credentials**. Los nuevos valores reemplazan la configuración completa del proveedor. Para detenerte, haz clic en **Cancel**.
  </Step>
</Steps>

### Eliminar un perfil de entrega

Haz clic en **Delete** en la pantalla del perfil, o selecciona **Delete** en el menú de la fila de la lista. Luego haz clic en **Confirm** en el cuadro de diálogo.

## Settings

***

La pantalla **Settings** muestra los ajustes de runtime del servicio de entrega, por grupo. Los cambios se aplican sin reinicio. Cada fila muestra el ajuste, su clave, una descripción y los valores permitidos.

| Grupo | Ajuste | Valores permitidos |
| - | - | - |
| **Delivery & Retry** | **Max delivery attempts** | 1 a 20 |
| **Delivery & Retry** | **Retry base delay (s)** | 5 a 300 |
| **Delivery & Retry** | **Retry max delay (s)** | 60 a 86400 |
| **Delivery & Retry** | **Email concurrency** | 1 a 100 |
| **Delivery & Retry** | **SMS concurrency** | 1 a 50 |
| **Delivery & Retry** | **Webhook concurrency** | 1 a 100 |
| **Delivery & Retry** | **Webhook timeout (s)** | 5 a 120 |
| **Circuit Breaker** | **Failure threshold** | 1 a 50 |
| **Circuit Breaker** | **Recovery timeout (s)** | 10 a 600 |
| **Rate Limiting** | **Default max requests**, **Aggressive max requests**, **Relaxed max requests** | 1 a 100000 |
| **Rate Limiting** | **Default window (s)**, **Aggressive window (s)**, **Relaxed window (s)** | 1 a 3600 |
| **M2M Credentials Cache** | **Credential cache TTL (s)** | 30 a 86400 |
| **Logging** | **Log level** | debug, info, warn, error |

Para cambiar ajustes:

<Steps>
  <Step title="Encuentra el ajuste">
    Escribe en el cuadro de búsqueda, o selecciona un grupo en la lista que está al lado. **All groups** muestra todos los grupos.
  </Step>

  <Step title="Cambia el valor">
    Cambia el valor. La pantalla marca cada fila cambiada.
  </Step>

  <Step title="Guarda">
    Haz clic en **Save** con el número de cambios, por ejemplo **Save 2 changes**.
  </Step>
</Steps>

Si un valor está fuera de rango, la pantalla no guarda nada y te pide corregir los campos marcados. Si algunos cambios fallan, la pantalla los mantiene marcados, para que puedas guardarlos de nuevo.

Cuando la configuración de runtime está desactivada en el servicio de entrega, la pantalla muestra **Runtime configuration plane is disabled** y no puedes cambiar los ajustes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.