Tuesday, January 31, 2012

Strategies for Smooth Social CRM Implementation, Part 1

The most important strategic imperative for a successful social CRM implementation is an organizational culture and structure that is aligned with Customer 2.0. The social customer has evolved into a more mature, demanding, informed, willing and value-adding business partner who seeks a long-term association with the brand or enterprise. The traditional CRM approaches are no longer acceptable.


Customers' buying behaviors and businesses' engagement models are shifting. Traditional is out, next-gen is in. Today it is the customer who influences and forces the evolution of business models. Cloud-based Internet peer networks drive the buying decisions for large segments of customers. Enterprises will inevitably need to adopt mobility and social media platforms to keep up with the next generation.
Today's consumers already have globally visible footprints in terms of their opinions, feedback, and perceptions of various brands. Collective sentiments developing on social networks and in peer communities are influencing consumer choices and buying behavior. Social media platforms will be the next-generation battleground of brand and customer loyalty.

The importance of Customer 2.0
Is your organization ready to do business with "Customer 2.0"? Social CRM gives you a real-time sense of customer preferences and opinions. Social CRM helps you listen to relevant social media conversations so that you can take proactive steps to create untapped business opportunities.
With Social CRM, you can leverage your customer's trusted peer network to create widespread positive brand perceptions and generate new leads. You can engage customers in conversations through social media networks to provide a more personalized experience. Finally, you can make the consumer your partner in product co-creation for win-win outcomes.
Many conversations on this theme have grabbed the attention of those at the C-level. Across the globe, consumers are hooked on social networking. The way they interact with brands is changing. The way they make buying decisions is changing. Consumers have moved beyond consuming information -- now they share experiences, knowledge and activities on new platforms. Hence, it has become critical for organizations to interact in a way that is more relevant and appealing to them.

How Organizations Are dealing With Customer 2.0

Different industry segments have reached different levels of adoption and maturity of their social media for CRM functions. Business-to-Customer (B2C) businesses seem to be on a steeper trajectory when compared to Business to Business (B2B) firms. Most of the early adopters of social CRM are consumer packaged goods, telecom, high tech, manufacturing and services industries. However, all industries leverage social media for their marketing, sales and service functions at varied levels, based on the customer behavior and sales cycle.
Banks and financial services have been relatively moderate in their adoption rate of social CRM, restricting its usage primarily to listening, analyzing and meeting customer needs apart from customer support. Issues such as data privacy, user authentication and sensitivity of bank information, coupled with regulatory stringency, make social CRM an initiative that needs to be implemented with forethought and strategic vision.
A snapshot of key activities of the leading banks and FIs in the social CRM space:

Community (Peer networking) Customer Service Marketing Campaigns Customer Education
Wells Fargo Virtual world The Wachovia unit uses twitter Dedicated blog posts for different loan offerings/virtual world/twitter
American Express dedicated forums using Twitter
Intuit communities/forums Blog posts/communities
Scotia Bank communities/forums using Twitter
Fidelity You Tube videos Using Twitter
Charles Schwab communities/forums Using Twitter

Figure 1 highlights the range of social CRM activities that financial services organizations are currently undertaking. Communities, microblogs and other social media essentially act as another communication channel with the customer, where socially enabled marketing, sales and customer service processes are executed to generate lasting business and customer value. In general, the activities performed in the social media space can be mapped to the traditional CRM pillars.
Marketing: Brand-related references from communities and other content management sites (like YouTube) are converted into specific customer experiences/campaigns. Microblogging sites (Twitter, etc.) are also used for launching campaigns
Sales: Before making a purchase, today's consumers often seek the opinions of like-minded peers and experts on discussion forums and consider product reviews/ratings/tags. Such social conversations can lead to sales.
Service: Microblogging sites replace the traditional phone/IVR channel to make an instant connection with the customer to address an issue even before it becomes a problem.

Social CRM: Strategy or Tool?

The marketplace is abuzz with debate over whether social CRM is primarily a strategic concept or just a tool to be implemented. In fact, it is a balanced amalgamation of business insights realized by astute IT implementation.
It is also a strategy and an art from the perspective that Social CRM
  • is still an emerging area where thought leadership, frameworks and models are in a nascent stage;
  • requires clear foresight in terms of goal setting and expectations;
  • requires judgment and realistic assessment of an organization's readiness to adopt and adapt to the new media;
  • requires deep analysis of the nuances and uniqueness of social customer behavior; and
  • forces adaptation to cater to the emerging and diverse needs, traits, responses, demands and attitudes of the social customer.

Social CRM Strategic Imperatives

The most important strategic imperative for a successful social CRM implementation is an organizational culture and structure that is aligned with Customer 2.0. The social customer has evolved into a more mature, demanding, informed, willing and value-adding business partner who seeks a long-term association with the brand or enterprise.
The traditional CRM approaches of enterprise-driven marketing efforts, aggressive sales pitches, or less-than-satisfactory customer support are no longer acceptable. In fact, it has been shown time and again that such approaches can often publicly backfire in the new social world.
Mckinsey's 7-S framework can be leveraged to prepare an organization for the social CRM bandwagon:

McKinsey's 7-S framework and Social CRM Strategic Imperatives
Skills
Marketing : Sentiment Analysis, Customer-driven Brand Building, Elicit Customer Insights from social conversations,
Sales: Relationship oriented selling , Network-led prospecting, Word of Mouth referrals and Predictive Analytics for Cross/Up-sell
Customer Support: Pro-actively addressing customer complaints, minimizing product issues, deftly handling irate customer, prioritizing service request resolution based on potential impact
Strategy

  • Deep-dive research on organization's Social Customer behavior, Competitor analysis on Social Media , SWOT Analysis and Business Need to leverage social Media
  • Cross-leverage Social Media / CRM initiatives with Offline efforts
  • Establish strong business case with ROI model
  • Implement social CRM projects in pilot mode, reap benefits and broaden reach and scale
Structure
Streamline: Re-align the front-office to be more agile with clear focus on prompt response to customer

Boundary-less: Flatten walls between business functions to enable faster discussions and decisions

Systems

  • Multi-channel Consolidation
  • Predictive Analytics
  • Social listening , Social Analytics and Social Intelligence
Style
Collaborate, Co-create and Communicate with Partners , Suppliers, Employees and Customers
Staff
Genuinely customer centric empowered by sophisticated tools providing deep social customer insight and a 360 view of customer touch points across channels (social media, phone, web or offline)
Shared Values

  • Customer centricity
  • Pro-active issue resolution
  • Community ownership as against siloed approach toward corporate brand building
  • Transparency and Fairness in all transactions across customer touch points 

Don't Forget B2B CRM

B2B relationships are certainly different than B2C ones. Relations with consumers are more likely to take an emotional tone, for better or for worse. Businesses, on the other hand, make purchasing decisions solely for the purpose of making or saving money -- it's nothing personal, it's strictly business. The two types of relationships both need CRM, it just needs to be applied differently.


While we're on the subject of the customer relationship, it's important, even vital, that we do a better job of teasing apart customer types. It seems to me that the vast conversation about social CRM and the social customer has focused on the end consumer -- the business-to-consumer (B2C) relationship -- not the business-to-business (B2B) one. That's probably a smart over-reaction to the fact the about two-thirds of the economy consists of B2C transactions.
What might not be smart is assuming that the other third of the economy operates more or less like the consumer economy and that B2B customers are the same and can be addressed with the same tools and methods. The most popular business organization model is still some form of hierarchy, and businesses often make decisions based on the consensus of people up the ladder. Other people have input in the decision, but very often, final approval comes from people higher up who have budget responsibilities.
Businesses spend money for only two reasons: to make money or to save it. If a purchase, and the ongoing cost of repair, maintenance and upgrade, cannot be justified on these grounds, or if the purchase cannot flat-out make more money than it costs, there is no reason for it. This reality puts a box around most B2B relationships, which prevents them from becoming emotional in a B2C sense. It also lets a business relationship operate more along operational lines where objective measures like price, on-time performance and quality standards dictate the health of the relationship.

