San Francisco Baykeeper

We recently had the honor of working with the wonderful, 20+ year old, pollution watchdog San Francisco Baykeeper. This was a unique project for a couple of reasons:

  • It was the first time an organization came to us convinced Drupal and CiviCRM was the right choice.
  • It was the first time we've moved a client from Blackbaud Raiser's Edge to CiviCRM.

Historically, we are evangelists when it comes to Drupal/CiviCRM as a solution for a given niche problem/market. Drupal is incredibly flexible and has a rich ecosystem of users, developers and vendors. CiviCRM has been making huge strides in the last couple of years with every release (big or small) offering new features and bug fixes. That being said, Drupal/CiviCRM is not for everyone and it's not for every problem. When working with a client, we evaluate their problems objectively and are not afraid to recommend other packages. We match the client to the solution.

When Baykeeper came to us convinced that Drupal/CiviCRM was right for them, we asked them to prove it. Show us your research. Tell us your problems. Explain to us how you came to that conclusion. We ask those questions because we care about the client but also because we take great pride in our work. We don't want to implement a system that doesn't match the mass of the organization. Baykeeper eagerly provided that information and has become the basis for a case study we're writing.

Now that we were convinced that Drupal/CiviCRM was the right choice, we began the tricky problem of figuring out how to get every ounce of information out of Raiser's Edge. Working closely with Eliet Henderson, San Francisco Baykeeper Development Director, we exported, generated and imported ~40 CSV files and ~42,000 columns of data. Nothing was left behind. Each CSV contained a discrete chunk of information (groups, actions, gifts, appeals, contact information, etc.) which we then loaded using the CiviCRM APIs. The code we wrote imported the data in stages so it was easy to reload and test if there was a problem. Almost daily, we would generate a fresh import from start to finish to validate our progress... a batch job that would take about 4 hours to complete.

We will be writing a more detailed post on our process of migrating from Raiser's Edge to CiviCRM in the coming weeks along with source code samples, timings, pain points, bug fixes, etc.

With Baykeeper's site up and running, they can continue to help protect the water quality of the San Francisco Bay with access to new tools and new membership to an open source community.