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

# Integrate with n8n

> Automate Rhombus security workflows in self-hosted n8n with the official community node — orchestrate cameras, access control, IoT sensors, and AI agents.

Automate your Rhombus security platform with [n8n](https://n8n.io/), a self-hostable workflow automation tool. The official **Rhombus community node** gives you native access to cameras, doors, events, users, and more — no raw HTTP configuration needed.

<Info>
  **Official Community Node**: [`@rhombussystems/n8n-nodes-client`](https://www.npmjs.com/package/@rhombussystems/n8n-nodes-client) provides 6 resource types with 19 operations, all validated against the Rhombus OpenAPI spec.
</Info>

## Install the Rhombus Node

<Steps>
  <Step title="Open n8n Settings">
    In your n8n instance, go to **Settings** > **Community Nodes**.
  </Step>

  <Step title="Install the package">
    Enter the package name and click **Install**:

    ```text theme={null}
    @rhombussystems/n8n-nodes-client
    ```
  </Step>

  <Step title="Add your API key">
    When you first add a Rhombus node to a workflow, n8n prompts you to create credentials:

    1. Go to the [Rhombus Console](https://console.rhombussystems.com/settings/api-management/) and generate an API key
    2. In n8n, create a new **Rhombus API** credential
    3. Paste your API key and save

    The node automatically handles the `x-auth-apikey` and `x-auth-scheme` headers.
  </Step>
</Steps>

## Available Operations

The Rhombus node provides 19 operations across 6 resource types:

### Cameras

| Operation       | Description                                  |
| --------------- | -------------------------------------------- |
| **Get**         | Get full state of a single camera            |
| **Get Many**    | List all cameras in the organization         |
| **Create Clip** | Create a video clip from a camera            |
| **Get Frame**   | Get an exact frame image URL                 |
| **Update**      | Update camera name, description, or location |

### Doors

| Operation      | Description                         |
| -------------- | ----------------------------------- |
| **Get Many**   | List all access-controlled doors    |
| **Unlock**     | Temporarily unlock a door           |
| **Get Events** | Get access event history for a door |

### Events

| Operation      | Description                                    |
| -------------- | ---------------------------------------------- |
| **Get Alerts** | Get policy alerts with time and device filters |
| **Get Many**   | Get a list of saved video clips                |

### Users

| Operation    | Description                                    |
| ------------ | ---------------------------------------------- |
| **Create**   | Create a new user with email and name          |
| **Get Many** | List all users in the organization             |
| **Update**   | Update user name, permissions, or MFA settings |

### Organization

| Operation         | Description                                     |
| ----------------- | ----------------------------------------------- |
| **Get**           | Get organization information                    |
| **Get Locations** | List locations in the organization              |
| **Update**        | Update organization name, contacts, or settings |

### Webhooks

| Operation         | Description                                              |
| ----------------- | -------------------------------------------------------- |
| **Get**           | Get webhook integration configuration                    |
| **Create/Update** | Create or update webhook settings (URL, secret, enabled) |
| **Delete**        | Delete the webhook integration                           |

## Example Workflows

### Daily Security Alert Report

Generate a daily summary of security alerts and send to your team.

```text theme={null}
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
```

### Unlock Door on Calendar Event

Automatically unlock a conference room door before a meeting.

```text theme={null}
Google Calendar Trigger (meeting starts in 5 minutes)
  ↓
Rhombus Node → Door → Unlock (conference room door)
```

### Camera Clip on Alert

Automatically save a clip when a policy alert fires.

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

### User Onboarding Automation

Create Rhombus accounts when employees join from your HR system.

```text theme={null}
Webhook Trigger (from HR system)
  ↓
Rhombus Node → User → Create (email, name from payload)
```

## AI Agent Workflows

n8n's AI agent capabilities let you build intelligent security workflows by combining Rhombus data with LLMs.

### Conversational Security Assistant

Build a Slack bot that can query Rhombus data:

```text theme={null}
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
```

### Anomaly Detection

Detect unusual access patterns and alert the security team:

```text theme={null}
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
```

## Advanced: HTTP Request Fallback

For operations not yet covered by the community node, use n8n's HTTP Request node with manual authentication:

<CodeGroup>
  ```json HTTP Request Node theme={null}
  {
    "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) theme={null}
  const cameras = $input.all()[0].json.cameraStates;

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

<Tip>
  The Rhombus API has 800+ endpoints. The community node covers the most common operations, but you can access any endpoint via HTTP Request nodes. See the [API Reference](/api-reference/overview) for the full endpoint list.
</Tip>

## Deploy n8n

<Tabs>
  <Tab title="Docker (Quickest)">
    ```bash theme={null}
    docker run -it --rm \
      --name n8n \
      -p 5678:5678 \
      -v ~/.n8n:/home/node/.n8n \
      n8nio/n8n
    ```

    Access at `http://localhost:5678`
  </Tab>

  <Tab title="Docker Compose (Production)">
    ```yaml theme={null}
    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>
      Authentication is configured through the n8n UI on first launch. See [n8n deployment docs](https://docs.n8n.io/hosting/) for production hardening.
    </Note>
  </Tab>

  <Tab title="n8n Cloud">
    Skip self-hosting entirely with [n8n Cloud](https://n8n.io/cloud/). The Rhombus community node is available on all cloud plans.
  </Tab>
</Tabs>

## Compatibility

| Requirement     | Version                                      |
| --------------- | -------------------------------------------- |
| **n8n**         | 1.60.0 or later                              |
| **Node.js**     | 22+ (for self-hosted)                        |
| **Rhombus API** | All operations use `api2.rhombussystems.com` |

For Rhombus API rate limits, see [Rate Limits](/rate-limits).

## Troubleshooting

<AccordionGroup>
  <Accordion title="Node not appearing after install">
    Restart your n8n instance after installing the community node. For Docker, restart the container.
  </Accordion>

  <Accordion title="Authentication errors">
    Verify your API key is active in the [Rhombus Console](https://console.rhombussystems.com/settings/api-management/). Ensure the credential in n8n has the correct key value.
  </Accordion>

  <Accordion title="Rate limit errors">
    Add Wait nodes between Rhombus operations in loops to spread requests over time. See [Rate Limits](/rate-limits) for current limits and retry guidance.
  </Accordion>

  <Accordion title="Webhook not receiving events">
    Check that your n8n instance is publicly accessible. Verify the webhook URL in the Rhombus Console matches your n8n webhook endpoint.
  </Accordion>
</AccordionGroup>

## Resources

<CardGroup cols={2}>
  <Card icon="npm" href="https://www.npmjs.com/package/@rhombussystems/n8n-nodes-client" title="npm Package">
    Official Rhombus community node
  </Card>

  <Card icon="github" href="https://github.com/RhombusSystems/n8n-Rhombus-client-node" title="GitHub Repository">
    Source code and issue tracker
  </Card>

  <Card icon="book" href="https://docs.n8n.io/" title="n8n Documentation">
    Platform docs and tutorials
  </Card>

  <Card icon="users" href="https://community.n8n.io/" title="n8n Community">
    Templates and community support
  </Card>
</CardGroup>
