Shipping features at Payload remains our top priority and we’ve been hard at work making Payload even more powerful, flexible, and developer-friendly.
In this update, we’re excited to share four new features that expand what you can do with your data and workflows: soft deletes via a new Trash system, a handy refresh
method in the List Drawer context, powerful new groupBy
querying for backend insights, and native job scheduling in our Jobs API.
Let's dive in ...
This feature introduces *soft delete* support, allowing items to be marked as deleted (e.g. via a `deletedAt` field) without being permanently removed. Users can later restore or filter out trashed items. This enables safer data workflows and aligns with standard practices you'd expect with enterprise CRUD apps.
Enabling trash for your collections is simple:
Benefits of leveraging soft delete:
With this update, developers can call a `refresh` method directly from the list drawer context—enabling cleaner, more dynamic UI patterns. It allows deeply integrated custom components (e.g. custom lists or drawer-based editors) to trigger a context-aware refresh of data.
Use case:
This PR enhances Payload's querying capabilities by supporting `group_by`, enabling grouping results by a shared field. Use cases include aggregations such as counting items per category, aggregating metrics, or grouping entries by status.
Enable on any collection by setting the admin.groupBy
property:
Why it matters:
Many of you have been asking for this feature and we're happy to deliver. Payload’s Jobs Queue now supports scheduling jobs using cron-style `schedule` attributes, plus delayed execution (`waitUntil`). This enables recurring or time-triggered tasks directly within Payload.
API Example:
You can now:
payload.jobs.queue
Real-world scenarios: