---
title: "Set Netsapiens Queue Config"
method: PUT
path: "/netsapiens/queue-config"
tags: ["NetSapiens"]
---

# Set Netsapiens Queue Config

`PUT /netsapiens/queue-config`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/netsapiens/queue-config`
- Auth: none declared

Replace the queue allowlist.

Queues dropped from the list have their stored membership deleted too, since
membership for a queue we no longer recognise cannot be resolved and would
just sit there going stale. Historical attribution is unaffected: it lives in
each call's transfer_flow snapshot, not in these tables.

## Request body

- NetSapiensQueueConfigRequest
  - `queues` NetSapiensQueueConfigItem[], required
    - `queue_extension` string, required: PBX queue extension, e.g. 4504
    - `queue_name` string, nullable: Display name; overwritten by the next sync from the PBX
    - `alias_of` string, nullable: Fold this queue into another: its members and its handled calls both belong to the target. BJL's ONCALL (4607) is after-hours INTAKE (4600)
    - `home_eligible` boolean: Whether membership here identifies someone's team. False for overflow queues that ring nearly everyone (BJL's FALLBACK 4500 rings 37 agents), which still carry their own handled calls but say nothing about teams
    - `sync_enabled` boolean: Include this queue in the daily membership sync
    - `transfer_destination_id` string, uuid, nullable: The app-side team ('transfer destination') this queue is

## Response `200`

Successful Response

- NetSapiensQueueConfigResponse
  - `queues` NetSapiensQueueStatus[], required
    - `queue_extension` string, required: PBX queue extension, e.g. 4504
    - `queue_name` string, nullable: Display name; overwritten by the next sync from the PBX
    - `alias_of` string, nullable: Fold this queue into another: its members and its handled calls both belong to the target. BJL's ONCALL (4607) is after-hours INTAKE (4600)
    - `home_eligible` boolean: Whether membership here identifies someone's team. False for overflow queues that ring nearly everyone (BJL's FALLBACK 4500 rings 37 agents), which still carry their own handled calls but say nothing about teams
    - `sync_enabled` boolean: Include this queue in the daily membership sync
    - `transfer_destination_id` string, uuid, nullable: The app-side team ('transfer destination') this queue is
    - `member_count` integer
    - `last_synced_at` string, date-time, nullable
    - `last_error_at` string, date-time, nullable
    - `last_error_msg` string, nullable
  - `extensions` NetSapiensExtensionStatus[], required
    - `extension` string, required
    - `display_name` string, nullable
    - `home_queue_extension` string, nullable
    - `home_source` string, nullable: direct | alias | manual — manual is never overwritten by a sync
    - `candidate_queue_extensions` string[]

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-11** `546117b4e7b4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/netsapiens/queue-config/put.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
