CiviCRM Entity is a Drupal module which exposes many CiviCRM API entities as true Drupal entity types. That means that almost any module that can use Drupal entities can also access and manipulate CiviCRM data, Drupal style.

Acts as a specific case of "remote entity types"

Unlike Red Hen, provides deep integration with an Open Source CRM wtih a large and vibrant community

Compatible with CiviCRM versions 4.3-4.7, but works best with 4.6 and above.

This module integrates nearly 40 CiviCRM entities as Drupal entities by wrapping CiviCRM API calls in extended Drupal Entity controllers.

  • Contacts
  • Addresses
  • Emails
  • Phones
  • Events
  • Participants
  • Contribution Pages
  • Contributions
  • Line Items
  • Financial Transactions
  • Price Sets, Price Fields, Price Field Values
  • Activities
  • Many more...

This means:

  • Developers can use the core and contrib Entity API for working with CiviCRM data
  • Rules integration
  • Display Suite, and Display Suite Forms Integration
  • Views integration
  • Works with Entity References
  • Works with Search API and Facet API.
  • Places nicely with Services module
  • Works with Entityqueue.
  • Works with Entity Views Attachments
  • Works with OpenLayers
  • Native Drupal View Pages (e.g. /civicrm-contact/1)
  • Native Drupal Edit Forms (e.g. /civicrm-contact/1/edit)
  • Add Drupal fields to CiviCRM Entities
  • Extendable by custom modules or CiviCRM extensions to add or alter entities
  • Can integrate with Commerce with just a little elbow grease

Documentation

See the CiviCRM Entity handbook page on Drupal.org for documentation. Feel free to make improvements, or suggest in #2122645 - Improve documentation. This documentation is so old, its almost pointless. We'll be upgrading this. Until then try looking at blog articles and presentations to glean useful information

The document is old kinda, still useful as an intro but....Just ping me on the CiviCRM Mattermost chat, CiviCRM Entity channel and I'll help you out. Ping @jackrabbithanna . Its free, its cool, and all the Drupal dev expatriates to the CiviCRM world hang out there. If you're thinking, "wow there's a lot of modules here, how does it all work?" Just get on and ask me!

Blog Articles

Presentations

Google Slides, Intro to features , focus on CiviCRM Events.

My CiviCon 2015 Presentation, CiviCRM Drupal Integration
CiviCRM entity is covered in the second half of the slides.

My CiviCon 2016 presentation, Superior Drupal Integration

Developer Information

Developers can alter the information used by CiviCRM Entity to integrate the different CiviCRM entity types.

see civicrm_entity.api.php for details for implementing or read about it here.
hook_civicrm_entity_supported_entity_info()
Despite its name it acts like a standard drupal alter hook
The new hook allows developers to:

  • Add entities that aren't exposed by default
  • Alter settings for entities that are exposed such as theme template
  • Permissions necessary to view/add/create entities
  • Set or add display suite formatters for entity properties
  • Change the property that is used for the entity label
  • create your own access callback for customizing view/add/create access

Additional Features

  • Event Registration form via CiviCRM Entity Price Set Field
  • Register Multiple Participants
  • Uses CiviCRM Profiles
  • Uses CiviCRM Event data, business logic
  • Proper CiviCRM accounting records
  • CiviCRM API based
  • Credit Card Transactions (iATS and Authorize.net tested, any payment process that works with CiviCRM Contribution transact API should work)
  • Configurable discounts

CiviCRM Entity Submodules

CiviCRM Entity Actions

Provide integration with Views Bulk Operations to support CiviCRM entities

CiviCRM Entity Inline

Allows use of Inline Entity Form for CiviCRM entities with either entityreference fields or CiviCRM Entity Reference fields

CiviCRM Entity Reference Field

A reference field type that allows you to reference CiviCRM entities from other CIviCRM entities directly, without a Drupal field table structure....For example, you can add a reference field to Addresses from the Contact entity, and add/edit/view all addresses for a contact. Designed to work with Inline Entity Form A specific example of a remote reference field.

CiviCRM Entity Price Set Field

Provides a simple event registration form generally following CiviCRM event registration business logic. Supports registration of multiple participants for free or paid events with an AJAX multi-step form with confirmation and thank you panes. On edit the field widget edits the price sets for the event. Only has a simple widget for editing price field values for the first price field in the set at this time.

CiviCRM Entity Profile

Provides integration of CiviCRM profiles in the Price Set Field Event Registration form. Leverages the CiviCRM Profile API. Also adds a profile selector widget for the Event edit forms.

CiviCRM Entity Discount

Provides a field type which provides configurable discount settings for price fields on the event registration form. Can configure multiple discounts for the price set, granular to each price field and user role.

CiviCRM Entity Views Extras

Provides additional Views relationships for Price Sets, Price Fields, Price Field Values, and MembershipPayments....with more to come in the future.

CiviCRM Contact Group Assign Field

Provides a field type for adding/removing contacts from a group. Site builder can configure which groups are managed by the field. Includes a Checkboxes widget, and a Radios widget. Field type only adds to the Contact entity and makes an easy to use, configurable interface for managing inclusion in sets of groups from the Drupal CiviCRM Contact edit/add pages.

CiviCRM Entity Search API

Provides additional support for integration with Search API

CiviCRM Case Activity Reference Field

A "remote" reference field which allows using Inline Entity Form to create/edit/delete CiviCase Activities from the Drupal based CiviCase edit form.

Contribution

Please use the Drupal.org issue queue for bug reports and contributions.

We encourage you fork the GitHub repo, because that is where the actual active development is being coordinated. After committing to your fork, create a merge request to receive commit credit.

Join the discussion in the Future Development issue

Join the discussion on CiviCRM's Mattermost site, civicrm entity channel:

Hire Skvare to add the specific feature you want, now. We’ll put it back into the general release and continue building more functionality. Clients have already committed funds to further extend this project. Those who fund development guide the priorities, milestones, and timelines.

Talk to Mark Hanna, CiviCRM Entity maintainer and new development lead. CiviCRM LTS maintainter. @jackrabbithanna on Twitter and chat.civicrm.org

Drupal 8 version development has started! 2018 will be the year for it.

Supporting organizations: 
Development Lead, 7.x-2.x version development, D8 testing and development
D8 version development
Development & support

Project information

Downloads