ThinkShout

We provide web strategy and open source technology to forward-thinking organizations.

Lev's Blog

Salesforce Integration with REST, OAUTH, and Entities

November 26, 2012 - 13:29 -- Lev

Salesforce logo The Drupal Salesforce Suite has been around since Drupal 5, having undergone many transformations in trying to keep pace with both Drupal and Salesforce API changes. The result is a feature set as impressive as it is ambitious, although the incremental updates and additions have come at a cost of significant technical debt, inconsistent API usage, a monolithic architecture, and fragility.

ThinkShout, not being strangers to major rewrites, even of our own modules, and driven by our need to integrate Salesforce with our native Drupal CRM, RedHen, undertook the challenge to completely rewrite the Salesforce suite this fall.

RedHen in the spotlight at BADCamp

November 5, 2012 - 14:28 -- Lev

I just got back from a fabulous weekend at BADCamp where we had the chance to discuss RedHen CRM at the nonprofit and product summits. These videos were generously filmed by Nicholas Roberts. The first is an in-depth discussion of RedHen CRM, covering why we built a native Drupal CRM in the first place, the technology that makes it possible, and applicable business cases. The second is cage match, err, make that panel ;), pitting RedHen against Trellon's CRM Core, Jackson River's Springboard, and CiviCRM. It was an honor and a pleasure to compare and contrast RedHen with those other amazing CRM offerings. RedHen CRM is already in use in over 200 projects, including our own Mission Investors Exchange and will soon launch as a core component of a private distribution for the Forum of Regional Association of Grant Makers.

Under the Hood of RedHen CRM

October 18, 2012 - 12:17 -- Lev

RedHen CRM is one of many great stories featured in the Linux Journal's recent Drupal special addition. RedHen just laid a beta3 release and the ThinkShout team will be at the Pacific Northwest Drupal Summit if anyone wants to connect.

This is the 5th in a series of articles exploring RedHen, ThinkShout's native Drupal 7 CRM platform. ThinkShout initially designed RedHen CRM around the complex association management (AMS) needs of nonprofits and trade associations. These association management requirements go well beyond the standard needs of most CRM/CMS solutions. However, in building an abstract tool with these needs at the forefront, our goal has been to future proof RedHen CRM as much as possible to ensure that its architecture can accommodate a wide variety of use cases.

RedHen CRM is similar to Drupal Commerce in its modular structure. As with Drupal Commerce, the core RedHen modules that can be downloaded on the Drupal.org project page won't provide you with a working CRM right out of the box. RedHen is intended to provide developers and site builders with the building blocks for quickly creating their own CRM data models that map to their particular business requirements and workflow. Consequently, setting up a new RedHen CRM instance does require configuration.

In the future, ThinkShout is likely to release RedHen "Features" or "Apps" that provide prepackaged CRM solutions for different use cases. At the time of the publication of this article, we know of more than 70 RedHen CRM solutions built by other Drupal developers and site builders.

In addition to its association management uses, we see RedHen CRM as an ideal starting point for building custom sales pipeline management tools and project management applications, as well as Drupal integration points with 3rd-party ERP (enterprise resource planning) tools and financial accounting packages.

MailChimp adds Mandrill Integration & Campaign Creation

May 25, 2012 - 13:48 -- Lev

We've previously written about a complete rewrite of the MailChimp module, and while our most recent changes aren't quite as big, they're significant enough that we want to share the details with the community.

Mandrill

Mandrill is MailChimp's new transactional email offering, intended to replace the MailChimp STS service. Rather than being based on top of Amazons SES, Mandrill is built on MailChimp's own infrastructure:

Mandrill runs on the delivery infrastructure that powers MailChimp, the world’s best email service provider.

The release announcement contains list of current Mandrill features, and there are many more exciting things coming down the pipe.

  • Uses MailChimp's awesome email delivery engine
  • Has a simple and powerful API
  • Allows simple sending directly using SMTP
  • Tracks opens and clicks
  • Automatically adds Google Analytics tracking data to your URLs
  • Has pretty, visual reports of your email results
  • Allows you to tag your messages and see your stats filtered by tag
  • Integrates with MailChimp's templating system, letting you export your MailChimp templates to Mandrill and use them in your transactional emails

The initial beta release of the Mandrill module is modeled closely on the STS version, but provides additional options like tracking clicks and improved graphical reports powered by Google Charts out of the box. Our roadmap includes:

  • Improved reports with filter and display settings.
  • The ability to target which types of emails to use Mandrill for, E.g., use Mandrill for the contact form but not password reminders.
  • Integration with MailChimp templates.

The STS module has been removed from the core MailChimp package and is available as a standalone project for existing users. It will not be actively maintained. New or adventurous users should definitely go with Mandrill and only use STS if you have a project that's already running it.

Campaigns

There's long been a demand to add the ability to create campaigns containing Drupal content from within Drupal and it's finally been added with the new 7.x-2.5 release, along with a very long list of improvements and features. The new MailChimp Campaign submodule, contained in the core MailChimp package, allows users to:

  1. Create a campaign.
  2. Send campaigns.
  3. View statistics.