What's the Dif?
Over the years, vendors have had varying degrees of difficulty dealing with the differences, since they are often in B2B relationships with suppliers as well as B2C relationships with consumers.
There's more room for bruised egos in a business-to-consumer (B2C) relationship than in a B2B one. A consumer can take offense at a vendor's behavior, while in a similar B2B situation a behavior might be shrugged of as "just doing business."
With all that said, it ought to be easier to produce B2B CRM systems focused on operational standards, yet deployment of good operational CRM systems seems to lag right now. Exceptions show up in customer service in companies like RightNow (kudos for the Magic Quadrant), Salesforce and others dedicated to building knowledge bases that are accessible and searchable from multiple channels.
In the best examples of B2B service, vendors are using social technologies to capture customer needs and collective solutions and then make them useful and available to others. This neat trick enables vendors to actually capture intellectual property (IP) from normal conversations. The IP is recycled through the cloud Test Drive the Public Cloud for $1. Windows & Linux Cloud Hosting. Click Here. support infrastructure, resulting in lower service costs and, presumably, customers that are happier because their issues are quickly resolved.
Salesforce, with its Sales Cloud, also applies social ideas to B2B selling with positive results. Here the company gathers social IP from all sales encounters and distills common ideas from numerous encounters that can be applied in the future.

Do the Evolution

What's most interesting to me is the evolving realization that social ideas apply equally well to both kinds of relationships but in opposite directions. The B2C approach is to socialize the relationship with the customer by gathering data from the market and analyzing it for common trends. Understanding customer trends enables B2C vendors to extract information they can apply in future encounters. Sales Playbooks, a term popularized by Kadient and some others, are the distillation of customer reactions to vendor sales initiatives and materials. From a playbook a vendor can plot a sales strategy with confidence of being on the right track.
In comparison, B2B vendors are beginning to socialize the organizational, e.g. operational, response to the customer. Chatter, another Salesforce invention, socializes the vendor organization. In a B2B situation, a vendor organization knows that operational excellence is critical to most relationships. Socializing the customer relationship from within the vendor organization simply provides the necessary and immediate stimuli for personnel to take appropriate actions.
That may sound like a mouthful, and it is, but the net of all this is an easier take-away. The B2C and B2B relationships are fundamentally different and lately, we've given a lot of attention to the former and maybe not enough to the latter. The social approaches to each are diametrical opposites but once we get our heads around that essential idea, I think we'll be more successful in the B2B world.
Finally, who drives the relationship -- B2C or B2B? I think it's a smart vendor who enables the customer to believe he or she is in the driver's seat.

If Customers Will Pay, Why Aren't We Selling?

Various consumer surveys indicate that customers of all stripes have two minds about price and customer experience. Both are important, but in different ways, at different times and in different degrees based on the customer. You don't want to have to compete on price, so how do you change the emphasis back to the experience?


