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

jdleonard created an issue. See original summary.

jdleonard’s picture

Assigned: Unassigned » jdleonard
Issue summary: View changes

I'll take a stab at a first draft.

jdleonard’s picture

Assigned: jdleonard » Unassigned
Issue summary: View changes
Status: Active » Needs review

Updated issue summary with a start.

jdleonard’s picture

Issue summary: View changes

Added detail about CRM Core

mradcliffe’s picture

We 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.

Create a short description (200 characters or less) that will be easily understood by the Project Browser target audience of site builders and those new to Drupal. The short description should answer the question - "what does this module do in a non-technical way".

MAINTAINERS: the short description should be added to the Summary field of the Description on the project page. The short description will be displayed on the cards in the Project Browser grid and list views.

jdleonard’s picture

@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?

jdleonard’s picture

Component: Code » Documentation
jdleonard’s picture

Issue summary: View changes
bluegeek9’s picture

Status: Needs review » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.