RedHen: A Drupal CRM System
Your Lightweight Native Platform
By Michael Ross
This article was published in the print magazine Drupal Watchdog, Volume 3 Issue 1, 2013-04, on pages 34-37, by Tag1 Publishing. The magazine was distributed at Drupalcon Portland, 2013-05-20. The article was also published on their website.
Organizations of all types must keep track of their customers, clients, contributors, and other contacts — whether they be individuals or organizations themselves. When dedicated customer relationship management (CRM) solutions were introduced in the business world, they took the form of enterprise-level software. But this category is gradually being supplanted (or sometimes supplemented) by CRM-capable websites, including many built on Drupal.
For several years, the most popular CRM option for Drupal websites was — and continues to be — CiviCRM, which is an open-source and highly capable system. However, it is standalone and not designed for Drupal, but rather "bolted on". Its integration with Drupal is rather convoluted; it typically utilizes a separate database (assuming no table prefixing); and it often leads to duplication of data. CiviCRM has a different templating engine and API, making customization and troubleshooting problematic at best. Developers frequently complain that it is quite difficult to change forms and workflows, or even figure out where to begin such attempts. Its nonintuitive administrative interface can increase staff confusion and technical support costs. Compared to Drupal itself, CiviCRM is large and complex, and effectively results in more than a tripling of the number of files on disk and the number of lines of code.
An Answer Most Fowl
Consequently, a few alternatives to CiviCRM have emerged, including RedHen CRM, created by ThinkShout, a boutique open source web agency based in Portland, Oregon. RedHen is intended to help users in "managing detailed information on, and connections between, contacts and organizations, membership services, event registrations, and constituent engagement." Best of all for Drupal developers, RedHen is entirely native to Drupal, is designed for flexibility, and does not lock implementers into any fixed information architecture or presentation.
The high-level design of RedHen was largely inspired by Drupal Commerce, in the sense that it tries to best utilize the outstanding capabilities introduced in Drupal 7, such as custom entities. The project page makes clear that it depends heavily on custom Drupal entity types and bundles. Specifically, the Entity API module is needed for working with the custom entities and bundles; the connections between them is managed using the Relation module; and the activity logs rely upon the Message module.
RedHen's project page notes that the project is similar to Drupal Commerce in its modular structure. Specifically, the Activity module (redhen_activity) records all of the contact-specific and global activities; Contact (redhen_contact) supports contact entities and integration with regular Drupal users; Engagement (redhen_engagement) monitors the engagement levels of contacts; Fields (redhen_fields) supports the custom field types needed for RedHen entities; Membership (redhen_membership) supports individual and organizational memberships; Note (redhen_note) supports the creation and management of notes on contacts; Organization (redhen_org) handles organization entities; Organization Group (redhen_group) allows organizational contacts to be used as groups; Registration (redhen_registration) provides the integration with the Entity Registration module; and Relations (redhen_relation) connects contacts and organizations with one another.
RedHen CRM offers a number of capabilities that exemplify the advantages of using a Drupal-focused approach. For instance, memberships can be assigned Drupal roles, thereby allowing administrators to limit access to content and features based upon any membership role. For accessing CRM data, RedHen offers standard, themeable tabular listings with a dynamic filtering system, as well as a top-level activity stream and a landing page dashboard. Also, it can work in conjunction with Views, so you can build custom reports of contact, organization, membership, and engagement scoring data. RedHen also integrates with Rules, so the website can perform actions as a result of events within the system.
Naturally, the best way to learn more about RedHen and its capabilities, is to try it out. The current version (as of December, 2012) is a stable beta release, 7.x-1.0-beta3. Before you install it, note that it requires PHP version 5.3 or higher. Also, in order to make use of the Redhen Activity, Redhen Organization Groups, Redhen Registration, and Redhen Relation modules, you will also need to install and enable the (non-RedHen) Message, Entity reference, Chaos tool suite, Relation (and Relation UI), and Entity Registration modules. Afterward, the content access permissions will need to be rebuilt.
Once the RedHen modules have been enabled, you can go to Configuration > RedHen CRM Settings, to enable the connection between RedHen contacts and Drupal accounts, including the mirroring of e-mail addresses.
If you go to Structure > RedHen CRM, you will find four links for creating, modifying, and importing contact entity types, organization types, and engagement scores — as well as managing RedHen notes.
Yet most of the administration will be performed in the CRM Dashboard, accessible from the "RedHen" item on the main menu.
Here, you can add and manage contacts and organizations, and monitor the activity stream. The page also has links to the two aforesaid administration areas.
Spreading Your Wings
To really see what RedHen is capable of, you could install RedHen alone on a fresh copy of Drupal 7, and proceed from there. But you would have to devote the time and energy to fitting multiple pieces together, and then figuring out how to create the elementary components sufficient to demonstrate the most basic of CRM functionality.
Fortunately, it is much easier and more efficient to get started by leveraging the example RedHen distribution that ThinkShout has created for this very purpose. RedHen CRM Demo parallels Commerce Kickstart in that it is intended to get you up and running as quickly as possible, and to elucidate best practices in using the underlying module. RedHen CRM Demo, currently in alpha, is made available as a distribution built on Drupal 7.16.
Once the archive file has been unpacked, installation instructions can be found in profiles/redhen_demo/README.txt. On a Linux system, with Drush installed, you can run profiles/redhen_demo/scripts/build.sh. Alternatively, you can use the regular GUI installation process, and in one of two ways: To use the distribution as is, place it in a directory visible to your web server, go to the homepage of the new website, choose "RedHen CRM Demo" as the installation profile, and go from there. To use the most recent version of Drupal 7, install a fresh copy of it, place the redhen_demo directory in the profiles/ directory, and follow the same process. The latter option may be easier in the long run, because Drupal 7.15 is missing a security update that you will want to implement at some point.
In this demo RedHen distribution, all the needed modules are preinstalled and enabled. Also, it has example contacts (Staff and Volunteer), engagement scores (High-value and Standard-value), membership types (Premium and Standard), and organization types (Foundation and Shelter).
The default public and admin themes are unchanged, but you can easily switch to an attractive theme tailor-made for use with RedHen, appropriately named Poultry.
Initially, the only content type available is Event, and there are absolutely no permissions enabled. But even with example events — or instances of custom content types — created and published to the homepage, anonymous users are not able to see the homepage, but instead keep returning to the login screen, and the error message "Access denied. You must login to view this page." This is because, by default, the homepage is set to "[root path]/redhen" (Configuration > Site information > Default front page). To restore access to content published to the homepage, delete the "redhen" from the field. You can then create a test event to verify that published items will display on the homepage, and it is accessible.
If you or one of your clients needs a lightweight and native Drupal CRM platform, be sure to consider RedHen in your evaluations.
Copyright © 2012 Michael J. Ross. All rights reserved.