What problem does it solve?
Adding a custom bulk operation to Webiny's Headless CMS content-entry list normally requires writing background-task scheduling, batching, retry, and GraphQL wiring by hand. This Skill shows how to implement an EntriesBulkAction so Webiny auto-generates the list/process background tasks and the GraphQL mutation, plus the Admin-side button that triggers it.
Core Features & Use Cases
- Backend bulk action authoring: Implement
loadData (which entries) and processData (what to do per entry) and register via EntriesBulkAction.createImplementation with dependency injection.
- Convergence and filtering guidance: Explains why
loadData must exclude already-processed entries (state transitions, boolean flags, per-run tokens) and how to translate GraphQL where filters into flat dotted storage format for custom fields.
- Admin UI integration: Add a
ContentEntryListConfig.Browser.BulkAction button that calls BulkActionFeature's useCase.execute with model, action, where scope, and custom data.
- Use Case: A developer wants an "Apply -10% discount" action on the product entry list. They create the backend action class, register it, and add a confirmation-dialog button in the Admin that fires the mutation; Webiny runs the updates as a background task.
Quick Start
Ask the AI to create a custom Webiny CMS bulk action that applies a discount to selected product entries, including the backend EntriesBulkAction class and the Admin bulk-action button.