Integrated Communications

Drupal integrates with Microsoft CRM

William O'Connor
CTO Goes Drupal

APQC is a best practices organization that provides information and research on benchmarking, knowledge management, measurement, and process improvement to its approximately 40,000 members. APQC’s somewhat rare in the web world because its product is its content. Obviously, a robust and flexible content management framework is critical.

In early May, APQC launched a new site in Drupal, the culmination of 6 months of effort. Achieve Internet led the development, beginning with analysis and planning sessions in October 2009. The major tasks were to migrate APQC’s content from the existing Interwoven CMS, perform the necessary Drupal configurations and customizations, address the various integration points, and tune for performance and scalability.

Site Functionality

In many ways, the functionality APQC desired is perfect for Drupal. They needed a platform that would allow them to:

  • share and publish content in a variety of forms
  • efficiently manage document workflow
  • offer community-building features such as blogs, a ratings system, user-created groups, find-a-peer, and forums
  • sell content at different prices to different types of users
  • handle content access permissions via a robust group management system

Although there were significant development challenges associated with developing APQC's enterprise-scale solution, Drupal rose to the occasion.


Visitors to APQC are typically interested in researching and implementing best practices. Some are quality assurance service providers (e.g. consultants) and others are working to improve operations within their own companies. Most users log in to obtain content, but anonymous visitors can access some information and conduct searches. User-experience is incredibly important, so APQC’s focus was always on fostering user communities and making content easy to work with and find.

Authenticated Users

When visitors register on the site, their emails are verified and domain names checked against a master list of member domain names. Upon verification, visitors become users and are added to their organization’s group. In their profile, users can store information about themselves and also save their favorite searches, create a to-do (or “to-read”) list, view flagged content, and manage newsletter subscriptions. Users can access discipline-specific articles, forums, and blogs. Some of the content is free, and for some APQC charges a nominal fee. Beyond content access, other tools on the site allow users to:

  • find-a-peer interested in similar topics
  • rate content with a thumbs-up or thumbs down
  • search for the highest rated content
  • forward a content link to a colleague
  • create an event and invite other users
  • create a research project with a community toolset including a private forum, blog, events calendar, and content links 
APQC Employees

APQC employees manage document workflow using Drupal's workflow module. Employees have one (or more) of three roles: writer, editor, publisher. Workflow allows them to move documents efficiently through the publishing process. One differentiating requirement for APQC is the need to review articles periodically for relevance.  When a document’s “review by” date is within 30 days of expiration, the node is sent to a “Knowledge Base Review” application where an administrator will either update the “review by” date into the future or allow the KB content item to expire. APQC site admins also have the ability to set prices for content on a per-taxonomy-term basis for the primary vocabulary, create events, send messages to users, and view content-use reports.

Member Company Administrators

Each member company assigns an employee to serve as the APQC contact. This employee manages some user-related tasks, for example deleting employees that leave the company. Each month, the company administrator also receives detailed information on user content consumption that displays the cost paid for membership vs. the potential ad hoc cost for the content. This scorecard serves as an excellent way to measure the value of APQC membership.

Using Drupal Organic Groups

APQC member organizations have a variety of enrollment options, from a discipline-specific package to all-inclusive Enterprise memberships. APQC implemented Drupal’s organic groups permissions system in order to achieve a high degree of granularity with low overhead.

As noted, when a user joins APQC, their email is verified and the user is added to their organization’s group. Each member organization is a member of one or more groups (called “disciplines” by APQC) utilizing a custom-built organic subgroups module. After the user is added to the organization’s group, they have an opportunity to join one or more available disciplines based on the parent groups – disciplines -- in which the organization resides. Upon doing so, the user gains access to all the content associated with the disciplines to which they belong.

Modifications to organic groups allow users to opt out of membership to parent groups. If a user’s organization is a member of three disciplines, she or he does not have to join all three. This option can be important, because a user’s home page displays the latest blogs and information related to her discipline.

Custom Drupal Content

Much of the content is heavy on text, but APQC also makes frequent use of graphics and charts. A custom content-type was created to include fields for author, ISBN (when applicable), year of publication, teaser text, etc. In many cases, the content is available for electronic download and/or as a hard-copy. Content-area experts also maintain blogs on APQC.

When browsing, users are offered a list of featured content and top downloads. All content is organized, via taxonomy, according to the Process Classification Framework, an information organization structure developed by APQC and now adopted globally. Content is also tagged in five categories: topics, processes, type, industry, and publisher. These tags appear under the document titles and link directly to search results for similar content. Each piece of content is also associated with a discipline, which is what links it to the groups framework and ultimately controls access and pricing.

APQC's Drupal Solr Search uses Apache Solr to provide powerful full-text, faceted content searching. Users can search, sort, filter, and unfilter. After searching for a phrase, they can narrow the results by author, content type, industry, process or topic. Search results also display a relevancy percentage.
Pricing information, because it appears in search results, is also pushed into the Solr index for easy retrieval. The product prices for various format options—member electronic, non-member electronic, member hard-copy, non-member hard-copy—are stored in Solr. Prior to rendering the search results, the user’s credentials are checked. If the user is a member of the appropriate discipline for that content, the member-specific pricing is displayed for that product (often a “download for free” link) and is included with the item in the search results.

Ubercart Customization

Ubercart handles transactions related to two types of products: knowledge base content and event registrations.

Ubercart Pricing and $0.00 Purchases

