Install

Works with Drupal: ^11.4 || ^12

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 956.3 KB
MD5: e85106f611aa561151ec92bcebe332a2
SHA-1: 727e6887c8c5f7b07b24860131219aef3029bd20
SHA-256: e3fb4139fc2ca827387656b439b0d06c510a73673c0895b8d351ffb13213cf18
Download zip 1.47 MB
MD5: 899c136eab53d4b2be98dbf204c8cd9f
SHA-1: 9ed1227330821c10638ce8d0bcdb968a226dbac7
SHA-256: 7eff298217ad4661f2e792b1129cee4d5011ecbeccb8d49ff74a554270d7249c

Release notes

https://git.drupalcode.org/project/civicrm_entity/-/work_items/3628599
https://git.drupalcode.org/project/civicrm_entity/-/merge_requests/53

Contacts no longer carry the undeclared $contact->groups (group IDs) and $contact->tags (tag names) properties that API3 loads used to leave on them. They were never fields, and requesting them joined the group, smart group cache and tag tables on every contact load. Code that read them should use the GroupContact and EntityTag APIs, or the civvicrm_group_contact and civicrm_entity_tag entity types.
auto and api4_native modes already didn't set them.

Small Backwards Compatibility Change

Check your custom code and Twig templates. Loaded civicrm_contact entities no longer carry groups and tags values. These were never entity fields, so they did not appear in Manage display or Views, but custom code could read them as plain properties:

$contact->groups

(comma-separated group IDs, including smart groups) and

$contact->tags

(comma-separated tag names), or in Twig, for example {{ elements['#civicrm_contact'].groups }}. They are now empty. If you used them, fetch the same values from the CiviCRM API instead:

civicrm_api3('Contact', 'getsingle', ['id' => $contact->id(), 'return' => ['group', 'tag']])

returns them as groups and tags.

Created by: markusa
Created on: 14 Nov 2026 at 00:53 UTC
Last updated: 14 Nov 2026 at 00:55 UTC

Other releases