This PR adds what's needed to filter on the ADDRESS sub-fields, notably the country sub-field, that requires a country multi select component, which was created in this PR (ObjectFilterDropdownCountrySelect) This PR refactors the common logic between advanced filter dropdown field selection logic and view bar filter dropdown field selection logic, notably in useFilterDropdownSelectableFieldMetadataItems. There are now new components to identify clearly what's tied to view bar or advanced filter, it could be further simplified or factorized, but as it is right now, it's simple enough to be maintained easily even if a little bit too verbose, which is often the best trade-off we should aim for. Improvements : - Added the CompositeFieldSubFieldName where needed - Fixes bug in advanced filter dropdown input - Fixes dropdown content width bug in advanced filter dropdown input - Fixes a bug when inputing a Currency filter without a sub-field in view bar filter dropdown - Used DropdownMenuSearchInput instead of a custom StyledInput which was doing exactly the same thing - Factorized the state setting logic in useSetAdvancedFilterDropdownStates in an anonymous function setAdvancedFilterDropdownStates - Created useSelectFilterFromViewBarFilterDropdown hook to have a more meaningful and clear logic to abstract what happens when we select a field to filter in the view bard field select dropdown - Fixes a bug with advanced filter operand dropdown select which wasn't modifying the current record filter and creating a stale state. Fixes https://github.com/twentyhq/core-team-issues/issues/612
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
We're currently developing Twenty's beta version.
Please feel free to flag any specific needs you have by creating an issue.
Below are a few features we have implemented to date:
- Add, filter, sort, edit, and track customers
- Create one or several opportunities for each company
- See rich notes tasks displayed in a timeline
- Create tasks on records
- Navigate quickly through the app using keyboard shortcuts and search
Add, filter, sort, edit, and track customers:
Create one or several opportunities for each company:
Track deals effortlessly with the email integration:
Tailor your data model to meet business needs:
See rich notes displayed in a timeline:
Create tasks on records
Navigate quickly through the app using keyboard shortcuts and search:
Connect your CRM to all your tools through our APIs and Webhooks.
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!







