888a50c3be
#16383 ## Scope & Context **Context**: Added a **Bulk Update** feature to allow users to modify multiple records simultaneously. This addresses the need for efficient data management when dealing with large datasets. **Scope**: Enabling a "Bulk Update" flow that can be triggered for a filtered list of records (e.g., current view). The feature guides the user through selecting fields to modify, inputting new values, and executing the update with real-time progress feedback. ## Current behavior Currently, users must open and update records one by one. To change the "Status" of 10 different opportunities, the user has to navigate to each record detail page or use the inline cell editor 10 separate times. This is repetitive and time-consuming. ## Expected behavior Users can trigger "Update Records" from the command menu or action bar. 1. **Choose Fields**: A step where users select which properties they want to modify (e.g., check "Status" and "Assignee"). 2. **Input Values**: Users provide the new values for the selected fields. 3. **Execution**: Upon confirmation, the system updates all matching records in the background. 4. **Feedback**: A progress indicator shows the number of processed records, and a toast notification confirms completion. *Key interactions:* - Users can clear a field's value (set to null) by selecting the field but leaving the input empty. - The operation supports cancelling midway. https://github.com/user-attachments/assets/c87366a3-246e-4615-9941-0bf63d70df86 ## Technical inputs **Core Functionality**: - **Incremental Batch Processing**: Updates are performed in small batches (using `useIncrementalUpdateManyRecords` to handle large datasets without timing out or freezing the UI. - **Global Feedback**: Integrated with the Snackbar system to notify users of success or errors across the application. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Introduces localization keys and generated messages to support the new bulk update workflow. > > - New strings for command menu selection info: `{totalCount} selected` > - Footer actions for bulk update: `Apply`, `Cancel` in `UpdateMultipleRecordsFooter` > - Toasts in `UpdateMultipleRecordsContainer`: `Successfully updated {count} records`, `Failed to update records. Please try again.` > - Action labels: `Update`, `Update records` in `DefaultRecordActionsConfig` and command menu hook > - Adds/updates entries across multiple locale `.po` files and regenerates `af-ZA` messages > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit b1dce4c599b85fa2947ca63b265fc750e80d9bb6. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Samuel Arbibe <samuelarbibe@Samuels-MacBook-Pro.local> Co-authored-by: Félix Malfait <felix@twenty.com>