Building a Brand Ambassador System with Drupal

April 12th, 2011

Brands are increasingly turning to brand ambassadors to market their products. Ambassadors are individuals with credibility in a given area who are hired by a brand to introduce consumers to a given product and educate them about its advantages.

Liquor companies, for example, often hire bartenders as brand ambassadors. The bartenders / brand ambassadors then tell their customers about the company’s brand of gin, and train other bartenders in making signature cocktails with that gin.

Brand ambassadors provide companies and products with valuable credibility. Wouldn’t you trust a liquor recommendation that came from a bartender over one that came from a salesperson?

The downside is logistics. Creating a regional or national team of brand ambassadors requires big investments in recruitment, training and management.

With Drupal however, you can create an online system that helps recruit, manage and monitor brand ambassadors with much less investment.

This project was another collaboration between design and development shop ISL Consulting in San Francisco, and ClearMetrics digital agency in New York.

The Problem

The client, Twinlab, is a major manufacturer of sports nutrition supplements. They wanted to set up a brand ambassador program from scratch, and they had two overriding goals:

1.) Excellent Applicant Screening: The sale and marketing of sports nutrition supplements is extensively regulated at federal and state levels. As a result, Twinlab couldn’t hire just any personal trainer or gym employee to be a brand ambassador. They needed to find and screen candidates with extensive knowledge of supplements and supplement regulations.

2.) Incentives: Twinlab wanted its brand ambassadors to steer people to its online store,, to buy product. To do that effectively, Twinlab needed to reward the ambassadors each time a consumer they referred to the site made a purchase. In essence, they need to set up an offline affiliate program.

3.) Flexible Support: The brand ambassadors were to be contractors, working independently in their local markets to raise awareness of Twinlab. They wouldn’t have constant, face-to-face contact with Twinlab marketing staff. As a result, the company needed a way to get the ambassadors new product information and sales collateral (like brochures, posters, signage, etc.) quickly.

Costs had to be kept at a minimum in achieving all these goals. Twinlab couldn’t hire a full-time staff to hire and manage its brand ambassadors. All these tasks would have to be centralized and simplified by an online system.

Drupal was chosen because the client was already running Ubercart with the coupon module very successfully. This site was added to a multi-domain installation so that products could be shared from other sites with this site.

The Star Player of the System: Ubercart Discount Coupons Module

The primary task of this online system was to identify brand ambassadors and customers who had been referred to by brand ambassadors. The simplest way to identify or “tag” an ambassador or customer was to provide them with specific codes that they could enter into the system during key transactions.

The processes behind the codes used in this program are complicated, but they are largely handled by the Ubercart Discount Coupons (UC Coupon) Module. This module provides the ability to input or generate codes that create various types of discounts in purchasing goods. These codes have some powerful options. They can be set to become active and inactive at certain times, and they can be configured to specify who can redeem them, product requirements, and how many times they can be redeemed. Furthermore, the module provides the administrative interface for managing the coupons and providing reports on their usage.

Custom Module
There was a fair amount of custom code needed to accomplish the unique requirements of the Brand Ambassador system. However, Drupal’s architecture and the features provided by existing contributed modules allowed us to create a custom module that allowed us to use existing, tested code from the Community as our foundation, and add “glue” and customization where needed.

Much of the custom module had to do with modifying the functionality of the Ubercart Discount Coupons Module. A coupon, as set up and controlled by this module, was the basis for the Ambassador’s Code. Our custom module contained the code that worked along with, and modified behavior of Ubercart Discount Coupons Module, for example to add the means to link the codes between Ambassadors and their Customers.

We also had to create quite a few custom pages, a significant one being a “dashboard” page for the Brand Ambassador to view current status of orders and commissions relevant to their membership.

Brand Ambassador Recruitment

ClearMetrics developed an offline-online system that would allow Twinlab to recruit and screen candidates without hiring or contracting recruitment positions.

Twinlab already had a large outside sales staff selling sports supplements to stores and sports organizations around the country. When salespeople came across individuals who would make good ambassadors, they told them about the program, and generated a personalized code that allowed the candidates to log-in to a special section of to undergo an automated screening process.

Screening Tool

This process began on the front page of the site, where a simple custom form collected the special brand ambassador registration coupon code, validated it against the UC Coupon system, and allowed users to register to apply to become brand ambassadors.

This initial form is a case of using Drupal’s excellent Form API to create some unusual functionality. The form’s button is tied to a client-side jquery script that is able to call a server-side function to evaluate the coupon code value entered into the field, and give meaningful feedback to the user into a div defined as an item of the form, before the form executes its action. The form executes dupal_add_js to add the jquery in the right contexts. This was necessary in order to provide direct feedback on the code via an overlay, without moving the user from the page.

As part of the applications, candidates had to pass an online quiz that tested their knowledge of supplement safety and regulations. The Webform Module came through with flying colors, allowing great flexibility in defining various types of questions, and defining appropriate responses and actions based on the candidate’s submission.