Do customers suffer from a split personality? I say this not because of encounters with clearly rattled fellow shoppers during the holiday season. I say it because of the numbers that consistently come out when customers are surveyed -- and the other numbers that seem to be in the forefront of most buyers' minds.
The latest survey (neatly summarized by 1to1 Media's Tom Hoffman here) was done by Harris Interactive (Nasdaq: HPOL) on behalf of RightNow technologies. It shows a similar result to surveys done in the past: Customer service is a big deal when it comes to customer retention -- and customer defection, for that matter.
The annual Customer Experience Impact Report revealed that, as has been the case in the past, customers value good experiences and reward the businesses that deliver them. For example, 86 percent of U.S. adult customers will pay more for a better customer experience, and almost three in four said that friendly employees or customer service representatives made them fall in love with a brand.
By the same token, failure to provide good experiences can devastate a business. A whopping 89 percent of U.S. adult customers who have received a poor customer experience have switched to a competitor. Half of those polled said they would bolt if a customer service inquiry was not answered within a week. And four out of five customers who shared complaints about poor experiences online had their complaints ignored by the businesses that sparked them.
Obviously, customer experiences -- and customer service, in particular -- plays a major role in retention. However, when poll questions aren't built around customer experience questions, customers give a different answer. Time and again, when customers are asked why they make buying decisions, price bobs to the top of the list.
The common wisdom is that experience is a B2C thing, and price is a B2B thing -- and indeed, recent surveys like this one have confirmed how important price is in B2B buying.

Experience vs. Price
But that's not always the case. As a reporter for VARBusiness in the early 2000s, I was astonished at how many large sales were made by technology vendors and resellers based on experience-related activities -- like the reseller who opted for one vendor over another in a huge deal not because of price, or because of the quality of the products, or any other factors directly related to what he was buying, but instead because one vendor took him golfing. It was an experience-based decision. This reseller owned his business and could be frank in discussing his reasons; I suspect that an employee who made such a decision would go back to the language of price, product features and other conventional factors for job security reasons.
So customers of all stripes have two minds about this -- price and experience are both important, but in different ways, at different times and in different degrees based on the customer. You don't want to have to compete on price, so how do you change the emphasis back to the experience?
This is the tough one: How do you make customer experience -- a driving force in customer decisions that seems to be getting stronger -- a tool for customer acquisition rather than only customer retention?

Telling the Story

It's a matter of telling your story -- something that many otherwise great companies have trouble with. But today, it's really a matter of completing the loop: If you have delivered good customer experiences, you need to find ways to communicate that to other customers looking for good customer experiences. You need to be active about it, and you need a team that fully understands the value those experiences bring for both your business and your customers.
The good news is that technology makes this easy today. Both happy and disgruntled customers are easier than ever to find thanks to social media -- and that usually makes them easier to contact, too. Just as service needs to focus on helping customers who voice problems on social media, so should marketing work with customers who express their delight with their interactions with you.
From there it's up to your business to get creative. Case studies and testimonials are ways we show off successes already -- why can't they be used to talk about the experience customers have had with your business? Treat these customers as peers and treat them to previews, special events and other perks; they will reward you with additional good words about how you treat them in social media.
Beyond that, it's time businesses who have nailed down customer service and customer experiences to tell their potential customers about it in an up-front fashion. Customers are now sophisticated enough to understand these concepts, so appealing to them around your ability to offer a better, easier, more enjoyable experience is a message they already understand. And actively shifting the discussion to experience is a great way to keep the conversation from starting with price.
If 86 percent of customers are willing to spend more for a better customer experience, it's time to focus first on delivering that experience and then on ensuring that customers and potential know that experience can be theirs.

When B2C and B2B Worlds Collide

In 2012, companies will need to transition their interactions with customers from a handshake to a conversation to follow the changing expectations of society. In order to do this, companies will utilize real-time commerce technologies to reach not just the customer, but the end user as well.


Having spent more than 20 years in the tech industry, I've seen many trends (and related buzzwords) come and go. One trend that I continue to see each year is the "consumerization of IT." While it hasn't always been referred to by that label, consumer demand has manifest itself across a variety of sectors in the industry, from PCs and email to the cloud Test Drive the Public Cloud for $1. Windows & Linux Cloud Hosting. Click Here.. Today, an obvious example of this is the desire to connect personal smartphones and tablets to a secured business network.
As this trend continues to make its way to the cloud, we're starting to see consumerization shift the way businesses interact with each other and their customers. Customers are exhibiting behavior much like employees and are leveraging consumerization of technology to find new ways to interact, obtain information, and get connected with external entities such as vendors, service providers, applications and more.
Evolving expectations around real-time visibility throughout the value chain and pressure to achieve lower TCO by deploying cloud-based business solutions will be big themes this year. This type of multi-enterprise collaboration and connecting with customers and partners, coupled with the "power of now" mentality will be pervasive.
Keeping these disruptive shifts in mind, here's what I believe is in store as 2012 unfolds:


1. Enterprise Resource Planning systems (ERPs) will focus on delivering integration networks targeting vertical industries.
In their ongoing effort to improve collaboration and process automation, both on-premises and cloud-based ERP and CRM vendors will look to the cloud to build their network communities as a way to extend their end-to-end business processes, as well as deliver incremental value to customers.
In 2012, we will see vertical industry networks increase adoption and drive tighter collaboration across participants, particularly in the areas of e-commerce and process visibility. The power of the network and the community will continue to accelerate exponentially as the number of network participants increases.
2. Global economic uncertainty will prevail and drive companies to get even closer to existing customers.
With economic uncertainty extending into next year and a major U.S. presidential election on the horizon, companies will focus on maximizing their relationships with existing customers and partners as a significant contributor to top line financial performance.
We will see greater focus on solving customer needs, adapting solutions to fit their requirements, and providing new ways to deliver value without forcing them to change the way they currently do business. Companies are flagging these areas of opportunity by finding ways to leverage existing customer infrastructures with minimal incremental investments.
3. Consumerization of IT drives real-time end user visibility tools.
With the rise of social networks, expectations for how we connect and communicate have evolved. People are accustomed to constant communication in both their personal and professional lives and will often modify old ERP systems with user-friendly tablet and phone applications.
In 2012, companies will need to transition their interactions with customers from a handshake to a conversation to follow the changing expectations of society. In order to do this, companies will utilize real-time commerce technologies to reach not just the customer, but the end user as well.
4. Cloud Total Cost of Ownership (TCO) will remain compelling: Companies will continue to adopt cloud-based solutions primarily to reduce overall IT costs.
In the new year, TCO will continue to be the primary driver of cloud adoption due to scalable costs and consumption models offered by cloud vendors that simply cannot be matched by on-premises solutions.
A close second driver of adoption will be the need to drive costs out of critical business processes through automation and integration throughout the extended enterprise.
5. Enterprises will gain confidence in the cloud and migrate on-premises apps to the cloud.
As cloud computing continues to evolve and security standards are established during the year, enterprises will see the cloud as a viable option to run business-critical systems.
As large and mid-size organizations face significant upgrades with on-premises ERP applications and carefully assess business value vs. upgrade costs, they will find compelling justification to move more holistically to the cloud.

CRM for the Tourism Industry


  As competition intensifies in the industry, tourism stakeholders increasingly rely on CRM to differentiate themselves from competitors by delivering customized offerings, and to strengthen relationships by treating their customers better. Whether you are a Provincial Marketing Organization (PMO), a Destination Marketing Organization (DMO), or a tourism operator responsible for promoting Canada or a specific region as a primary tourism destination, you can benefit from CRM technology to support your operations. Microsoft Dynamics CRM can help you:
  • Leverage analytics to get a snapshot of current travel preferences and spending patterns
  • Automatic calculation of marketing effectiveness and ROI
  • Target investments to the most impactful marketing activities
  • Enhance collaboration with other tourism stakeholders by increasing accessibility and improving communications
  • Enforce consistent branding and messaging across touch points
  • Create automated marketing workflows that eliminate repetitive manual tasks
  • Improve inefficient processes by creating and monitoring workflows
  • Capture leads, subscribers, or literature requests directly from the web
  • Set-up and manage every aspect of FAM trips, conferences, or other events with powerful event management capabilities
  • Monitor and analyze customers’ conversations on social networking sites
  • Provide real-time status updates (event, etc.) using Twitter
  • Solicit and act on customer feedback

CRM TDI Case Study

Travel Dynamics International (TDI) provides luxury cruises based around cultural and educational themes. For 10 years, the company relied on a custom-built reservation and booking system. However, this system lacked built-in tools for sales, marketing, and customer service. Employees used a variety of nonintegrated applications to perform daily tasks, restricting TDI’s ability to automate processes to improve efficiency. After spending an average of U.S.$50,000 a year to maintain its aging system, the company opted to implement a customer relationship management system. TDI chose Microsoft Dynamics® CRM based on its ease of use and the flexibility offered through xRM, the application development framework that underpins the solution. Now, TDI has seen a four-fold increase in workforce productivity, improved its customer service, and projects year-over-year sales growth of 10 percent.

Situation

Given the business model of Travel Dynamics International (TDI), it seems fitting that two brothers from the Greek island of Rhodes—site of one of the seven wonders of the ancient world—came together to form the company. Founded in 1969, the Manhattan, New York–based company pioneered the fusion of luxury cruise travel and theme-based education covering a range of topics, including ancient and medieval civilizations and the voyages of modern explorers.
TDI has a fleet of three small to midsize cruise ships with occupancy ranging from 34 to 114 passengers. The 40-person company sells an average of 60 trips a year—serving approximately 4,000 passengers annually—mainly through its partnerships with nonprofit-sponsoring organizations, such as the Association of Yale Alumni and the Smithsonian Institute.
From its inception, TDI has earned a reputation for its personalized service and exquisite attention to detail. The company provides elaborate catering and amenities, such as spas, exercise facilities, and private butler services.
To meet its sophisticated passenger reservation and program-planning needs, TDI engaged an independent software firm to develop a proprietary reservation system. Although this system, which TDI relied on for 10 years, met basic requirements for storing passenger and trip information, it did not include marketing, sales, or customer service modules. The lack of support for these functions hampered efficiency, limited visibility into customer and sales data, and introduced opportunities for error. Specifically:
  • Sales staff only sporadically tracked leads, using stand-alone spreadsheets, which prevented real-time visibility of prospects and analysis of conversion rates; this practice also meant that sales staff spent up to an hour each week compiling and rekeying data to create reports.
    TDI_operates_cruises_to_exotic_locations_worldwide.
    TDI operates cruises to exotic locations worldwide.
  • Accounting staff needed to manually reenter data from the reservation system into the company’s Sage Accpac accounting system. 
  • Customer service staff relied on a paper-based system for generating and distributing precruise mailings to travelers, which occasionally led to delays and missed deadlines.
  • Marketing coordinators often had to sort through dozens of records retrieved from multiple, nonintegrated systems to find the information they needed, complicating the process of building targeted campaigns.
Attempts to add functionality to the existing system to standardize and link business processes and simplify information sharing across departments proved costly. In one three-year period, the company spent an average of U.S.$150,000 to maintain and extend its aging system, with minimal return on investment.
Company leaders knew that TDI had outgrown its custom reservation system. But, they were initially skeptical that anything but a custom-built solution could serve its specialized business model. Also, the company hesitated to abandon a decade’s worth of investment in its former system. After several months of deliberation, the company ultimately considered the option of a packaged customer relationship management solution.

*
* With Microsoft Dynamics CRM, we can ensure that no leads fall through the cracks. And with more efficient and more targeted marketing, we’re better equipped to turn leads into loyal, long-term customers. *
Nikos Papagapitos, Manager of Technological Development and Special Projects, TDI
*
“We were looking for a solution that combined core sales and marketing automation functionality with maximum flexibility,” says Nikos Papagapitos, Manager of Technological Development and Special Projects at TDI. “We needed to be able to quickly modify the system to handle our reservation process so that we could connect all the parts of our business—from sales and booking, to managing trip itineraries, to marketing—to drive customer loyalty and repeat business."

Solution

TDI evaluated customer relationship management solutions from Microsoft, Sage, Salesforce.com, and Oracle. The company ultimately chose Microsoft Dynamics® CRM based on a number of factors, including ease of use and integration with the desktop productivity and communication applications that TDI staff use each day, including Microsoft® Office Word and Microsoft Office Outlook®.
Another key decision driver for TDI was the extensibility offered through xRM, the flexible application development framework of Microsoft Dynamics CRM. With its deep expertise in tailoring Microsoft Dynamics CRM to fit a variety of unique business models, Microsoft Gold Certified Partner Infinity Info Systems effectively demonstrated this capability to managers at TDI. “The ability to quickly build new line-of-business applications through xRM was something the other customer relationship management solutions couldn’t match,” says Papagapitos.
Managing Reservations Infinity Info Systems helped TDI make changes to the database and user interface components of Microsoft Dynamics CRM to optimize its reservation-booking process.
The team modified the data model to support a passenger-centric approach to handling reservations, a change that TDI deemed too difficult and costly to complete in its former system. Now, customer profile data is automatically associated with tour package information in a single database, enabling TDI agents to complete and update bookings more quickly. This change also enables the company to track shared data across its customer base on a number of specified dimensions, such as a passenger’s connection to a particular travel agent or sponsoring organization. In addition, TDI can now track passenger transaction history data to more precisely market tour packages based on individual preferences.
“xRM simplifies access to powerful application development resources, such as Microsoft SQL Server® and the Microsoft .NET Framework. So, we were able to help TDI build its reservation management application on Microsoft Dynamics CRM much more quickly than if we tried to custom build it ourselves,” says Infinity Info Systems’s Matthew Bogan, who oversaw the TDI engagement.
Tracking Ship Inventory and Tour Program Details
TDI uses Microsoft Dynamics CRM to track cabin inventory across its fleet. This information, which is automatically updated each time an agent completes a reservation, is instantly available to employees throughout the organization:
  • Company managers can log on to the system to obtain a snapshot of inventory utilization.  
  • Booking agents can see current inventory by ship and easily access details about available suites, such as square footage and whether or not the cabin offers a private balcony.
  • Sales associates and managers can access up-to-the-minute sales figures to determine what packages need to be further promoted.
TDI also uses the solution to track itinerary and tour program information, including lecture schedules, details about presenters and guides, shipboard entertainment activities, land tours, and the various excursions available through each themed vacation package. Previously, the company maintained this information in as many as three nonintegrated applications. Now, the company stores it in a centralized database and any updates are automatically propagated throughout the system.
Providing a Hub to Connect Business ActivitiesFor TDI, the solution serves as a hub to link all of its core business processes:
  • Sales associates use the lead-tracking tools to record detailed information about prospects and to organize and prioritize follow-up activities for each new opportunity.
  • Customer service and tour program teams rely on automated workflows to guide the creation, review and approval, and distribution of precruise mailings to booked passengers.
  • Marketing coordinators use the system to drill down into customer profiles, examining transaction and correspondence histories and identifying key relationships among its customer base to create targeted campaigns.
To more tightly connect its business activities and streamline operations, TDI integrated Microsoft Dynamics CRM with its Sage Accpac accounting system through the Scribe Insight connector. Now, sales orders are automatically converted into reservations and recorded as invoices—all inside Microsoft Dynamics CRM. Accounting staff can then flow invoice data into the Sage Accpac system to update accounts payable records and reconcile the general ledger.

Benefits

“Since deploying Microsoft Dynamics CRM, our people can complete tasks up to four times faster than before. And we’re projecting a 10 percent year-over-year gain in sales volume through improved sales lead–tracking and marketing capabilities,” says Papagapitos. In addition, TDI can now provide more responsive and consistent customer service because its people share access to current, accurate information stored in a centralized database. And, with the ability to quickly modify and extend Microsoft Dynamics CRM, the company has dramatically reduced its IT maintenance costs and is better able to adapt to changing business needs.
Increased Productivity by Up to 400 PercentThrough streamlined reporting, the elimination of numerous manual workflows, and seamless integration between Microsoft Dynamics CRM and applications in the Microsoft Office system, TDI has boosted productivity across its operations by up to 400 percent.
  • Agents can book reservations up to four times faster because customer information is automatically linked in the system with tour package details. 
  • Sales associates can create a weekly sales summary report in a matter of minutes, which previously took up to an hour to complete. 
  • Customer service personnel have cut the amount of time needed to complete delivery of customer mailings by 50 percent by relying on automated workflows and the ability to quickly merge mailing lists with documents.
  • Marketing coordinators can now search a single database to create targeted campaigns, saving an average of 10 hours of development time for each initiative. 
  • Accounting staff avoid hours of duplicate data entry each week through the connection between Microsoft Dynamics CRM and the company’s Sage Accpac system.

*
* The ability to take advantage of xRM to quickly build out new applications makes us more agile as a company.  *
Nikos Papagapitos, Manager of Technological Development and Special Projects, TDI
*
Projected Annual Gain in Sales Volume of 10 Percent
TDI projects a 10 percent year-over-year increase in the number of tour packages it sells based on several factors. Lead-tracking tools in the system provide a way for sales people to track and prioritize opportunities in a more systematic way. Moreover, company leaders now benefit from real-time visibility into all leads contained in the system. They can contribute their own contacts and advise sales associates to follow up on an emerging opportunity based on new information. “We’ve already improved our conversion rate on new leads based on the ability to track them in a centralized database, and we expect this trend to continue,” says Papagapitos.
In addition, the company’s marketing team uses the system to identify shared relationships, buying trends, and key referral sources to build more sophisticated and effective direct-mail campaigns. “With Microsoft Dynamics CRM, we can ensure that no leads fall through the cracks,” says Papagapitos. “And with more efficient and more targeted marketing, we’re better equipped to turn leads into loyal, long-term customers.”
Improved Customer Service
Because sales associates, tour program managers, and customer service staff all work in the same system, TDI provides high-quality and thoroughly consistent service at every touch point with its customers. The company processes and confirms reservations more quickly, delivers its precruise information packets on schedule, immediately provides itinerary updates to passengers, and avoids sending contacts duplicate marketing materials. “Because Microsoft Dynamics CRM helps us connect our people and our business in practically every way, we can provide the kind of outstanding service and attention to detail that our customers expect,” says Papagapitos.
Saved $50,000 a Year Through Greater IT Self-Sufficiency
By moving to Microsoft Dynamics CRM, TDI immediately eliminated the annual expense of maintaining and upgrading its former system, which totaled an average of $50,000 a year. This cost included regular system maintenance and a number of ongoing IT projects that outside consultants performed. In addition to removing this expense from its annual operating budget, TDI can now handle the majority of its IT needs with internal staffing resources. Papagapitos attributes this in large part to his team’s familiarity with the technologies exposed through the xRM application development framework alongside training and support from the Infinity Info Systems team. “The ability to take advantage of xRM to quickly build out new applications makes us more agile as a company,” he says. “And because we don’t have to outsource these projects, we can retain complete control of our data. That’s a huge win for us.”

Friday, January 20, 2012

Is “Social” the Glue that Can Fix B2C CRM?


I am sure there are a lot of vendors, practitioners and users that will disagree with me – but I am not a fan of the state of B2C CRM. To explain, I think that there is a HUGE difference between effectively managing the well documented B2B sales relationships in a CRM system versus the usually anonymous, high volume transaction levels in the B2C world.
I was reminded of my feelings on B2C CRM when I read this E-Commerce Time article that noted how hotel chains are lagging in CRM adoption. I’ll get back to this in a bit.
The reason I feel so seemingly negative about B2C CRM is because up until a few years ago – it was nearly impossible to make use of the consumer data passing through B2C operations. The amount of register data, phone calls around product issues, warranty data, program registration etc. alone was too great for older systems.
And all of this isn’t even anonymous data. I started my analytic career in retail journalism, and would often cover customer loyalty programs. When I actually was able to get people to talk off the record about what kind of customer insight analysis was being performed on all the data these chains were generating – the response was usually something like “Oh, that sounds like a great idea!” There was simply too much data – enough to bottleneck any system 15 years ago.
Now, lets compound that issue with data from web traffic, email campaigns, social media, blogs etc. – and it is enough to make anyone’s head spin.
So, I am not down on B2B CRM in theory – just feel it was hard to do well in practice. And this is a completely different issue than having to give me account data 15 times to Citi when I call them.
But, is there an answer?  I think there is…maybe.
Social media does a lot of cool things. But one thing it does is allow B2C providers to finally have the ability to herd cats, as it were. A lot of B2B folks are still looking at Facebook communities with a slanted eye – and I understand that. These B2B guys already know who they’re dealing with – they only care about more leads.
Now, B2C companies have the issue of finding their user communities, and in them ferreting out advocates and other valuable customers. By finding out a) what sites your target market naturally attracts towards and b) how to create destinations they love, you have made two major strides in doing what B2C CRM could not do well a decade ago.
What social media and networks allow us to do in the B2C world is create a fluid, yet valuable database (akin to the neatly structured relational databases powering B2B CRM) of our customers. Their likes and dislikes are valuable to B2C CRM – just as past purchase history and SLAs are to B2B.
A nice example of even hotel chains “getting it” in terms of social building out their CRM initiative  Gaylord resorts (see, i told you I’d bring this all full circle). I recall CRM magazine editor Lauren McKay having tweeted about wanting cornbread while at a conference at the resort. The resort was following the hashtags and made sure to make its mark on Lauren…a great example of making the most of social to engage, and create advocates out there in your consumer base.
And again, the great thing is that if you’re in the B2C world, chances are your customers are already “out there” in the social realm, just waiting to be invited into an engagement with your brand…

