CRM Core
CRM Core is a comprehensive contact relationship management system for Drupal providing contact management (individuals and organizations), activity tracking, duplicate detection, and user account synchronization.
crm_core
Overview
CRM Core is a powerful and flexible CRM (Customer Relationship Management) system built natively for Drupal. It provides a complete framework for managing contacts, tracking activities, and maintaining relationships within your Drupal website.
The module supports two primary contact types: Individuals (people) and Organizations (companies, groups). Each contact type can have multiple subtypes (bundles) with custom fields. Contacts support revisions, ownership tracking, and publishing status.
CRM Core includes an activity tracking system that allows you to record interactions with contacts such as calls, meetings, emails, and notes. Activities can be linked to multiple participants and support custom activity types through a plugin system.
The module also provides a sophisticated duplicate detection framework with configurable matching engines. The default matching engine uses field-by-field comparison with weighted scores to identify potential duplicate contacts.
User synchronization functionality allows you to link Drupal user accounts with CRM contact records, enabling automatic contact creation when users register and displaying contact information on user profiles.
Features
- Contact Management: Create and manage Individual and Organization contacts with customizable types, revisions, and custom fields
- Activity Tracking: Record and track activities (calls, meetings, emails, notes) linked to one or more contacts
- Duplicate Detection: Identify potential duplicate contacts using configurable matching engines with field-by-field comparison and weighted scoring
- User Synchronization: Link Drupal user accounts to CRM contacts with automatic contact creation and profile display options
- Contact Merging: Merge multiple contacts of the same type, preserving selected field values and migrating related activities
- Primary Fields: Designate primary email, phone, and address fields for each contact type
- Revision Support: Track changes to contacts over time with full revision history
- Views Integration: Pre-configured Views for managing individuals, organizations, and activities
- Extensible Plugin Architecture: Add custom activity types and matching engines through Drupal's plugin system
- Granular Permissions: Per-bundle (type) permissions for create, view, edit, and delete operations
Use Cases
Customer Database Management
Use CRM Core to maintain a database of customers. Create an 'Individual' type called 'Customer' with custom fields for customer information. Track customer interactions using Activities. Use matching engines to prevent duplicate customer records.
Organization Contact Directory
Build a directory of partner organizations, vendors, or clients. Create Organization types for different categories. Add contact individuals associated with each organization using reference fields.
User Profile Extension
Enable CRM Core User Sync to automatically create contact records for registered users. Users can then edit their extended contact information through their profile. Useful for membership sites or customer portals.
Activity Logging for Support
Track support interactions with customers using Activities. Create activity types for 'Support Call', 'Email', 'Meeting'. Link activities to customer contacts to maintain a complete interaction history.
Lead Deduplication
Import leads from multiple sources and use CRM Core Match to identify duplicates. Configure matching rules based on email, name, and phone fields. Use the merge action to consolidate duplicate records while preserving important data.
Membership Management
Manage member contacts with custom individual types (e.g., 'Member', 'Prospect'). Use user sync to link member accounts with contact records. Track membership activities and communications.
Tips
- Use the 'primary_fields' setting on contact types to designate which email, phone, and address fields should be treated as the primary contact method.
- When merging contacts, carefully select which field values to keep - the merge action allows choosing values from any of the contacts being merged.
- Configure matching engine thresholds carefully - too low may create false positives, too high may miss actual duplicates.
- For large sites, consider disabling 'Load contact related to the current user' in User Sync settings if contacts have many fields to avoid performance issues.
- Create different Individual types for different purposes (Customer, Employee, Vendor) to keep permissions and workflows separate.
- Use Views Bulk Operations with the merge contacts action to efficiently clean up duplicate records.
- Activity types can have custom plugins for specialized behavior - extend ActivityTypePluginBase to create custom implementations.
Technical Details
Admin Pages 13
/admin/structure/crm-core
Main administrative hub for CRM Core structure configuration. Provides access to contact type management, activity type configuration, and related settings.
/admin/config/crm-core
Configuration overview page for all CRM Core settings including global settings, matching engines, and user synchronization.
/admin/config/crm-core/settings
Configure global CRM Core settings including the optional custom theme for CRM pages.
/admin/structure/crm-core/individual-types
Manage individual (person) contact types. Create, edit, and delete bundles for categorizing individual contacts (e.g., Customer, Employee, Vendor).
/admin/structure/crm-core/organization-types
Manage organization contact types. Create, edit, and delete bundles for categorizing organization contacts (e.g., Company, Supplier, Partner).
/admin/structure/crm-core/activity-types
Manage activity types for recording interactions with contacts. Each type can have custom fields and a specific activity type plugin.
/admin/config/crm-core/match
Configure matching engines for duplicate contact detection. Create matchers with field-by-field rules and weighted scores to identify potential duplicates.
/admin/config/crm-core/match/add
Create a new matcher for duplicate detection with configurable threshold, return order, and field matching rules.
/admin/config/crm-core/user-sync
Configure how Drupal user accounts are synchronized with CRM contact records. Set up rules for automatic contact creation and display options.
/crm-core
Main CRM Core interface showing overview and quick access to contacts and activities.
/crm-core/individual
List and manage all individual contacts. Uses a Views-based interface with bulk operations including merge contacts.
/crm-core/organization
List and manage all organization contacts. Uses a Views-based interface with bulk operations.
/crm-core/activity
List and manage all activities. View interactions recorded across all contacts.
Permissions 25
Hooks 3
hook_crm_core_individual_delete
Responds when an individual contact is deleted.
hook_theme
Defines theme hooks for CRM Core entities.
hook_entity_predelete
Responds before entity deletion to handle related data.
Security Notes 4
- Most administrative permissions have 'restrict access' flag requiring careful assignment.
- Per-bundle permissions allow granular access control - users can be restricted to specific contact types.
- The 'edit own contact information' permission should be granted carefully as it allows users to modify their linked contact record.
- Matching engine configuration should be restricted to prevent unauthorized access to duplicate detection rules.