App settings: PSA

PSA administration: queues and their mailboxes, statuses, ticket types, categories, SLA policies, workflows, email templates, procedures and approvals.

MethodPathSummary
GET/v1/admin/psa/templatesList PSA email templates
POST/v1/admin/psa/templatesCreate a PSA email template
POST/v1/admin/psa/templates/:idUpdate a PSA email template
POST/v1/admin/psa/templates/:id/deleteDelete a PSA email template
GET/v1/admin/psa/statusesList PSA statuses with their behaviours and ticket counts
POST/v1/admin/psa/statusesAdd a PSA status. Requires the GLOBAL_ADMIN role
POST/v1/admin/psa/statuses/:idUpdate a PSA status. Requires the GLOBAL_ADMIN role
POST/v1/admin/psa/statuses/:id/deleteDelete a PSA status. Requires the GLOBAL_ADMIN role
GET/v1/admin/psa/workflowsList PSA workflow rules
POST/v1/admin/psa/workflowsCreate a PSA workflow rule
POST/v1/admin/psa/workflows/:idUpdate a PSA workflow rule
POST/v1/admin/psa/workflows/:id/deleteDelete a PSA workflow rule and its run log
POST/v1/admin/psa/workflow-testDry-run a PSA workflow rule against a ticket
GET/v1/admin/psa/workflow-runsRecent PSA workflow runs (last 30 days)
GET/v1/admin/psa/slaPSA business hours and SLA policies
POST/v1/admin/psa/sla/hoursAdd PSA business hours
POST/v1/admin/psa/sla/hours/:idUpdate PSA business hours
POST/v1/admin/psa/sla/hours/:id/deleteDelete PSA business hours
POST/v1/admin/psa/sla/policiesAdd a PSA SLA policy
POST/v1/admin/psa/sla/policies/:idUpdate a PSA SLA policy
POST/v1/admin/psa/sla/policies/:id/deleteDelete a PSA SLA policy
GET/v1/admin/psa/typesList PSA ticket types
POST/v1/admin/psa/typesAdd a PSA ticket type
POST/v1/admin/psa/types/:idRename, turn on/off or reorder a PSA ticket type
POST/v1/admin/psa/types/:id/deleteDelete a PSA ticket type

#List PSA email templates

GET/v1/admin/psa/templates

List PSA email templates. Requires the GLOBAL_ADMIN role. This is the only place templates can be created/edited/deleted — PSA's own app keeps a read-only copy (GET /v1/app/psa/templates) so ticket.html's reply picker still works.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Response 200

