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

# Update Broken Integration Alerts

> Be emailed when a connection stops working, and choose who receives it

Turn broken-integration alerts on or off, choose whether whoever connected the integration
and the workspace admins are emailed, and set extra recipients. When a connection stops
working, each recipient gets one email naming the provider, what happened to it, and a
link to the page that reconnects it.

A connection counts as broken when its access was **revoked**, when it **needs to be
reconnected** (the token no longer refreshes), or when its access has **expired**.

<Info>
  **On by default, to whoever connected it and the workspace admins.** When that person is
  no longer a member of the workspace, the admins alone. Addresses are de-duplicated across
  them and the extra recipients.
</Info>

<Info>
  **At most one email a day per connection and way of breaking.** A connection that is
  still revoked on the next sweep is not mentioned again; a connection that breaks in a new
  way (revoked after it had merely expired) is mentioned on the next sweep, within
  fifteen minutes.
</Info>

## Body

<ParamField body="enabled" type="boolean">
  Whether broken-integration emails go out at all. Turning it on needs `notify_defaults` or
  at least one recipient.
</ParamField>

<ParamField body="notify_defaults" type="boolean">
  Optional. Whether whoever connected the integration and the workspace admins are emailed.
  Omit it to keep the saved value, which is `true` until someone changes it.
</ParamField>

<ParamField body="recipients" type="string[]">
  Extra email addresses. Lower-cased, de-duplicated; an address without an `@` is a `400`.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT https://api.clustr-ai.com/api/public/notifications/broken-integrations \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"enabled": true, "notify_defaults": true, "recipients": ["ops@example.com"]}'
  ```

  ```python Python theme={null}
  import requests

  requests.put(
      "https://api.clustr-ai.com/api/public/notifications/broken-integrations",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
      json={"enabled": True, "notify_defaults": True, "recipients": ["ops@example.com"]},
  )
  ```

  ```javascript JavaScript theme={null}
  await fetch("https://api.clustr-ai.com/api/public/notifications/broken-integrations", {
    method: "PUT",
    headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
    body: JSON.stringify({ enabled: true, notify_defaults: true, recipients: ["ops@example.com"] }),
  });
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "data": {
      "enabled": true,
      "notify_defaults": true,
      "recipients": ["ops@example.com"],
      "is_default": false,
      "updated_at": "2026-09-18T09:12:44Z"
    }
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": {
      "message": "email who connected it and the admins, or add at least one recipient, to turn broken-integration alerts on",
      "code": "BAD_REQUEST"
    }
  }
  ```
</ResponseExample>