Plenty of Room at the Inn for Hotel CRM Systems

Rewards programs are common among large hotel chains, but they just scratch the surface in terms of CRM's capabilities in nurturing customer loyalty. They could keep track of information on room preferences, for example. Or keep tabs on special needs such as non-allergenic pillows or other details that "tell the customer that they are valued," said Prism Partnership's Maureen O'Hanlon.


Pick a room -- any room. There are lots of choices of places to stay for travelers in the U.S. In fact, there are 4.4 million guestrooms across the country, according to the American Hotel and Lodging Association. And that's a problem. Competitors in the hospitality sector need some kind of an edge to gain new customers and, even more importantly, to keep their current customers coming back to the same hospitality brand whether the actual guestroom is in New York, Denver, or anywhere else.
That's where an active CRM system fits in. For the major hotel chains, utilizing CRM is a way of life.
"For the really big hotel chains, the use of CRM is very robust, but they tend to focus almost exclusively on using CRM tools for loyalty programs," Maureen O'Hanlon, senior partner at the Prism Partnership, told CRM Buyer. Hotel loyalty programs are designed to build repeat business with frequent-guest rewards, borrowing from the model of airline frequent flyer programs.
"I'd say 95 percent of the hotel programs are focused on frequent travelers," O'Hanlon said. "The hotels are trying to fill rooms that would otherwise go empty just like the airlines are trying to fill seats."

