Custom Actions
Owner-defined quick actions — a label, an emoji and the prompt they launch.
Base path /api/v1/custom-actions on https://trydozer.com. Authenticate with Authorization: Bearer $DASH_API_KEY and name the project with the Project-ID header. Writes are validated in declared mode; an operation this resource does not declare answers 405 operation_not_supported.
List custom actions
GET /api/v1/custom-actions
curl "https://trydozer.com/api/v1/custom-actions?source=create-custom-action" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_northpit"Show me the custom actions filtered by sourcedata_query {
"collection": "custom_actions",
"where": {
"source": "create-custom-action"
}
}Returns a paginated list of custom-action objects, newest first.
{
"object": "list",
"data": [
{
"object": "custom-action",
"id": "obj_123",
"label": "Morning fleet check",
"emoji": "🌅",
"prompt": "Summarize overnight telemetry and list any machine that needs attention before the day shift.",
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
source | string | filter | What authored this action (e.g. create-custom-action). |
skillId | string | filter | Chat skill the launched task should run. |
q | string | search | Free-text search across label, prompt. |
sort | string | sort | One of label, createdAt; prefix with - to reverse. |
limit | number | page | Rows to return, 1–100. Defaults to 20. |
cursor | string | page | next_cursor from the previous page. |
Retrieve a custom-action
GET /api/v1/custom-actions/a60h-12
curl "https://trydozer.com/api/v1/custom-actions/a60h-12" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_northpit"Open the custom-action {id}data_get {
"collection": "custom_actions",
"object_id": "a60h-12"
}Returns the custom-action object.
{
"object": "custom-action",
"id": "obj_123",
"label": "Morning fleet check",
"emoji": "🌅",
"prompt": "Summarize overnight telemetry and list any machine that needs attention before the day shift.",
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The custom-action's id or slug. |
Create a custom-action
POST /api/v1/custom-actions
curl -X POST "https://trydozer.com/api/v1/custom-actions" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_northpit" \
-H "Content-Type: application/json" \
-d '{"label":"Morning fleet check","emoji":"🌅","prompt":"Summarize overnight telemetry and list any machine that needs attention before the day shift.","source":"create-custom-action"}'Create a new custom-actiondata_set {
"collection": "custom_actions",
"object_id": "a60h-12",
"data": {
"label": "Morning fleet check",
"emoji": "🌅",
"prompt": "Summarize overnight telemetry and list any machine that needs attention before the day shift.",
"source": "create-custom-action"
}
}Returns the custom-action object.
{
"object": "custom-action",
"id": "obj_123",
"label": "Morning fleet check",
"emoji": "🌅",
"prompt": "Summarize overnight telemetry and list any machine that needs attention before the day shift.",
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
label | string | yes | Button text shown on the quick-action card. |
emoji | string | no | Single emoji rendered on the card. |
prompt | text | yes | The prompt the action launches. |
promptTemplate | text | no | Template applied to the form submission before launching. |
skillId | string | no | Chat skill the launched task should run. |
source | string | no | What authored this action (e.g. create-custom-action). |
saveAsQuickAction | boolean | no | Whether the action was pinned to the home strip at creation. |
Update a custom-action
PATCH /api/v1/custom-actions/a60h-12
curl -X PATCH "https://trydozer.com/api/v1/custom-actions/a60h-12" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_northpit" \
-H "Content-Type: application/json" \
-d '{"label":"label","prompt":"prompt"}'Update the custom-action {id}data_set {
"collection": "custom_actions",
"object_id": "a60h-12",
"data": {
"label": "label",
"prompt": "prompt"
}
}Returns the custom-action object.
{
"object": "custom-action",
"id": "obj_123",
"label": "Morning fleet check",
"emoji": "🌅",
"prompt": "Summarize overnight telemetry and list any machine that needs attention before the day shift.",
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
label | string | no | Button text shown on the quick-action card. |
emoji | string | no | Single emoji rendered on the card. |
prompt | text | no | The prompt the action launches. |
promptTemplate | text | no | Template applied to the form submission before launching. |
skillId | string | no | Chat skill the launched task should run. |
source | string | no | What authored this action (e.g. create-custom-action). |
saveAsQuickAction | boolean | no | Whether the action was pinned to the home strip at creation. |
Delete a custom-action
DELETE /api/v1/custom-actions/a60h-12
curl -X DELETE "https://trydozer.com/api/v1/custom-actions/a60h-12" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_northpit"Delete the custom-action {id}data_delete {
"collection": "custom_actions",
"object_id": "a60h-12"
}Returns the deleted custom-action object with deleted: true.
{
"object": "custom-action",
"id": "obj_123",
"deleted": true
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The custom-action's id or slug. |
What comes back (read-only)
Every custom-action carries the envelope below. The fields under it are computed or stamped by the platform — they are returned, never sent.
| Field | Type | Description |
|---|---|---|
object | string | Always custom-action. |
id | string | Stable object id. Also accepted in place of slug on any path. |
slug | string | URL-safe name, unique within the collection. |
created_at | string | ISO-8601 timestamp of the first write. |
updated_at | string | ISO-8601 timestamp of the most recent write. The cursor sorts on this. |
formSchema | object | Inline form schema registered with the dynamic form runtime. |
outputTemplate | object | How the action's result is rendered back into chat. |
createdAt | string | When the action was created (ISO 8601). |
Errors
Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.