Automation rules
Rules that change work packages automatically when something happens.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/project/projects/:id/automation-rules | A project's automation rules |
| 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… |
| PUT | /v1/app/project/projects/:id/automation-rules/:ruleId | Bulk-replace name/conditions/ actions in one UPDATE (no transaction needed — see the JSON-column rationale above) |
| PATCH | /v1/app/project/projects/:id/automation-rules/:ruleId | 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 |
| DELETE | /v1/app/project/projects/:id/automation-rules/:ruleId | Delete 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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
rules | array of object | |
rules[].id | integer | |
rules[].project_id | integer | |
rules[].name | string | |
rules[].enabled | boolean | |
rules[].conditions | object | |
rules[].actions | object | |
rules[].position | integer | |
rules[].created_by | integer | |
rules[].created_at | string (date-time) | |
rules[].updated_at | string (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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules' -Headers $headers#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-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 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
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
namerequired | string | |
conditions | array of any | |
actions | array of any |
Response 201
| Field | Type | Description |
|---|---|---|
rule | any |
Example response
JSON
{
"rule": null
}Errors
| Status | Message |
|---|---|
| 400 | name is required |
| 400 | At least one valid condition is required |
| 400 | At 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":[]}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","conditions":[],"actions":[]}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","conditions":[],"actions":[]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","conditions":[],"actions":[]}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules' -Headers $headers -ContentType 'application/json' -Body $body#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
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
ruleIdrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
namerequired | string | |
enabled | boolean | |
conditions | array of any | |
actions | array of any |
Response 200
| Field | Type | Description |
|---|---|---|
rule | any |
Example response
JSON
{
"rule": null
}Errors
| Status | Message |
|---|---|
| 400 | name is required |
| 400 | At least one valid condition is required |
| 400 | At 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":[]}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1', {
method: 'PUT',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"name":"Example name","enabled":true,"conditions":[],"actions":[]}),
});
const data = await res.json();Python
import os, requests
r = requests.put(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"name":"Example name","enabled":True,"conditions":[],"actions":[]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"name":"Example name","enabled":true,"conditions":[],"actions":[]}'
Invoke-RestMethod -Method PUT -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1' -Headers $headers -ContentType 'application/json' -Body $body#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
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
ruleIdrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
enabledrequired | boolean |
Response 200
| Field | Type | Description |
|---|---|---|
rule | any |
Example response
JSON
{
"rule": null
}Errors
| Status | Message |
|---|---|
| 400 | enabled 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}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1', {
method: 'PATCH',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"enabled":true}),
});
const data = await res.json();Python
import os, requests
r = requests.patch(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"enabled":True},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"enabled":true}'
Invoke-RestMethod -Method PATCH -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1' -Headers $headers -ContentType 'application/json' -Body $body#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
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
ruleIdrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
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"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/project/projects/42/automation-rules/1' -Headers $headersWas this page helpful?
Thanks for your feedback.