Hotels Lag in CRM

 Generally, the hotel industry programs feature such rewards as extended stays at a discount or for free, or offering discounted rooms at a later date based on points accumulated from frequent stays at a facility operated by a particular hotel chain. However, moving beyond the free room concept into broader and more innovative applications of CRM has been problematic in the industry.
"The large chains and casinos are more involved with CRM than the small brands and independents," Jason Price, executive vice president of Hospitality e-Business Strategies, told CRM Buyer, "but the entire industry lags behind the airlines and online travel agents."
Regarding CRM systems, "the online travel agents get it, and devote a lot more attention to this side of the business than the hotel industry at large," said Price. "The cost and need for hotels is greater than ever, and yet hotels are still the slowest and most reluctant to apply simple CRM exercises to their daily business practice."
As a case in point, Price cites the example of a small Midwestern group of hotels that generated more than US$1 million in extra revenue by simply upselling their hotel suites through their reservation confirmation messages. After a customer made a reservation, the hotel sent a confirmation letter with the offer to upgrade from a standard room to a suite for a modest additional fee.
"Any hotel can do this, and yet most do not," Price said.
More recently, larger hotels have been tweaking their rewards programs by offering incentives beyond discounted or free rooms.
"They are getting more sophisticated and using tie-ins to the hotel gift shop, or the hotel restaurants, or other types of merchandise offers," O'Hanlon said.

Tracking Customer Behavior

However important rewards programs might be, they are still only one aspect of CRM. Equally important is the need to learn more about customer behavior so as to design offers tailored to a type of customer or even to individual customers.
"The gaming resorts and casinos have done some innovative things in terms of enhancing the customer experience," Suzanne Clayton, director of gaming and hospitality at SAS Institute, told CRM Buyer.
When guests check in at Harrah's Casinos, for example, they are given a casino card that acts like a credit card and can be used to gain access to gaming rooms and machines, the resort spa, restaurants and other places within the casino, said Clayton.
"As a result, the casino gets a real-time history of where the customer is spending his time on the site, and they can offer rewards or discounts and other promotions based on those patterns," she explained. "Because it's real-time, they can even offer the incentives during the current stay or as an inducement to gain repeat business."
The larger hotel chains are beginning to make progress in providing a better customer experience by using CRM tools, O'Hanlon said.
"They are improving the use of all the data they have on customers in terms of guest histories, and demographic or psychographic information," she said.
The hotels, for example, can break out information on room preferences that are suitable to families with small children or teenagers; keep tabs on special needs such as non-allergenic pillows or other details that "tell the customer that they are valued," O'Hanlon pointed out.
Some chains are better at such targeting than others she noted, but all seem to see the need to enhance their CRM capabilities.
The large hotel chains, of course, do not account for the entire hospitality sector. In fact, there are more than 49,000 guest properties in the U.S. that have a minimum of 15 rooms, according to the American Hotel and Lodging Association.

Second Tier Offers Big CRM Potential

"Once you get below the big outfits, the whole sector has underutilized the tools available through CRM programs," Gregg Hopkins, president of Libra OnDemand, told CRM Buyer. A little more than a year ago, Hopkins established his company to provide CRM assistance not only to large hotel chains but also to mid-sized and smaller firms in the sector.
"A lot of hotels at the mid-size level or below think CRM means using email to contact customers, and that's it," Hopkins said. However, the technology and programs exist for hospitality providers at this level to implement more extensive CRM programs.
"It's possible for these hotels to gather the necessary data to improve their customer contact and develop programs," he added. "In fact, a rewards program might not be appropriate, because they don't have a lot of units in their chain -- but there are other things they can use to improve the ability to recognize customers and provide a good experience. But right now there's a lot of educating to be done for these hotels in terms of using CRM."
SalesForce.com is Hopkins' platform of choice for CRM. The hosted model lets hotels implement programs with a modest investment, he noted.
Systems can be deployed for $75,000 to $120,000 per year for a single property, Hopkins said. In a recent advisory, he advocated the enhanced use of hotel Web sites as the focal point for building a CRM system at an affordable cost.
"Today's technologies allow Web sites, regardless of the hotel company's size, to feature CRM capabilities by seamlessly integrating the Web site with the customer relationship management application," he said. "Customers accessing the Web site can take the initiative to manage their personal information, update their preferences, and track rewards in a safe, secure environment that they control."
It's clear that computerized reservation systems and rewards programs are almost universal in the hospitality sector, but hotels at all levels can do much more in capturing and managing guest information and designing customer-friendly programs through the efficient use of CRM tools.
"A lot of money is being thrown at CRM programs," O'Hanlon said -- but that doesn't mean CRM usage has reached its full potential.

