Microsoft Customer Care Framework or how Microsoft offers customer care


    Against the background of how Google is trying to become Everyone for us, it's nice to see that other companies are not giving up and continue to develop new services and technologies ...

    Having visited Microsoft last week, I listened with pleasure to the story about the Microsoft Customer Care Framework . Moreover, we managed to talk with one of the leading architects of this system.

    About System

    Briefly about what kind of system it is and what it is eaten with.
    Microsoft itself describes its system as follows.

    Microsoft Customer Care 2009 (CCF) is an end-to-end software infrastructure for delivering composite applications. It (the system) includes both components for application development and runtime components. CCF-based applications provide unified access to customer information distributed across many enterprise applications, aggregating various modes of interaction with the customer. © Free translation from MSDN .

    To make it easier to understand what is at stake, I’ll try to explain “on the fingers”.

    Typical scenario

    Imagine yourself an employee of the support service of a huge bank. You are sitting in headphones with a microphone and waiting for a call from an angry client to receive a phone service. Theoretically, the client can call on any problem. He may be blocked by a plastic card, he wants to find out how much more he has to pay on the loan, to clarify the details of the conditions of the new deposit, etc. As a rule, different applications, with different UIs, in which there may be different accounts of authorized users, are responsible for a service or group of services in banks.
    Now imagine a picture ... the client is calling on one of the above issues (and, perhaps, on several issues). He is answered by a support employee. He asks to wait a minute until he finds and launches the desired application. Then another minute, because he needs to log in under his account in this system. Then another minute, because The employee made a mistake with the selected application. And here comes the long-awaited moment ... The support service employee suddenly realized that he couldn’t answer this question and needed to redirect the call to another department ... In general, it’s no wonder that in such a situation the client may simply not hold back and hang up on the floor in a fit of rage . Well, who wants to hang on the phone for 10 minutes and explain the same problem 3 times to completely different people? By the way, it’s quite possible that one of you has already found yourself in a similar situation on the client side. There was no feeling that the jar just didn’t give a damn about you and it didn’tcares about your customers?

    We care about customers

    To solve a number of problems arising in the scenario described above, Microsoft has developed a concept that allows you to combine in a single user window called Agent Desktop , all of the many internal corporate applications that a support desk employee needs to work with a client.

    At the same time, both the System itself and the platform have a number of very useful properties and capabilities. The most important of them, in my opinion, are listed below:

    • SSO support
    • UI of all applications needed by the operator are displayed in one window on different tabs
    • Since integration takes place at the UI level, the development of an integration application is very fast.
    • The most important parts of the platform come with open source
    • Client context is available for various integrable applications.
    • The system combines various means of communication
    • The system is easy to scale

    And now more on each item.

    Single sign on

    Due to the fact that the operator enters only one login and password for access, the time required to enter many diverse applications is significantly saved.

    Single UI

    By combining the UI, the operator does not need to switch between applications. All information is conveniently placed in one window, including general contextual information: client, problem, etc. There may be a little "ambush." If the application is designed for high resolution, then when placed on the tabs of Agent Desktop, scroll bars may appear. This may be inconvenient for the operator.

    Quick integration

    The integration of applications takes place primarily at the UI level, so there is no need to elaborate integration mechanisms in detail. In the basic version, you do not need to program anything at all. Programming is required when it is necessary to ensure the exchange of information between applications and context. In this case, .Net adapters come into play, which are able to interact with the user interface of applications, extracting and placing information in them.

    Open source

    Yes, Microsoft is ready to meet its partners and provides source codes for some parts of the platform, which allows implementing the most sophisticated integration methods. As I understand it, we are talking about the source code of Agent Desktop. Maybe something else.

    Client context

    The client’s context is the most general information that integrated applications can exchange among themselves.
    Typically, the context is displayed in a separate Agent Desktop frame located at the top of the main window, above the frame that combines tabs of integrated applications. The composition of the information and its type is determined by the developers.

    Multichannel communication

    The system is also able to consolidate different channels through which requests from customers come. This is e-mail, instant messaging, IVR , SMS, etc.
    This approach allows you to store all information flows in one place and get quick and easy access to them.


    CCF is built on the basis of standard Microsoft Composite Application Blocks, taking into account modern requirements for multithreading. Both the database level and the application server level are easily clustered, which allows the System to ensure uninterrupted operation in the 24 * 7 mode and withstand high loads when working with a large number of users.

    Some technical details

    In fact, I just won’t be able to tell you a lot of technical details, since I have no practical experience. But there are some elements that I caught in the process of talking with the Architect. First of all, you need to clearly understand that CCF is exactly the Framework, and not just an application / system. That is, it is a set of tools that allow you to create a System. There are many ready-made modules, mechanisms, extensions, etc. Microsoft also took care of the developers, having thought through quite a lot of details and creating as many off-the-shelf tools as possible for integration with existing applications.

    The application, based on MS CCF, will be built taking into account modern multi-level approaches.


    As expected, it is proposed to use Microsoft SQL Server as a database. Already at this point, Microsoft recommends thinking about a cluster.
    The database stores information about the audit of the actions of users of the System and the configuration, which is updated by the system administrators. In addition, the user’s context is saved in the database if it is necessary to redirect the incoming call to another operator.

    Application server level

    At the application server level, data access methods are implemented (I assume that there is some DAL ), as well as business logic, which can be described in terms of WWF using, incidentally, visual development tools.

    User interface

    UI is a classic Windows .Net application that is able to draw (in tabs - Tab Strip Control) the main windows of other applications of both Windows UI and Web UI. The trick of the solution is that Agent Desktop wraps the call of other applications in such a way that they draw themselves not to Desktop (as it happens by default), but to bookmarks of Agent Desktop itself.
    Data is exchanged directly through window controls (in the case of Windows applications) or through HTTP-GET, HTTP-POST, SOAP (in the case of Web applications). Thanks to this approach, the coordination of interfaces between the aggregating application and its aggregates is not required.
    Once again, I note that applications may not know anything about the existence of the parent window (Agent Desktop) and other applications with which the integration takes place. They do not have to be written according to any strict standards or with the support of any strict protocols. It can be the most common windows, web applications or even console terminal machines that have been used by the company for many years. There is no need to adapt or rewrite them somehow. Everything happens transparently for themselves.


    As can be seen from the description, the System, built on the basis of MS CCF, can significantly save time, as well as reduce the number of errors in the process of servicing customer requests. Which, in turn, means a decrease in the cost of services and an increase in the level of customer satisfaction. In general, this thing seemed rather interesting to me. First of all, interesting in its, in my opinion, original idea - integration at the UI level. In fact, here I described only the tip of the iceberg. I didn’t touch upon the CCF features related to integration with BizTalk, SOA infrastructure, etc. Total and not covered in the framework of this article. I hope that I will be able to "touch" it somewhere in a more real application and then already share with you the details of the application. Thank you for reading to the end.

    PS: More closely with the platform described above can be found here .
    Technical articles here .

    Also popular now: