In search of a contacts database solution

This blog may be quite technical. I want to record my findings in relation to a particular need I had to meet for a client. The brief, in short, was this: Visitors to his site needed to be able to subscribe to an email newsletter from the site.

Sounds simple, eh?! Yes, and the solution would be too if it were not for some additional functional requirements from the client. If all the client wanted stored was the email address of the subscriber, the Simplenews module would meet the need beautifully. It allows placement of a block where a visitor can input their email address and press a button to subscribe to the newsletter. However, the client also required the gathering of two mandatory pieces of data (first and last names), and some optional data (address and phone number). Simplenews does not cater for this, and I could find no extensions to enable this. Furthermore, some legacy data had to be imported into whatever system I chose.

After research I evaluated the following possible solutions:

  1. Use CiviCRM, the Rolls Royce CRM which can be integrated into Drupal. I played around with this, and it has pros and cons.
    • The Pros:
      • User friendly interface
      • Easy import of legacy data
      • Good implementation of groups
      • Offers additional CRM functionality which might be useful
    • The Cons:
      • Cumbersome and slow
      • Presentation of subscribe form to anonymous users is supposed to be possible, but I could not get beyond some bugs
      • Configuration of SMTP setup is complicated (at least for me!)
      • CiviMail is a bit cumbersome
  2. Use proprietary coding, carried over from the legacy application. This was possible, by putting PHP into the node body and running scripts which I had working on the old website. They referenced custom tables. But it was very messy and out of keeping with the Drupal approach and standards. (This was the only solution apart from CiviCRM which I could find which eliminated the need for subscribers to become users.)
  3. Use the Profile module for the additional data fields, and then either Organic Groups (the subscriber would register for the site and automatically be added to a group for receiving email newsletters) or Simplenews (the latest dev version allows subscription to a newsletter on registration).
  4. Use Node Profile to make users into nodes (with increased potential for managing the lists), plus OG or Simplenews as in 3.

In the end I settled for the Profile module together with Simplenews. But to make it work I also needed:

  • Logintoboggan module, which enables a registering user to be transfered to a custom page after registration. This was important because the alternative was to be redirected to the homepage with a message which appears messy.
  • Captcha module, as it was important to enforce human registrations!
  • Poormanscron, as I have trouble setting up Cron properly on my shared webhost. The Poormanscron module allows triggering of a cron run every x minutes when a site page is viewed. This is important, if the Simplenews transmissions are to go out quickly.

I think Simplenews is pretty good for its purposes and allows neat management of newsletters, test transmissions, etc.

Incidentally, I adapted a Migrate module which was shared with us by Bernard Szlachta ten days ago (, to achieve the import of the legacy data into the new data structure without having to understand how Drupal's database is structured! My thanks to Bernard.

I would welcome any comments on the above, and any suggestions of other/better solutions. Please leave a comment!

CiviCRM cons ...

hey edward: sorry you could not present a subscribe form to anonymous users. did you report the issues / bugs on the forum? and if so, can you send me the topic link Not sure why you found the SMTP setup complex? Its basically just the auth credentials / machine names. In 2.0, we've moved all of it to the web (under https preferably) We do agree that CiviMail is a bit cumbersome. However with the UAS SMTP server, folks now have an easy to use alternative lobo

Cool, I'll make sure to use

Cool, I'll make sure to use CiviCRM when I start using the module, thanks.

In search of a contacts database solution

This is advantageously for businessmen to find the cheap essay writing services in web! By the way, they can remember some information concerned with In search of a contacts database solution .