> ## 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 () 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 **Runtime 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 |
| **Edit delivery profile** y **Edit credentials** en un perfil | Actualización sobre delivery profiles |
| **Delete** en un perfil | Eliminación sobre delivery profiles |
| **Runtime settings** | Lectura sobre systemplane, el recurso que guarda los ajustes de runtime |
| Guardar un cambio en **Runtime settings** | Actualización sobre systemplane |

## Overview

***

La pantalla **Overview** resume la entrega de notificaciones en todos los canales. Abre en las últimas 24 horas. Botones cambian la ventana a los últimos 7 días o los últimos 30 días. Seis tarjetas están en la parte superior:

| Tarjeta | Qué muestra |
| - | - |
| **Total** | El número de notificaciones. |
| **Delivered** | Las notificaciones con el estado **Delivered**. La tasa de entrega aparece debajo, 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. |
| **Total Attempts** | El número de intentos de entrega. El promedio por notificación aparece debajo. |

Debajo de las tarjetas:

* **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 cinco notificaciones más recientes del período seleccionado, con su **Recipient**, **Subject**, **Channel**, **Priority**, **Status** y fecha **Created At**. Haz clic en una fila para abrir la notificación. **View all** abre la pantalla **Notifications**.

Junto a los botones de período, una línea **Updated** muestra hace cuánto tiempo la Console leyó las cifras. Haz clic en **Refresh** para leerlas de nuevo.

Si la Console no puede leer las cifras, un error reemplaza 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 **Subject**, **ID**, **Channel**, **Recipient**, **Priority**, **Status** y **Created At**. Para abrir una notificación, haz clic en su fila.

### 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

Haz clic en el botón de ícono junto a **Items per page** para abrir el panel de filtros y 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.

El botón de ícono **Clear filters** vacía todos los campos. **Items per page** define el tamaño de la página.

### Detalle de la notificación

El título de la pantalla **Notification** es el asunto de la notificación, o su ID cuando no tiene asunto. Para volver a la lista, usa el breadcrumb. La pantalla tiene dos pestañas, **Details** y **Attempts**. Una notificación con el estado **Failed** o **Exhausted** abre en **Attempts**. Las otras notificaciones abren en **Details**.

La pestaña **Details** lista estos datos:

* **Status**, **Channel**, **ID**, **Subject**, **Recipient**, **Destination**, **Priority** y **Correlation ID**.
* **Provider message ID**.
* **Attempts**, como el número usado y el máximo.
* **Scheduled at**, **Next attempt at**, **Delivered at**, **Failed at**, **Canceled at** y **Canceled by**.
* **Failure code**, **Created at** y **Updated at**.

**Metadata** aparece debajo de los datos, como JSON, cuando la notificación tiene metadatos.

La pestaña **Attempts** muestra la tarjeta **Failure detail**, como JSON, cuando la notificación tiene detalle de falla. Debajo está la tarjeta **Delivery attempts**.

Si la notificación no existe, la pantalla muestra **Notification not found.** y un botón **Back to list**.

### 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** es un botón en el encabezado de la notificación. 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á en **More actions**, en el encabezado. Está disponible cuando el estado es **Pending**, **Processing** o **Failed**. Confirma con **Cancel notification** en el cuadro de diálogo **Cancel notification?**, o haz clic en **Keep notification** para detenerte. 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**, **ID**, **Channel**, **Provider**, **Status**, **Priority**, **Default** y **Created At**. 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

El formulario tiene dos pasos. Abre con **Email**, **SMTP**, el estado **Active** y la prioridad 0.

**1. Abre el formulario**

Haz clic en **New delivery profile**.

**2. Completa el paso Profile**

Escribe un **Name**. Selecciona el **Channel** y luego el **Provider**. No puedes cambiar ninguno de los dos después de crear el perfil. Define el **Status**, la **Priority** y el interruptor **Default for this channel**.

**3. 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.

**4. Ve al siguiente paso**

