Drupal for Small(er) Associations
No Content Management System, Drupal included, is well positioned to provide the “back end” that an association needs to manage its members, events, and stakeholders. But there is a Customer Relationship Management application, designed for non-profit associations, that works with Drupal. CiviCRM is an open source back end association management application that has been designed to integrate into the Drupal platform.
The “CRM” in CiviCRM stands for Constituent Relationship Management (rather than Customer Relationship Management). CiviCRM provides an association with the same kind of capabilities that a commercial CRM system would provide a sales organization. Working together, Drupal and CiviCRM can be a winning combination. Some care is required, however, because the combination can be very powerful. It can powerfully do good things, or bad things, for an association.
There are literally thousands of open source modules that could be installed in Drupal, all available at no cost. Many associations would be best served by sharply limiting the installed modules. Several problems can arise when dozens, or hundreds, of modules are installed. There can be serious conflicts between different modules, especially if they provide different ways to accomplish the same thing. Having CiviCRM installed amplifies the potential problems because it provides such a rich array of association management features.
A reasonable approach is to view Drupal as providing a way for the association to publish “news” of interest to its members. It should be the channel through which the association makes new information available to its members. CiviCRM would then be seem as responsible for the entire back end “business” of the association. It knows how to handle membership. It can collect regular membership dues, and remind tardy members that they have outstanding dues. CiviCRM knows how to handle events. It knows how to handle email blasts to members, and to other stakeholders. It also knows how to handle contributions, volunteers, and regular reports.
My minimum set of modules to install in Drupal (version 6):
- civiCRM - this is available as a module that can be installed in Drupal. It’s actually considerably larger than Drupal itself. This is where the “business” of the association gets conducted.
- FCKeditor - there are several ways to provide WYSIWYG editing in Drupal. The FCKeditor module provides the best out-of-the-box experience, at least for me, at this time.
- admin_menu - each Drupal module is free to approach required configuration and management in its own way. This module provide a consistent user interface for the administrative side of Drupal.
- backup_migrate - every website should be regularly backed up. This module provides a simple way to the site administrator to build a backup either on the server or on the desktop. The backups can also be used in migration.
- image - a website without images is no longer acceptable. Drupal needs image in order to provide basic image handling.
- cck - one of the key features of Drupal is the ability to define new types of content, e.g. news releases, event announcements, project reports, etc. CCK (or Content Construction Kit) provides an easy way to define new kinds of content for a site.
- views - Drupal keeps all of its information in a content database. Views provides a way to selectively extract that information and present it in an ordered and structured way. It’s easy to provide a view of news items or event announcements that lists the news or event teasers in LIFO order, with pointers to the full news release or event announcement.
That’s it for my basic set of Drupal modules. Yes, it’s easy to add dozens and dozens of useful modules to Drupal. But then they have to be configured, managed, and updated on a regular basis. The KISS principle (Keep it Simple, Stupid!) should be applied ruthlessly to Drupal. It’s just too easy to add features, but then forget why or how they were added. The site will need to be managed. Someone will have to do the managing. KISS will be really important to that person’s success.
Now may be a good point to mention a reality of using a web exposed, popular open source application. There are hackers out there just waiting for the next vulnerability to be discovered. In the case of core Drupal, expect security fixes to be published frequently. The Drupal site administrator cannot afford to ignore these. Failure to update will expose your site to hacking. The level of exposure varies, but few association websites want to advertise a miracle penis enlargement device on their front page. And that’s what could easily happen to a site that doesn’t keep up with security fixes.
Are there any other useful Drupal modules that an association might consider? Yes, I can think of three:
- webform - to get information back from a site’s visitors, the site needs to provide a form that can be used to send the information. WebForm is an easy way to build a form that visitors can use to send back information.
- job_posting - many associations want to provide a way to advertise appropriate job openings, and allow visitors to respond to those postings. This module is a light weight way to add that capability to a Drupal website.
- filebrowser - it’s possible to open a directory on the web server to selected users. This directory can be where the site administrator places useful files. The filebrowser module provides a controlled way to expose the contents of a directory to selected visitors.
To my modest list of 7 + 3 modules to consider, I might add a couple of inessential “frills”. The printer module provides an easy way to provide a printer-ready version of selected website pages. If your site has content that visitors might want to see on paper, this can be handy. It also supports a simple way to send an email copy of a page to a friend. This module provides the hooks to allow a pdf version of selected pages to be published and made available to visitors. Not recommended because the available pdf generation plug-ins are not all that reliable.
My last “frill” is site_map. It will generate a site map for the website. Some site visitors will use search to find information, others will use site map. This module provides an easy and automatic way to generate a current site map.
The resulting website will not be plug-and-play. Drupal needs to be configured, as do all of the installed modules. The site administrator needs to decide who will be allowed to do what on the site. Drupal out-of-the-box comes with two Roles - anonymous user and authenticated user. Associations will often want to add Member, Executive, and Editor Roles. The KISS principle should again be ruthlessly applied. A typical Drupal site will have dozens or hundreds of rights that could be assigned to a role. With ten or twenty defined roles, the site administrator is confronted with a table to roles and rights that will not fit on a screen. It can get very difficult to keep track of who (which role) should have what rights.
Drupal provides a number of options for how a site visitor can “register” with the site. My experience suggests that those wanting to register should be required to send an email message to the site administrator explaining why they want to register. Drupal makes automated schemes available, but they will be exploited by those wishing to take advantage of the site for their own purposes, typically to advertise a “spam” product. It seems simpler to just require a personal email message to the site administrator.
The CiviCRM part of Drupal + CiviCRM is almost a world unto itself. It’s where all of the association back-end work gets done. There are many configuration options. For anyone familiar with how non-profit associations operate, CiviCRM does provide reasonable configuration alternatives. For example, it supports a wide range of online payment mechanism, everything from simple PayPal to the Banker’s Moneris facility. It’s not going to be an instant configuration process, nor will the required administrative procedures invent themselves.
CiviCRM comes with the features required for an association to handle Contacts, Contributions, Events, Mailings, Memberships, and Reports. It’s important to note that CiviCRM doesn’t handle certification and/or licensing very well. The management processes supporting certification can get complex. A member applies for certification and must submit certain evidence and pass certain tests and get over a number of hurdles. On a regular basis, the certificant will need to re-certify which will require more evidence and/or impose additional hurdles. Keeping track of all of the necessary steps can be done online, but CiviCRM has not be designed to handle that family of tasks.
It is technically possible to add complex workflows to the Drupal + CiviCRM combination, but it’s often a poor management decision. Every automated workflow needs to be tested, documented, and maintained. And the people need to be trained. Making it all happen requires a level of commitment and consistency that is often difficult to find in a volunteer non-profit association. It would often make more sense to start with a paper process. After the bugs have been worked out of the paper process, and it has embedded itself in the association, then it makes sense to consider automating the process. The KISS principle again!
Success with the Drupal + CiviCRM combination is possible, and practical, for a wide range of non-profit associations. Start modestly. Before adding any feature, ask if it is really necessary for the association. Once the foundation is in place and operating smoothly, then, and only then, is it appropriate to add new bells and whistle, ... and there are dozens of new bells and whistles to consider once you reach that point.
Postscript: One of the challenges is that every association wants its own, distinctive "look". In Drupal terms, associations want a theme that will distinguish their site from that of all similar associations. Creating the right theme for an association can require a significant effort. The friendly folks at Artisteer offer a software product that provides an easy way to generate new Drupal themes (as well as theme for other popular CMS). The resulting themes may not be perfect, but the time savings are very real. I'm using an Artisteer generated themes for this site.
Drupal for Small(er) Associations
Submitted by len.inkster on Mon, 2009/11/09 - 1:35pm.Whilst I think your limited list is quite good as a starting picklist, I would opt to add a couple more that don't complicate anything, but tighten up tremendously on the security of the site, and the ability to manage people who are to be allowed access to the site to post.
First and foremeost, you need to be able to give the users who are accessing you site the confidence that their information, no matter how trivial it migth seem is going to be kept as secure as possible. So introducing modules such as Captcha and Re-Captcha are wise investments.
Then you want to ensure that people who register for your site are aware of the rules you lay down for allowing them to access the functions that only registration offers. for this I would add the terms_of_use module.
I would classify none of the three mentioned above as frills, as security is so often overlooked in open-source systems.
Certification management is not a process I call a cookie-cutter service to put in a template.
This functionalitly can be handled by a Drupal module such as Gradebook, but in the end, much like the CRM capabilities of CiviCRM, learning mamangement is best handled by a dedciated LMS system such as Moodle.
This keeps the complexities in Drupal to a minimum, and deliver best-of-breed functionality through a cohesive front-end.
The back-end sign-on can be handled easily by Open-ID using Drupasl as the provider (open-id provider module) or some other third party openID provider. I prefer using an LDAP authenticator myself as it keeps the control of AuthN and AuthZ in the site and not rely on third party providers whose security hasn't been checked by the site operator.
Yes but ...
Submitted by Robert_Fabian on Mon, 2009/11/09 - 3:19pm.Len
My recent experience is that even with Captcha installed and operating, I still get a handful of real people registering every week with the clear intent of advertising whatever they happen to be selling. My response is to shut down the automatic registration, asking interested visitors to send me an email request to register. It works for the modest sites I manage. A higher volume site would require a different approach, and Captcha would be one of the useful filters.
About terms of use: It does make sense to make that as clear as possible. I'm not sure a module is required. The email confirmation message can include terms of use, as can the site information page. Not clear to me why I need a module to cover terms of use.
Bob
Drupal for Small(er) Associations
Submitted by JIM FINCH on Mon, 2009/11/09 - 1:02pm.Bob,
Recognizing that CiviCRM may work OK with Drupal in certain circumstances, what is the solution re. integration to Drupal when it has been decided to use a more conventional database system for "back office" processing?
Are we reduced to some form of batch updating?
Jim
It depends ...
Submitted by Robert_Fabian on Mon, 2009/11/09 - 3:28pm.Jim
It all depends on the degree to which the people (entities) known to the back end are also to be known to the front end, and vica versa. I could imagine an association website that ran a largely independent e-commerce store, where there was no necessary sharing of information between the front end (Drupal) and the back end (e-commerce store). If that's not the case, Ubercart would provide smooth integration, it being the recommended e-commerce module for Drupal.
I would be reluctant to do a batch processing sharing of entity information. There would be a potentially serious problem of the same entity being recognized by both the front end and the back end. Which attributes are to be seen as correct, assuming the entity provides slightly different values for those attributes, e.g. is my address 610 - 25 Maitland Street, or 25 Maitland St., Suite 610? Better to avoid such problems if possible.
Bob