#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>
The #1 Open-Source CRM
🌐 Website · 📚 Documentation · Roadmap ·
Discord ·
Figma
Installation
See: 🚀 Self-hosting 🖥️ Local Setup
Does the world need another CRM?
We built Twenty for three reasons:
CRMs are too expensive, and users are trapped. Companies use locked-in customer data to hike prices. It shouldn't be that way.
A fresh start is required to build a better experience. We can learn from past mistakes and craft a cohesive experience inspired by new UX patterns from tools like Notion, Airtable or Linear.
We believe in Open-source and community. Hundreds of developers are already building Twenty together. Once we have plugin capabilities, a whole ecosystem will grow around it.
What You Can Do With Twenty
Please feel free to flag any specific needs you have by creating an issue.
Below are a few features we have implemented to date:
- Personalize layouts with filters, sort, group by, kanban and table views
- Customize your objects and fields
- Create and manage permissions with custom roles
- Automate workflow with triggers and actions
- Emails, calendar events, files, and more
Personalize layouts with filters, sort, group by, kanban and table views
Customize your objects and fields
Create and manage permissions with custom roles
Automate workflow with triggers and actions
Emails, calendar events, files, and more
Stack
- TypeScript
- Nx
- NestJS, with BullMQ, PostgreSQL, Redis
- React, with Recoil, Emotion and Lingui
Thanks
Thanks to these amazing services that we use and recommend for UI testing (Chromatic), code review (Greptile), catching bugs (Sentry) and translating (Crowdin).
Join the Community
- Star the repo
- Subscribe to releases (watch -> custom -> releases)
- Follow us on Twitter or LinkedIn
- Join our Discord
- Improve translations on Crowdin
- Contributions are, of course, most welcome!