FieldTypeDescription
templatesarray of object
templates[].idinteger
templates[].tenant_idinteger
templates[].namestring
templates[].subjectstring, or null
templates[].bodystring
templates[].categorystring, or null
templates[].is_activeinteger, or null
templates[].created_atstring (date-time), or null
templates[].updated_atstring (date-time), or null
Example response
JSON
{
  "templates": [
    {
      "id": 42,
      "tenant_id": 1,
      "name": "Example name",
      "subject": "Example subject",
      "body": "<p>…</p>",
      "category": "string",
      "is_active": 1,
      "created_at": "2026-11-12T09:30:00.000Z",
      "updated_at": "2026-11-12T09:30:00.000Z"
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Create a PSA email template

POST/v1/admin/psa/templates

Create a PSA email template. Requires the GLOBAL_ADMIN role. name and body are required; category defaults to "reply".

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Request body JSON

NameTypeDescription
namerequiredstring
subjectany
bodyrequiredany
categoryany
is_activeboolean

Response 200

FieldTypeDescription
templateany
Example response
JSON
{
  "template": null
}

Errors

StatusMessage
400name and body required

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}'

#Update a PSA email template

POST/v1/admin/psa/templates/:id

Update a PSA email template. Requires the GLOBAL_ADMIN role.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
subjectany
bodyany
categoryany
is_activeboolean

Response 200

FieldTypeDescription
templateany
Example response
JSON
{
  "template": null
}

Errors

StatusMessage
404Template not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","subject":"…","body":"…","category":"…","is_active":true}'

#Delete a PSA email template

POST/v1/admin/psa/templates/:id/delete

Delete a PSA email template. Requires the GLOBAL_ADMIN role.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/:id/delete
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/templates/42/delete' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List PSA statuses with their behaviours and ticket counts

GET/v1/admin/psa/statuses

List PSA statuses with their behaviours and ticket counts. Requires the GLOBAL_ADMIN role. The defaults are added on first use.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Response 200

FieldTypeDescription
statusesarray of object
statuses[].ticket_countinteger
groupsarray of any
Example response
JSON
{
  "statuses": [
    {
      "…r": "…",
      "ticket_count": 3
    }
  ],
  "groups": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Add a PSA status. Requires the GLOBAL_ADMIN role

POST/v1/admin/psa/statuses

Add a PSA status. Requires the GLOBAL_ADMIN role. Body name, group_key (new/open/waiting/paused/closed), color, and optional behaviours (on_enter_template_id, on_reply_status_id, auto_after_hours + auto_to_status_id, remind_after_hours + remind_template_id, pauses_sla, is_default).

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Response 200

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Errors

StatusMessage
400Give the status a name

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Update a PSA status. Requires the GLOBAL_ADMIN role

POST/v1/admin/psa/statuses/:id

Update a PSA status. Requires the GLOBAL_ADMIN role. Same fields as creating one, plus sort_order. Changing the group moves its tickets' basic status with it.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequirednumber

Request body JSON

NameTypeDescription
namestring
group_keystring
colorany
sort_orderinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
400Keep at least one turned-on status in the … group
404Status not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","group_key":"…","color":"…","sort_order":1}'

#Delete a PSA status. Requires the GLOBAL_ADMIN role

POST/v1/admin/psa/statuses/:id/delete

Delete a PSA status. Requires the GLOBAL_ADMIN role. Body { move_to } (a status id) is required when tickets are in it; they move there without emails.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/:id/delete
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequirednumber

Request body JSON

NameTypeDescription
move_tonumber

Response 200

FieldTypeDescription
successboolean
movednumber
Example response
JSON
{
  "success": true,
  "moved": 12.5
}

Errors

StatusMessage
400Keep at least one turned-on status in the … group
400… ticket(s) are in this status: pick one to move them to
404Status not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/statuses/12.5/delete' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"move_to":12.5}'

#List PSA workflow rules

GET/v1/admin/psa/workflows

List PSA workflow rules. Requires the GLOBAL_ADMIN role. Includes how often each rule ran and errored in the last 30 days.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Response 200

FieldTypeDescription
workflowsarray of object
workflows[].runs_30dnumber
workflows[].errors_30dnumber
eventsarray of any
actionsarray of any
Example response
JSON
{
  "workflows": [
    {
      "…w": "…",
      "runs_30d": 12.5,
      "errors_30d": 12.5
    }
  ],
  "events": [],
  "actions": []
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Create a PSA workflow rule

POST/v1/admin/psa/workflows

Create a PSA workflow rule. Requires the GLOBAL_ADMIN role. Body name, trigger_event, trigger_config, match_mode (all/any), conditions [{field, op, value}], actions [{type, ...}], stop_further, is_active.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Request body JSON

NameTypeDescription
namestring
trigger_eventstring
trigger_configobject
conditionsarray of any
actionsarray of any
match_modestring
stop_furtherany
is_activeboolean

Response 200

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","trigger_event":"string","trigger_config":{},"conditions":[],"actions":[],"match_mode":"string","stop_further":"…","is_active":true}'

#Update a PSA workflow rule

POST/v1/admin/psa/workflows/:id

Update a PSA workflow rule. Requires the GLOBAL_ADMIN role. Send the whole rule, or just { is_active } or { sort_order }.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
is_activeboolean
sort_orderinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Workflow not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","is_active":true,"sort_order":1}'

#Delete a PSA workflow rule and its run log

POST/v1/admin/psa/workflows/:id/delete

Delete a PSA workflow rule and its run log. Requires the GLOBAL_ADMIN role.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/:id/delete
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Workflow not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflows/42/delete' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Dry-run a PSA workflow rule against a ticket

POST/v1/admin/psa/workflow-test

Dry-run a PSA workflow rule against a ticket. Requires the GLOBAL_ADMIN role. Body { rule, ticket_id }. Says whether the conditions match and why; nothing is changed.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-test
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Request body JSON

NameTypeDescription
ruleany
ticket_idinteger

Response 200

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-test' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"rule":"…","ticket_id":7}'

#Recent PSA workflow runs (last 30 days)

GET/v1/admin/psa/workflow-runs

Recent PSA workflow runs (last 30 days). Requires the GLOBAL_ADMIN role. Optional ?workflow_id, ?errors=1, ?limit (max 200).

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-runs
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Query parameters

NameTypeDescription
workflow_idnumber
errorsstring
limitinteger

Response 200

FieldTypeDescription
runsarray of object
runs[].idinteger
runs[].tenant_idinteger
runs[].workflow_idinteger
runs[].ticket_idinteger
runs[].trigger_eventstring
runs[].outcomestring
runs[].detailstring, or null
runs[].created_atstring (date-time), or null
runs[].workflow_namestring
runs[].ticket_subjectstring
Example response
JSON
{
  "runs": [
    {
      "id": 42,
      "tenant_id": 1,
      "workflow_id": 7,
      "ticket_id": 7,
      "trigger_event": "string",
      "outcome": "string",
      "detail": "string",
      "created_at": "2026-11-12T09:30:00.000Z",
      "workflow_name": "Example workflow name",
      "ticket_subject": "Example ticket subject"
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/workflow-runs' \
  -H "X-API-Key: $BRAMBLE_KEY"

#PSA business hours and SLA policies

GET/v1/admin/psa/sla

PSA business hours and SLA policies. Requires the GLOBAL_ADMIN role. Also counts open tickets on each policy and how many are breached.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Response 200

FieldTypeDescription
hoursarray of any
policiesarray of object
policies[].open_countnumber
policies[].breachednumber
Example response
JSON
{
  "hours": [],
  "policies": [
    {
      "…p": "…",
      "open_count": 12.5,
      "breached": 12.5
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Add PSA business hours

POST/v1/admin/psa/sla/hours

Add PSA business hours. Requires the GLOBAL_ADMIN role. Body name, timezone, schedule {"1":[["09:00","17:30"]],…} (0 = Sunday), holidays ["YYYY-MM-DD"], bank_holidays (england-and-wales / scotland / northern-ireland or null).

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Request body JSON

NameTypeDescription
namestring
timezoneany
scheduleany
holidaysarray of any
bank_holidaysstring: "england-and-wales" | "scotland" | "northern-ireland"

Response 200

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}'

#Update PSA business hours

POST/v1/admin/psa/sla/hours/:id

Update PSA business hours. Requires the GLOBAL_ADMIN role. Same body as adding them.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
timezoneany
scheduleany
holidaysarray of any
bank_holidaysstring: "england-and-wales" | "scotland" | "northern-ireland"

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Business hours not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","timezone":"…","schedule":"…","holidays":[],"bank_holidays":"england-and-wales"}'

#Delete PSA business hours

POST/v1/admin/psa/sla/hours/:id/delete

Delete PSA business hours. Requires the GLOBAL_ADMIN role. Policies using them switch to round the clock.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/:id/delete
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Business hours not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/hours/42/delete' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Add a PSA SLA policy

POST/v1/admin/psa/sla/policies

Add a PSA SLA policy. Requires the GLOBAL_ADMIN role. Body name, business_hours_id, targets {priority: {response, resolution}} in minutes, warn_percent, customer_ids, queue_ids, type_ids (empty = all), is_active.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Request body JSON

NameTypeDescription
namestring
targetsarray of any
is_activeboolean
business_hours_idnumber
warn_percentinteger
customer_idsarray of any
queue_idsarray of any
type_idsarray of any

Response 200

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","targets":[],"is_active":true,"business_hours_id":12.5,"warn_percent":1,"customer_ids":[],"queue_ids":[],"type_ids":[]}'

#Update a PSA SLA policy

POST/v1/admin/psa/sla/policies/:id

Update a PSA SLA policy. Requires the GLOBAL_ADMIN role. The whole policy, or just { is_active } or { sort_order }.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
is_activeboolean
sort_orderinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Policy not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","is_active":true,"sort_order":1}'

#Delete a PSA SLA policy

POST/v1/admin/psa/sla/policies/:id/delete

Delete a PSA SLA policy. Requires the GLOBAL_ADMIN role. Open tickets move to the next policy that covers them, if any.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/:id/delete
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Policy not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/sla/policies/42/delete' \
  -H "X-API-Key: $BRAMBLE_KEY"

#List PSA ticket types

GET/v1/admin/psa/types

List PSA ticket types. Requires the GLOBAL_ADMIN role. Includes inactive types.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Response 200

FieldTypeDescription
typesarray of object
types[].ticket_countinteger
Example response
JSON
{
  "types": [
    {
      "…t": "…",
      "ticket_count": 3
    }
  ]
}

Example request

Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Add a PSA ticket type

POST/v1/admin/psa/types

Add a PSA ticket type. Requires the GLOBAL_ADMIN role. Body { name }.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Request body JSON

NameTypeDescription
namestring

Response 200

FieldTypeDescription
idinteger
Example response
JSON
{
  "id": 42
}

Errors

StatusMessage
400Give the type a name

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name"}'

#Rename, turn on/off or reorder a PSA ticket type

POST/v1/admin/psa/types/:id

Rename, turn on/off or reorder a PSA ticket type. Requires the GLOBAL_ADMIN role. Body { name?, is_active?, sort_order? }. Inactive types stay on existing tickets but can't be picked.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/:id
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namestring
is_activeboolean
sort_orderinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
400Give the type a name
404Type not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","is_active":true,"sort_order":1}'

#Delete a PSA ticket type

POST/v1/admin/psa/types/:id/delete

Delete a PSA ticket type. Requires the GLOBAL_ADMIN role. Tickets of this type are left without one.

Address
https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/:id/delete
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of): psa.admin.manage.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
successboolean
Example response
JSON
{
  "success": true
}

Errors

StatusMessage
404Type not found

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/admin/psa/types/42/delete' \
  -H "X-API-Key: $BRAMBLE_KEY"