Overview
Automations are rules that execute actions when specific events occur on a board. The API allows you to create, update, and manage automation rules programmatically.
List Automations
List all automation rules for a board.
GET /api/trpc/automations.list?input={"json":{"boardId":"brd_01HXK5..."}}
Response:
{
"result": {
"data": {
"json": {
"automations": [
{
"id": "aut_01HXK5QJBN3YZXM8KJP2RSNV4C",
"boardId": "brd_01HXK5...",
"name": "Auto-assign bugs to QA",
"enabled": true,
"trigger": {
"type": "item.created",
"config": {
"groupId": "grp_01HXK5..."
}
},
"conditions": [
{
"columnId": "col_01HXK5...",
"operator": "is",
"value": { "label": "Bug" }
}
],
"actions": [
{
"type": "set_value",
"config": {
"columnId": "col_01HXK6...",
"value": ["usr_01HXK5..."]
}
},
{
"type": "send_notification",
"config": {
"userIds": ["usr_01HXK5..."],
"message": "New bug assigned to you: {item.name}"
}
}
],
"executionCount": 47,
"lastExecutedAt": "2026-03-19T13:00:00.000Z",
"createdBy": "usr_01HXK5...",
"createdAt": "2026-02-15T10:00:00.000Z"
}
]
}
}
}
}
Create Automation
Create a new automation rule.
POST /api/trpc/automations.create
Request:
{
"json": {
"boardId": "brd_01HXK5...",
"name": "Notify on high priority",
"trigger": {
"type": "value.changed",
"config": {
"columnId": "col_01HXK5..."
}
},
"conditions": [
{
"columnId": "col_01HXK5...",
"operator": "is",
"value": { "label": "Critical", "color": "#ef4444" }
}
],
"actions": [
{
"type": "send_notification",
"config": {
"userIds": ["usr_01HXK5...", "usr_01HXK6..."],
"message": "Critical item: {item.name} needs attention!"
}
},
{
"type": "call_webhook",
"config": {
"url": "https://hooks.slack.com/services/T.../B.../xxx",
"method": "POST",
"body": {
"text": "Critical item created: {item.name}"
}
}
}
]
}
}
Trigger Types
| Type | Config | Description |
|---|
item.created | groupId? | New item created (optionally in a specific group) |
item.moved | fromGroupId?, toGroupId? | Item moved between groups |
value.changed | columnId, fromValue?, toValue? | Column value changes |
date.arrived | columnId, offsetDays? | Date column reaches today +/- offset |
form.submitted | formId | Form submission received |
subitems.completed | — | All sub-items marked as done |
recurring | cron | Recurring schedule (cron expression) |
webhook.received | — | External webhook received |
Action Types
| Type | Config | Description |
|---|
set_value | columnId, value | Set a column value |
assign_person | columnId, userIds | Set the people column |
move_item | groupId, boardId? | Move item to a group/board |
create_item | boardId, groupId, name, values? | Create a new item |
archive_item | — | Archive the triggering item |
send_notification | userIds, message | Send in-app notification |
send_email | to, subject, body | Send an email |
call_webhook | url, method, headers?, body? | Call an external webhook |
create_subitem | name, values? | Add a sub-item |
Update Automation
POST /api/trpc/automations.update
{
"json": {
"id": "aut_01HXK5...",
"name": "Updated automation name",
"enabled": false,
"conditions": []
}
}
Delete Automation
POST /api/trpc/automations.delete
{
"json": {
"id": "aut_01HXK5..."
}
}
Toggle Automation
Enable or disable an automation without deleting it.
POST /api/trpc/automations.toggle
{
"json": {
"id": "aut_01HXK5...",
"enabled": true
}
}
Execution Log
View the execution history of an automation.
GET /api/trpc/automations.log?input={"json":{"automationId":"aut_01HXK5...","limit":20}}
Response:
{
"result": {
"data": {
"json": {
"executions": [
{
"id": "exe_01HXK5...",
"automationId": "aut_01HXK5...",
"status": "success",
"triggeredBy": {
"type": "value.changed",
"itemId": "itm_01HXK5...",
"userId": "usr_01HXK5..."
},
"actionsExecuted": 2,
"duration": 142,
"executedAt": "2026-03-19T13:00:00.000Z"
}
],
"nextCursor": null
}
}
}
}
Execution logs include the duration in milliseconds, making it easy to identify slow automations. Logs are retained for 30 days.
Template Variables
Automation actions support template variables that are replaced at execution time:
| Variable | Description |
|---|
{item.name} | Name of the triggering item |
{item.id} | ID of the triggering item |
{item.url} | Full URL to the item |
{board.name} | Name of the board |
{group.name} | Name of the item’s group |
{user.name} | Name of the user who triggered the event |
{value.old} | Previous value (for value.changed triggers) |
{value.new} | New value (for value.changed triggers) |