fromMarch 2013
Article:

RedHen: A Drupal CRM System

Your Lightweight Native Platform
0

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.

Maiden Flight

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, need a lightweight and native Drupal CRM platform, be sure to consider RedHen in your evaluations.

Advertisement

From our blog

Entity Storage, the Drupal 8 Way

In Drupal 7 the Field API introduced the concept of swappable field storage.

The Drupal 6 to 8 Upgrade Challenge - Part 2

Having concluded the readiness assessment, we turn next to migrating the content and configuration. In reality, there’s little chance that we would migrate anything but the blogs from our old site. For the sake of giving Migrate in Core a workout with real conditions, however, we’re going to upgrade with core’s Migrate Drupal module rather than rebuilding.

The Drupal 6 to 8 Upgrade Challenge - Part 1

Nathaniel Catchpole , the Drupal 8 release maintainer and Tag1 Senior Performance Engineer, suggested that Drupal shops everywhere could support the

DrupalCon Austin

The entertainment industry is not for the faint of heart.

Drupal Watchdog Joins the Linux New Media Family
Drupal Watchdog 6.01 is the first issue published by Linux New Media.

Drupal Watchdog 6.01 is the first issue published by Linux New Media. Come see the Drupal Watchdog team at DrupalCon 2016!

Drupal Watchdog was founded in 2011 by Tag1 Consulting as a resource for the Drupal community to share news and information. Now in its sixth year, Drupal Watchdog is ready to expand to meet the needs of this growing community.

Drupal Watchdog will now be published by Linux New Media, aptly described as the Pulse of Open Source.

Welcome to DrupalCon Barcelona - The Director's Cut

For all you schedule-challenged CEOs – and ADHD coders – this Abbreviated Official Director’s Cut is just what the doctor ordered.

Welcome to DrupalCon - The Barcelona Edition

Did we have fun in Barcelona?
OMG, yes!

Did we eat all the tapas on the menu and wash them down with pitchers of sangria?
Yes indeed!

Recursive Closures and How to Get Rid of Them

This came up while manipulating taxonomy children and their children recursively, so it’s as not far from Drupal as you’d think.