Haz clic en **Next**. La Console revisa los campos del paso **Profile** antes de abrir el siguiente paso.

**5. Completa la configuración del proveedor**

Completa los campos del paso **Provider configuration**. Los campos cambian según el proveedor, como muestran las siguientes secciones. Haz clic en **Back** para volver al paso **Profile**.

**6. Guarda**

Haz clic en **Save**. La Console vuelve a la lista.

Haz clic en **Cancel** para volver a la lista sin un perfil nuevo.

Si abres otra pantalla desde un enlace mientras el formulario tiene datos que no guardaste, la Console pregunta **Discard changes?**. Haz clic en **Keep editing** para quedarte, o en **Discard** para salir.

### 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

El título de la pantalla **Delivery Profile** es el nombre del perfil. Una tarjeta lista **Status**, **Channel**, **Provider type**, **Priority**, **Rate limit**, **Daily limit**, **Default**, **Consecutive failures**, **Last success**, **Last failure**, **Created at**, **Updated at** e **ID**. **Consecutive failures** vuelve a cero después de la siguiente entrega exitosa.

El encabezado tiene los botones **Edit credentials** y **Edit delivery profile**, y el menú **More actions** con **Delete**. Cada botón de edición abre un panel lateral.

En **Edit delivery profile** puedes cambiar estos campos:

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

Cambia los campos y haz clic en **Save**. Después de que la prioridad o un límite tiene un valor, puedes cambiar ese valor, pero no puedes borrarlo.

### Reemplazar las credenciales

Para reemplazar la configuración del proveedor de un perfil:

**1. Abre el editor**

Haz clic en **Edit credentials**.

**2. Completa cada campo**

Los campos que no son secretos, como Host, Port, Username, From, AWS region, Base URL y los ajustes de Destination auth, abren con sus valores guardados. Todos los demás campos abren vacíos, incluidos Access key ID, Account SID, Signing secret (HMAC), Custom headers y Request body (JSON). Escríbelos de nuevo: Save credentials reemplaza la configuración completa del proveedor, y un campo que dejas vacío no se conserva.

**3. Guarda**

Haz clic en **Save credentials**. Para detenerte, haz clic en **Cancel**.

### Eliminar un perfil de entrega

Selecciona **Delete** en **More actions** en la pantalla del perfil, o en el menú de la fila de la lista. Luego confirma en el cuadro de diálogo **Delete delivery profile?**.

## Runtime settings

***

La pantalla **Runtime settings** muestra los ajustes de runtime del servicio de entrega, por grupo. 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 |

Los grupos son secciones que puedes contraer. Abren por defecto. Cada sección tiene un subtítulo. Cuando una sección tiene cambios que no guardaste, muestra una insignia con el número de cambios, como **2 changes**. Una sección con un valor que no es válido se abre sola.

Para cambiar ajustes:

**1. Cambia el valor**

Cambia el valor en una fila.

**2. Guarda o descarta**

Haz clic en **Save** con el número de cambios, por ejemplo **Save 2 changes**. Para descartar todos los cambios que no guardaste, haz clic en **Discard**.

Si abres otra pantalla desde un enlace con cambios que no guardaste, la Console pregunta **Discard changes?**. Haz clic en **Keep editing** para quedarte, o en **Discard** para salir.

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.

Sin el permiso de actualización sobre systemplane, la pantalla muestra un aviso de solo lectura y los campos quedan desactivados. Si la Console no puede leer algunos grupos, una advertencia los lista. Haz clic en **Retry** en la advertencia para leerlos de nuevo.

Cuando los ajustes de runtime están desactivados en el servicio de entrega, la pantalla muestra **Runtime settings are turned off for this deployment. Ask your platform team to enable them.** No puedes cambiar los ajustes.

En Lerian Cloud, la pantalla no lista ni guarda los ajustes de entrega y muestra **Runtime settings are turned off for this deployment. Ask your platform team to enable them.**


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