ELECTRONIC TECHNICAL SUPPORT MARKETPLACE SYSTEM AND METHOD

Abstract: A user support recommendation system (34) for automatically recommending user support providers (38, 40, 42) for software applications, system software or computer hardware to a user is provided. The system may automatically detect various computer problems, such as a software application crash or error message, a system software crash or error message or a computer hardware error message, and then generate machine state information in the client computer at the time when the computer problem occurs. The machine state information may be communicated to the user support recommendation system (34) which may then provide the user of the client computer (34) with a recommendation for a support provider to provide a solution to the computer problem.

Description: ELECTRONIC TECHNICAL SUPPORT MARKETPLACE SYSTEM AND METHOD Background of the Invention This invention relates generally to a system and method for matching a user with an appropriate user support provider and in particular to a system and method for automatically matching a user's technical support needs based on user information gathered by the system to the appropriate one or more on-line user support providers for various technical questions with software applications, system software or hardware. The growth of the Internet and the wide use of personal computers has lead to more users relying on various software applications to perform various tasks. For example, few people use a typewriter to type a letter and many people use the computer to send electronic messages to other people. Thus, people rely heavily on computers and the software applications being executed by the computer to accomplish many tasks. When a software application is released to the public, the developer must provide user support when different technical questions, such as problems with the software application or how-to questions (e.g., "How do I print in landscape mode on a particular printer) about the software are raised by the user. Similarly, for system software and computer hardware (including main computer hardware such as the memory or the disk drive and computer peripheral hardware such as a printer, a mouse, a keyboard or a scanner), the developer of that system software or computer hardware must also provide user support to answer the user's technical questions. The user support of a software application, system software or hardware, however, is very costly and time consuming. For a typical company, the user support of a software application may be a group of "experts" who listen to the user's technical questions and complaints and attempt to solve the user's technical questions by following a script of potential solutions. The cost of maintaining this group of user support people is enormous. In addition, support people can not possibly know the answer to every technical question that a user asks and therefore often end up with low satisfaction ratings. The process may be frustrating to both the user and the support personnel. In addition, support people cannot possible remember all of the prior solutions to the technical questions they see infrequently, and often get bored with repeatedly answering common technical questions. For a user that has a technical question, the user often does not know who to call to resolve the technical question, waits on hold a long time to get the technical question answered and, even after waiting on hold, receives poor or inaccurate advice. Thus, there is a need for a system that reduces the user's and the support provider's frustration with the current user support systems. The technical questions generated by a user using a software application, system software or computer hardware fall into two distinct categories: how-to type questions, and technical problems. To solve these kinds of technical questions, a support person typically engages in a rather lengthy live question and answer game with the user to determine the machine configuration, the software environment as well as recent actions and events that have taken place on the system (such as error messages that were displayed or menu actions that were invoked). This is often a difficult conversation since in most cases there is a non-technical end user attempting to interpret what the machine is doing, and then providing that information over the telephone to the user support person. Finally, once the support person has the necessary information he must search manuals, knowledge bases, news groups, and/or other sources of information to solve the technical question and to walk the user through the solution to the technical question. There are a number of conventional user support systems that attempt to provide the user with a user support person to solve the user's technical questions. These conventional systems, however, have limitations. For example, the conventional systems do not automatically gather user and system information from the user's computer when a technical question occurs so that it is still necessary for the user and support provider to carry on a dialog to determine the user's particular technical question and to determine the appropriate user support person. The conventional systems also do not permit the user support provider to remotely control the user's computer in the course of solving the technical question. These problems limit the ability of these conventional systems to adequately address and resolve a user's technical questions rapidly and efficiently. This manual support process is extremely expensive - the yearly labor costs are estimated to be in excess of $30 billion per year alone. Thus, it is desirable to provide a marketplace where users may express their technical questions and support providers may select technical questions to solve and wherein either the user or support provider may set the price of the support advice. In addition, it is also desirable to provide a user support marketplace which reduces the frustration experienced by the support providers and the users. Thus, it is desirable to provide an electronic technical support marketplace system and method for supporting software applications, system software or computer hardware and it is to this end that the present invention is directed. Summary of the Invention In accordance with the invention, an electronic user support marketplace is provided that overcomes the above identified problems and limitations with the conventional systems. In particular, the system may include a client based software application, known as a collector or detector, that automatically gathers user and system information from the user's computer so that, when the user has a technical question, the system automatically directs the user to the proper user support provider using the information gathered at the user's computer. For example, if a user needs help printing in Word, the system automatically gather information from the client computer indicating that the user is in Word and routes the user to the user support providers which expertise in Word. The system may also provide the user with a Web page tailored with resources particular to the user's technical question. The system may also include a remote control tool that permits a user support provider to effect changes on the user's machine to resolve the technical question. The remote control tool in accordance with the invention may also be limited, using the automatically gathered information, so that the user support provider may only change information related to the technical question. For example, if the user has a Word technical question, then the remote control tool may only affect the Word software application and not other applications on the user's system. In summary, based on the automatically gathered information about the user's computer, with a single click of the submit button of the user interface, the user is directed to a web page which contains solutions to the user's support request. In more detail, the electronic user support marketplace in accordance with the invention may include automatically matching a user's technical question in a particular technical area, based on the automatically gathered information, to one or more support providers that have expertise in the particular technical area. Thus, the system may bring together a user with a technical question and a support provider who has the expertise to quickly answer the technical question. The information provided by the user may be manually entered into a Web page or may be from an automatically generated black box. The black box is the information gathered by the collector in accordance with the invention about the user's system and one or more signatures may be contained in the black box. The signature may be a unique index generated based on the black box. For example, the black box may contain information about the operating system version, the application name, the last action of the user and the amount of memory. The system may then generate a signature from the black box that is a hash of the application name and the user action. There may be another signature that is the application name and the operating system version. The signatures permit the system to generate high level information from the black box that may contain hundreds of pieces of data. The system may store profiles for one or more support providers wherein each profile may indicate the expertise of the support provider. Based on the user information and the profiles, the system may match the user information to one or more profiles and generate a list of matching support providers who can solve the user's support request. In one embodiment, the list of matching support providers may be provided to the user along with other information about the support providers (cost, current availability, current rating) so that the user may select a support provider. In another embodiment, the user information is provided to the list of recommended support providers and the support providers may bid to determine which support provider may respond to the support request. In another embodiment, the user describes a technical question and posts a dollar amount offered for help and the support provider picks the user based on the user's reputation for paying bills and the like. In yet another embodiment, user describes a technical question and posts a dollar amount offered for help, the providers decide if they can help the user and the user picks a provider from a list of providers that decided that they can help (in this situation, both the user's and provider's reputation is relevant). In still another embodiment, the user describes a technical question, the providers post an amount to solve the technical question and the user picks a provider. In another embodiment, the user describes a technical question and is shown a list of providers with expertise in that area and then choose a provider as described above. Once the support provider has been selected, the system may automatically establish a communications session between the support provider and the user so that the user may have his/her support request handled. In accordance with the invention, the communications session may be a bulletin board session, a voice over IP session, a live chat session, a remote control session or the like. In accordance with the invention, the system permits a user to rapidly locate a support provider with the needed expertise to solve the user's support request quickly. The system may also permit various information about the user's support request to be automatically gathered so that the user does not need to remember, for example, the exact steps taken prior to the technical question occurring. In accordance with the invention, a system for automatically matching user support in response to a support request is provided wherein the system comprises means for receiving a support request containing information from a client computer at the time when a support request occurs at the client computer wherein the support request identifying the source of the support request. The system further comprises means for storing profiles of one or more support providers, each profile indicating the areas of user support expertise of the support provider, means for matching the support request, based on the information in the support request, to one or more stored profiles of the support providers to determine support providers who have the expertise to respond to the particular support request, means for selecting a support provider, and means for establishing a communications session between the selected support provider and the user. In accordance with another aspect of the invention, a system for automatically recommending user support in response to a support request is provided wherein the system comprises a receiver that receives a support request containing information from a client computer at the time when a support request occurs at the client computer wherein the support request identifies the source of the support request. The system further comprises a database that stores a profile of one or more support providers wherein each profile indicating the areas of user support expertise of the support provider, a matcher that matches the support request, based on the information in the support request, to one or more stored profiles of the support providers to determine support providers who have the expertise to respond to the particular support request, a selecter that selects a support provider, and a communication link for establishing a communications session between the selected support provider and the user. In accordance with another aspect of the invention, a method for automatically recommending user support in response to a support request is provided wherein the method comprises receiving a support request containing information from a client computer at the time when a support request occurs at the client computer wherein the support request identifying the source of the support request. The method further comprises storing profiles of one or more support providers wherein each profile indicating the areas of user support expertise of the support provider, matching the support request, based on the information in the support request, to one or more stored profiles of the support providers to determine support providers who have the expertise to respond to the particular support request, selecting a support provider, and establishing a communications session between the selected support provider and the user. In accordance with yet another aspect of the invention, an apparatus for receiving an automatically recommended user support provider in response to a support request is provided wherein the apparatus comprises means for generating a support request containing information from the apparatus at the time when a support request occurs and the support request identifies the source of the support request. The apparatus further comprises means for communications the support request to a user support recommendation system, means for receiving a recommendation of one or more support providers from the user support recommendation system that matches the support request to one or more stored profiles of the support providers based on a database of support provider profiles to determine support providers who have the expertise to respond to the particular support request, and means for receiving a communications session with the selected support provider. Brief Description of the Drawings Figure 1 is a diagram illustrating an embodiment of an automated software application user support recommendation system in accordance with the invention; Figure 2 is a diagram illustrating a preferred embodiment of an automatic user support recommendation system in accordance with the invention; Figure 3 is a flowchart illustrating a method for recommending a user support person in accordance with the invention; Figure 4 is an example of a preferred automatic user support recommendation system user interface in accordance with the invention; Figures 5a and 5b are diagrams illustrating an example of a user support bulletin board web page in accordance with the invention; Figure 6 is a diagram illustrating an example of a newsgroup/bulletin board posting in accordance with the invention; Figure 7 is a diagram illustrating an example of a live support center web page; and Figures 8a and 8b are diagrams illustrating an example of the live support web page. Detailed Description of a Preferred Embodiment The invention is particularly applicable to a World Wide Web (WWW) based client/server system for automatically recommending software application user support and it is in this context that the invention will be described. It will be appreciated, however, that the system and method in accordance with the invention has greater utility since it may be implemented using a different computer system. In addition, the system may be used to provide automated user support for system software failures and problems, how-to questions, as well as computer hardware (including main computer hardware, such as memory or disk drives, and computer peripherals, such as a mouse, a trackball, CD drive, video or sound hardware, a keyboard, a printer or a scanner and the like). Figure 1 is a diagram illustrating an embodiment of an automated software application user support recommendation system 30 in accordance with the invention. The system 30 may include one or more client computers (Client #1, Client #2 and Client #N) which may include microprocessors (not shown) which execute a browser application stored in a memory (not shown) of the client computer in order to access a Word Wide Web (WWW) site over a communications medium, such as the Internet. Each client computer may also include a detector/collector (ED) 32 which automatically detects a software application problem, such as a software application crash or a software application error message, as they occur on the client computer. It may also include a menu item or key so that when the user detects a software problem or requires user support, the user can initiate the request. When a software application support request is initiated, the detector 32 in each client computer may generate a black box, based on the context of the software application, which characterizes the software application and machine state at the time of the request. The black boxmay include information about the application being used, the application version number, a history of the user's actions prior to the request and the like. The black box and the signatures derived therefrom may permit the software application user support recommendation system in accordance with the invention to automatically recommend a user support person to provide a solution to the support request as will be described in more detail below. In other embodiments of the recommender system, the client computer does not have a detector 32 to gather the black box information. In these embodiments, the user may log into a user support Web site and enter information about the technical question. In particular, a taxonomy of technical questions, which may include problems and how-to questions, may be browsed through by the user, as described below, to permit the user ot focus in on the current support request. Based on the information, such as application, type of problem, etc., the system may automatically recommend one or more user support people to the user. The user support people recommended to the user are individuals with expertise in the particular area in which the user is having a problem or has a technical question so that the user may have the technical question or problem solved quickly. To match the user support person to the technical question or problem, the system, in all embodiments, may maintain a database of the qualifications/profiles of each user support provider so that the system may match the technical questions or problems to the appropriate one or more user support providers. In accordance with one embodiment of the invention in providing the user with a list of possible user support providers, the system may provide the user with various information about each user support provider, such as the current availability of the provider and a rating of the provider, in order to select a support provider. The rating of the provider may be generated based upon various information, such as feedback from prior users of the provider. In accordance with another embodiment of the invention, the user information may be used by the recommended support providers to permit the support providers to determine who will respond to the user. Thus, in accordance with the invention, the system may recommend an appropriate user support provider to solve the user's support request. The system may then permit the user to 1) engage in a live chat session or voice over IP session with the selected provider and an optional remote control session or screen sharing session; or 2) carry out a dialog with the provider using a bulletin board. Various commercially available tools may be used to provide remote control and shared screen sessions and therefore these tools will not be described in more detail here. An example of a conventional remote control toll is a product called Timbuktu that is made by Netopia. The system may then either broker the data traffic (automatically establish the session) between the provider and the user and then remove itself from the session or pass all of the data traffic through the system to track the provider's expertise and the solutions that the provider suggest to the user (to audit the provider's expertise or see past solutions), the user's reputation (i.e., likelihood of payment or rating by other providers), check for viruses (i.e., if FTP traffic passes through the server, the server may validate the files that are being sent) and the like. In addition, the system may also capture the video from a screen sharing session that may be used to generate an instructional segment for future users as, for example, a self-help tutorial. In the embodiment shown in Figure 1, the detector 32 may communicate the black box to a remote software application user support system 34 over a typical communications medium, such as the Internet, a corporate Intranet, a local area network, a wide area network and the like so that the software application user support system may provide the user with a recommendation of an appropriate user support person to provide a response to the support request. The black box generated by the detector may be used to identify a list of appropriate user support providers and to provide information to the selected user support provider about the technical question or problem. For example, the user does not need to remember his/her actions, any error messages that might have been displayed, or specific details about their machine configuration. The user also does not necessarily need to be able to explain the technical question or problem coherently since the information in the black box may permit the user support provider to resolve the support request without an explanation from the user. The detector 32 may be a piece of hardware, but may preferably be a software application stored in the memory of the client computer that is executed by the microprocessor of the client computer. When a software application support request occurs at a client computer, the black box is generated by the detector 32 and communicated to the user support system 34 over a computer network 36, such as the Internet or the World Wide Web (WWW). The user support system may be a server computer that may be accessed over the Internet or the WWW. The black box generated by each detector in each client computer may have a variety of information about the software support request, such as the name of the software application currently in use, the version of the application, the current stack contents when the request was made, the actual error message, the DLLs that were in memory at the time of the request, the user's actions and events that occurred prior to the request, the operating system and version being used, the type of computer being used (i.e., Apple or IBM-compatible) and the amount of memory in the client computer. At a minimum, the black box may have the application name and the error message generated. This information may be used to help recommend a user support provider and help that user support provider diagnose the technical question and provide the user with a solution. The details of the automatic gathering of the black box information, generating the signatures and communicating it to the user support recommendation system is described more fully in co-pending patent application number 08/994,840, filed December 19, 1997 which is owned by the same assignee as the present application and is incoφorated herein by reference. The user support system 34 may receive the black boxes from the one or more client computers and determine, based on the information in the black boxes, how to route the black box information to the appropriate user support provider that can solve the technical question. In more detail, based on the information in the black box, such as the application name and the generated error message, the system 34 may select one or more of a plurality of user support providers 38, 40, 42 that handle the support request as indicated by the profiles of the support provider. In yet more detail, once the system receives a black box, it creates a trouble ticket to track the state of the support request. For example, the trouble ticket may contain information about the current status of the support request, which support provider it is assigned to, when the support request was initiated and the like. The trouble ticket may be attached to the black box data and the trouble ticket with the black box, using the black box information, may be matched against the support providers. Each user support provider may use an automatic support system or knowledge base 46, 48, 50 as described in co-pending U.S. patent application serial number 09/322,699, filed May 29, 1999 which is owned by the same assignee as this application and is incoφorated herein by reference. Therefore, the black box received from the client computers and the profiles of the support providers may be used to select one or more user support providers. For example, a black box relating to a support request in Word may be matched to a user support provider with a knowledge of Word as specified by the user support provider's information (profile) stored in a database (See Figure 2) of the user support system. The user support providers 38, 40, 42 may be located at the same location as the user support system 34 or may be located at remote locations and may be connected to the user support system using a computer network 44, such as the Internet, the World Wide Web, a local area network or a wide area network. Based on the information in the black box, the server 34 attempts to identify a user support provider who can provide a solution to the particular support request. In particular, the server may match a support request (using the automatically generated black box information or the manually entered information) to a support provider's profile (the profile indicating the support provider's expertise) in order to choose the appropriate support person. In another embodiment, the support request may be matched to the support providers by each support provider generating a filter that, based on the information in the black box, filters out support requests that are of interest to the support provider so that the support provider is presented to the user as a possible support provider. In one embodiment, once the user has submitted the trouble ticket (or black box), the support providers who are available and whose profile match the profile of the problem can view the trouble ticket and the user's reputation (for example, does the user pay) and if they think they can (and want to) help the user, the provider can respond by saying they can help. Thus, in response to the request for help, the user is presented with a list of support providers who can help. At this point, the provider might indicate the approximate time it will take to solve the problem, and how much it will cost. The user can then select a provider based on the provider's reputation and fees. Once selected, the user and provider together work toward a solution to the user's problem. The user may then be able to indicate to the support provider and the server 34 whether the solution was successful. The server may use the success/failure of the support request response to change its rating of the particular support provider as described below. In addition, as more users have a particular software application technical question, the server or the support provider may generate a knowledge base about the solutions to that particular software application technical question. The provider may also generate a knowledge base about all of the reported software application problems or technical questions associated with a particular software application. In accordance with the invention, the support from the support provider may be provided by several different methods. For example, a live Internet chat session may be initiated between the user and the support person in which the support provider may optionally initiate a remote control session or a screen sharing session to permit the support provider to make changes to the user's system to solve the technical question. As another example, a voice over IP session may be initiated. In accordance with the invention, any person-to-person interaction system may be used. As another example, a bulletin board type arrangement may be used to permit the user to communicate with the support person. However, with the bulletin board approach, live real-time support is not provided which may be acceptable for a user that, for example, may be willing to pay less money for a non-live support response. Thus, the system may provide different levels of support at different costs. In this embodiment, any user or a restricted group of users may access the support system as some level or the system may provide different levels of support for different users. For example, all users may be afforded the ability to take advantage of a free level of support which may involve posting questions to a bulletin board wherein the questions are responded to by other user. A second level of support (requiring a minimal cost) may be a bulletin board communication with a real support provider and a third, highest level of support (with an associated higher cost) may be a live chat or voice of IP session with the support provider. The user may typically be able to choose among these choices or the group may be selected based on the black box information. In particular, the black box information may include information about the user's level entitlement to support and the list of support providers displayed to the user may be based on the level of entitlement. For example, if the user is a home user under warranty, the user may be shown a list of providers who are authorized to perform free support under warranty while a user who is an employee of a large coφoration may see a list of support providers authorized to provide support for employees of the coφoration (since the coφoration may only certify certain support providers to provide help to their employees). The automated software application user support matching system in accordance with the invention provides a number of advantages over typical user support systems. First, the system can rapidly match a user support person to solve the technical question with minimal input from the user about context of the system and application in which the user is requesting support. Gathering this data is often tedious and error prone. This leads to happier users since they do not have to try and explain the technical question to a user support person. In addition, the user support matching system, as described below, may provide various support provider information for each support provider to the user to permit the user to choose the support provider. That information may include the current availability of the particular support person (how long it will be before the user may get an initial response from the particular support person), a rating of the support provider generated by the system based on various factors, the cost of the particular support provider and whether the support provider can provide remote control help to the user. The system may also permit the user to type in "how-to" questions. In these cases, based on the automatically gathered black box information, the system may do a much better job of routing the user to the right place for an answer or solution because the system has additional context about what the user was doing to direct the user to the appropriate support provider that can provide the solution. For example, if the system can see in the event history (the actions of the user automatically gathered by the system in accordance with the invention) that the user tried to print from Microsoft® Word to an Epson® Stylus Color Printer and then asks "How do I print in color?", the system in accordance with the invention has a lot of critical information to help bring the issue to the proper solution. If the system further knows that the printer is currently configured to only print gray-scale (because the configuration of the printer may also be automatically gathered by the system), the system can direct the user to the support provider that can provide the correct resolution immediately. In accordance with the invention, the user support matching system permits the user to be connected to the chosen support provider in various different ways, including voice over IP, live chat session, remote control or shared screen session, and bulletin boards as described above. The system also permits the user to provide support request information to the support provider or an automatically generated black box with information about the user's support request. Once the user has chosen a support provider based on the information provided by the system, the system may remain involved in the user support process in order to, for example, monitor the results that may be used to change the rating of the support provider. In addition, the user support matching system may have all of the voice over IP, remote control session, shared screen session, chat or bulletin board data pass through the user support matching server. In a preferred embodiment, the system may permit the user and support provider to communicate with each other and then have the user and support provider provide feedback to the system. In accordance with one aspect of the invention, the user support matching system automatically collects the data on the client machine at the point of failure (i.e., when the software or hardware crash occurs, the error message occurs or the context of the system when the user poses a "how-to" question) with a single click and one or more appropriate user support providers to solve the technical question may be presented to the user so that the user may connect to that support person or provider. The advantages of the system in accordance with the invention includes the that fact that the user doesn't have to know where the support information is located or who would be an appropriate user support person to handle the particular support request since the system automatically directs the user to the one or more appropriate support providers. Now, a preferred embodiment of a automatic user support matching system in accordance with the invention will be described. Figure 2 is a diagram illustrating a preferred embodiment of an automatic user support matching system 30 and in particular the user support server 34 in accordance with the invention. The user support server 34 may include typical elements of a computer system such as a central processing unit, random access memory and a persistent storage device which are not shown in the drawing for clarity reasons. The elements of the system described below may be one or more software applications being executed by the CPU of the server or pieces of hardware which perform a particular function. Thus, the server 34 may include a matcher/scorer module 60, a watcher module 62 and a database 64. The matcher/scorer receives the client information about the support request (either from the user by filling out a form or clicking on buttons or from the information contained in the black box) and matches that information to one or more support provider profiles stored in the database 64. For example, the support provider profile may indicate that any Word97 problems or technical questions are appropriate, but PowerPoint problems and technical questions are not appropriate for the particular support provider. In general, each support provider may provide a profile which may list programs which the support provider is able to handle and those programs which the support provider is not able to handle (lack of expertise). For example, one of the matching criteria for a support provider may be "If the problem is with Word97 on a Windows-based machine that does not use an Epson printer, then this support provider can handle the support request." The support provider profile may also include geographic information about where the support person is located so that the user support matching system may direct the user to support providers in the same geographic area as the user. In accordance with the invention, each support provider may view support requests that he is capable of handling and then select the ones that he currently is able to answer. The support provider information may also include access information indicating that the provider has access to specific information such as the ability to change a password on the system. To generate the support provider profiles, each support provider 38, 40, 42 may submit its matching/scoring criteria to the server 34 and the profile is stored in the database 64. The server 34 may gather the profile information by generating a form that the support provider fills out in order to become an authorized support provider. Once the matcher/scorer 60 determines which support provider profiles match the user's support information, the system returns a list of the matching/recommended support providers to the user (in the form a Web page in a preferred embodiment) as will be described below with reference to Figure 4. The list of support providers may also include support provider information, such as current availability, cost, rating and other information. As described above, the user may select the support provider based on cost and the different support providers may provide different levels of the support for different fees. In accordance with the invention, there may be three different methods for the selecting a support provider. In one method, the user is presented with the list of matched support providers and the user selects a support provider based on the additional information about each support provider provided to the user. In another method, the user submits a support request and other information and then the support providers picks a support request to answer based on various information about the user, such as the price the user is willing to pay, the question being asked and possible information about the user's reputation (such as the user past payment history or the grading that the user received from past support providers). In a third method, the previous two methods are combined. In particular, the providers in the match set (i.e., the providers whose profiles match the trouble ticket indicating an expertise in the area) that are available see the user's trouble ticket and have the opportunity to decide whether they can/would like to help this user. Based on the user's question and rating/reputation (payment history) they enter a bid of time and cost to answer the technical question. Based on these bids from the support providers, the user then sees zero or more bids from providers and can choose a provider based on price, reputation, and other factors. In this method, both the provider and the user have the opportunity to factor reputation into their decision criteria, and the provider has a chance to preview the user's problem before offering to help. Thus, the system 30 may support both a user-driven support provider matching system as well as a support provider driven support provider matching system. Once the user selects one of the suggested support providers, the system 30 and the server 34 may take on a monitoring role in one embodiment of the invention in which the watcher module 62 may act as an intermediary between the user and the support provider so that the system may gather information about the support provider and the user that may be used to keep an audit trail so that if there is ever a dispute, the audit trail can be checked. In addition, if the technical question is not solved by the particular support provider, a future support provider may view the audit trail and see what previously was attempted. The watcher module may also check transferred files for viruses and/or alert an administrator if certain actions are being performed, such as things that may cause a security risk like changing network settings. In another embodiment of the invention, the communications between the user and the support provider are not monitored by the watcher module of the system 30 as an audit point, but the user and support provider are requested to provide feedback directly to the system. In general, the user and support provider is always requested to provide feedback to the system that may be used to determine the reputation of the support provider. Thus, the user support matching system may broker the connection between the user and support provider (establish the session), but not monitor the communications, or monitor/watch the data traffic between the user and the support provider. The monitoring of the data traffic permits the system 30 to scan the data traffic for viruses, to maintain privacy, to generate its own knowledge base on problems or technical questions and solutions, and to use the data traffic as an audit trail and as part of the certification process for each support provider. The rating for each support provider or user is generated based on user and support provider feedback. Now, a method for matching user support in accordance with the invention will be described. Figure 3 is a flowchart illustrating a method 70 for automatically matching a user support provider in accordance with the invention. To start the matching process, the user information about the support request is received in step 72. The user information may be received by receiving an automatically generated black box or by querying the user. Based on the user information, the system may match the user request to the profiles of a plurality of support providers stored in a database in step 74 as described above. In accordance with one aspect of the invention, the system may provide the user with a list of matching/recommended support providers and the user may select a support provider. In accordance with another aspect of the invention, the support providers may choose to respond to a user based on the user information. Next, the system may automatically connect the user and the selected support provider together in step 76. As described above, the system may monitor the data traffic or may simply request feedback from the support provider and the user after the interaction between the support provider and the user. In either case, the system does receive feedback in step 78 so that the system may alter its rating of a particular user or support provider. Now, an example of a preferred automatic user support matcher in accordance with the invention will be described. Figure 4 is an example of a preferred automatic user support system web page 80 in accordance with the invention. This example shows the details of a Web page implementation of the user support system although the system could also be implemented using different computer networks and different user interfaces. The Web page 80 may include a login portion 82, a problem category portion 84, a support provider portion 86 and a help portion 88. The login portion 82 permits a user viewing the Web page to log into the user support system or create a new account. The help portion 88 permits the user to obtain free help, to search the Web for solutions to the technical question or problem and to post the question to a bulletin board where other users of the user support system may post solutions to your technical question. The help portion 88 provides the user with a free alternative if that is desirable to the user. The problem category portion 84 permits the user to enter various information about the problem into the system so that the system may recommend one or more support providers whose technical question expertise matches the user's technical question or problem. In this example, the user is entering information about the technical question into the Web page as opposed to the system determining the technical question information from an automatically generated black box in accordance with another aspect of the invention. The problem category portion 84 may provide a taxonomy of technical question categories that the user may browse through in order to focus in on the user's problem/technical question so that one or more support providers may be matched to the technical question. In this example, a top level of the Windows support taxonomy is shown with "Internet", "Hardware" and "Software" problem categories. As the user clicks on one of the categories, another more detailed taxonomy is provided. For example, if the user clicks on the hardware problem category, the next level of the taxonomy may provide the user with a more detailed list of hardware problems, such as printer, mouse, keyboard, hard drive, scanner and the like. If the user selects the printer problem category, yet another level of more detailed taxonomy is provided, such as "Epson", "HP", "Canon" and the like. In this manner, using the multiple level taxonomy, the user is focused into the actual problem so that the system can match the user's specific problem to one or more appropriate support providers. The user may also enter a technical question description that may be parsed by the matcher and then provided to the selected support provider. The support provider portion 86 contains a list of the support providers who matched the user's information entered using the problem category portion 84. In this example, the list may contain each provider's name, each provider's cost, each provider's current status and each providers rating by the system, but may also include other information. To better understand the list, a listing for a support provider 90 will be described in more detail. Each listing may include a provider name section 92, cost section 94, a status section 96 and a rating section 98. The provider name section may include a hyperlink to the support provider so that the user simply clicks on the link to go directly to the support provider and be automatically connected. The provider name section may also include an icon 100, such as the mouse in this example, indicating that the particular support provider supports remote control user support in which the support provider may remotely log into the user's computer to resolve the technical question. The cost section 94 lists the cost of the support provider's support. In accordance with one embodiment of the invention, the cost of the support provider may only be billed to the user if the user's problems or technical questions are solved. As shown, for any technical question, there may be one or more different matching support providers that charge different amounts so that the user may make a selection based, at least partially, on cost. The status section 96 lists the current availability of the particular support provider. For example, for support provider 90, there is one other user waiting in line before the current user. As shown, other support providers in this example may have longer waits (three), no wait at all ("Available") or are not online and require the user to call a phone number. The rating section 98 lists the system's rating for that support provider based upon prior support request responses and user feedback. In this manner, the user may select a support provider based on a number of different criteria. Once the user selects a support provider, the user and the support provider are automatically connected together via live chat, voice over IP, a remote control session, a shared screen session, or a bulletin board depending on the level of support chosen. Now, an example of the bulletin board support will be described. Figures 5a and 5b are diagrams illustrating an example of a user support bulletin board web page 150 in accordance with the invention. In particular, when the user submits a support request and requests the bulletin board user support, the user's browser application may be directed to a particular location/web page with solutions to the user's particular support request. In this example, the user was directed to the uniform resource locator (URL) http://www.supportpost.com as described in more detail in co-pending application serial number 09/322,699, filed May 29, 1999 which is owned by the same assignee as this application and is incoφorated herein by reference. As is typical with most web pages, there may be banner advertisements and other advertisements which the user may select. This web page 150 may include a portion 152 which permits the user to request live support from a user support person as will be described below. The web page 150 may also include an upper portion 154 with information which may be of interest to the user. The web page may also include a problem identification section 156 which automatically lists the user's particular problem based on the black box information. The web page 150 may also include an article section 158 which includes a listing of the articles which suggest solutions to the support request as well as a link 159 to the web site(s) where the articles were located. The web page may also include a newsgroup/chat room solution section 160 which includes a listing of the solutions which appear in the newsgroups maintained by the system. Thus, the web page 150 permits the user to either select official support articles or newsgroup solutions (probably submitted to the user support system by other users) and then the user is linked to the appropriate web page. Thus, with a single click of the submit button of the user interface, the user is directed to a web page which contains solutions to the user's support request. Now, an example of a newsgroup/bulletin board type posting of a solution to a problem will be described. Figure 6 illustrates a web page 176 displayed to the user when the user selects the newsgroup/bulletin board solution from the web page shown in Figure 5b. In this example, the solution is shown in the newsgroup format, but the solution may also be shown in a bulletin board format. The web page 176 may include a header section 178 and a text section 180. The header section 178 may include information about the particular newsgroup posting, such as the author, the date and the name of the newsgroup where the solution was located. The text section may include the text of the newsgroup posting which includes information about a solution to the support request. In this example, the newsgroup posting provides the same solution to the support request as the article from the official support site. Returning to Figure 4, if the user selects a support provider and then selects live support, a live support session is established between the user and the support provider. An example of such a live support session will now be described. Figure 7 is a diagram illustrating an example of a live support center web page 190 of the Microsoft Personal Support center that may include a static, user input section 192 and a live chat section 194. The static user input section permits the user to interact with the live support center, such as logging into the system. The chat section 194 permits the user to have a live chat session with a user support person from the support center as will now be described with reference to Figures 8a and 8b. Figures 8a and 8b are diagrams illustrating an example of the live support web page 200 that may include an information section 202 and the live chat section 194. The information section 202 may contain the various information contained in the black box information along with other information that is also displayed to the user support person, such as overview information, user information, system information, application information and custom information. The information may be generated based on the black box information as well as the user's interactions with the user support system. Using the information in the information section, the user and the user support person may engage in a chat session using the chat section 194 so that the user support person may be able to provide a solution to the user's support request. As described above, after the chat session has been completed, the user may fill out an evaluation form for the user support system so that the user support system may update the ratings for the live support center as necessary. In summary, the system in accordance with the invention permits information about a user's computer to be automatically gathered so that, with a single click of a mouse button, the user is presented with a list of support providers or help pages which are specifically focused on the user's technical question. Rather than browsing through a web site and entering a bunch of information as with conventional systems, the system, using a collector/detector, automatically gathers information so that, when the user presses the "help" or "submit" button due to a technical question, the system may bring the user to a web page (non-live help) which directly relates to the user's technical question. For live help, the system may automatically gather the information about the user's computer and about the technical question and then, based on the gathered information, present the user with one or more support providers that have an expertise with the technical question. In both cases, minimal user effort and skill is required in order for the system to direct the user to the appropriate web page or support provider that can solve the user's technical question as efficiently as possible. The system thus reduces the frustration of both the user and the support provider during the user support process. In particular, the support provider may help users in areas in which the support providers chooses (using the support provider profile) and can choose not to help a particular user while the user obtains an answer to the technical question as rapidly as possible with a minimal amount of user involvement. While the foregoing has been with reference to a particular embodiment of the invention, it will be appreciated by those skilled in the art that changes in this embodiment may be made without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims.

Claims: Claims: 1. A system for automatically matching a user with a support request to a user support provider based on information gathered at the user's computer, comprising: means for automatically receiving a support request from a user's computer at a time when the support request occurs at the user's computer, the support request including information about the source of the support request; means for filtering the support request to determine the topic area for the support request of the user; means for storing profiles for one or more support providers, the profiles including information about the support provider's expertise in a particular topic area; and means, based on the topic area derived during the filtering, for matching the user to one or more support providers, based on the profiles of the support provider, whose topic area expertise matches the user's topic area so that the user is automatically directed to the one or more support providers with the necessary expertise to rapidly resolve the support request. 2. The system of Claim 1 further comprising means for selecting a support provider to resolve the support request based on the one or more support providers matched to the support request. 3. The system of Claim 2 further comprising means for establishing a communications session between the selected support provider and the user so that the support request may be resolved. 4. The system of Claim 1, wherein the source of the support request comprises one or more of a technical problem and a how-to question. 5. The system of Claim 4, wherein the source of the support request further comprises data about the user initiating the support request including support entitlement data indicating the level of support to be provided to the user so that a list of support providers provided to the user is based partially on the support entitlement data of the user. 6. The system of Claim 3, wherein the support request further comprises automatically gathered black box data about the user's computer, the black box data including data about the configuration of the computer including hardware and software. 7. The system of Claim 3, wherein the support request comprises means for browsing a problem taxonomy in order to identify the specific area of the support request. 8. The system of Claim 6, wherein the selecting means comprises means for presenting the support request to the one or more support providers who have the necessary expertise to resolve the support request and means for each support provider for electing to respond to the support request based on the support request. 9. The system of Claim 8, wherein the selecting means further comprises means for each support provider to post a bid for the support request, means for presenting the bids for the support request to the user and means for the user to select the support request based on the bids from the support providers. 10. The system of Claim 6, wherein the selecting means comprises means for presenting a list of the recommended support providers to the user and means for selecting a support provider based on profiles of each support provider. 11. The system of Claim 6, wherein the selecting means further comprises means for presenting the support request and reputation data for the user to the one or more support providers who have the necessary expertise to resolve the support request, means for each support provider for providing a bid in response to the support request based on the support request and the reputation data, means for presenting the bids of the support providers to the user and means for the user to select a support provider based on the bids. 12. The system of Claim 10, wherein each profile comprise one or more of cost of the support, the rating of the support provider and the availability of the support provider. 13. The system of Claim 12, wherein each profile further comprises a geographic vicinity of the support provider. 14. The system of Claim 8, wherein the establishing means further comprises means for establishing one of a control session and a shared screen session between the user and the selected support provider, the session permitting the support provider to change the user's computer to resolve the support request. 15. The system of Claim 14, wherein the establishing means further comprises means for limiting the applications in the user's computer that are modifiable by the support provider during the session. 16. The system of Claim 8, wherein the establishing means comprises means for establishing a live chat session between the user and the selected support provider. 17. The system of Claim 8, wherein the establishing means comprises means for establishing a voice over IP session between the user and the selected support provider. 18. The system of Claim 8, wherein the establishing means comprises means for establishing a bulletin board session between the user and the selected support provider. 19. The system of Claim 1 , wherein the matching means comprises means for comparing the profiles of the support providers to the support request. 20. The system of Claim 19, wherein the profiles further comprise one or more rules indicating the expertise of the support provider, the rules comprising one or more of yes, no and a conditional yes. 21. The system of Claim 3 further comprising means for capturing the traffic of the communications session between the user and the selected support provider. 22. The system of Claim 1 further comprising means for receiving feedback from the user and the support provider in response to a support request, the feedback being utilized to change the rating of the support provider or a reputation of the user. 23. A system for automatically matching a user with a support request to a user support provider based on information gathered at the user's computer, comprising: a receiver that receives a support request from a user's computer at a time when the support request occurs at the user's computer, the support request including information about the source of the support request; a filter that filters the support request to determine the topic area for the support request of the user; a database that stores profiles for one or more support providers, the profiles including information about the support provider's expertise in a particular topic area; and a matcher, based on the topic area derived during the filtering, that matches the user to one or more support providers, based on the profiles of the support provider, whose topic area expertise matches the user's topic area so that the user is automatically directed to the one or more support providers with the necessary expertise to rapidly resolve the support request. 24. A method for automatically matching a user with a support request to a user support provider based on information gathered at the user's computer, comprising: automatically receiving a support request from a user's computer at a time when the support request occurs at the user's computer, the support request including information about the source of the support request; filtering the support request to determine the topic area for the support request of the user; storing profiles for one or more support providers, the profiles including information about the support provider's expertise in a particular topic area; and matching, based on the topic area derived during the filtering, the user to one or more support providers, based on the profiles of the support provider, whose topic area expertise matches the user's topic area so that the user is automatically directed to the one or more support providers with the necessary expertise to rapidly resolve the support request. 25. The method of Claim 24 further comprising selecting a support provider to resolve the support request based on the one or more support providers matched to the support request. 26. The method of Claim 25 further comprising establishing a communications session between the selected support provider and the user so that the support request may be resolved. 27. The method of Claim 24, wherein the source of the support request comprises one or more of a technical problem and a how-to question. 28. The method of Claim 27, wherein the source of the support request further comprises data about the user initiating the support request including support entitlement data indicating the level of support to be provided to the user so that a list of support providers provided to the user is based partially on the support entitlement data of the user. 29. The method of Claim 26, wherein the support request further comprises automatically gathered black box data about the user's computer, the black box data including data about the configuration of the computer including hardware and software. 30. The method of Claim 26, wherein the support request comprises browsing a problem taxonomy in order to identify the specific area of the support request. 31. The method of Claim 29, wherein the selecting comprises presenting the support request to the one or more support providers who have the necessary expertise to resolve the support request and, for each support provider, electing to respond to the support request based on the support request. 32. The method of Claim 31 , wherein the selecting further comprises posting a bid for each support provider for the support request, presenting the bids for the support request to the user and selecting the support provider by the user based on the bids from the support providers. 33. The method of Claim 29, wherein the selecting comprises presenting a list of the recommended support providers to the user and selecting a support provider by the user based on profiles of each support provider. 34. The method of Claim 29, wherein the selecting further comprises presenting the support request and reputation data for the user to the one or more support providers who have the necessary expertise to resolve the support request, providing a bid by each support provider in response to the support request based on the support request and the reputation data, presenting the bids of the support providers to the user and selecting a support provider by the user based on the bids. 35. The method of Claim 33, wherein each profile comprise one or more of cost of the support, the rating of the support provider and the availability of the support provider. 36. The method of Claim 35, wherein each profile further comprises a geographic vicinity of the support provider. 37. The method of Claim 31, wherein the establishing further comprises establishing one of a control session and a shared screen session between the user and the selected support provider, the session permitting the support provider to change the user's computer to resolve the support request. 38. The method of Claim 37, wherein the establishing further comprises limiting the applications in the user's computer that are modifiable by the support provider during the session. 39. The method of Claim 31 , wherein the establishing comprises establishing a live chat session between the user and the selected support provider. 40. The method of Claim 31 , wherein the establishing comprises establishing a voice over IP session between the user and the selected support provider. 41. The method of Claim 31 , wherein the establishing comprises establishing a bulletin board session between the user and the selected support provider. 42. The method of Claim 24, wherein the matching comprises comparing the profiles of the support providers to the support request. 43. The method of Claim 42, wherein the profiles further comprise one or more rules indicating the expertise of the support provider, the rules comprising one or more of yes, no and a conditional yes. 44. The method of Claim 26 further comprising capturing the traffic of the communications session between the user and the selected support provider. 45. The method of Claim 24 further comprising receiving feedback from the user and the support provider in response to a support request, the feedback being utilized to change the rating of the support provider or a reputation of the user. 46. A computer for receiving an automatically matched user support provider to a user support request, the computer comprising: means for automatically generating a support request containing information from the computer at the time when a support request occurs, the support request identifying the source of the support request; means for automatically communications the support request to a user support system; and means for receiving a response from the user support system in response to the support request, the response comprising one or more support providers whose expertise matches the topic area of the support request of the user . 47. The computer of Claim 46 further comprising means for selecting a support provider to resolve the support request based on the one or more support providers matched to the support request. 48. The computer of Claim 47 further comprising means for having a communications session established between the selected support provider and the user by the user support system so that the support request may be resolved. 49. The computer of Claim 46, wherein the source of the support request comprises one or more of a technical problem and a how-to question. 50. The computer of Claim 49, wherein the source of the support request further comprises data about the user initiating the support request including support entitlement data indicating the level of support to be provided to the user so that a list of support providers provided to the user is based partially on the support entitlement data of the user. 51. The computer of Claim 48, wherein the support request further comprises automatically gathered black box data about the user's computer, the black box data including data about the configuration of the computer including hardware and software. 52. The computer of Claim 48, wherein the support request comprises means for browsing a problem taxonomy in order to identify the specific area of the support request. 53. The computer of Claim 48, wherein the establishing means further comprises means for establishing one of a control session and a shared screen session between the user and the selected support provider, the session permitting the support provider to change the user's computer to resolve the support request. 54. The computer of Claim 53, wherein the establishing means further comprises means for limiting the applications in the user's computer that are modifiable by the support provider during the session. 55. The computer of Claim 48, wherein the establishing means comprises means for establishing a live chat session between the user and the selected support provider. 56. The computer of Claim 48, wherein the establishing means comprises means for establishing a voice over IP session between the user and the selected support provider. 57. The computer of Claim 48, wherein the establishing means comprises means for establishing a bulletin board session between the user and the selected support provider.

Inventors: DEROSSI CHRIS, OTHMER KONSTANTIN, DEROSSI, CHRIS, OTHMER, KONSTANTIN
Applicants: EPEOPLE INC, EPEOPLE, INC.
Application year: 2000
Main classification: G06F17
IPC codes: G06Q10, G06Q30, G06Q50, G06Q99