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.