> ## Índice de la documentación
> Consulta el índice completo de la documentación en: https://developer.rhombus.com/llms.txt
> Úsalo para descubrir todas las páginas disponibles antes de seguir explorando.

# Integra con n8n

> Automatiza flujos de seguridad de Rhombus en n8n autoalojado con el nodo oficial: orquesta cámaras, control de acceso, sensores IoT y agentes de IA.

> **Note**: Esta página se tradujo automáticamente. Si encuentras errores o tienes sugerencias, [escríbenos](mailto:support@rhombus.com).

Automatiza tu plataforma de seguridad Rhombus con [n8n](https://n8n.io/), una herramienta de automatización de flujos de trabajo autoalojable. El **nodo comunitario oficial de Rhombus para n8n** te da acceso nativo a cámaras, puertas, eventos, usuarios y más — sin necesidad de configurar HTTP en bruto.

> **Info**: **Nodo comunitario oficial**: [`@rhombussystems/n8n-nodes-client`](https://www.npmjs.com/package/@rhombussystems/n8n-nodes-client) proporciona 11 tipos de recursos con 41 operaciones, todas validadas contra la especificación OpenAPI de Rhombus.

## Instala el nodo de Rhombus

1. **Abre la configuración de n8n**

   En tu instancia de n8n, ve a **Settings** > **Community Nodes**.

2. **Instala el paquete**

   Ingresa el nombre del paquete y haz clic en **Install**:

   ```text
   @rhombussystems/n8n-nodes-client
   ```

3. **Añade tu clave de API**

   Cuando agregas un nodo de Rhombus a un flujo de trabajo por primera vez, n8n te pedirá crear credenciales:

   1. Ve a [Rhombus Console](https://console.rhombussystems.com/settings/integrations/api-tokens/) y genera una clave de API
   2. En n8n, crea una nueva credencial **Rhombus API**
   3. Pega tu clave de API y guarda

   El nodo maneja automáticamente los encabezados `x-auth-apikey` y `x-auth-scheme`.

## Operaciones disponibles

El nodo de Rhombus proporciona 41 operaciones a través de 11 tipos de recursos:

### Control de acceso

| Operación                  | Descripción                                                    |
| -------------------------- | -------------------------------------------------------------- |
| **Assign Credential**      | Asigna una credencial de tarjeta existente a un usuario        |
| **Create Access Grant**    | Crea una nueva concesión de acceso para usuarios o grupos      |
| **Create Credential**      | Crea una nueva credencial de tarjeta CSN estándar              |
| **Delete Access Grant**    | Elimina una concesión de acceso existente                      |
| **Get User Access Grants** | Obtiene todas las concesiones de acceso asignadas a un usuario |
| **Revoke Credential**      | Revoca una credencial de tarjeta (conserva el historial)       |

### Cámaras

| Operación                | Descripción                                                   |
| ------------------------ | ------------------------------------------------------------- |
| **Get**                  | Obtiene el estado completo de una sola cámara                 |
| **Get Many**             | Obtiene una lista de muchas cámaras de la organización        |
| **Create Clip**          | Crea un clip de video desde una cámara                        |
| **Create Shared Stream** | Crea una URL de transmisión de video en vivo para compartir   |
| **Get Frame**            | Obtiene la URL de imagen de un fotograma exacto de una cámara |
| **Get Media URIs**       | Obtiene las URIs de transmisión en vivo y VOD de una cámara   |
| **Update**               | Actualiza los detalles de una cámara                          |

### Puertas

| Operación      | Descripción                                               |
| -------------- | --------------------------------------------------------- |
| **Get Many**   | Obtiene una lista de muchas puertas con control de acceso |
| **Unlock**     | Desbloquea temporalmente una puerta con control de acceso |
| **Get Events** | Obtiene el historial de eventos de acceso de una puerta   |

### Eventos

| Operación      | Descripción                                     |
| -------------- | ----------------------------------------------- |
| **Get Alerts** | Obtiene alertas de políticas de la organización |
| **Get Many**   | Obtiene una lista de clips de video guardados   |

### Reconocimiento facial

| Operación              | Descripción                                                       |
| ---------------------- | ----------------------------------------------------------------- |
| **Create Person**      | Crea una nueva persona conocida para reconocimiento facial        |
| **Delete Person**      | Elimina una persona conocida del reconocimiento facial            |
| **Get Many**           | Obtiene una lista de muchas personas conocidas de la organización |
| **Search Face Events** | Busca eventos de reconocimiento facial con filtros                |

### Bloqueo (Lockdown)

| Operación      | Descripción                                                      |
| -------------- | ---------------------------------------------------------------- |
| **Activate**   | Activa un bloqueo para una ubicación                             |
| **Deactivate** | Desactiva un bloqueo para una ubicación                          |
| **Get Many**   | Obtiene una lista de muchos planes de bloqueo de la organización |
| **Get Status** | Obtiene el estado de bloqueo de todas las ubicaciones            |

### Organización

| Operación         | Descripción                                           |
| ----------------- | ----------------------------------------------------- |
| **Get**           | Obtiene información de la organización                |
| **Get Locations** | Obtiene una lista de ubicaciones de la organización   |
| **Update**        | Actualiza la configuración general de la organización |

### Sensores

| Operación                      | Descripción                                                      |
| ------------------------------ | ---------------------------------------------------------------- |
| **Get Many**                   | Obtiene una lista de muchos sensores de clima de la organización |
| **Get Sensor Events**          | Obtiene eventos de clima de un sensor específico                 |
| **Get Environmental Gateways** | Obtiene el estado actual de todas las pasarelas ambientales      |

### Usuarios

| Operación    | Descripción                                             |
| ------------ | ------------------------------------------------------- |
| **Create**   | Crea un nuevo usuario en la organización                |
| **Get Many** | Obtiene una lista de muchos usuarios de la organización |
| **Update**   | Actualiza un usuario existente                          |

### Vehículos

| Operación         | Descripción                                                        |
| ----------------- | ------------------------------------------------------------------ |
| **Get Many**      | Obtiene una lista de muchos vehículos guardados de la organización |
| **Save Vehicle**  | Guarda y nombra un vehículo por matrícula                          |
| **Search Events** | Busca eventos de detección de vehículos/LPR                        |

### Webhooks

| Operación         | Descripción                                                    |
| ----------------- | -------------------------------------------------------------- |
| **Get**           | Obtiene la configuración de la integración de webhook          |
| **Create/Update** | Crea o actualiza la configuración de la integración de webhook |
| **Delete**        | Elimina la integración de webhook                              |

## Flujos de trabajo de ejemplo

### Reporte diario de alertas de seguridad

Genera un resumen diario de alertas de seguridad y envíalo a tu equipo.

```text
Schedule Trigger (daily at 8 AM)
  ↓
Rhombus Node → Event → Get Alerts (last 24 hours)
  ↓
Code Node → Format alert summary
  ↓
Email Node → Send to security team
```

### Desbloqueos programados

Para puertas que deben abrirse según un horario, como una sala de conferencias durante las reuniones reservadas, usa los horarios de puertas y sus excepciones en Rhombus en lugar de una automatización: siguen funcionando cuando la plataforma de automatización falla y tus administradores los ven en la consola. Si un flujo debe desbloquear una puerta, agrega un paso en el que una persona apruebe cada ejecución.

### Clip de cámara al recibir alerta

Guarda automáticamente un clip cuando se dispara una alerta de política.

```text
Schedule Trigger (every 5 minutes)
  ↓
Rhombus Node → Event → Get Alerts (last 5 minutes)
  ↓
Rhombus Node → Camera → Create Clip (from alert device, 60 seconds)
```

### Automatización de onboarding de usuarios

Crea cuentas de Rhombus cuando los empleados se incorporan desde tu sistema de RR. HH.

```text
Webhook Trigger (from HR system)
  ↓
Rhombus Node → User → Create (email, name from payload)
```

## Flujos de trabajo con agentes de IA

Las capacidades de agentes de IA de n8n te permiten construir flujos de trabajo de seguridad inteligentes combinando datos de Rhombus con LLMs.

### Asistente de seguridad conversacional

Crea un bot de Slack que pueda consultar datos de Rhombus:

```text
Slack Trigger → "Show me camera status"
  ↓
AI Agent with Rhombus tools:
  ├─→ Camera → Get Many (list cameras)
  ├─→ Event → Get Alerts (recent alerts)
  └─→ Camera → Create Clip (save footage)
  ↓
AI Response → Slack
```

### Detección de anomalías

Detecta patrones de acceso inusuales y alerta al equipo de seguridad:

```text
Schedule Trigger (every 15 minutes)
  ↓
Rhombus Node → Door → Get Events (last 15 minutes)
  ↓
AI Agent → Analyze patterns for anomalies
  ↓
IF anomaly detected → Create incident + alert team
```

## Avanzado: Fallback con HTTP Request

Para operaciones que aún no estén cubiertas por el nodo comunitario — o para apuntar a la [región de la UE](https://developer.rhombus.com/es/api-regions) (reemplaza el host por `api2.eu.rhombussystems.com`) — usa el nodo HTTP Request de n8n con autenticación manual:

```json HTTP Request Node
{
  "method": "POST",
  "url": "https://api2.rhombussystems.com/api/camera/getMinimalCameraStateList",
  "authentication": "predefinedCredentialType",
  "sendHeaders": true,
  "headerParameters": {
    "parameters": [
      {
        "name": "x-auth-apikey",
        "value": "={{$credentials.rhombusApiKey}}"
      },
      {
        "name": "x-auth-scheme",
        "value": "api-token"
      }
    ]
  }
}
```

```javascript Code Node (Process Response)
const cameras = $input.all()[0].json.cameraStates;

return cameras.map(cam => ({
  uuid: cam.uuid,
  name: cam.name,
  status: cam.connectionStatus,
  location: cam.locationName
}));
```

> **Tip**: La API de Rhombus tiene más de 1000 endpoints. El nodo comunitario cubre las operaciones más comunes, pero puedes acceder a cualquier endpoint mediante nodos HTTP Request. Consulta la [referencia de la API](https://developer.rhombus.com/api-reference/overview) para ver la lista completa de endpoints.

## Despliega n8n

**Docker (lo más rápido)**

```bash
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n
```

Accede en `http://localhost:5678`

**Docker Compose (Producción)**

```yaml
version: '3.8'
services:
  n8n:
    image: n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.yourdomain.com/
    volumes:
      - ~/.n8n:/home/node/.n8n
```

> **Note**: La autenticación se configura desde la interfaz de n8n en el primer arranque. Consulta [la documentación de despliegue de n8n](https://docs.n8n.io/hosting/) para ver el endurecimiento de producción.

**n8n Cloud**

Salta el autoalojamiento por completo con [n8n Cloud](https://n8n.io/cloud/). El nodo comunitario oficial de Rhombus para n8n está disponible en todos los planes de cloud.

## Compatibilidad

| Requisito          | Versión                                                                    |
| ------------------ | -------------------------------------------------------------------------- |
| **n8n**            | Una versión reciente compatible con nodos comunitarios                     |
| **Node.js**        | Una versión compatible con tu release de n8n (para autoalojamiento)        |
| **API de Rhombus** | El nodo comunitario apunta a `api2.rhombussystems.com` (región de EE. UU.) |

> **Note**: El nodo comunitario actualmente solo apunta al endpoint de EE. UU. Si tu organización está en la [región de la UE](https://developer.rhombus.com/es/api-regions), usa el [fallback con HTTP Request](https://developer.rhombus.com/es/low-code-no-code/n8n#avanzado-fallback-con-http-request) con `https://api2.eu.rhombussystems.com`.

Para los límites de tasa de la API de Rhombus, consulta [Rate Limits](https://developer.rhombus.com/es/rate-limits).

## Solución de problemas

**El nodo no aparece tras la instalación**

Reinicia tu instancia de n8n después de instalar el nodo comunitario. Si usas Docker, reinicia el contenedor.

**Errores de autenticación**

Verifica que tu clave de API esté activa en [Rhombus Console](https://console.rhombussystems.com/settings/integrations/api-tokens/). Asegúrate de que la credencial en n8n tenga el valor correcto de la clave.

**Errores de límite de tasa**

Añade nodos Wait entre operaciones de Rhombus dentro de bucles para distribuir las solicitudes en el tiempo. Consulta [Rate Limits](https://developer.rhombus.com/es/rate-limits) para los límites actuales y orientación sobre reintentos.

**El webhook no recibe eventos**

Verifica que tu instancia de n8n sea accesible públicamente. Confirma que la URL del webhook en Rhombus Console coincida con tu endpoint de webhook de n8n.

## Recursos

- **[Paquete npm](https://www.npmjs.com/package/@rhombussystems/n8n-nodes-client)**: Nodo comunitario oficial de Rhombus para n8n
- **[Repositorio en GitHub](https://github.com/RhombusSystems/n8n-Rhombus-client-node)**: Código fuente y seguimiento de incidencias
- **[Documentación de n8n](https://docs.n8n.io/)**: Documentación y tutoriales de la plataforma
- **[Comunidad de n8n](https://community.n8n.io/)**: Plantillas y soporte de la comunidad
