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

# Neat (Beta)

> Connect Neat Pulse to manage meeting-room devices, rooms, and organization resources from Serval.

The Neat integration is in beta. It supports the Pulse API for devices, firmware,
rooms, locations, regions, profiles, users, notes, sensor data, and audit logs.
You need a paid Neat Pulse plan.

## Connect the integration

<Steps>
  <Step title="Find your organization ID">
    In Neat Pulse, open **Settings** and copy your **Organization ID**.
  </Step>

  <Step title="Create an API key">
    Under **Settings > API keys**, select **Create API key**. Grant **Read** for
    connection checks. Add **Write** only if your workflows need to change devices
    or organization resources. Copy the key. Neat only displays it at creation.
  </Step>

  <Step title="Connect in Serval">
    Open **Integrations > All integrations**, select **Neat**, and enter your
    **Organization ID** and **API Key**. Save the connection.
  </Step>
</Steps>

Serval stores the API key as a secret and adds the bearer authorization header
for requests to Neat. Workflow code receives the connection and organization IDs.
Changing the organization requires a new API key.

## Hosting zones

For a Pulse organization in Europe or the United States, use the same connection
form with that organization's ID and API key. The public API and official Neat client use
`api.pulse.neat.no` and identify the organization through `/v1/orgs/{organizationId}`.
There is no region selector in this integration.

Neat hosts European organizations in the Netherlands and United States organizations
in Washington. Neat manages your Pulse organization's hosting zone. Connecting
Serval doesn't change it. See the [Neat data residency documentation](https://support.neat.no/article/data-residency/)
for zone details and migration requests.

## Verify the connection

The connection check lists devices. Additional read-only healthchecks list rooms,
locations, and profiles. An empty organization can pass these checks.

If a check fails, verify the organization ID, paid Pulse plan, and the key's Read
scope. Replace a revoked key in the Serval connection settings.

## Send requests

Call `neat.apiRequest` with a path such as `/endpoints` or `/rooms/{id}`.
Serval supplies `/v1/orgs/{organizationId}` from your connection settings.
Pass path parameters, query parameters, and JSON request bodies.
Audit logs support `pageToken`, `pageSize`, `from`, and `to`. Pass the returned
page token to fetch subsequent pages. The SDK returns one response per call.

Neat delivers device configuration asynchronously. A successful request means
Neat accepted it. Check the device state to confirm the current settings.
Device resets, device removal, firmware changes, user changes, and key rotation
can disrupt devices or access. Rotating the connected API key through a workflow
doesn't update the stored Serval credential. Save the replacement key in Serval
before the old key expires.

The Neat reference currently omits field definitions for factory-reset, firmware
update, and room-profile assignment request bodies. Those bodies accept arbitrary
JSON objects, so confirm the payload with Neat before using those operations.

See the [Neat API reference](https://api.pulse.neat.no/docs/) and
[API key setup guide](https://support.neat.no/article/managing-api-accounts-on-neat-pulse-management-platform/).


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