Closes https://github.com/twentyhq/twenty/issues/15692, fixes https://github.com/twentyhq/twenty/issues/14678 The issue was: - When a user is signing up, they are asked for their first name and last name with which we fulfill their workspaceMember entity for the workspace they are signing up to (which is the one they are creating if they are not joining an existing workspace). user.firstName and user.lastName remain empty - When we create a record, we are using user.firstName and user.lastName to fulfill the text field "createdByName", which intends to save the name of the creator at the moment of the creation. This field is then use 1) when filtering on createdBy (as a trick to be able to filter by this, since we don't have filters on nested fields, ie we dont have filters on person.createdByWorkspaceMember) 2) to display the user creator when a user has left a workspace - otherwise we rely on the dynamic createdByWorkspaceMember.firstName and lastName - So filtering on createdBy was not working as createdByName is empty. We did not see that in dev mode because we have seeded users with names The fix - When we create a record, we use workspaceMember.firstName and workspaceMember.lastName as we should. - When an existing user joins a workspace, they are asked to give their name again so that we set their workspaceMember name - This will not fix the history of the records (they will still have createdByName empty so the filter will not work properly), but a command to fix it would be very long as it would iterate over all the records of each active workspace The long-term view is to get rid of user and to store the name in userWorkspace
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!




