---
title: "Update per-connection user options (e.g., channel allowlist)"
method: PATCH
path: "/integrations/{integration_id}/connections/{connection_id}"
tags: ["Integrations", "Integrations"]
---

# Update per-connection user options (e.g., channel allowlist)

`PATCH /integrations/{integration_id}/connections/{connection_id}`

Save per-user options on a connection the caller owns.

Used by the Connect app to persist channel picks after OAuth completes.
Scope: user can only update their own connections in their own app.

## Path parameters

- `integration_id` string, required
- `connection_id` string, required

## Request body

- UpdateConnectionOptionsRequest
  - `channels` string[], nullable — Channel/chat IDs to index. Empty list blocks all.

## Response `200`

Successful Response

- ConnectionUserOptions — Per-connection, per-user options set by the end user after OAuth. Contrast with IntegrationConfig.index_options which is app-wide. These values live on the specific Connection because they depend on the tenant (e.g., which Teams channels *this user* wants indexed).
  - `channels` string[]

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/hyperspell/apis/hyperspell-api.md) · [All operations](https://skmtc.net/hyperspell/apis/hyperspell-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hyperspell/hyperspell-api/revisions/5721acd588e6/schema)