Candidates were also required to put in their credit card information (which was subject to $1 verification charge) in order to confirm their identity and address. Ubercart was used to handle the ecommerce portion of the site. The progression of the candidate to the next phase was handled through UC Coupon by having applicants “purchase” a membership package for $1.

Upon checkout, a conditional action, configured entirely in Ubercart, was triggered to send an email message informing the applicant of next steps.

After they completed these tasks, their application was forwarded to Twinlab managers for final approval. Again, conditional actions provided by Ubercart allowed us to set up the notification system, entirely through site administration forms. This system was optimal for Twinlab because it combined the speed of automatic registration and screening with ultimate human control of who was representing the brand.

Code-Based Incentives

To provide a proper incentive for its brand ambassadors to spread the word about Twinlab products, the company wanted to provide them with a portion of every sale they referred to The model was similar to an affiliate program for web sites, the only difference being that brand ambassadors do most of their referrals offline, not online.

When the prospective brand ambassador successfully completed the registration and it was approved by the staff, the user was granted the brand ambassador role, which permitted them access to content and tools provided exclusively to brand ambassadors. Thanks to Drupal’s role-based user permission system, this ability was already available.

Using Drupal’s hook_user, when the brand ambassador role is granted to a user, the system generates a new, individualized coupon just for that brand ambassador, to give to his or her customers. This special coupon is linked to the brand ambassador’s system profile, so that all purchases made using that coupon are tracked. Finally, all of this information is emailed to the brand ambassador, through a straightforward call to Drupal’s hook_mail.

The brand ambassador would hand out the codes to customers. When the customers entered the codes while shopping at, they got a discount. This functionality was entirely handled by the uc_coupon module. Through the uc_order hook, the sale was then attached to the brand ambassador’s profile through the association with the coupon itself, and a portion of it credited to their account.

Realizing that brand ambassadors were also influencing people online and through social media, ISL created badges that the ambassadors could embed on their blogs and profiles. Brand Ambassadors were provided html code that would render their personalized badges, which would link to the product catalog, with data in the querystring that set the incoming visitor’s session with the value of the brand ambassador’s customer coupon code. This value was used to populate the coupon code entry in the checkout page with the value of the customer’s coupon code. Therefore, by clicking on the badges, users were navigated to and received a discount on all purchases made in that session. Like the offline codes, these purchases were trackable.

Brand Ambassador Dashboard

When their applications were approved, brand ambassadors were given access to an exclusive dashboard on Simple and easy to navigate, the purpose of the dashboard was to give the ambassadors all the materials and information they needed to represent the brand.

The dashboard was a highly customized feature that was added as a series of contextual menu items in the user’s profile as defined by hook_menu. This allowed the user to access these features, along with all of the information and management provided by Drupal and the modules supporting this program, such as the contentprofile module. Drupal’s hook system allowed us to place the elements of brand ambassador-specific information into the appropriate places within existing account and profile information.

From the dashboard, the ambassadors could download pamphlets, sales sheets, product information, tutorials, e-mail templates, and a variety of other brand collateral. Twinlab could upload new collateral and relevant messages to all ambassador dashboards with just one-click: a big improvement over the alternatives, like sending out unwieldy e-mails to mass list.

The dashboard also aggregated code-based sales for the ambassadors, so they could see how much they had earned through consumer purchases. They could also see who was buying, and through what channels, so they could gauge the effectiveness of their efforts and improve their performance.

The biggest advantage of the dashboard was its speed and ease of use. Ambassadors could get collateral and the sales information when they needed it, just by logging in.

The site is hosted at Rackspace on a dedicated server on a multi-domain installation that runs a number of other sites.

Other Contributed Modules
There are many modules used on the site. The primary contributed modules used by the Brand Ambassador system were uc_coupon, email_registration, cck, content_profile, securepages, stc_taxes, webform, and, of course, views.


The new Drupal-based system has allowed Twinlab to expand its brand ambassador program and boost website sales. Since implementation, the number of Twinlab brand ambassadors has increased and web sales have jumped.

“The ambassador program has done more than just boost sales though,” said Marc Stover, director of marketing at Twinlab. “It’s enhanced our brand. Every day, hundreds of consumers are learning about our products from experts they trust. You can’t buy that sort of connection. And it’s something we wouldn’t have been able to do without this web-based tool.”

ISL Consulting and ClearMetrics

ISL Consulting is a San Francisco-based web development agency founded in 1993 that has built numerous Drupal websites. ClearMetrics is our New-York based partner that focuses on advertising and media campaigns as well as marketing tools that drive users to take action on websites or in the real world. Together, we’ve built a number of e-commerce and social business sites.

The project was run by a client Project Manager, a Business Analyst and Project Manager on our side, a lead developer and architect, a themer and designer with support for set-up, planning and database issues from another senior engineer and database administrator. As is often the case in these kinds of sites, our developers play an important role with the Business Analyst during the planning phases to explain options to clients. This allows us to best bring Drupal functionality and modules to bear on their business objectives.