Workflow

Perform workflow actions on bulk content

Changed on

This operation allows you to specify a multiple content items (either by query or a list of identifiers), a workflow action to perform on them, and additional parameters as needed by the selected action. Responses are streamed as Server-Sent Events.

⚠️ Important contract notes:

  • contentletIds despite its name expects inodes, not identifiers. Passing identifiers results in a silent no-op with no error.
  • additionalParams must be present, even when empty ({}). Omitting it returns a 500 NPE.
  • The endpoint is not step-aware: if the action is not valid in a contentlet's current step, the input is dropped silently (no fails[] entry). Verify post-fire state via POST /api/content/_search.
  • This endpoint behaves identically to PUT /api/v1/workflow/contentlet/actions/bulk/fire; only the response transport differs (SSE here vs JSON there).
post/api/v1/workflow/contentlet/actions/_bulkfire

Request

Request body

querystring

Lucene query that selects the contentlets to act on. Mutually exclusive with 'contentletIds'.

contentletIdsstring[]

Explicit list of contentlet identifiers to act on. Mutually exclusive with 'query'.

workflowActionIdstring required

The workflow action identifier (UUID) to fire. Discover via GET /api/v1/workflow/schemes/{schemeId}/actions or GET /api/v1/workflow/contentlet/{inode}/actions. Not the system action enum value (NEW, EDIT, PUBLISH, …).

Example request

{
  "query": "+contentType:webPageContent +languageId:1",
  "workflowActionId": "ceca4ee9-1b7b-4f21-a5f4-5d8e9b8b8a1d",
  "additionalParams": {
    "additionalParamsMap": {
      "_path_to_move": "//demo.dotcms.com/destination/folder/"
    }
  },
  "popupParamsBean": {
    "additionalParamsMap": {
      "_path_to_move": "//demo.dotcms.com/destination/folder/"
    }
  }
}

Response

Success

closedboolean

Changes