For both products, pricing differs for members and non-members. If a user is a member of the “financial management” discipline, content tagged with “financial management” is available for a discounted price or, in many cases, for free. Even though it’s free, APQC still wants to track content use and downloads. Since a $0.00 purchase does not require checkout information and Ubercart’s default purchasing system does not handle $0.00 items well, a custom section of code was added to purchase a pseudo-cart containing just the free item. This allowed the purchases to be tracked by Ubercart’s default system while bypassing the unnecessary checkout steps for free products, suppressing some of the default messaging, and directly serving their electronic file.

Event Registration and Ubercart Products

Handling Event Registration in Ubercart

Attribute Option
Field Type Values
First Name text field [blank]
Last Name text field [blank]
Email email [blank]
Track select/radio/checkbox option 1
option 2
option 3

It’s fairly common for events (such as conferences) to have dedicated web sites for registration and information. However, APQC’s desire to track user attendance and avoid additional overhead encouraged them to handle registration within their main site. One of the functional challenges was that APQC’s member organizations frequently send groups of employees to conferences, and the site therefore needed to allow users to register multiple people for an event.
The development team leveraged the existing Ubercart product/attributes/options framework to do this. In Ubercart, each event-product contains additional attributes such as first name, last name, email, and track (e.g. beginner, technical, manager). Some of the associated option values (such as for tracks) are filled in by event creators. Others (such as name and email) are completed by those purchasing the products. In the multiple-signup scenario, the user would add several event-products to their cart, filling in different name, email, and track information for each attendee.

Drupal Contributed Module Highlights
  • Apache Solr - integrates Drupal with the Apache Solr Search Platform.
  • Content Construction Kit (CCK) - creation of content types.
  • Content Profile - makes nodes out of user profiles
  • Date - flexible date/time field type for CCK. Includes Date API - available to be used by other modules.
  • Fivestar - adds a clean, attractive voting widget to nodes.
  • Global Redirect – creates redirects for pages so that pages are accessible via only a single url.
  • Google Analytics - Integrates Drupal with Google Analytics.
  • Image Cache - creates presets for image processing.
  • Meta Tags - allows meta tags to be set for each Drupal page.
  • Node Queue - allows administrators to collect nodes in an arbitrarily ordered group.
  • Notifications - a complete Subscriptions/Notifications Framework aiming at extendability and scalability.
  • Organic Groups - enable users to create and manage their own 'groups'.
  • Simpletest – automated testing within Drupal using the SimpleTest PHP library.
  • Thickbox - wrapper for the Thickbox jQuery plugin.
  • Ubercart - an e-commerce suite suitable for selling physical goods, digital product downloads, and site memberships.
  • Views - a smart query builder that, given enough information, can build the proper query, execute it, and display the results.
  • Views Bulk Operations - augments Views by allowing bulk operations to be executed on the nodes displayed by a view.
  • Workflow - allows the creation and assignment of arbitrary workflows to Drupal node types.
  • XML Sitemap - creates a sitemap that conforms to the specification, helping search engines to more intelligently crawl a website and keep their results up to date.
Drupal CRM Integration

APQC’s Drupal web site communicates with several different systems, including a third party survey tool. Drupal handles sign-ons for the survey system by functioning as a web service, verifying credentials and authenticating sessions as needed.
The “Ask Us” and “Help Desk” functions are handled via a Microsoft CRM, but the users enter their questions in Drupal. In the case of “Ask Us,” the user fills out a web form with a question and gets a list of results. If those results don’t provide a satisfactory answer, they submit their question. Drupal packages the information and ships it off to an Enterprise Service Bus (ESB), which then places the message in the CRM queue so a subject matter expert can respond.
The “Help Desk” function works in a similar fashion, but does not show a list of results prior to submitting the question to the help desk queue. More information about the Drupal ESB integration is available on Achieve Internet’s web site.
Drupal also stores users’ newsletter memberships. These lists are packaged and submitted to Eloqua (APQC’s mail and lead management tool), which handles the mailing. Contact us forms are also handled by Drupal and submitted to Eloqua.

Drupal Project Mangagement

Since APQC is in the business of best practices, it’s no surprise that their approach to projects is rigorous. From an Achieve Internet perspective, it was highly rewarding to work with an organization that placed a high value on project planning and communication. Achieve technical managers and APQC project managers spent 160 hours writing specifications documents and indentifying integration points prior to the start of coding.
Each week after that, Achieve provided APQC managers with a progress report in standardized format. The report contained the completed tasks, future plans, and outstanding issues. The team also held a weekly conference call to discuss progress and highlight any concerns. Internally at Achieve, a sprint schedule was managed in MS Project and developers’ tasks were place in a queue in Unfuddle. Each afternoon, the team held a scrum to collaborate and maintain focus.

A Drupal Success

Although APQC is mainly a Microsoft shop, they wisely decided to reach outside into the open source world for their content management framework. Drupal’s permission system, Ubercart package, community-building features, and content workflow capabilities are perfect for what the organization wants to do with its web site. APQC’s rigorous approach to project management and development required that their vendor match their intensity. Achieve Internet is proud to have worked with APQC, and to have delivered a robust, integrated, and flexible solution on time.


Achieve Internet,, specializes in enterprise-class Drupal development with unique capabilities in project architecture and planning for Drupal projects requiring scalability, stability and integration.

More about Integrated Communications

Achieve recently attended HCIC and gained some valuable insight. We have been attending HCIC for a number of years and have seen trends come and go. Ron Huber, the CEO of Achieve, shares his thoughts on what he learned and experienced at this year's conference.  
Digital Health Innovation SD Event on TeleHealth
TeleHealth: Today and Tomorrow Event Recap Digital Health Innovation San Diego has continued to grow as we further discussions in the community about some of the most pressing matters in the healthIT sector. To that point, our latest event was focused on TeleHealth and it’s growing impact on the healthcare industry.