"There is a lot of data being generated, but it depends on how it is used," she emphasized. "The tools exist. It's a matter of chief executives figuring out what their goals are."  

 

GQueues Mobile: a case for the HTML5 web app

By Cameron Henneke, Founder and Principal Engineer of GQueues

This post is part of Who's at Google I/O, a series of guest blog posts written by developers who are appearing in the Developer Sandbox at Google I/O.


With the proliferation of mobile app stores, the intensity of the native app vs. web app debate in the mobile space continues to increase. While native apps offer tighter phone integration and more features, developers must maintain multiple apps and codebases. Web apps can serve a variety of devices from only one source, but they are limited by current browser technology.

In the Google IO session HTML5 versus Android: Apps or Web for Mobile Development?, Google Developer Advocates Reto Meier and Michael Mahemoff explore the advantages of both strategies. In this post I describe my own experience as an argument that an HTML5 app is a viable and sensible option for online products with limited resources.

Back in 2009 I started developing GQueues, a simple yet powerful task manager that helps people get things done. Built on Google App Engine, GQueues allows users to log in with Gmail and Google Apps accounts, and provides a full set of features including two-way Google Calendar syncing, shared lists, assignments, subtasks, repeating tasks, tagging, and reminders.



While I initially created an “optimized” version of the site for phone browsers, users have been clamoring for a native app ever since its launch two years ago. As the product’s sole developer, with every new feature I add, I consider quite carefully how it will affect maintenance and future development. Creating native apps for iOS, Android, Palm, and Blackberry would not only require a huge initial investment of time, but also dramatically slow down every new subsequent feature added, since each app would need updating. If GQueues were a large company with teams of developers this wouldn’t be as big an issue, although multiple apps still increase complexity and add overhead.

After engaging with users on our discussion forum, I learned that when they asked for a “native app,” what they really wanted was the ability to manage their tasks offline. My challenge was clear: if I could create a fast, intuitive web app with offline support, then I could satisfy users on a wide variety of phones while having only one mobile codebase to maintain as I enhanced the product.

Three months ago I set out to essentially rewrite the entire GQueues product as a mobile web app that utilized a Web SQL database for offline storage and an Application Cache for static resources. The journey was filled with many challenges, to say the least. With current mobile JavaScript libraries still growing to maturity, I found it necessary to create my own custom framework to run the app. Since GQueues data is stored in App Engine’s datastore, which is a schema-less, “noSQL” database, syncing to the mobile SQL database proved quite challenging as well. Essentially this required creating an object relational mapping layer in JavaScript to sit on top of the mobile database and interface with data on App Engine as well as input from the user. As a bonus challenge, current implementations of Web SQL only support asynchronous calls, so architecting the front-end JavaScript code required a high use of callbacks and careful planning around data availability.

During development, my test devices included a Nexus S, iPhone, and iPad. A day before launch I was delighted to find the mobile app worked great on Motorola Xoom and Samsung Galaxy Android tablets, as well as the Blackberry Playbook. This fortuitous discovery reaffirmed my decision to have one codebase serving many devices. Last week I launched the new GQueues Mobile, which so far has been met with very positive reactions from users – even the steadfast “native app” proponents! With a team of developers I surely could have created native apps for several devices, but with my existing constraints I know the HTML5 strategy was the right decision for GQueues. Check out our video and determine for yourself if GQueues Mobile stacks up to a native app.

Thursday, January 19, 2012

CRM: difference of B2B vs. B2C model

All CRM systems are not created equal, and that's good news for companies that sell more to consumers than to businesses. However, it's crucial to understand the differences between B2B and B2C CRM in light of each company's individual requirements. Three consistent themes appear and can be used as a baseline for selecting tools to help B2C marketers: speed, process and persistence.


CRM solutions have a long history of helping B2B marketers achieve greater ROI from their leads. Yet for companies that sell their products and services direct to consumers, CRM solutions frequently miss the mark. A quick Google (Nasdaq: GOOG) search for CRM helps prove this: The search returns plenty of B2B products, but sifting through the results to find solutions designed specifically for the B2C sale is like finding a needle in a haystack.
Why is this? To answer that question, it's first necessary to understand the unique differences between B2B and B2C sales. Of course, there are many formulas for sales and marketing success, but seven aspects that are common to both B2C and B2B sales effectively illustrate the differences between them:

    1. Speed of Sales Process -- A B2C sale is typically fast, usually weeks or months; a B2B sale is much slower, usually months or years.
    2. Number of Decision Makers -- There are usually one or two decision makers in a B2C sale; there may be a dozen or more involved in a B2B sale.
    3. Simplicity of Buying Process -- A B2C sale is relatively simple; a B2B sale is usually more complex.
    4. Quantity of Leads -- A B2C sale starts with more leads; a B2B sale will have fewer leads to manage.
    5. Role of Emotion -- B2C sales frequently involve emotion on the consumers' side; a B2B sale is typically driven by a business decision rather than by emotion.
    6. Value of Sale -- The total value of a B2C sale is relatively small -- hundreds or thousands of dollars; a B2B sale could be thousands or even millions of dollars.
    7. Uniformity of Offer -- B2C sales are typically a uniform product offering; B2B tend to be a more customized product offering.

It is clear that there is a distinct difference between B2C and B2B sales. So doesn't it make sense that sales and marketing professionals should leverage tools that are designed to address the unique aspects of each sale? To make matters worse, there is much confusion about the definition of CRM that frequently leads B2C marketers to implement solutions that either don't work or are overkill.

 What 'CRM' Means

CRM is typically defined as a solution used to aid a company in the management of customers and sales prospects. That means that CRM can be a useful tool for a variety of business functions, from lead generation to customer service.
For companies that are specifically looking for ways to track and convert more leads, a CRM solution may be overkill. Moreover, CRM systems fundamentally are designed with a hierarchical structure that is not required for B2C companies. Consider this example:
Company A is a B2B business selling copiers to other businesses. Company A uses CRM to track its prospects and clients at a variety of stages of the client lifecycle. First, Company A is already selling copiers to a certain division of one client. It is also trying to win a contract from an entirely different division of the same company. Having a CRM system is quite useful here because the client is stored as a "company" record, and each person in the company is tied to that record as a "contact." A "company" can have many "contacts," creating a hierarchical structure.
Company B is a B2C insurance company that sells auto insurance policies to individuals or families. Company B uses the same CRM software as Company A, but is burdened by the significant overhead required to manage the hierarchical structure. Company B simply has a single record for each customer looking to get an insurance policy. Having the added capabilities of a CRM system is not useful and creates unnecessary steps in managing its leads.
Referencing the seven sales and marketing rules above as they relate to the B2C sale, three consistent themes appear and can be used as a baseline for selecting tools to help B2C marketers:

    1. Speed -- At every stage, speed is essential when dealing with a B2C sale. Leads must be received in real-time and distributed to sales people quickly; initial contact must be made in minutes.
    2. Process -- Having a consistent and repeatable process is critical to scale a B2C sales operation; that means everyone works leads the same way, so sales managers and marketing executives can track results.
    3. Persistence -- Selling to consumers is very competitive. To be successful, B2C companies will need to have persistent long term follow-up strategies in place.

