Automation rules

Rules that change work packages automatically when something happens.

MethodPathSummary
GET/v1/app/project/projects/:id/automation-rulesA project's automation rules
POST/v1/app/project/projects/:id/automation-rulesAdmin role: higher than Tags'/ Categories' "member" tier, since a rule can auto-assign users or change status on every new work package, same tier as project…
PUT/v1/app/project/projects/:id/automation-rules/:ruleIdBulk-replace name/conditions/ actions in one UPDATE (no transaction needed — see the JSON-column rationale above)
PATCH/v1/app/project/projects/:id/automation-rules/:ruleIdJust the enable/disable toggle, kept separate from PUT so the list view's switch doesn't have to resend the whole conditions/actions payload
DELETE/v1/app/project/projects/:id/automation-rules/:ruleIdDelete an automation rule

#A project's automation rules

GET/v1/app/project/projects/:id/automation-rules
Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/automation-rules
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.

Path parameters

NameTypeDescription
idrequiredinteger

Response 200

FieldTypeDescription
rulesarray of object
rules[].idinteger
rules[].project_idinteger
rules[].namestring
rules[].enabledboolean
rules[].conditionsobject
rules[].actionsobject
rules[].positioninteger
rules[].created_byinteger
rules[].created_atstring (date-time)
rules[].updated_atstring (date-time)
Example response
JSON
{
  "rules": [
    {
      "id": 42,
      "project_id": 7,
      "name": "Example name",
      "enabled": true,
      "conditions": {},
      "actions": {},
      "position": 1,
      "created_by": 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/app/project/projects/42/automation-rules' \
  -H "X-API-Key: $BRAMBLE_KEY"

#Admin role: higher than Tags'/ Categories' "member" tier, since a rule can auto-assign users or change status on every new work package, same tier as project…

POST/v1/app/project/projects/:id/automation-rules

Admin role: higher than Tags'/ Categories' "member" tier, since a rule can auto-assign users or change status on every new work package, same tier as project settings changes.

Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/automation-rules
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.

Path parameters

NameTypeDescription
idrequiredinteger

Request body JSON

NameTypeDescription
namerequiredstring
conditionsarray of any
actionsarray of any

Response 201

FieldTypeDescription
ruleany
Example response
JSON
{
  "rule": null
}

Errors

StatusMessage
400name is required
400At least one valid condition is required
400At least one valid action is required

Example request

Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","conditions":[],"actions":[]}'

#Bulk-replace name/conditions/ actions in one UPDATE (no transaction needed — see the JSON-column rationale above)

PUT/v1/app/project/projects/:id/automation-rules/:ruleId
Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/automation-rules/:ruleId
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.

Path parameters

NameTypeDescription
idrequiredinteger
ruleIdrequiredinteger

Request body JSON

NameTypeDescription
namerequiredstring
enabledboolean
conditionsarray of any
actionsarray of any

Response 200

FieldTypeDescription
ruleany
Example response
JSON
{
  "rule": null
}

Errors

StatusMessage
400name is required
400At least one valid condition is required
400At least one valid action is required

Example request

Bash
curl -X PUT 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example name","enabled":true,"conditions":[],"actions":[]}'

#Just the enable/disable toggle, kept separate from PUT so the list view's switch doesn't have to resend the whole conditions/actions payload

PATCH/v1/app/project/projects/:id/automation-rules/:ruleId
Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/automation-rules/:ruleId
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.

Path parameters

NameTypeDescription
idrequiredinteger
ruleIdrequiredinteger

Request body JSON

NameTypeDescription
enabledrequiredboolean

Response 200

FieldTypeDescription
ruleany
Example response
JSON
{
  "rule": null
}

Errors

StatusMessage
400enabled is required

Example request

Bash
curl -X PATCH 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1' \
  -H "X-API-Key: $BRAMBLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

#Delete an automation rule

DELETE/v1/app/project/projects/:id/automation-rules/:ruleId
Address
https://<your-org>.brambleit.cloud/api/v1/app/project/projects/:id/automation-rules/:ruleId
Requires
Signed-in session, X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: Projects.

Path parameters

NameTypeDescription
idrequiredinteger
ruleIdrequiredinteger

Response 200

FieldTypeDescription
okboolean
Example response
JSON
{
  "ok": true
}

Example request

Bash
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1' \
  -H "X-API-Key: $BRAMBLE_KEY"