---
title: "Update the hard tickets settings"
url: https://docs.gleap.ai/en/reference/rest-api/put-hard-tickets-settings
method: PUT
path: "/hard-tickets/settings"
api: "API Reference"
tag: "HardTickets"
operationId: "UpdateSettings"
updatedAt: "2026-11-03T17:10:00.738Z"
language: en
---

# Update the hard tickets settings

`PUT https://api.gleap.io/v3/hard-tickets/settings`

Change the hard-ticket and Done settings. Partial: a key left out keeps its value, `null` resets it to the default. Turning automatic starts on records who did (automatic runs act as that person).

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Headers

- `project` (string, required)

## Request body (`application/json`, required)

- `ticketDone` (object | null): Construct a type with a set of properties K of type T
- `hardTickets` (object | null): Construct a type with a set of properties K of type T

## Example request

```bash
curl --request PUT \
  --url https://api.gleap.io/v3/hard-tickets/settings \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>' \
  --header 'Content-Type: application/json' \
  --data '{}'
```

## Responses

### 200 (`application/json`)

Ok

- `hardTickets` (object, required): Project setting `hardTickets` (stored partial; hardTicketsSettingsOf applies the defaults).
  - `start` (enum<string>, required): Default 'click'. One of: `click`, `auto`.
  - `autoRunner` (object, required): Default `{ kind: 'cloud' }`.
  - `offlineFallback` (enum<string>, required): When the Bridge machine is offline: run in Kai Code Cloud, or wait and show the card. Default 'cloud'. One of: `cloud`, `wait`.
  - `askPersonFirst` (boolean, required): Money and deletes wait for a person (an approval card). Fixed on; skills may loosen it with a limit.
- `ticketDone` (object, required): Project setting `ticketDone` (stored partial; ticketDoneSettingsOf applies the defaults).
  - `thankYouOnConfirm` (boolean, required): Thank the customer when they confirm it is solved. Default true.
  - `prompt` (string, required): The team's words for the thank-you (migrated from kaiCodeFixReplyBehavior's success prompt). '' = Gleap's own.
  - `reviewAsk` (object, required)
    - `link` (string)
    - `mode` (enum<string>, required): Default 'every\_done'. One of: `every_done`, `confirmed_only`.
    - `enabled` (boolean, required): Default FALSE (G2 forbids inviting only happy customers).
- `bridgeDevices` (object[], required)
  - `online` (boolean, required)
  - `name` (string, required)
  - `id` (string, required)
- `sendStats` (object[], required): Per proposal kind: the last 20 sends from a card and whether the kind sends directly.
  - `direct` (boolean, required)
  - `window` (number<double>, required)
  - `unedited` (number<double>, required)
  - `edits` (number<double>, required)
  - `sends` (number<double>, required)
  - `kind` (string, required)

```json
{
  "hardTickets": {
    "start": "click",
    "autoRunner": {
      "kind": "cloud"
    },
    "offlineFallback": "cloud",
    "askPersonFirst": true
  },
  "ticketDone": {
    "thankYouOnConfirm": true,
    "prompt": "string",
    "reviewAsk": {
      "link": "string",
      "mode": "every_done",
      "enabled": true
    }
  },
  "bridgeDevices": [
    {
      "online": true,
      "name": "string",
      "id": "string"
    }
  ],
  "sendStats": [
    {
      "direct": true,
      "window": 0,
      "unedited": 0,
      "edits": 0,
      "sends": 0,
      "kind": "string"
    }
  ]
}
```
