Actions API
API Reference
Actions require a MongoDB connection. All admin endpoints require authentication and the
actions permission. Action configs are stored in cms__actions.
Requires: actions permission
List all action configs.
Requires: actions permission
Create a new action config. Returns 201 on success.
{
"title": "Approve Application",
"slug": "approve-application",
"collection": "applications",
"trigger": { "type": "manual", "label": "Approve", "icon": "check-circle", "confirmMessage": "Approve this application?" },
"steps": [
{ "type": "updateField", "config": { "field": "status", "value": "approved" } },
{ "type": "updateField", "config": { "field": "approvedAt", "value": "{{now}}" } },
{ "type": "email", "config": { "to": "{{entry.data.email}}", "subject": "Application approved",
"template": "Hi {{entry.data.name}}, your application is approved." } }
],
"access": { "roles": ["admin", "manager"] }
}Requires: actions permission
Return a single action config by slug.
Requires: actions permission
Update an action config.
Requires: actions permission
Delete an action config.
Requires: actions permission
Execute an action against a specific entry.
// Request body
{ "entryId": "uuid-of-the-entry" }
// Response
{ "success": true, "stepsCompleted": 4, "results": [ { "type": "updateField", "success": true, ... } ] }
// Partial failure
{ "success": false, "stepsCompleted": 2, "results": [ ..., { "type": "webhook", "success": false, "error": "Webhook returned HTTP 500" } ] }
Requires: actions permission
List all action configs targeting a given collection slug. Used by the entry list view to populate per-row trigger buttons.
Requires: JWT + role in access.roles
Execute an action publicly. Always requires a valid JWT — the role is checked against access.roles.
Request body and response shape are identical to the admin /execute endpoint.