Speed Matters

The first key driver is speed. There has been much research about the importance of speed in the sales process and, in particular, speed-to-contact. A recent MIT study found that leads contacted in five minutes convert 22x more often than after 30 minutes. When evaluating tools to support B2C sales, look for solutions that offer
  1. real-time lead source integrations;
  2. automatic rules-based lead distribution;
  3. lead management and pipeline reports;
  4. email and screen pop notifications; and
  5. key performance metrics tracking.

Process for Conversion

The second key driver is process. Although many marketers believe lead quality is the silver bullet for success, sales process also plays an important factor in converting leads. Long-term consistent follow-up can have a dramatic impact on overall conversion rates. B2C companies should look for solutions that offer the following capabilities to optimize the sales process:
  1. easily configurable sales workflow;
  2. custom lead form and call dispositions;
  3. automatic lead nurturing;
  4. milestones tracking; and
  5. scheduled reports and email delivery.

Practice Persistence

The third key driver for B2C sales and marketing effectiveness is persistence. Multiple call attempts greatly increase the likelihood that leads will be contacted; the optimal number to maximize contact rates is as many as six calls. That means it is very important to be persistent. With persistence being a key driver for success, it's easy to see how important it is for B2C companies to have tools that support this behavior to maximize return on their marketing spend. The most successful B2C organizations leverage tools that incorporate these features:
  1. lead scoring and ranking;
  2. automatic call prioritization;
  3. follow-up drip emails and reminders;
  4. lead recycling and routing; and
  5. follow-up reminders and emails.
There is clearly some overlap between what is useful for B2C and B2B marketers. For companies that borderline the characteristics of one or the other, traditional CRM may be a good fit. However, for B2C organizations that closely align with the attributes described here, there is more than enough evidence to support the need for specialized B2C tools.
The good news is they do exist. In particular, specialized B2C solutions are available in some verticals like mortgage, insurance and education. Furthermore, as more B2C companies begin to demand solutions that are specifically designed to support their unique business processes, better products will become available.
For now, start by doing research; understand what type of company you are and then look for tools that support your business processes. Ask the right questions to find tools that work for you.

Wednesday, January 18, 2012

How to Read the Source Code of Chrome and Firefox Extensions


I am writing a Chrome extension (more on that next week !) and so far the experience has been excellent. Google has a decent set of API and has a good tutorial to get you started on developing extensions. But other than that I did not find many good resources in net for developing Chrome extensions. So I used the old way of reading the code of other good Chrome extensions to learn the ropes. Since the extension I write emulates a Firefox extension, I had to read some code of Firefox extensions too !
So in this post, I will talk about how to go about reading the code of Chrome/Firefox extensions and experimenting with them. I intend to write a more detailed post of developing/debugging Chrome extensions once I finish my extension.

A Word Of Caution

1) It is quite easy to mess with the extension’s application logic or its internal data structures. So be a little cautious when you are playing with the extension internals.
2) Also when you read the code, you might be tempted to reuse some of them. Just cross check with the extension’s license. Most of them have fairly liberal licenses. But it does not hurt to verify.
I will talk about Chrome extensions first and later will discuss the Firefox extensions.

Getting the Chrome Extension Id

One of the first things to know before playing with the extension is the extension id. There are two ways to know the id of an extension.
If the extension is installed in your computer, then you can get the id from the Extensions menu. Click on the wrench icon and select Extensions. In the Extensions page, each extension will be listed with some details like its name, description, version and most importantly an id. The id is a strange looking string with around 32 characters. For eg hoildcfdkjkefngkheffkiepkdcfdiok .
If you have not installed the extension, you can get the extension id by going to the extension’s page in the official Chrome extensions page . The extension id corresponds to the xxxx in the sample url – https://chrome.google.com/extensions/detail/xxxx.

Reading the Chrome Extension Source Code


I have two OSes in my system (Ubuntu and Windows 7). So I will explain the process for these two OS. But I am sure the process for other OS will be very similar.
In my Ubuntu system, for an extension with id say xxxx, the source code is located at ~/.config/google-chrome/Default/Extensions/xxxx . In this case Default is the name of my profile. If you have a different profile, substitute it. This is the root folder and it has child folder with the name of the version. Once you go in, you can see the extension code . Have fun !
In Windows 7, you can see the extension source folder at "C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\Extensions\xxxx" . Again replace username with your login name, Default with your profile name if you use alternate profile.
Some times, you do not want to install an extension to read the source code. In this case, all you need to do is to download the crx file. At Google’s office Chrome extension page, to download the crx file , go to the extension’s details page (which is of the format https://chrome.google.com/extensions/detail/extensionid ) . Right click on the "Install" button and select "Save Link As". You will get a crx file. Now all you need to do is to use unzip command to extract the contents. If you are in Windows , any extraction software that can extract zip files will do. It might whine about some missing headers. Ignore it. You will get the extension code in the extracted folder.

Playing with Chrome Extension’s Local Storage

One of the coolest feature in HTML 5 is Local Storage which allows to store application info in a hash like data structure (which is usually internally a SQLite database). Most of the extensions use it extensively. So you can learn a lot about their internals by exploring what they store in the local storage. Note that Local Storage usually contains information that are critical to the proper execution of the extension and tampering it is not a good idea !
In Ubuntu, you can take a look at the extension’s local storage file at "~/.config/google-chrome/Default/Local Storage". In Windows 7, you can look at the file at "C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\Local Storage". The local storage is nothing but a SQLite file and will have a name like "chrome-extension_xxxx_num.localstorage" where xxxx is the extension id and num is a number (usually 0).
The contents are stored in a table called "ItemTable". You will need a SQLite program to view its contents. I think, if you are in Lucid Lynx (Ubuntu 10.04) , you will already have it in the system (sqlite3) . Else you can install it via update manager. I am not sure what is the best program to view SQLite databases in Windows.
If you do not want to dirty your hand with command line tools , then check out instructions later at the section "Playing with Live Chrome Extensions" .

Playing with Chrome Extension’s Web Databases

HTML 5 also allows an extension to have arbitrarily structured databases. Currently I see only SQLite databases. For my extension, I really wanted to use databases instead of the local storage but I did not find enough good references on using Web databases. Also the problem of migrating one database version structure to another was a nightmare. So I did not invest much time in exploring databases. Again, I think very few extensions use Web Databases (None of the ones I sampled used it !).
In Ubuntu, you can see the database file at ~/.config/google-chrome/Default/databases . In Windows 7, you can see it at C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\databases. As above, this is a SQLite file and you can explore it using a SQLite database browser.

Other Stuff

As you have noticed, the folder ~/.config/google-chrome/Default (In Ubuntu) and C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\ (in Windows 7) have lot of good stuff. Play around the files. But be cautious as fooling around can cause the extension to malfunction and at worst, crash of Google Chrome.

Playing with Live Chrome Extensions

Chrome’s Developer Tools is a delight. It packs lot of very nifty functions. I will talk more about it in future. If you want to know all about a Chrome extension (especially Js files and local storage) without much pain, Developer tools is the way to go.
Go to the extensions menu (Wrench icon -> Extensions). Lets say you want to dig into extension xxxx. Go to the xxxx’s section in that page. You can see that there is a line "Inspect active views:" . And it usually lists "background.html" (or something similar like bg.html) . If you are viewing some other html file of the extension (say options.html, help.html etc) , then you will see them here too. But you should be able to see background.html (or some background file) always. Click on the link "background.html".
It should open Chrome’s Developer Tools which has many tabs. "Elements" tab has the page’s html content. "Scripts" tab displays all the js file included by the background file. You can read/view all the js file by clicking on the drop down or by using the left/right button. It also has a decent javascript debugger.
My favorite tab is however "Storage". It shows all the extension’s internal stuff like its local storage, web databases (if available), sessions and cookies. So if you want to view the local storage contents without using SQLite program, this is your (GUI) way. It will show all the keys and values. It even allows you to edit/delete the storage !
The last tab is "Console". Most of the extensions typically put lot of log info. So you can take a look at the console and get valuable information about the execution trace. Another thing that you can do is call the internal (JS) functions of the extension. The commands you type run in the context of the extension/page. Its a great way to tinker with the extension. I refrain from giving any direct example but it is trivial to experiment if you had some basic stuff with Firebug or something similar.
The other tabs are very useful but needs a lot more space to explain. But if your aim is to know the internals , then the tabs I mentioned are more than enough.

Reading Firefox Extensions

I did not dig much into Firefox extensions so this section will be brief. In the case of Firefox , getting the extension id is a bit tricky. So I primarily depended on grep to find the information. Most of the extension code will be at "~/.mozilla/firefox/<profile>/extensions/" (In Ubuntu). Most extensions have strange names although some popular ones have their named folder (eg ubiquity is under ‘ubiquity@labs.mozilla.com’. Ditto for foxmarks, listit, moonlight etc). Firefox extensions are also written primarily in Javascript although for UI you need to use XUL.

Misc Stuff – Dealing with Obfuscation

Some times you can see that the code is obfuscated. Some time the intent is to minify the file, some times it is not ! It may even be encoded using some simple scheme like base64. If you find that the code you want to read is unreadble, go to some JS beautifier site. My favorite is JS Beautifier . It is excellent, very flexible with lot of options and can even handle various packers.

Resources

There are lot of good resources available in net.
1. Google Chrome Extensions Tutorial
This page has a pretty good tutorial and a good API documentation . Their page on debugging had lot of useful information .
2. SQLite
If you are a command line person like me, you will want to read about SQLite to browse local storage or databases content. SQLite allows most basic SQL commands although the other commands are non standard (eg .tables, .schema etc) . Check out their docs.
3. Local Storage and Web Databases These are HTML 5 features and resources can be found in many places in the internet. 

Chrome Extension: how to capture selected text and send to a web service

For the Google Chrome extension, I need to capture selected text in a web page and send to a web service. I'm stuck!
First I tried a bookmarklet, but Chrome on Mac seems to have some bookmarklet bugs so I decided to write an extension.
I use this code in my ext:
function getSelText(){
    var txt = 'nothing';
    if (window.getSelection){
        txt = "1" + window.getSelection();
    } else if (document.getSelection) {
        txt = "2" + document.getSelection();
    } else if (document.selection) {
        txt = "3" + document.selection.createRange().text;
    } else txt = "wtf";
    return txt;
}
var selection = getSelText();
alert("selection = " + selection);
When I click on my extension icon, I get a "1". So I think the act of selecting outside the browser window is causing the text to not be seen by the browser as "selected" any more.
Just a theory....
thoughts?

==================================

You can do this by using Extensions Messaging. Basically, your "background page" will send the request to your service. For example, lets say you have a "popup" and once you click on it, it will do a "Google search" which is your service.

content_script.js

In your content script, we need to listen for a request coming from your extension, so that we send it the selected text:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.method == "getSelection")
      sendResponse({data: window.getSelection().toString()});
    else
      sendResponse({}); // snub them.
});

