Problem/Motivation
As someone new to CRM, it is unclear what exactly this project does / intends to do, how to get involved, etc.
Proposed resolution
- Improve the project's description (draft below)
- Rename project from "Contact Relationship Management" to "CRM - Contact Relationship Management" to aid discoverability
- Edit project node's "Ecosystem" field to reference the project node to facilitate discoverability of other projects extending CRM (e.g. Member Platform, Open Knowledge) and to highlight the intent of facilitating an ecosystem
Proposed project description
The Drupal CRM project is the preferred foundation for CRM implementations in modern Drupal.
Community-Oriented
Whereas some other efforts to build a Drupal-native CRM have been primarily developed by one agency, CRM is taking a community-first approach. By bringing many contributors into the fold early on, the project stands the best chance of catering to diverse needs, avoiding architectural pitfalls, not being controlled by a commercial enterprise, and thriving long-term.
Architecture
Entity Types
CRM provides three content entity types: CRM Contact, CRM Relationship, and CRM User
CRM Contact
At the core of CRM is a CRM Contact.
CRM provides three CRM Contact sub-types (bundles) by default:
- Individual
- Household
- Organization
CRM Relationship
A CRM Relationship entity maps one CRM Contact to another CRM Contact with a configurable CRM Relationship Type. Examples of some of the default types:
- Head of household
- Spouse
- Employee
CRM User
A CRM User entity maps a CRM Contact to a core User. This mapping is not required (a CRM Contact is not required to have a corresponding User and vice versa).
Field Types
CRM provides some field types, which are still under construction. Notably there is a concept of different types of addresses, phone numbers, and emails (e.g. Home, Work, Other) and which is the Primary.
CRM Address
An address of a given type for a CRM Contact.
CRM Email
An email address of a given type for a CRM Contact.
CRM Telephone
A phone number of a given type for a CRM Contact.
CRM Website
A website or social media URL of a given type for a CRM Contact.
Dependencies
Adopting Projects
The following projects are adopting and actively contributing to CRM:
Have a project to add to this list? Please create an issue!
How to Contribute
The CRM project is seeking contributors with diverse sets of skills to help create the best Drupal-native CRM.
Drupal Slack
If you haven't already, join Drupal Slack then find us in the #crm channel where we collaborate on CRM issues.
Issue Queue
The best way to dive in is to find an issue in the issue queue that you can help with and get to it. Be bold and take action!
Similar Projects
We are aware of three other native Drupal CRM projects that have had some activity since Drupal 7. Commentary about their status is as of May 1, 2025.
CRM Core
CRM Core is not actively developed and has not had a non-dev release since Drupal 7 though the dev branch supports Drupal 9-11. CRM Core provides distinct entity types for Individuals and Organizations.
RedHen
RedHen is not actively developed and has not had a stable release since Drupal 9 (its only stable release since Drupal 7). The most recent release, 2.1.0-rc1, is from October 2023 and supports Drupal 8-10. As with CRM Core, RedHen provides distinct entity types for Individuals and Organizations.
Contacts
Contacts has some more recent activity and releases and supports Drupal 10-11. Contacts uses the core Drupal User entity to represent a contact, whether that contact is an individual or an organization. This provides advantages for compatibility with modules that rely on / interact with / enhance Users, but overloads the concept of a Drupal User in a way that CRM's maintainers are not comfortable with.
CiviCRM
CiviCRM is a very popular open source CRM that integrates with Drupal, but is not itself a Drupal-native CRM. The Drupal CRM project's information architecture is more closely aligned with CiviCRM's than that of CRM Core, RedHen, or Contacts. CRM plans to make it easy to migrate to or from CiviCRM.
Comments
Comment #2
jdleonardI'll take a stab at a first draft.
Comment #3
jdleonardUpdated issue summary with a start.
Comment #4
jdleonardAdded detail about CRM Core
Comment #5
mradcliffeWe should avoid using a header at the top of the description to help with Project Browser initiative (#3342545: [Meta] Create a short description for a contrib module). I would avoid using the Summary field because text_with_summary is proposed to be deprecated from core.
Architecture section may be better suited to a CONTRIBUTING.md or DEVELOPERS.md file or gitlab pages.
Comment #6
jdleonard@mradcliffe Thanks for reviewing.
I'm inclined to leave the architecture piece where it is for the time being as it might be the first question some evaluating the project will have. It's also a key differentiator.
I'm confused by "I would avoid using the Summary field" along with "the short description should be added to the Summary field of the Description on the project page", which seem to conflict.
If we use the summary field for the short description, can we safely use headers in the rest of the description?
Comment #7
jdleonardComment #8
jdleonardComment #9
bluegeek9 commented