The module adds an input filter, which is applied to every section in a selected template, which converts a macro in the following format into rendered Drupal content.

[mailchimp_campaign|entity_type=node|entity_id=1|view_mode=teaser]

We sought an approach that combined flexiblity with ease of use, sacraficing a bit of the former for the latter. But this lets users inject any Drupal entity, using any view mode, into a template section mixed with additional non-Drupal content. Users can also choose to create a campaign that doesn't contain Drupal content at all using this tool. It can also be combined with additional input filters to provide other formatting assistance.

When saved, the rendered content, along with the MailChimp list and other campaign data is sent to MailChimp and hung on a custom campaign entity within Drupal. New campaigns are saved as drafts and can be edited so long as they have not been sent.

Sent campaigns have statisics available, including graphical charts powered by Google Charts, similar to those used in Mandrill.

Summary

Aside from adding Mandrill and Campaign creation, and removing STS, there's a long list of improvements and new features, including improved Rules integraiton from @fago. We welcome any feedback, either here or in the queue. Thanks and enjoy the new features!

Sign Up for Entities and Fields

January 19, 2012 - 11:43 -- Lev

The challenge

Historically, the Signup module has been the go-to solution for managing event registrations (i.e., sign-ups) in Drupal. This venerable module has nearly 8000 reported installs, 14 contributors, and a vibrant ecosystem of additional contrib modules (such as Signup Integration for Ubercart). Signup is also a key component of the Conference Organizing Distribution.

All this considered, only 500 of Signup's installs are in Drupal 7, for which the module still does not have a tagged, stable release. And since the module must maintain an upgrade path for all those users, taking full advantage of Drupal 7's new features, such as the entity system, is very challenging.

Given ThinkShout's comittment to Drupal innovation, last year we began work on an entity-based alternative to Signup, drawing significant inspiration from the amazing work that was already done there. We were very excited about the benefits offered by an entity-based registration system, namely the ability to add custom fields of any type to a registration, along with hooking into the various entity APIs. We launched an early version of the tool on Manhattan Kayak Company's new website and started a conversation with the Signup team about possible collaboration. While productive and receptive, things were moving a bit slowly, so we started up a new Entity Registrations project on Drupal.org and have recently pushed the code to a point where we want to share and discuss it with the community.

Looking Back on ThinkShout's first Year

January 9, 2012 - 18:52 -- Lev

The ThinkShout team celebrates our one year anniversary

Almost exactly a year ago, after over a year of flirting with the idea of partnering, Sean and I finally tied the knot. Our initial goals when starting ThinkShout were modest:

We certainly have a long ways to go, but we're proud of how far we've come and are even more excited for what the year ahead holds.

Tags: 

OpenLayers Love for Drupal 7

September 7, 2011 - 09:39 -- Lev

Mapping has become a significant component of many of ThinkShout's projects over the last couple years, included on sites such as Save Our Gulf, James River Association, and the Lower Columbia River Estuary Partnership . The tools we use are constantly evolving. For example, we recently launched a bacteria monitoring site for Blue Water Baltimore (note, staging site) using Cloudmade's Leaflet and an accompanying Drupal module of the same name. But the OpenLayers map scripting library and Drupal module have been sophisticated mainstays. During that time, we've contributed a few of our own add-ons to meet our client's needs, namely OpenLayers Field, OpenLayers KML Layer, and OpenLayers Taxonomy. The first is a new module for Drupal 7's field system and the latter 2 were originally built for D6 and just ported to D7. We worked with the esteemed Alan Palazzolo, current maintainer of flagship OpenLayers's module, on all 3 projects, which now have beta releases.

MailChimp 2.0: Anatomy of a Drupal module rewrite

June 30, 2011 - 13:23 -- Lev

FreddieI first wrote the MailChimp module for a side project I was working on (MomHub) towards the end of 2007. It was my first standalone module, and the first one I posted on drupal.org. That module, and every update since, has basically offered the ability to synchronize a site's users with more one or more MailChimp lists based on role, in addition to standalone subscription forms. Over the years, the module has grown in popularity along with the MailChimp service itself, and there are now nearly 4000 reported installs. Still modest, but a sizable base which needs to be taken into consideration when releasing updates.

Redmine and Gitosis, project management nirvana?

March 23, 2011 - 16:11 -- Lev

If, like us, you find yourself running several development projects, you likely use some sort of a ticketing system to manage features, bugs, tasks, etc. and communicate with your clients. There are many, many options, ranging from proprietary commercial offerings like FogBugz and Jira, SaSS offerings like Unfuddle and Lighthouse, and open source tools such as Track, Bugzilla, Redmine, and Drupal’s own project module. Wikipedia has a great comparison of issue tracking systems. After much careful consideration, ThinkShout settled on Redmine due to it’s excellent interface, multi-project support, repository integration, rich feature set, and large install base.

Pages