By May 27, 2014
Lev Tsypin is Partner and Director of Engineering at ThinkShout, a nationally recognized leader in web application development for nonprofits. RedHen CRM is a project of ThinkShout. In this guest post, he shares how the ThinkShout team developed and launched an integrated Drupal/Salesforce solution for Facing History and Ourselves.

HOW TO TALK SO 300K CONSTITUENTS WILL LISTEN
Facing History and Ourselves serves an active network of nearly 300,000 educators and supporters, providing resources to teach equality and tolerance to middle school students. The nonprofit’s online teaching library and event registration tools are critical to growing their global reach. With such a large audience, it’s a big challenge to speak to everyone.
Facing History was already on Drupal 6 and Salesforce, but the two systems weren’t connected. They asked ThinkShout to redesign their site, migrating to Drupal 7 and to a new Salesforce instance so the two systems could be integrated.
WHY BIG NONPROFITS ARE MOVING TO DRUPAL & SALESFORCE
We’ve been seeing a lot of traction between Drupal and Salesforce. Here are three reasons why it’s touched a nerve in the nonprofit space:
1. ONE WEBSITE. ZERO BARRIERS.
You can keep all your user interactions on the main website. No more linking to separate systems for event registration, donations, and profile management. Keeping the user experience consistent builds trust and engagement. It reduces the barriers between contacts, content, and your features.
2. CUSTOMIZE USER EXPERIENCE WITH MARKETING AUTOMATION
Marketing automation lets you track and engage with constituents who interact with you and your site, whether they’re leaving comments or registering for an event. As you track engagements, you can customize the user experience.
3. MORE EFFICIENT OUTREACH
You can keep data up-to-date much more efficiently. People can even update their own records. If someone registers for an event on your website through the Entity Registrationmodule we built for Drupal, their Salesforce contact record updates in real time. We also set up a donation system so they can create targeted donation forms. When forms are submitted, a new contact record is immediately created or updated in both RedHen and in Drupal, syncing to Salesforce right away.
WHAT WE BUILT
1. MODULAR CONTENT SYSTEM
Based on our review of hundreds of pages of documentation, we implemented a responsively-designed publishing platform that leverages a “modular” (or reusable) content module. This emerging content strategy, popularized by NPR, is known as content chunking. Each selection of content can be displayed in different ways each time it’s used, allowing educators to build collections of content made up of chunks with different view modes. (See an example.) We did this by extending Entity Reference, a Drupal module.
2. DRUPAL/SALESFORCE INTEGRATION WITH BIDIRECTIONAL SYNC
Facing History had nearly 300 thousand contacts and organizations, which are referred to as accounts in Salesforce. Using RedHen and the Salesforce Suite, we developed a robust integration that synced these constituent records between Drupal and Salesforce in real time. The solution supports paid event registration, online donations, and profile management. CRM admins can manage contacts and content from the same tool. Syncing data bidirectionally introduces exciting possibilities. You can keep the entire user experience on your main site, so users never leave. Facing History had various members of their team working in each of their systems--Drupal and Salesforce--without problems.
3. ONLINE FUNDRAISING AND CAMPAIGNS
We built a donation tool based on Drupal Commerce and RedHen allowing Facing History to create targeted online fundraising campaigns. Essentially, they’re unique single page donation forms with simple to use configuration tools for end users. Editors can select recurring or one time donations, the frequency, and the amounts. They can also choose which type of contact record to create and which fields from that contact bundle to show on the donation form.
Additionally, we’re currently developing engagement scores with marketing automation using RedHen [https://drupal.org/project/redhen]. An engagement score is an arbitrary number that has lots of meaning in your organization. For example, you get 100 points for leaving a comment, and 500 points for registering for an event. After that’s tallied, we use Drupal tools to easily customize that user experience.
TEAM EFFICIENCY HACKS DEVELOPED FOR THIS PROJECT
1. WE USE PANTHEON TO FOCUS ON CORE STUFF. (NO MORE SYSADMIN OR DEV WORKFLOW)
Obviously, we’re really busy working on the app code, user requirements, and content strategy. Pantheon takes the entire sysadmin and dev workflows off our plates. We can preview work on test before pushing it up to live.
2. SYNCING SMALL FIRST
We built our own process to try to run multiple Drupal queries to do parallel processing. But we found that led to deadlocks in the MySQL table. We worked with the Pantheon Launch Team to debug problems and to figure out what would work. Before we flipped the switch and synced all live Salesforce data to the live Drupal site, we had to test it. Having the test environment mirror the production environment was critical. The Launch Team bumped up the horsepower on the test site so it matched. We figured 300k records would take 36 hours. Once we knew that, we could plan out the launch accordingly. (Read this post for all the details on how we synced 300k records.)
3. SIMULTANEOUS DEVELOPMENT WITH MULTIDEV & GITFLOW
The Facing History site launched two months ago, and we’re still doing daily, complex feature development. Three of us are working on the site at the same time, while our client does user testing. That means we need to deploy hotfixes all the way upstream, without deploying the new feature work.
GitFlow is a branching and merging strategy that allows multiple team members to work on features and hotfixes without conflict. We discovered that GitFlow nicely maps to Pantheon’s Multidev, so now our team uses that as a workflow.
Multidev lets us create new branches for each new feature, while pushing the hotfixes directly to master. We couldn’t do that with just dev, test, and live.
THE OUTCOME
It’s early--we just launched a couple months ago. For our client, the biggest immediate wins are:
-
Granular content and collections
-
Contact data synced between Drupal and Salesforce, allowing their team to easily access CRM data
-
Increased engagement from their constituents, since users could register, become members, and manage their own profiles without leaving the website
-
Increased donations based on the improved and customizable fundraising campaigns
-
Improved site performance from running on Pantheon
-
Development workflow efficiencies
THINGS WE’D DO DIFFERENTLY NEXT TIME
1. TEST EVEN EARLIER.
Despite the best planning, a real scenario is the only way to learn. We didn’t test the volume of data we’d be using until weeks before launch, when we had the final dataset in the Salesforce sandbox. Next time we have a big dataset, I’d want to get my hands on a high-volume data set in production early on. There were so many unknowns. This was the largest CRM dataset we’ve worked with to date.
2. USE MULTIDEV FROM DAY ONE.
If we would have started using Multidev earlier, rather than after the site launch, we could have saved ourselves a lot of time. Going forward, we’ll establish this as a best practice. Using Multidev is much better than having countless white-board conversations about workflows. We should have done this a year ago.
WHY DRUPAL JUST KEEPS GETTING BETTER FOR NONPROFITS
A lot of our business these days touches on Drupal, RedHen, and Salesforce. At Dreamforce last fall, the nonprofit portion had tripled from previous years. As more large nonprofits get wind of these tools and what they can do, I think we’ll see a lot more Salesforce/Drupal integrations.
When Drupal 8 comes out, the built-in server and higher performance options will allow you to request smaller data from Drupal without stressing the whole system, which has been the Achilles heel of Drupal 7. This opens the door to Drupal being a hub, and systems like Salesforce and mobile apps becoming spokes off of that hub.
Topics: Ecommerce, Education