background.html

Now in background page you can handle the popup onclick event so that we know we clicked on the popup. Once we clicked on it, the callback fires, and then we can send a request to the content script using "Messaging" to fetch the selected text.

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function(response){
     sendServiceRequest(response.data);
  });
});

function sendServiceRequest(selectedText) {
  var serviceCall = 'http://www.google.com/search?q=' + selectedText;
  chrome.tabs.create({url: serviceCall});
}

As you have seen, I registered a listener in a content script to allow my extension to send and receive messages from it. Then once I received a message, I handle it by searching for Google.

Hopefully, you can use what I explained above and apply it to your scenario. I just have to warn you that the code written above is not tested, so their might be spelling, or syntax errors. But those can easily be found by looking at your Inspector :) 

5 google offline productivity apps


We Chromebook and Chrome users love web apps a lot, but we also hate them (occasionally) because most of them only works online.  I have pointed out this being a major drawback of Chromebook and Chrome OS in my previous posts, 9 Reasons why you shouldn’t buy a Chromebook and 5 things Chrome OS should learn from Joli OS.
But things could change.  We gradually see more and more offline web apps emerged in the Chrome Web Store.  In this article I’ll introduce 5 productivity and work related web apps that work without internet connection.  Choices are certainly endless, do let us know your favorite by leaving a comment here!

Offline Google Mail

This is not the first time Google made its services work offline.  In the past it was done through Google Gears.  Earlier this year many of these offline features were pulled down to prepare for a new stage of offline working enabled by HTML5.  This September we begin to see the results and this Offline Google Mail web app is one of them.
Offline GMail
It’s not just a hyperlink to Google Mail.  It can run as a background app in your computer and notify you whenever you receive a new mail.  Every time you run it on Chrome it synchronizes the internet and the storage in your computer so that you read the freshest emails even when internet connection stopped.  It also brings a tablet-like user interface which maximizes the use of screen real estate.
Offline GMail - Background App
This app is far from perfect, though.  A much complained missing feature is access to Contacts when offline.  Contacts are as important as emails for mobile workers.  Some other features on (my) wish list are keyboard shortcuts, caching of attachments, tasks integration…  After all it’s a good start, please work hard Google guys!


Offline Google Calendar

What?  Google Calendar works offline?  Yes, it is a BETA (a.k.a experimental) feature.  Click the top right gear icon in Google Calendar and choose Offline.  You’ll see this pop up window asking you to enable offline mode and warning you about store private data in your computer.
Offline Google Calendar
No, RSVPs you made to events when flying on an airplane would not be synchronized immediately (unless there is satellite internet connection, which I cannot afford).  But once you are online again the online and offline copies would be merged.

Offline Google Docs

Offline Google Docs works in the same way as the Offline Google Calendar.  You can enable the offline mode and get everything downloaded to your computer, then work your head off while on the plane or on a remote beach with no phone reception.
Offline Google Docs
Currently Google Docs can only load Google documents and spreadsheets offline.  And they are READ ONLY.  There is no way you can edit them offline.  And you cannot create new documents.  So what’s this for?  Well, I tried loading my itinerary when travelling abroad recently.  At that time I only needed to read the hotel address and transport directions.  But if you are expecting some editing function, you may need to wait until this technology appears.

Offline Calculator: Scientific Calculator

It’s quite annoying to know that a “computer”, which literally means something capable to compute, cannot be used to do simple calculations offline.  But that’s a common question I heard the most when the concept of Chromebook first came out.
SciCalc - Advanced Scientific Calculator
There are a few offline calculator for Chrome.  The one I’m introducing is Scientific Calculator.  You can use it to do simple maths as well as using 18 functions (e.g. cosine, exponent etc.) and 8 constants (e.g. Pi and e).

Offline Note Taker: Scratchpad

Scratchpad on Chromebook
If you want to take notes while offline, you can’t use Google Docs.  Scratchpad is a convenient tool you should try because it can sync notes back to Google Docs.  You can mark down things (formatting and bullet points supported) offline and have them loaded to the cloud when internet is available.  On Chromebook it appears as a pop up panels just as some other system notifications.

Summary

After writing this short blog post, I found great potential to write more because there are so many useful offline web apps out there.  I’ll continue writing on this topic to make it a series of offline productivity web app reviews.  Stay tuned!
Subscribe to RSS Feed Follow me on Twitter!