Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

CRM Membership provides a flexible framework for managing memberships
in Drupal. It allows for the creation and management of different types of
memberships with configurable terms, durations, and renewal logic.

The module is part of the Drupal CRM ecosystem, providing a foundation for building complex membership management systems with custom business logic.

Key Features

Contact-based Memberships

Memberships are tied to CRM Contact entities.

Flexible Term Management

Different term calculation strategies via plugins.

Lifecycle Events

Activation, renewal, expiration, and cancellation workflows.

Extensible Architecture

Designed for customization through plugins and event subscribers.

Architecture

This module is built on a flexible, plugin-based architecture centered around membership lifecycle management. See the developer docs link in the sidebar for details.

The key components include:

Entities

Membership Entity

The primary content entity representing a membership record, linking Contact entities to a target Contact entity where they are considered a member of.

Membership Type

Configurable bundles that define different membership categories and their behaviors.

Membership Period Entity

Tracks individual time periods within a membership's lifecycle, including start/end dates and specific Contact entities that are considered members during that period.

Membership Term Plugin System

Extensible plugins define term calculation logic. Custom plugins can be implemented for project-specific membership term calculation logic and the module provides three built-in plugins:

FixedDuration

Memberships with fixed start/end dates (e.g. membership for a full calendar year).

RollingDuration

Memberships that renew on a rolling basis (e.g., 1 year from activation).

Lifetime

Permanent memberships without expiration

Services and Integration

MembershipService

Service providing membership-related functionality including membership status checks.

Event System

Dispatches events for integration with other modules.

Queue Worker

Handles membership expiration processing on cron.

CRM Membership Ecosystem

Have another project that integrates with or uses CRM Membership? Open an issue for it to be added here!

See other projects in the Drupal CRM ecosystem.

How to Contribute

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!

Develop CRM Membership using DDEV ⚙

If you haven't already, install DDEV.

git clone [email protected]:project/crm_membership.git
cd crm_membership
ddev config --project-type=drupal --docroot=web --php-version=8.4 --corepack-enable --project-name=crm-membership
ddev add-on get ddev/ddev-drupal-contrib
ddev add-on get ddev/ddev-selenium-standalone-chrome
ddev start
ddev poser
ddev symlink-project
ddev drush site:install -y
ddev drush pm:install crm_membership -y
ddev drush config:export -y
ddev drush user:login

Activity

Total releases
1
First release
Aug 2025
Latest release
8 months ago
Release cadence
Stability
0% stable

Releases

Version Type Release date
1.0.x-dev Dev Aug 8, 2025