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

# Introducción a los webhooks

> Los webhooks en Treble te permiten recibir notificaciones en tiempo real sobre eventos importantes de la plataforma, como cambios de estado de HSM, cierre de sesiones o fallos en despliegues.

## ¿Qué es el centro de webhooks?

El centro de webhooks de Treble es el lugar donde puedes configurar las URLs de tus endpoints para recibir notificaciones en tiempo real sobre eventos relevantes de la plataforma.

Cuando ocurre un evento, Treble envía una solicitud HTTP **POST** a la URL que configures, incluyendo en el cuerpo un **JSON** con la información del evento. Tu servidor puede procesar esta información para ejecutar acciones específicas como actualizar registros, enviar alertas o iniciar procesos internos.

## Tipos de eventos disponibles

Actualmente puedes suscribirte a diferentes tipos de eventos globales:

* **Actualización del estado del HSM:** Notifica cuando un HSM cambia de estado.
* **Actualización de cierre de sesión:** Notifica cuando una sesión de conversación es cerrada.
* **Fallo de despliegue:** Notifica cuando ocurre un error durante un despliegue.

Cada uno de estos webhooks puede activarse o desactivarse según tus necesidades desde el panel de configuración.

## Requisitos

* Tu endpoint debe responder en menos de **5 segundos**.
* La respuesta debe ser un **cuerpo JSON válido**.
* Se recomienda usar **HTTPS** para mayor seguridad.

## Ejemplo básico

Aquí tienes un ejemplo en **Node.js** para manejar un webhook de Treble:

```javascript theme={null}
const express = require('express');
const app = express();
app.use(express.json());

app.post('/webhook', (req, res) => {
  const { event_type } = req.body;

  console.log('Evento recibido:', event_type);

  // Procesa el evento según su tipo
  switch (event_type) {
    case 'hsm.status':
      // Lógica para manejar cambios de estado HSM
      break;
    case 'session.close':
      // Lógica para manejar cierre de sesión
      break;
    case 'deployment.failure':
      // Lógica para manejar fallos de despliegue
      break;
  }

  res.status(200).json({ success: true });
});

app.listen(3000, () => console.log('Webhook server escuchando en puerto 3000'));
```
