Problem/Motivation

Membership management and other CRM functionality is a common need for the nonprofits and activist organizations that Open Outreach aims to serve. With basic organizational website needs now covered, turning to CRM is a key next step.

What's the best approach? Open Outreach does not develop complex custom solutions. Any CRM functionality must build on, leverage, and/or integrate existing solutions. Which?

Proposed resolution

CRM applications

There are several existing CRM solutions that could be integrated.

  • CiviCRM. This is the most obvious candidate. Basic Drupal integration is native to CiviCRM. While in the past CiviCRM integration in Drupal was fairly limited, increasing Views support for CiviCRM data objects opens various new possibilities for using CiviCRM for backend data management while presenting Drupal-based data displays. A CiviCRM-based approach might focus on building out one or more features using Views and Context to present organizational website pages on CiviCRM event, campaign, and other data.
  • Salesforce. Covered by http://www.jacksonriver.com/springboard.
  • SugarCRM. Integration provided in http://drupal.org/project/sugarondrupal. No stable release.

Native Drupal CRM solutions and initiatives

There have been many initiatives towards achieving native CRM support in Drupal. Current discussions include the CRM API group on groups.drupal.org. Relevant: presentation on creating custom CRM functionality in Drupal: http://2011.drupalcampla.com/sessions/using-drupal-crm.

While these native Drupal initiatives are interesting and valuable, none as yet seems to be nearly stable or complete enough to meet the criteria for Open Outreach integration.

Native Drupal CRM initiatives offer efficiency and developer experience advantages, but also raise concerns about scope and functionality. To what extent will native Drupal CRM solutions end up exploding into full scale, complex, highly customized CRM solutions, reinventing what CRM software already does and does well? Conversely, to what extent will they remain toolkits, useful pieces that nonetheless require a lot of customization, integration, and extension before they're really usable?

Initial conclusions

CiviCRM integration seems to be the most feasible at this point. Building in light Views-based CiviCRM integration wouldn't preclude adding or switching to a native Drupal CRM solution in future, if a suitable one emerges.

Alternatively, we could build in parallel a CiviCRM integration module and one based on e.g. CRM Core.

Comments

niccolox’s picture

there is also the new, un-released CRM Core project http://drupal.org/project/crm_core

I think its going to see the light of day in Denver Drupalcon
http://denver2012.drupal.org/program/sessions/crm-core-non-profits-and-e...

funnily enough I just did a dev build with CiviCRM on D7 and realized after a bit of tooling around that, WTF? I should be doing this in Open Outreach.. doh !

there is a rich ecosystem of contrib modules around CiviCRM as well as the the large user base

some modules that just caught my eye, ubercart civicrm_activity_ical civicrm_constant_contact uc_civicrm civi_relate civicrm_events webform_civicrm

for my money, obviously, CiviCRM has the install base so its the one to integrate with, and reading the CRM Core module page (haven't used it yet) there will be integration between CRM Core AND CiviCRM

niccolox’s picture

Issue summary: View changes

Add SugarCRM.

Slovak’s picture

I would suggest expanding the definition of the problem. CRM is a wide-ranging "problem" that has different meaning for different people. What areas would this CRM aim to address? What specific functionality?

I believe another open source project (either a Drupal module or an add-on system like CiviCRM) would be the best fit.

For ideas on Sugar integration I recommend reading through Basic Drupal and SugarCRM Integration pt. 1 and Basic Drupal and SugarCRM Integration pt. 2

yautja_cetanu’s picture

Hi, I'm one of the party people (particularly working with rlmumford who has done quite a bit of the work on crm).

We've just been given funding to build a site for a client that requires a native Drupal CRM. We also have only 3 weeks to do it with work commencing this wednesday :)

This means if things go according to plan we should have something that works by the end of the month... but as I'm sure you know, these rarely go exactly to plan. The things we're working on:

1) A Nice way to optionally link everything to a user. At the moment it can work, but the UI for it isn't there
2) Newsletters. We're finding it non-trivial to figure out how mailing groups through our system should work. We're investigating Newsletter and Mailchimp or doing our own thing (like php-list or CiviMail)
3) UIs there are so many different ways we could do the UI and its been complicated just starting.

One of the reasons why we're finding it so difficult to just make a "Drupal CRM" is that we're finding that the term "CRM" is unbelievably ambiguous. That every organisation needs something that is almost completely different. If you try and ask "What are the basics that every CRM needs", I think you'll find that actually you could do all the basics making a "Contact Node" using Drupal + Fields + Views + Relations. We talked about this at our UK Drupal Camp.

There are advanced stuff that we think a lot of people need that Drupal doesn't "just-do" that we're working on:

1) An easy way to link Users with a Contact Entity (Profile2 is quite good, but you can't easily created userless versions of those) + De-duping tools
2) Ability to add activities to a contact entity. This is pretty simple but gets more complicated when you add:
3) Ability to track e-mails sent to a particular contact.

