We all know it can be pretty frustrating today. You start doing something on line, but the phone rings. You have to run so you grab your keys and head out the door. Luckily there's a break in the day so out comes the mobile phone but the app has no record of what you were doing. So you call the company for support where you spend the first 10min in a queue followed by 10min of trying to describe to the person what you were doing. The empathetic agent is willing to help, but you need to start over. Of course the piece of paper with the information you need is on the desk, at home, next to the phone. When you get home you rush to your desk, jiggle the mouse so your screen turns back on, only to find out your session has timed out.
Today companies are struggling to provide a consistent customer experience across the variety of interaction channels. Is it unreasonable to expect what you start via one channel you continue via others, bouncing back and forth as needed, until the transaction is complete? No. However at the technical level it's no easy task to accomplish. The online application comes from the eCommerce team, mobile application from the Mobile team, CRM from the contact center group, and the retail outlets only have their Point of Sale system which is not the most friendly tool. We've spent alot of time and money getting to "one view of the customer", bringing CRM into the shared services IT organization as the golden record of the customer. We've spent more time and money integrating our other tools to the golden record; some are new enough they had access from day one. So we know who the customer is, what they've bought before, every time they've called, and even how valuable they are as a customer. However what we don't know is what they are doing right now with us. Some of the systems don't track it, often in the name of security despite the customer having passed multiple tests to initiate the interaction. Why didn't we solve for this problem at the same time as we did the golden record? Simple. We had fewer channels, customers had a strong preference for a single channel, and we were focused on the customer identity, not their goal.
How do we solve this problem? We need to start tracking what the customer is doing and sharing that data across channels. Many web sites are good at solving at least part of the problem enabling a customer to pick up where they left off, or signaling for help when they get confused. However this capability is integrated into the channel. Do we want to build a solution for each channel? If so how do we keep transaction components in synch especially now that there is no channel affinity? I believe the answer is building a transaction index.
Building a transaction index service enables each channel, including ones not yet main stream such as the connected car and M2M (not familiar with M2M? Worth doing some research) to work in concert. As expected the transaction index would uniquely identify every transaction by person and identify every transaction type. Combined with date/time stamps, channel indicators and device identifiers, a developer would have enough information to make intelligent decisions to maintain the customer experience throughout the transaction across all channels. As a service its designed for scale, reliability, and availability with geographic caching to aid in speed (keeping the data local while transactions are in a pending state). Every time a transaction is initiated the index is consulted to determine if the transaction is a continuation of a previous interaction or new. Should any doubt arise the customer could be queried. The index identifies the current step in the transaction, provides access to the data already collected, and returns this information to the requesting application. Each transaction step updates the index so it contains the most current information. Once a transaction is complete it is removed from the index, whether deleted or archived. Existing policy management would continue to govern what processes and data are available in each channel.
Such a solution enables a more robust customer experience. Transactions can be aged to trigger escalations or support. Abandoned transactions can trigger proactive responses from outbound emails and calls to a query from a retail employee to determine whether or not the customer needs assistance.
As a challenge I've been considering for the past few years, my wife's experience with a well known web site over the past 12hrs prompted me to put forth my idea. With an account she accesses via the web as well as an iPad app, she did some preparatory work on the web site last night. She decided this morning to complete the work on her iPad. When she went to save her work, she had to sign in to the service. After doing so, her three hours of work on the iPad app disappeared and only the preparatory work done via the web site remained. Honestly there was no excuse yet I totally understand why it happened. At a minimum you'd hope it would ask you a question. However the online and app versions were written by different teams, at different times, and the transaction data is siloed even though they obviously share a common golden record.
Perhaps my idea is naive, perhaps its genius. I see it as an extension of a tool, the index, into an area where a problem has emerged. Like most problems I expect people to look at the most common solution; building new capabilities into each channel application. I prefer the cloud approach. Build the service as a native cloud app and you gain all the scale, reliability and availability attributes while operating at the lowest possible cost. What's not to like?