Wednesday, March 19, 2014

Fashion-Forward Retail Giant Requires a Unique Marriage of Salesforce.com and Google Apps for Business


In spring 2013, several of KDA’s developers worked on a unique project for one of the world's leading brands in high-end retail. Headquartered in London, the fashion-forward retail giant tasked the team with integrating Google Apps user data into an existing intranet solution built on Salesforce.com’s Chatter platform, which was the centerpiece of the company’s internal collaboration strategy.

The challenge: Authorize Google's extensive JavaScript API client libraries to populate recent activity streams from a user’s Google Drive, Calendar and Gmail account, alongside a Google Talk-powered Chat box (surfaced using XMPP), into a highly customized set of Apex-driven VisualForce pages resting atop Salesforce’s enterprise social network and collaboration platform.

Piece of cake, right? The case study outlines the company’s requirements and how each was addressed by the development team.

Case study by Wes Dean

Much of the retail-focused company’s success lies in the strength of its brand — in quality, recognition, value and innovation — both in the eyes of its customers and, internally, for all of its employees. Thus, it was critical that each component of the solution we delivered adhered to the company’s brand guidelines and served to visually reinforce the values pent up in its corporate identity, whether in the choice of fonts used for lists of Google Drive files or the background and accent colors chosen for the embedded chat UI.

The solution also required extending Google Apps beyond the core set of features generally associated with the Web based collaboration suite, including one or two that had not yet been introduced to enterprise customers – at least, not out of the box. The client’s technical team had a strong vision of what it hoped to achieve in bridging two of the world’s leading enterprise collaboration platforms, and their enthusiasm was fuel for our passion to deliver.

The functional requirements could be broken down into the following core concepts:
  1. Chatter/Activity Stream — Allow users to post messages, engage in discussions, and interact using a safe, organizationally-restricted social network;
  2. Show Recent Email Messages — Users should be able to see a list of their most recent unread messages in Gmail;
  3. Show Upcoming Events — Users should be able to see and interact with a list of upcoming events populated by their Google Calendar;
  4. Upload, Search, Browse, Preview, and Open Files Stored in Google Drive — Users should be able to interact with their Google Drive in order to browse, upload and share files on the Chatter-based activity stream;
  5. Online Presence / Messaging — Users should be able to see a list of their online contacts, each of which displayed a "contact card" on mouseover with information about the user as well as links to launch a conversation via instant message or video chat;
  6. Meeting Room Scheduling — Users should be able to reserve meeting room space with video conferencing capabilities (provided by Google+ Hangouts); online video conferences would be controlled by a room-assigned tablet device that offered a live queue of scheduled meetings and invitees for the room, and provided additional features that allowed attendees to invite additional participants via phone once a conference had begun;
  7. Integration with Salesforce — the Client had an existing Salesforce presence that touched on many points of their internal workflow; as a result, a successful solution needed to integrate seamlessly with several disparate components of the Salesforce platform;
  8. Responsive Design — Each module needed to reflect the very latest in responsive design techniques in order to preserve the application’s accessibility across both desktop and mobile platforms; it would work equally well on a wide range of devices, providing an optimal viewing experience on a laptop, tablet or smartphone;
  9. Look and Feel — Each component was necessarily visually consistent with the company's well-established brand.


For some features, the development team was able to build tools that successfully resolved several core requirements using Google’s own client API libraries and SDKs, such as those for Google Drive and Google Calendar.

Other features, however, demanded some outside-the-box thinking. To meet the client’s needs, a custom solution was architected and deployed to render Google Apps data right alongside a user’s Chatter feed, all with the client’s corporate look and feel. The result was a fully integrated solution that blended all the social features of Chatter’s discussion and activity streams, with many of the core features for team collaboration that drive the Google Apps for Business Web-based suite of tools.

The team managed to capture another victory by successfully delivering a Google Apps Script powered Web app for scheduling conference rooms and managing online meetings. The tool allowed users to create events in Google Calendar as usual and to add ‘resources,’ including designated meeting rooms where the Web app was installed on room-assigned iPads. Once a meeting room was selected, the appropriate Google+ Hangout resources were provisioned and the event data was modified in Google Calendar to reflect the inclusion of the conference room resource.

All updates were reflected in real time on the tablet Web app, which could be used to invite users both from within and outside of the organization and to patch in additional conference rooms at other corporate offices.

Perhaps the greatest obstacle confronted was the need to surface user presence data, for which Google does not now (nor did it, at the time) provide a publicly documented API. Thus, an entirely custom solution was built that allowed a branded, web-based chat client to interact with Google Apps data through a proxy capable of translating data such as presence updates, chat messages, etc., into a format that was consumable by both the Google Apps platform and the Salesforce-powered intranet.

The proxy component required outgoing socket support — functionality that wasn't publicly available through Google App Engine when the solution was built. Thus, an application was written to run on Google Compute Engine, a Linux-based infrastructure component that resides entirely in Google’s enterprise cloud.

Through the creative use of Google's public APIs, the development team was able to provide a truly one-of-a-kind combination of solutions that met all of the retail company’s unique requirements. The solution seamlessly integrated into the client’s corporate environment and users were able to experience the intended benefits of both Google Apps and Salesforce from a single point of access.

Wes Dean, a Google Apps Certified Deployment Specialist and a Google Apps Trusted Tester, is Principal of KDA Web Technologies, a Google-Centric development firm and a Google Apps Authorized Reseller. To learn how Wes and KDA Web Technologies can help you, go to www.kdaweb.com.