Workspace automations overview
Workspace automations are rule graphs that run across a workspace.
The workspace automation object
Attributes
idstring (uuid)Unique identifier.
namestringThe automation name. Maximum 255 characters.
descriptionstringWhat the automation is for. An empty string when not set.
scopestringThe entity the automation runs on.
work-itemis the only value.statusstringdraft,published, ordisabled. A new automation starts asdraft. Enabling it setspublished, and disabling it setsdisabled.is_enabledbooleanWhether the automation runs.
falseon a new automation. Change it with the status endpoint.is_globalbooleanAlways
truefor workspace automations.project_idsarray of string (uuid)The projects the automation is associated with. Set them with
project_idson create or update. Plane drops ids that aren't projects in this workspace. An empty list when none are set.run_countintegerHow many times the automation has run.
last_run_atstring (date-time) or nullWhen the automation last ran, or
nullif it hasn't run.bot_user_idstring (uuid) or nullThe bot user Plane creates for the automation. Its actions run as this user.
current_version_idstring (uuid) or nullThe current version of the automation's graph. Plane creates the first version when it creates the automation.
created_atstring (date-time)When the workspace automation was created.
created_by_idstring (uuid) or nullThe user who created the automation.
updated_by_idstring (uuid) or nullThe user who last updated the automation, or
null.updated_atstring (date-time)When the workspace automation was last updated.
{
"id": "9c1f0b3d-6d2e-4c9a-8b41-2f7e5a0d6c88",
"name": "Triage new bugs",
"description": "Assign new bugs to the on-call engineer.",
"scope": "work-item",
"status": "draft",
"is_enabled": false,
"is_global": true,
"project_ids": ["16c61a3a-512a-48ac-b0be-b6b46fe6f430", "4a8e2c71-9b3d-4f05-a6e2-7c1d8b9f3e40"],
"run_count": 0,
"last_run_at": null,
"bot_user_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f",
"current_version_id": "3d7b9e15-2a4c-4f68-b0d1-8e6c5a9f2b74",
"created_at": "2026-01-14T09:22:41.478363Z",
"created_by_id": "e2b1c4d7-5f3a-4e89-9c62-1a7d0b8f4e35",
"updated_by_id": null,
"updated_at": "2026-01-14T09:22:41.478363Z"
}The automation activity object
The activity endpoints return this object.
Attributes
actor_idstring (uuid)The related actor.
automation_edge_idstring (uuid)The related automation edge.
automation_idstring (uuid)The related automation.
automation_node_idstring (uuid)The related automation node.
automation_run_idstring (uuid)The related automation run.
automation_scopestringThe automation scope.
automation_version_idstring (uuid)The related automation version.
created_atstring (date-time)When the activity entry was created.
updated_atstring (date-time)When the activity entry was last updated.
updated_by_idstring (uuid) or nullThe user who last updated the activity entry, or
null.epochnumberThe epoch.
fieldstringThe field.
idstring (uuid)Unique identifier.
new_identifierstring (uuid)The new identifier.
new_valuestringThe new value.
node_execution_idstring (uuid)The related node execution.
old_identifierstring (uuid)The old identifier.
old_valuestringThe old value.
verbstringThe verb.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v2/workspaces/{slug}/automations/{automation_id}/activities/ | List automation activities |
GET | /api/v2/workspaces/{slug}/automations/{automation_id}/edges/ | List automation edges |
GET | /api/v2/workspaces/{slug}/automations/{automation_id}/nodes/ | List automation nodes |
GET | /api/v2/workspaces/{slug}/automations/ | List workspace automations |
GET | /api/v2/workspaces/{slug}/automations/{automation_id}/activities/{pk}/ | Get an automation activity |
GET | /api/v2/workspaces/{slug}/automations/{automation_id}/edges/{pk}/ | Get an automation edge |
GET | /api/v2/workspaces/{slug}/automations/{automation_id}/nodes/{pk}/ | Get an automation node |
GET | /api/v2/workspaces/{slug}/automations/{pk}/ | Get a workspace automation |
POST | /api/v2/workspaces/{slug}/automations/{automation_id}/edges/ | Create an automation edge |
POST | /api/v2/workspaces/{slug}/automations/{automation_id}/nodes/ | Create an automation node |
POST | /api/v2/workspaces/{slug}/automations/ | Create a workspace automation |
PATCH | /api/v2/workspaces/{slug}/automations/{automation_id}/edges/{pk}/ | Update an automation edge |
PATCH | /api/v2/workspaces/{slug}/automations/{automation_id}/nodes/{pk}/ | Update an automation node |
PATCH | /api/v2/workspaces/{slug}/automations/{pk}/ | Update a workspace automation |
DELETE | /api/v2/workspaces/{slug}/automations/{automation_id}/edges/{pk}/ | Delete an automation edge |
DELETE | /api/v2/workspaces/{slug}/automations/{automation_id}/nodes/{pk}/ | Delete an automation node |
DELETE | /api/v2/workspaces/{slug}/automations/{pk}/ | Delete a workspace automation |
POST | /api/v2/workspaces/{slug}/automations/{automation_id}/nodes/{pk}/regenerate-webhook-secret/ | Regenerate an automation node webhook secret |
POST | /api/v2/workspaces/{slug}/automations/{pk}/status/ | Enable or disable a workspace automation |
Response shaping
Every workspace automation read accepts ?fields= for sparse responses. See Sparse fields. Errors follow the shared problem+json contract.