If there are any other features, I'd be interested to hear them. I feel the main thing we lack is a nice UI for doing all this stuff. Now hopefully we'll have one in a month but to be honest I don't think anyone will be able to come up with a generic Drupal CRM UI that actually works for every use case, Drupal Site builders will always need to customise it and panels does a really good job at allowing people to do that.

Anyways a bunch of us hang out in #drupal-crm and I'm on skype if you want to chat about this in more detail.

yautja_cetanu’s picture

Just thought I'd also update you on things:

DropCRM- Doesn't really exist anymore. We organised a dropcrm sprint at the DrupalCon London but rather then try and do one massive Drupal CRM project everyone decided to go their own way. Personally (being a party person) I'd say that Party is the continuation of DropCRM, however thats probably a bit unfair because CitizenKane was very much involved in DropCRM.
Red Hen - These guys were the first and have been inactive. The company behind it however is ThinkShout and you'll find sean larkin is still submitting bits and pieces around the generic term "crm" for example they just released an "entity registrations" module to allow people to sign up other people to events. I expect the redhen guys are going to be coming back into the whole thing over the next year but possibly how they do so may look different (can't talk on their behalf)
Party - Thats us :) Whilst rlmumford and Joachim have submitted alot of the code we've been have meetings every 2 weeks with the other iniatives for a few months now. http://drupal.org/project/crmapi for more info. As I said, we're switching to working on this full-time from 1st of feb for a month.
Contact. - You have put a link to citizenkane's sandbox. He's behind crm_core so they are sort of the same.
CRM Core- Company called Trellon is behind this and CitizenKane has done alot of the work. As I said, he was also quite involved in the discussions around DropCRM and we do maintain fairly regular communication.

I suppose the thing I'm trying to say is that all these different iniatives, whilst seperate are all also talking with each other! So if you decided to join one, you wouldn't necessarily be doing it at the expense of all the others :) There are plenty of areas for overlap and interoperability. (For example, User Syncing tool will work with the entities party provides, but I also want to make it work with crm_core. So if you prefer everything crm_core is doing ,but think our deduping tool is better then you could have that)

Hehe this is alot of information!

MegaphoneJon’s picture

Disclaimer: I'm a Civi person.

Given Open Outreach's target audience, CiviCRM feels like the obvious choice - a LOT of development work has gone into meeting the specific needs of advocacy groups. I understand the appeal of doing a Drupal native CRM, for sure - but I don't think it's worth the investment of resources necessary, functionality-wise it'll literally be years behind CiviCRM.

Other folks have touched on the other issues - install base, Drupal integration, etc. - and as a Drupal/CiviCRM shop, Palante Tech would be interested in doing Open Outreach/CiviCRM regardless.

nedjo’s picture

nedjo’s picture

Had another look at the native CRM initiatives, which have progressed considerably. Leaning towards building a feature on RedHen, which I'm liking for its slim but well designed core architecture.

nedjo’s picture

Posted an initial rough draft of a RedHen-based feature at http://drupal.org/sandbox/nedjo/1679816. It's largely a stripped down version of the feature that ships with the redhen_demo install profile.

While this is preliminary and lots of work remains, I'm very encouraged by the results. RedHen is taking shape as a powerful and elegantly coded solution.

seanberto’s picture

Very excited to check out this work, Nedjo. FYI, Lev's on vacation today and we're likely going to be sprinting on COD with the DA and Acquia a lot the rest of this month (so ticket response times might slow a bit), but we couldn't been happier engaging with you and the community to build tools that support the nonprofits we all love!

AlanO’s picture

Very cool work nedjo. I want to check out RedHen along with Panopoly and openoutreach together.

nedjo’s picture

Status: Active » Fixed

For now, developing using RedHen. Anyone wanting to contribute solutions based on CiviCRM, CRM Core, or Party module is very welcome.

sonicthoughts’s picture

I work with CiviCRM - think its a great pair. There is a bit of overlap with the event module. CiviCRM has a very sophisticated infrastructure for events (and membership, etc.) . It's a Constituent Relational Management tool - not a traditional CRM (Customer Relationship Management) package. VERY interested in Panopoly.

nedjo’s picture

Like I said, I agree that CiviCRM is a great option on its own merits.

I would love to see some contributed work on CiviCRM + Open Outreach integration. I'm just not stepping up to do the substantial amount of volunteer development myself.

I worked on CiviCRM + Drupal integration for 2 years years ago at CivicSpace. I recognize a lot has changed since then, but, if you're aiming for an integrated developer, site admin, and user experience, some of the basic challenges we faced remain. CiviCRM + Drupal = two very different applications with divergent architectures but a lot of overlap. If you don't want to end up with two different install processes, Wysiwyg UIs, commerce and mapping solutions, etc., you've got a lot of work on your hands. Pieces like Views integration help, but (a) are fairly rudimentary still and (b) probably more importantly, push against the core direction of CiviCRM development, which is cross-CMS integration rather than CMS-specific integration.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

Add link to CRM Core.