WO2000074193A1 - User support system and method - Google Patents

User support system and method Download PDF

Info

Publication number
WO2000074193A1
WO2000074193A1 PCT/US2000/014595 US0014595W WO0074193A1 WO 2000074193 A1 WO2000074193 A1 WO 2000074193A1 US 0014595 W US0014595 W US 0014595W WO 0074193 A1 WO0074193 A1 WO 0074193A1
Authority
WO
WIPO (PCT)
Prior art keywords
support
user
information
computer
signature
Prior art date
Application number
PCT/US2000/014595
Other languages
French (fr)
Other versions
WO2000074193A9 (en
Inventor
Konstantin Othmer
Original Assignee
Nowonder, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nowonder, Inc. filed Critical Nowonder, Inc.
Priority to EP00937842A priority Critical patent/EP1190475A1/en
Priority to AU52965/00A priority patent/AU5296500A/en
Publication of WO2000074193A1 publication Critical patent/WO2000074193A1/en
Publication of WO2000074193A9 publication Critical patent/WO2000074193A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Definitions

  • This invention relates generally to a system and method for providing user
  • the memory or the disk drive and computer peripheral hardware such as a printer, a
  • An automated user support system and method are provided in which the user's
  • the user may automatically access a targeted user support system that will
  • the user's problem may be
  • the system may generate a knowledge base of problems
  • the system may also permit each user to leave a posting about the user's particular
  • the system may also be inco ⁇ orated into the knowledge base.
  • the system may be a publicly
  • the system may also permit the user to access live support if the support
  • the support system is insufficient or the user would like to receive live
  • the failure or problem occurs such as environment, registry settings, recent user actions or events leading up to the problem, comments or questions from the user,
  • signature may contain information about the user such as his name, address, contact
  • the signature may be sent, via a communications medium
  • the system may have a plurality of servers wherein each server may handle
  • the dispatcher thus coarsely categorizes the problems based on the
  • server may then further analyze the signature and further categorize the problem so that
  • the user can be directed to the page that solves the problem without the user searching
  • the dispatcher can keep a directory of all the possible servers that
  • the user support system automatically collects
  • the signature data on the client machine at the point of failure i.e., when the software
  • the system not only finds
  • the system may be used to resolve problems and
  • the system also collects critical signature data right at the point of failure.
  • information such as the actual error message on the screen and the events
  • leading up to the error or failure may be critical in providing help to the user.
  • the system may include a software application located on the client computer
  • the dispatcher may analyze the signatures and distribute the signatures to the
  • the dispatcher and servers are WWW-
  • the system receives a signature containing machine state information
  • the signature includes things such as, but not limited to, a software application
  • the system then dispatches the incident, based on the
  • a browser application of the client computer is directed to one of the user support sites
  • the system receives a
  • the system determines one or
  • the user either automatically captured by the client application or by asking the user,
  • the system determines which of the solutions solved the problem and can update its
  • Figure 1 is a diagram illustrating an embodiment of an automated software
  • Figure 2 is a diagram illustrating a preferred first embodiment of a method for
  • Figure 3 is a diagram illustrating a second embodiment of a method for
  • Figure 4 is a diagram illustrating a third embodiment of a method for providing
  • Figure 5 is a diagram illustrating an example of a knowledge base that is
  • Figure 6 is a diagram illustrating a user using a software application to edit a
  • Figure 7 is a diagram illustrating a user being confronted with a error dialog
  • Figure 8 is a diagram illustrating a client user interface for the user support
  • Figures 9a and 9b are diagrams illustrating an example of a user support web
  • Figures 10a and 10b are diagrams illustrating an example of a support site web
  • Figure 11 is a diagram illustrating an example of a newsgroup support web
  • Figure 12 is a diagram illustrating an example of a live user support directory
  • FIG. 13 is a diagram illustrating an example of a live support center web
  • Figures 14a and 14b are diagrams illustrating an example of the live support
  • Figure 15 is a diagram illustrating an example of a fix authoring user interface
  • Figure 16 is a diagram illustrating an example of a fix assignment user interface
  • Figure 17 is a diagram illustrating an example of a self-help assignment user
  • Figure 18 is a diagram illustrating an example of the assignment of self-help
  • Figure 19 is a diagram illustrating a detector for the software application user
  • Figure 20 is a diagram illustrating a second embodiment of the software
  • Figure 21 is a diagram illustrating a third embodiment of the software
  • the invention is particularly applicable to a World Wide Web (WWW) based
  • client/server system for automatically providing software application user support
  • system may be used to provide automated user support for system software failures and
  • trackball CD drive
  • video or sound hardware a keyboard, a printer or a scanner
  • Figure 1 is a diagram illustrating an embodiment of an automated software
  • Client #1, Client #2 and Client #N may include one or more client computers (Client #1, Client #2 and Client #N) which are owned by client computers.
  • Client #1, Client #2 and Client #N may include one or more client computers (Client #1, Client #2 and Client #N) which are owned by client computers.
  • microprocessors (not shown) which execute a browser application stored
  • WWW site over a public communications medium, such as the Internet.
  • ED detector
  • error message as they occur on the client computer. It may also include a menu item
  • detector 32 in each client computer may generate a signature packet, based on the
  • the signature packet may include
  • the signature may permit the
  • the detector 32 may communicate the signature packet to a remote software
  • Internet a co ⁇ orate Intranet, a local area network, a wide area network and the like so
  • the software application user support system may provide the user with a response
  • the signature attempts to capture a majority of the
  • information in the signature may permit the system to resolve the support request
  • the detector 32 may be a piece of hardware, but
  • signature packet is generated by the detector 32 and communicated to a dispatcher 34
  • a computer network 36 such as the Internet or the World Wide Web (WWW).
  • a computer network 36 such as the Internet or the World Wide Web (WWW).
  • WWW World Wide Web
  • the dispatcher may be a server computer that may be accessed over the Internet or the
  • the signature generated by each detector in each client computer may have a
  • the signature may have the application name and the error
  • This information may be used to help diagnose the problem and
  • the system may automatically
  • the dispatcher 34 may receive the signatures from the one or more client
  • the dispatcher may select from one of a plurality of servers 38, 40, 42
  • servers 38 - 42 may form a knowledge base from which solutions to support requests
  • signature information For example, a signature relating to a support request in Word
  • the dispatcher may therefore coarsely categorize
  • each server may further refine the problem so that a solution may be identified.
  • systems 38, 40, 42 may be located at the same location as the dispatcher 34 or may be
  • network 44 which may include the Internet, the World Wide Web, a local area network
  • knowledge base may also formed by existing third party data sources. For example,
  • the knowledge may be stored on a third party's web site and the system may be a proxy
  • the proxy may include data content and logic for mapping
  • the dispatcher 34 may also pass the uniform resource locator
  • the server receives the signature from the dispatcher
  • each server may include a
  • solutions to the software application support requests to form a knowledge base.
  • server may also include one or more templates or criteria to which the signatures are
  • user support system may include operators which can, in addition to looking for an equality between the signature and the criteria, compare the signature to operators,
  • each server may
  • signatures may be easily converted into a template for a particular support request so
  • the server attempts to identify a solution to the particular request.
  • the server may communicate information
  • the user may
  • the server may reflect that in the database. If the solution was successful, the server may reflect that in the database. If the solution was successful, the server may reflect that in the database. If the solution was successful
  • the server may also generate a knowledge base about all of the reported
  • the user may fill out a trouble ticket that may be sent to a technical support
  • the server may also permit the users of the
  • the user may also send messages about problems related to their machine context signature.
  • the user may also send messages about problems related to their machine context signature.
  • the user may also send messages about problems related to their machine context signature.
  • system may use these postings to generate a knowledge base that may be used to
  • any user may access the support system.
  • the system can solve problems rapidly with minimal input from the user about context
  • the developer of the software application may use the knowledge
  • base as a system for detecting the most prevalent bugs that need to be fixed, or user
  • the system may also permit the users of the
  • the system may track users
  • the system may
  • the knowledge base of the system 30 may also be updated when a solution to a computer problem on the bulletin board is detected so that the
  • system 30 adds knowledge from this bulletin board/chat room.
  • the system may also permit the user to type in "how-to" questions. In these cases
  • the system may do a much better job of routing the user to the right place for an
  • the system can direct the user to the correct
  • the system may also permit the user of the client computer to identify
  • dialog box so that the detector 32 may collect various specific machine state
  • the detector 32 may
  • the detector 32 gathers machine state
  • the user support system may also provide user
  • support system is able to gather information about the software application or
  • the system may also identify signatures that have similar solutions using
  • a local database may be stored in the
  • client computer that contains one or more signatures and solutions to those signatures.
  • the local database may also include one or more templates or criteria.
  • the local database may also include one or more templates or criteria.
  • a signature when a signature is received, it may be compared to the template or criteria to
  • This local database in the client computer may be periodically updated by the system
  • the detector 32 may compare a generated signature with the local database to determine if there is a match with the
  • the user support system 30 does not have to provide a solution to the
  • support system 30 may receive a signature, identify a solution to the signature and then
  • the database may be constantly updated with information.
  • the user support system automatically collects
  • diagnostic information about the failure or error is collected automatically ensuring
  • the system also collects critical signature data right at the point of
  • Figure 2 is a diagram illustrating a preferred first embodiment of a method 52
  • the method may be either user initiated (i.e., the user requests user support for a
  • the method may also be
  • the user support system automatically initiated based on other criteria. For example, the user support system
  • the user support system may periodically poll the local network router and
  • the signature data 54 which may include a unique key to
  • the dispatcher is sent to a browser application on the client computer and the browser
  • the dispatcher 34 will send a web page back to the client computer using the
  • HTML format containing a solution or list of possible solutions which is then
  • the signature of the failure is
  • the browser is automatically launched using a
  • Figure 3 is a diagram illustrating a second embodiment of the method 52 for
  • the method may be either user or application initiated as described
  • client computer 53 may launch the browser application in step 55 and
  • encoded signature data also referred to as black box data.
  • the browser may access
  • the dispatcher using the URL address and communicate the signature data to the dispatcher 34 which forwards the signature data onto the appropriate server as
  • the browser of the client computer may
  • step 56 display a solution in step 56 in the form of a web page.
  • the solution in step 56 in the form of a web page.
  • signature data is not automatically communicated to the dispatcher 34, but is encoded
  • Figure 4 is a diagram illustrating a third embodiment of the method 52 for
  • the method may be either user or application initiated as described
  • the system may communicate the signature data
  • dispatcher 34 is not known by the client computer and therefore it must download the
  • dispatcher may also be obtained from a communication mechanism that does not use
  • URLs or the URL for the dispatcher may be acquired from a well known directory
  • Figure 5 is a diagram illustrating an example of a knowledge base 70 that is
  • the knowledge base may contain any known solutions to the
  • system also generates the knowledge base that is constantly expanding as more
  • the knowledge base 70 may preferably be a tree which organizes the contents
  • retrieval techniques such as, for example, text searches, associative memory, cognitive
  • the tree as shown in Figure 5 may include a root node 72 which identifies the
  • the root node may be one or more nodes 74, 76, 78 relating to different classes of problems with the particular software application, such as printer problems,
  • general problem nodes are one or more nodes 80, 82, 84 which further define the
  • these nodes may be underneath the printer problem node
  • support system may analyze the incoming signature data and determine that the
  • configuration problem is further classified as either a missing file, a corrupt file or
  • the missing file problem is further classified as either a driver file
  • a missing DLL file node 88 may be a solution 90 to the
  • the page may indicate to
  • Figure 6 is a screen shot 100 showing an example of a user using a software
  • the user has a document (Whitepap.doc) open and some text 102 is being displayed to the user.
  • the text
  • a Talkback button icon 108 includes two footnotes along with some footnote text.
  • a Talkback button icon 108 includes two footnotes along with some footnote text.
  • the start-up tray may be located in the start-up tray and may be used to display the client end of the
  • the detector as described above is active so that, when a software application problem
  • the detector gathers the signature information.
  • Figure 7 is a screen shot 120 illustrating an example of the user attempting to
  • OK button when activated, causes the software application to stop the deletion process
  • the Talkback icon 108 when clicked on by the
  • the user may display a user interface for entering problem information.
  • icon 108 permits the user to request help with a problem at any time by filling in the
  • system menu tray as shown in
  • client computer automatically detects the software application problem, automatically
  • Figure 8 illustrates an example of a user interface 130 of the detector client
  • the detector user interface 130 is displayed on top of the
  • the user interface may include a drop down menu 132 for
  • the information in the user interface 130 is automatically filled in by the
  • the detector fills in the name of the software
  • the detector may receive the signature
  • the detector determines that an error message is
  • the sample question may be, " Why can't I
  • user may modify any of the information in the user interface.
  • the user may modify any of the information in the user interface.
  • the user may modify any of the information in the user interface. For example, the user
  • the user interface 130 may replace the sample question with a more specific question.
  • a cancel button 138 for canceling the support request may also include a cancel button 138 for canceling the support request, a information
  • buttons 140 for requesting more information about the detector application and a submit
  • buttons 142 for submitting the support request to the user support system.
  • Figures 9a and 9b illustrate a web page 150 which is displayed on the user's
  • the dispatcher dispatches the signature information to the
  • This web page 150 may include a
  • portion 152 which permits the user to request live support from a user support person
  • the web page 150 may also include an upper portion 154
  • the web page may also include
  • a problem identification section 156 which automatically lists the user's particular
  • the web page 150 may also include an
  • article section 158 which includes a listing of the articles which suggest solutions to
  • the user support system may search the various servers to
  • the web page may also include a newsgroup/chat room
  • solution section 160 which includes a listing of the solutions which appear in the
  • the web page 150 permits the user to either select
  • Figures 10a and 10b illustrate an example of a web page 166 located on the
  • the web page 166 may include various sections with
  • introduction section may include a title and information about which versions of the
  • the symptom section may
  • the cause section may include an explanation of why the problem
  • Figure 11 illustrates a web page 176 displayed to the user when the user selects
  • the solution is shown in the newsgroup format, but the solution may also be
  • the web page 176 may include a header section 178
  • the header section 178 may include information about the
  • the text section may include the text of
  • the newsgroup posting provides the same solution to the
  • the user escalate the support request and select to receive live support by selecting the
  • live support icon 152 The live support process will now be described.
  • Figure 12 illustrates a web page 184 which may be displayed to the user when
  • the user selects to receive live user support from the web page shown in Figure 9a.
  • the web page 184 may be a directory of user support sites which may be used by the
  • web page 184 may include a user section 186 and a support section 188.
  • the user may include a user section 186 and a support section 188. The user
  • section may provide the user with specific information about the user, such as that the
  • the support section 188 may list one or more support sites or support centers which
  • the support section 188 may include cost
  • the user support system may also be
  • ACD automatic call director
  • support system may include additional information about each support center, such as
  • section 188 may also include web links to the support centers.
  • the support centers may also include web links to the support centers.
  • Figure 13 is a diagram illustrating a web page 190 of the Microsoft Personal
  • Support center may include a static, user input section 192 and a live chat section
  • the static user input section permits the user to interact with the live support
  • the chat section 194 permits the user to have a
  • Figures 14a and 14b are diagrams illustrating a live support web page 200 that
  • the information section 202 may include an information section 202 and the live chat section 1 4.
  • the information section 202 may include an information section 202 and the live chat section 1 4.
  • section 202 may contain the various information contained in the signature information
  • the information may be generated based on the signature
  • the user may fill out an evaluation form for the
  • the user support system may update the ratings for the live
  • Figure 15 is a diagram illustrating an example of a fix authoring user interface
  • the page 230 may
  • code writer section 232 which permits the user support person to generate
  • Figure 16 is a diagram illustrating an example of a fix assignment user interface
  • an activator page may be used to assign the fixes, information and status
  • the fix assignment screen 240 permits the user support people to assign
  • the user may enter one or more fixes (or the locations of the fixes or the
  • fix code in a fix picker 242 and enter criteria in a criteria box 244.
  • criteria in the criteria box is identified in signature information from a client, one of the
  • the page may also permit the user support person to save the
  • Figure 17 is a diagram illustrating an example of a self-help assignment user
  • the page 250 may include the
  • the user support person may also assign the appropriate criteria
  • the page may also permit the user support person to update the assignment of the
  • Figure 18 is a diagram illustrating an example of a self-help assignment user
  • the page 260 may include the
  • the page may also permit the user support person to update the assignment of the self-
  • Figure 19 is a diagram illustrating the detector 32 of the software application
  • the detector As described above, the detector
  • the detector is embedded into the client computer, it is
  • OS operating system
  • the detector may automatically generate a signature when a software
  • the detector is able to generate a signature that may be
  • the detector 32 may include an event detector 270, a database/local storage 272
  • the information module may perform data collection when certain
  • event occur such as the computer start, an application start, system or an application
  • These data streams may be monitored in order to collect history information (prior user
  • the information module may
  • the information module may also detect an anomalous condition, such as
  • the event detector may, using various heuristics, attempt to determine when a
  • the event detector may detect the software application problem using
  • detector 270 signals the signature gatherer 274 to generate a signature for the software
  • the signature may be temporarily stored in the database 272.
  • the signature gatherer 274 may then communicate the signature to the dispatcher as
  • the database 272 may contain information and detection rules which are used
  • signature gatherer 274 may be connected to various data in the client computer which
  • OS operating system
  • OS data e.g.
  • the gatherer may also make requests to the operating
  • 274 may continually gather signature data which is periodically removed from memory
  • the gatherer 274 may
  • the event detector 270 may detect that a software application problem has
  • a software application crash event is fairly easy to
  • the event detector may
  • An error message generated by a software application is more
  • the OS of the client computer generates a dialog resource to
  • all of the resource identifications for a particular OS may
  • a chart may identify whether or not the
  • the database 272 In the first detection method, the database 272
  • the printer XXX was not found
  • the string associated with the resource may be identified and compared to a
  • any dialog may be used to detect a software application problem. For example, any dialog
  • the user support system may automatically update the lists in
  • the detector periodically as additional information is generated from the knowledge
  • Figure 20 is a diagram illustrating a second embodiment of a software
  • the system 280 may include one or more employees of a
  • Each of the client computers may include the
  • detector 32 which detects software application problems and generates a signature for
  • a computer network 36 such as an internal
  • the users the computer network 36 and the dispatcher 34
  • This system 280 may be located within the secure network of the co ⁇ oration. This system 280 may be located within the secure network of the co ⁇ oration. This system 280 may
  • help desk 282 which receives the information generated by the
  • the help desk 282 may also receive data back from the one
  • servers 38, 40, 42 which each handle software application problems for a
  • Each server 38, 40, 42 may include the database
  • the co ⁇ oration has complete control over the system and the
  • the co ⁇ oration may periodically receive knowledge base upgrades from the
  • Figure 21 is a diagram illustrating a third embodiment of the software
  • the system 290 may include one or more users (User #1,
  • the client computers may include the detector 32 which detects software application
  • a computer network 36 such as an internal co ⁇ orate Intranet, a LAN, a WAN or a
  • the dispatcher 34 may be owned by the developer and
  • the server 292 which resolves
  • this system 290 is designed to handle software
  • 290 may, however, may have access to the other servers 48, 50 and 52 as support
  • public servers 38, 40, 42 may be uploaded periodically to the server 292 at the
  • the public knowledge base is
  • the developer may mine the
  • the developer based on the number of signatures associated
  • the developer may determine information that may

Abstract

A user support system (30, 38, 40, 42) for automatically providing user support for software applications, system software or computer hardware is provided. The system (30, 38, 40, 42) may 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. The client computer (32) generates information when the problem occurs. The information is communicated to the support system (30, 38, 40, 42) which then provides a solution.

Description

USER SUPPORT SYSTEM AND METHOD
Background of the Invention
This invention relates generally to a system and method for providing user
support and in particular to a system and method for automatically providing user
support for 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 problems with the software application occur. 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.
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 problems
and complaints and attempt to solve the user's problem 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
problem that a user is having and therefore often end up with low satisfaction ratings
and frustrating both the users and the support personnel. In addition, support people
cannot possible remember all of the prior solutions to problems they see infrequently,
and often get bored with repeatedly solving common problems.
The problems experienced 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 problems, a support person typically
engages in a rather lengthy 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 inteφreting what the machine is doing, and then
relaying that over the telephone. Finally, once the support person has the information
he must search manuals, knowledge bases, news groups, and/or other sources of
information to solve the problem.
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
an automated user support 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
An automated user support system and method are provided in which the user's
software application or computer hardware problem may be resolved or suggestions
may be provided to the user automatically. In particular, when the user experiences a
software application problem, such as a software crash or a software application error
message, the user may automatically access a targeted user support system that will
provide the user with help in solving the problem. Thus, the user's problem may be
resolved without necessitating a call to a user support personnel. In addition to
resolving the user's problem, the system may generate a knowledge base of problems
and solutions to the problems based on the users who access and utilize the system.
The system may also permit each user to leave a posting about the user's particular
problem and the solution to that problem for other users to review. These postings
may also be incoφorated into the knowledge base. The system may be a publicly
accessible user support system for a plurality of software applications, a user support
system connected to a typical help desk or a user support system for a single software
application. The system may also permit the user to access live support if the support
provided by the support system is insufficient or the user would like to receive live
support.
In more detail, an information set about the details of the machine that is
experiencing the application or system problem (i.e., machine state information when
the failure or problem occurs such as environment, registry settings, recent user actions or events leading up to the problem, comments or questions from the user,
configuration, etc.) may be automatically generated at the user's computer when the
software event occurs or when the user needs help. Herein we call this computer state
description the computer "signature" since it signifies everything a support person
would want to know about that machine. In addition to the machine information, the
signature may contain information about the user such as his name, address, contact
information, registry and/or warranty information, or other information specifying the
support he is entitled to, etc. The signature may be sent, via a communications medium
such as the Internet or a local coφorate network, to a dispatcher server that reviews the
signature and, based on particular pieces of data in the signature passes the signature,
or parts of the signature, onto a server that can handle the particular problem. For
example, the system may have a plurality of servers wherein each server may handle
the problems associated with a particular software application so that one server may
handle Microsoft® Word problems, another server may handle Novell® GroupWise
problems, etc. The dispatcher thus coarsely categorizes the problems based on the
software application, system software or specific hardware that has the problem. Each
server may then further analyze the signature and further categorize the problem so that
the user can be directed to the page that solves the problem without the user searching
endlessly through a user support site. These additional servers can be located
anywhere, so long as the dispatching server can search them by using the specific
information in the signature. Additionally, the dispatcher can keep a directory of all the possible servers that
can help with a given signature, and submit a request for help to each of them. The
dispatcher then aggregates the responses and presents an overview of the response and
its source to the user so the user can then choose which best solves his needs.
In accordance with the invention, the user support system automatically collects
the signature data on the client machine at the point of failure (i.e., when the software
or hardware crash or error message occurs, and/or the user initiates a support request)
with a single click. The solution, or a list of possible solutions, to the support request is
automatically delivered back to the user of the client computer via a web browser. The
advantages of the system in accordance with the invention include the fact that the user
doesn't have to know where the support information is located since the system
automatically directs the user to the proper location of the solution. In particular,
based on the information in the machine state or signature, the system not only finds
the right support location, it also brings the user very close, or directly to, the solution
to the failure or problem. In addition, the system may be used to resolve problems and
failures associated with a variety of different software and hardware systems. For
example, the same system works for solving MS Word problems as well as problems
with an HP printer, even though the knowledge bases for those two products might be
maintained by separate organizations. Another advantage is that the diagnostic
information in the machine state signature is collected automatically ensuring that the
information is accurate and complete. In existing systems, the user has to answer
questions either on the web or over the phone about the problem where the user may not correctly remember, for example, the series of steps taken just prior to the problem
or failure. The system also collects critical signature data right at the point of failure.
For example, information such as the actual error message on the screen and the events
leading up to the error or failure may be critical in providing help to the user.
The system may include a software application located on the client computer
which records the software application problems as a signature as the software
application problems occur and communicates the signatures to the dispatcher system.
The dispatcher may analyze the signatures and distribute the signatures to the
appropriate servers. In a preferred embodiment, the dispatcher and servers are WWW-
based servers that are accessed over the Internet or WWW and the user access the
system using a browser application.
Thus a system for automatically providing user support for a computer problem
is provided. The system receives a signature containing machine state information
(including user actions or events leading up to the problem or support request) from a
client computer at the time when a computer problem occurs at the client computer
wherein the signature includes things such as, but not limited to, a software application
name, error messages, user comments, machine and system configuration, types of
peripherals connected, etc. The system then dispatches the incident, based on the
information in the signature, to a selected one of a plurality of user support sites. Then,
a browser application of the client computer is directed to one of the user support sites
to provide the user with information and solutions to the computer problem. In accordance with another aspect of the invention, a system for automatically
generating a knowledge base containing information about a plurality of computer
problems indexed based on the machine signatures is provided. The system receives a
signature containing machine state information (including user actions or events
leading up to the problem or support request) from a client computer at the time when
a computer problem occurs at the client computer. The system then determines one or
more solutions to the computer problem and stores the signature and the solutions in a
database containing a plurality of signatures and solutions relating to the same
computer problem so that a knowledge base of machine state information and
corresponding solutions to the computer problem is generated. Based on feedback from
the user, either automatically captured by the client application or by asking the user,
the system determines which of the solutions solved the problem and can update its
knowledge base to better help users with similar machine signatures in the future.
Brief Description of the Drawings
Figure 1 is a diagram illustrating an embodiment of an automated software
application user support system in accordance with the invention;
Figure 2 is a diagram illustrating a preferred first embodiment of a method for
providing user support information to the user in accordance with the invention;
Figure 3 is a diagram illustrating a second embodiment of a method for
providing user support information to the user in accordance with the invention; Figure 4 is a diagram illustrating a third embodiment of a method for providing
user support information to the user in accordance with the invention;
Figure 5 is a diagram illustrating an example of a knowledge base that is
generated by the system shown in Figure 1 ;
Figure 6 is a diagram illustrating a user using a software application to edit a
document;
Figure 7 is a diagram illustrating a user being confronted with a error dialog
box while attempting to perform an action in the software application;
Figure 8 is a diagram illustrating a client user interface for the user support
system in accordance with the invention;
Figures 9a and 9b are diagrams illustrating an example of a user support web
page in accordance with the invention;
Figures 10a and 10b are diagrams illustrating an example of a support site web
page;
Figure 11 is a diagram illustrating an example of a newsgroup support web
page;
Figure 12 is a diagram illustrating an example of a live user support directory
web page in accordance with the invention; Figure 13 is a diagram illustrating an example of a live support center web
page;
Figures 14a and 14b are diagrams illustrating an example of the live support
web page;
Figure 15 is a diagram illustrating an example of a fix authoring user interface
screen in accordance with the invention;
Figure 16 is a diagram illustrating an example of a fix assignment user interface
screen in accordance with the invention;
Figure 17 is a diagram illustrating an example of a self-help assignment user
interface screen in accordance with the invention;
Figure 18 is a diagram illustrating an example of the assignment of self-help
URLs in accordance with the invention;
Figure 19 is a diagram illustrating a detector for the software application user
support in accordance with the invention;
Figure 20 is a diagram illustrating a second embodiment of the software
application support system in accordance with the invention; and
Figure 21 is a diagram illustrating a third embodiment of the software
application support system in accordance with the invention. Detailed Description of a Preferred Embodiment
The invention is particularly applicable to a World Wide Web (WWW) based
client/server system for automatically providing 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 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 public communications medium, such as the Internet. Each client
computer may also include a detector (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 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 signature packet, based on the
context of the software application, which characterizes the software application and
machine state at the time of the request. The signature packet may 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 signature may permit the
software application user support system in accordance with the invention to
automatically diagnose and automatically provide a solution to the support request as
will be described in more detail below.
The detector 32 may communicate the signature packet to a remote software
application user support device over a typical communications medium, such as the
Internet, a coφorate 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 response
to the support request. Thus, the signature attempts to capture a majority of the
information about the software application problem so that the user may need to
provide very little or no additional information to resolve the request. 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 problem coherently since the
information in the signature may permit the system 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. The details of the
detector will be described below with reference to Figure 16.
When a software application support request occurs at a client computer, the
signature packet is generated by the detector 32 and communicated to a dispatcher 34
over a computer network 36, such as the Internet or the World Wide Web (WWW).
The dispatcher may be a server computer that may be accessed over the Internet or the
WWW. The signature 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 signature may have the application name and the error
message generated. This information may be used to help diagnose the problem and
provide the user with a solution. For example, if the signature indicates that there is
insufficient memory to run the particular application, the system may automatically
notify the user that more memory is needed. The details of gathering the signature
information and communicating it to the dispatcher 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 dispatcher 34 may receive the signatures from the one or more client
computers and determine, based on the information in the signatures, how to route the
signatures to the appropriate server that can solve the problem. In more detail, based
on the information in the signature, such as the application name and the generated
error message, the dispatcher may select from one of a plurality of servers 38, 40, 42
which handles the particular problems with the particular software application. The
servers 38 - 42 may form a knowledge base from which solutions to support requests
or problems may be determined. In the example shown in Figure 1, the software
application problems are categorized based on the software application in which the
software application problem occurs so that there may be a Word server, a Group Wise
server and a Navigator server that handle support requests associated with Microsoft
Word, Novell Group Wise and Netscape Navigator. Therefore, the signatures received
from the client computers may be directed to each of these servers based on the
signature information. For example, a signature relating to a support request in Word
may be directed to the Word server. The dispatcher may therefore coarsely categorize
the incoming software application problems based on the software application and then
each server may further refine the problem so that a solution may be identified. The
systems 38, 40, 42 may be located at the same location as the dispatcher 34 or may be
located at remote locations and may be connected to the dispatcher using a computer
network 44 which may include the Internet, the World Wide Web, a local area network
or a wide area network. Instead of the knowledge base residing on servers within the system, the
knowledge base may also formed by existing third party data sources. For example,
the knowledge may be stored on a third party's web site and the system may be a proxy
to the knowledge base. The proxy may include data content and logic for mapping
support requests to pieces of content in the knowledge base and for presenting the
information to the user. The dispatcher 34 may also pass the uniform resource locator
(URL) of the particular server back to the client computer over the computer network
36 so that the browser of the client computer may access the particular server or
knowledge base directly over the Internet or the World Wide Web. The user may then
receive additional information about a solution to the problem directly from the
particular server while the dispatcher 34 continues to direct the signatures to the
appropriate servers.
At each server 38, 40, 42, the server receives the signature from the dispatcher
and processes the information in the signature. In particular, each server may include a
database 46, 48, 50 of known software application support requests along with
solutions to the software application support requests to form a knowledge base. The
server may also include one or more templates or criteria to which the signatures are
compared to categorize the signature and/or relate the signature to a solution in the
database. In particular, if a signature fits into a particular template or criteria, the
solution associated with that criteria may be provided to the user who made be support
request. To perform the comparison of the signature to the criteria or template, the
user support system may include operators which can, in addition to looking for an equality between the signature and the criteria, compare the signature to operators,
such as "corrupt", "inconsistent" and "incompatible". In addition, each server may
automatically generate a template or criteria based on the signatures so that the
signatures may be easily converted into a template for a particular support request so
that future signatures for the same support request will match the generated template.
Thus, based on the information in the database and the information in the
signature, the server attempts to identify a solution to the particular request. When a
possible one or more solutions are located, the server may communicate information
about the one or more solutions, as described below, back to the user. The user may
then be able to indicate to the server whether the solution was successful. If the
solution was successful, the server may reflect that in the database. If the solution was
not successful, that may also be reflected in the database. The user's answers may thus
be used, by the server, to determine which solutions for a particular software
application problem are the best solutions and which solutions may be discarded.
Thus, as more users have a particular software application problem, the server
generates a knowledge base about the solutions to that particular software application
problem. The server may also generate a knowledge base about all of the reported
software application problems associated with a particular software application.
In the event that the server cannot suggest a solution to the particular support
request, the user may fill out a trouble ticket that may be sent to a technical support
person who can hopefully determine a solution to the software application problem. In particular, to help the technical support person solve the computer problem, the system
30 may forward the signature data along with any information about the steps taken by
the user to solve the problem to the technical support person. Thus, the automated
software application support system permits the majority of the easy to solve events to
be resolved without involving the technical support people so that these people can
focus on the tougher support requests. The server may also permit the users of the
system to enter an electronic "chat room" or news group so that the users may post
messages about problems related to their machine context signature. The user may also
post solutions to these problems. Such a solution authoring environment might be as
simple as entering a text message or more complex as in writing a script that describes
the data values in the machine signature that specifically identifies machine state and
context symptomatic of the problem for which the solution is being authored. The
system may use these postings to generate a knowledge base that may be used to
suggest solutions to these problems when another user has the same problem. In this
embodiment, any user may access the support system.
The automated software application user support system in accordance with the
invention provides a number of advantages over typical user support systems. First,
the system can solve problems rapidly 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 problem to a user support person who may not be very helpful.
In addition, as each client computer sends a signature to the dispatcher and the software application problem is resolved, a knowledge base about the problems
associated with various software applications and their solutions is generated which
may be useful to various different people. Since the collection of this data is done
automatically, the form factor of the underlying data is consistent eliminating many of
the "natural language" related problems plaguing conventional knowledge bases.
Additionally, the developer of the software application may use the knowledge
base as a system for detecting the most prevalent bugs that need to be fixed, or user
interface issues that need to be addressed. The system may also permit the users of the
system to participate in a chat room or news group/bulletin board type environment
where the users may post computer problems and/or solutions thereby supporting each
other. This has advantages to both the end users since they can get their problems
solved more quickly from other members of the user community, as well as advantages
to the company producing the software since this will avoid costly support calls. In
particular, in this chat-room or newsgroup environment, the system may track users
who post computer problems and permit the users to post rewards for a solution to the
computer problem. When a solution is posted, the user who posted the solution is also
tracked to ensure payment of the reward. In a preferred embodiment, the system may
include an electronic payment system so that the user posting the computer problem is
electronically debited when a solution is identified and the user posting a solution to
the computer problem is electronically credited for the solution. The tracking system
and the preferred electronic payment system encourages people to post solutions to
posted computer problems. The knowledge base of the system 30 may also be updated when a solution to a computer problem on the bulletin board is detected so that the
system 30 adds knowledge from this bulletin board/chat room.
The system may also permit the user to type in "how-to" questions. In these
cases, 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 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 correct
resolution immediately.
The system may also permit the user of the client computer to identify
particular subject matter which the user wants help with, such as an error message
dialog box so that the detector 32 may collect various specific machine state
information about the subject matter which the user wants help from the operating
system and append the information to the typical machine state information as
described above. For example, for an error message dialog box, the detector 32 may
collect the name of the dialog box, the text of the error message and the application call stack that lead up to the error message. Thus, the detector 32 gathers machine state
information from the operating system. The user support system may also provide user
support to software applications or computer hardware without any active involvement
by the developer of the software application or the computer hardware since the user
support system is able to gather information about the software application or
computer hardware without direct access to the software application or the computer
hardware. The system may also identify signatures that have similar solutions using
typical comparison methods, so that a link between the signatures with the similar or
same solutions may be generated in the knowledge base. This permits the system 30
using the knowledge base to, for example, suggest a solution to a computer problem
when the solution is not associated with the signature generated by the computer
problem, but is associated with the linked signature.
In another embodiment of the invention, a local database may be stored in the
client computer that contains one or more signatures and solutions to those signatures.
The local database may also include one or more templates or criteria. In particular,
when a signature is received, it may be compared to the template or criteria to
categorize the signature and relate the signature to a solution. Thus, the local database
does not necessarily need exemplar signatures since the incoming signatures could be
filtered through the criteria or templates to generate a solution to the support request.
This local database in the client computer may be periodically updated by the system
30 so that the local database in the client computer is kept up to date as new signatures
or solutions are discovered by the system. In operation, the detector 32 may compare a generated signature with the local database to determine if there is a match with the
local database. If a match occurs, the user is informed of the match (i.e., a solution in
the local database exists) and the user may click a button to display the solution. In
this embodiment, the user support system 30 does not have to provide a solution to the
client computer due to the local database. In updating the local database, the user
support system 30 may receive a signature, identify a solution to the signature and then
communicate the signature and the solution back to the local database so that the local
database may be constantly updated with information.
In accordance with the invention, the user support system automatically collects
the data on the client machine at the point of failure (i.e., when the software or
hardware crash or error message occurs) with a single click and the solution (or a list of
possible solutions) to the support request is automatically delivered back to the user of
the client computer via a web browser. The advantages of the system in accordance
with the invention include that fact that the user doesn't have to know where the
support information is located or how to most effectively search the knowledge base if
the location is known since the system automatically directs the user to the proper
location of the solution. In particular, based on the information in the machine state or
signature, the system not only finds the right support location, it also brings the user
very close, or directly to, the solution to the failure or problem. In addition, the system
may be used to resolve problems and failures associated with a variety of different
software and hardware systems. For example, the same system works for solving MS
Word problems as well as problems with an HP printer, even though the knowledge bases for those two products might be maintained by separate organizations. The
diagnostic information about the failure or error is collected automatically ensuring
that the information is accurate and complete. In existing systems, the user has to
answer questions either on the web or over the phone about the problem where the user
may not correctly remember, for example, the series of steps taken just prior to the
problem or failure. The system also collects critical signature data right at the point of
failure. For example, information such as the actual error message on the screen and
the events leading up to the error or failure may be critical in providing help to the
user. Now, several embodiment of a method for providing user support information to
the user in accordance with the invention will be described.
Figure 2 is a diagram illustrating a preferred first embodiment of a method 52
for providing user support information to the user in accordance with the invention.
The method may be either user initiated (i.e., the user requests user support for a
particular software application, system software or computer hardware), or application
initiated (i.e., the failure of a software application, such as a software crash or error
message, triggers the gathering of signature data 54). The method may also be
automatically initiated based on other criteria. For example, the user support system
may monitor the user's activities and initiate a support request when a network
connection times out event if a crash or software failure does not occur. As another
example, the user support system may periodically poll the local network router and
initiate a support request if the router stops responding to the polling. In either case, the signature data 54, which may include a unique key to
identify the signature, is then automatically communicated to the dispatcher 34. At the
same time, a uniform resource locator (URL) along with the same unique key sent to
the dispatcher is sent to a browser application on the client computer and the browser
application is automatically launched using the URL to access the web site which
includes the dispatcher 34 and the other servers described above. When the browser is
launched, the dispatcher 34 will send a web page back to the client computer using the
HTML format containing a solution or list of possible solutions which is then
displayed to the user in step 56. In this method, the signature of the failure is
automatically sent to the dispatcher 34, the browser is automatically launched using a
known URL and the solution is displayed to the user. Notice that the user does not
need to know the location of the user support server nor search through the user
support web sites for the appropriate solution to the user's problem. Now, a second
embodiment of the method for providing user support in accordance with the invention
will be described.
Figure 3 is a diagram illustrating a second embodiment of the method 52 for
providing user support information to the user in accordance with the invention. In
this embodiment, the method may be either user or application initiated as described
above and the client computer 53 may launch the browser application in step 55 and
provide the browser application with the URL of the dispatcher 34 which may include
encoded signature data (also referred to as black box data). The browser may access
the dispatcher using the URL address and communicate the signature data to the dispatcher 34 which forwards the signature data onto the appropriate server as
described above. When a solution is located, the browser of the client computer may
display a solution in step 56 in the form of a web page. In this embodiment, the
signature data is not automatically communicated to the dispatcher 34, but is encoded
and communicated to the dispatcher 34 when the user's browser accesses the
dispatcher 34. Now, a third embodiment of the method for providing user support will
be described.
Figure 4 is a diagram illustrating a third embodiment of the method 52 for
providing user support information to the user in accordance with the invention. In
this embodiment, the method may be either user or application initiated as described
above. When the method is initiated, the system may communicate the signature data
54 to the dispatcher 34 and the dispatcher will send an URL address back to the client
computer with the address of the server to be accessed. Then, the browser application
is launched in step 55 using the URL provided by the dispatcher 34 and the dispatcher
or the appropriate server provides a web page back to the client computer which
displays the solution to the user in step 56. In this embodiment, the URL of the
dispatcher 34 is not known by the client computer and therefore it must download the
URL of the dispatcher 34 prior to launching the browser application. The URL for the
dispatcher may also be obtained from a communication mechanism that does not use
URLs or the URL for the dispatcher may be acquired from a well known directory
service. Now, an example of the knowledge base generated by the system and
contained in the databases 46, 48, 50 will be described. Figure 5 is a diagram illustrating an example of a knowledge base 70 that is
generated by the server shown in Figure 1 and stored in the database 46, 48, 50. In
this example, a small portion of the knowledge base for Microsoft Word software
application problems is shown and described although the knowledge base in each
server will be much more extensive. As described above, this knowledge base may be
stored in a database and may be generated based on the signatures received from the
client computers so that the knowledge base grows every time a new signature is
received. Initially, the knowledge base may contain any known solutions to the
problem and then additional solutions may be added. Thus, in addition to
automatically resolving user problems, the automatic software application support
system also generates the knowledge base that is constantly expanding as more
signatures, user solutions and user responses are processed.
The knowledge base 70 may preferably be a tree which organizes the contents
of the knowledge base. The contents of the knowledge base in accordance with the
invention may also be organized using any other well-known knowledge storing and
retrieval techniques such as, for example, text searches, associative memory, cognitive
processing, decision trees, fault models, or case based reasoning. Any one or more of
these knowledge search techniques may be used for retrieving the data.
The tree as shown in Figure 5 may include a root node 72 which identifies the
software application (Word in this example) to which the knowledge base is related.
Underneath the root node may be one or more nodes 74, 76, 78 relating to different classes of problems with the particular software application, such as printer problems,
error messages, saving problems, or software crashes in Word. Underneath each of the
general problem nodes are one or more nodes 80, 82, 84 which further define the
problem. In this example, these nodes may be underneath the printer problem node
and may be for configuration problems, conflict problems and other problems. To
navigate from the printer problem node to configuration node, for example, the user
support system may analyze the incoming signature data and determine that the
problem is related to a configuration problem. Underneath each of these nodes are
additional nodes 86 which further define the problem. In this example, the
configuration problem is further classified as either a missing file, a corrupt file or
other. Then, the missing file problem is further classified as either a driver file
problem or a DLL file problem. At the bottom of the knowledge base connected to the
specific problem, such as a missing DLL file node 88, may be a solution 90 to the
problem which may cause a page to be displayed to the user. The page may indicate to
the user that the problem is a missing DLL file and have a button which can be clicked
by the user to access a website and download the missing DLL file. Thus, the bottom
of the knowledge base contains the solutions to the individual software application
problems. Now, an example of a user experiencing a software application problem and
receiving help from the automatic software application support system in accordance
with the invention will be described.
Figure 6 is a screen shot 100 showing an example of a user using a software
application, such as Microsoft Word. In this example, the user has a document (Whitepap.doc) open and some text 102 is being displayed to the user. The text
includes two footnotes along with some footnote text. A Talkback button icon 108
may be located in the start-up tray and may be used to display the client end of the
software application user support system in accordance with the invention when a
software application problem occurs. While the user is using the software application,
the detector as described above, is active so that, when a software application problem
occurs, the detector gathers the signature information.
Figure 7 is a screen shot 120 illustrating an example of the user attempting to
perform an action in Word which causes an error to occur. In particular, the user
highlights the two footnotes on the page and presses the delete key in an attempt to
delete the footnotes and the footnote text. When the user presses the delete key,
however, an error message dialog box 122 is generated by the software application
when a software application problem occurs. In this particular example, the dialog box
indicates to the user that, "This is not a valid action for footnotes." In addition to the
text of the error message in the dialog box 122, there may be an OK button 124. The
OK button, when activated, causes the software application to stop the deletion process
and return the user to the document. The Talkback icon 108, when clicked on by the
user, may display a user interface for entering problem information. The Talkback
icon 108 permits the user to request help with a problem at any time by filling in the
user interface page. Note that the button to request support help with Talkback could
be located in several different places, including the system menu tray as shown in
Figure 7. In another alternative embodiment, where the support request is automatically initiated when a software application problems occurs, the detector in the
client computer automatically detects the software application problem, automatically
gathers the signature information from the client computer relating to the particular
software application problem and automatically communicates the signature
information to the dispatcher 34 shown in Figure 1 so that the dispatcher may direct
the signature to the appropriate server. If the support request is automatically
generated, such as when the footnote error dialog box was displayed as shown in
Figure 7, then a user interface of the detector is displayed as shown in Figure 8.
Figure 8 illustrates an example of a user interface 130 of the detector client
software application in accordance with the invention. When the user clicks the OK
button in the error message, the detector user interface 130 is displayed on top of the
software application. The user interface may include a drop down menu 132 for
entering the software application that the user needs support for, a text box 134 for
entering the specific error message encountered and a text box 136 for entering the user
support question. In the embodiment where the support request is automatically
generated, the information in the user interface 130 is automatically filled in by the
detector. In the example shown, the detector fills in the name of the software
application (Microsoft Word) based on the signature information, fills in the text of the
error message dialog (This is not a valid action for footnotes.) based on the error dialog
text in the signature information and fills in a sample support question for the user
based on heuristics. For the question, the detector may receive the signature
information and determine a sample support question. For example, if the current active window contains an OK box, the detector determines that an error message is
being displayed to the user so that the sample question may be, "What does this
message mean?". As another example, if the error message contained in the signature
information relates to a menu item, then the sample question may be, " Why can't I
perform this action using the menu item?".
Whether the information is automatically generated or entered by the user, the
user may modify any of the information in the user interface.. For example, the user
may replace the sample question with a more specific question. The user interface 130
may also include a cancel button 138 for canceling the support request, a information
button 140 for requesting more information about the detector application and a submit
button 142 for submitting the support request to the user support system. When the
user clicks on the submit button 142, the web browser application on the client
computer is automatically launched and the user is directed to a user support web page
as shown in Figures 9a and 9b.
Figures 9a and 9b illustrate a web page 150 which is displayed on the user's
web browser when the user submits a support request. In particular, when the user
submits a support request, the dispatcher dispatches the signature information to the
appropriate server to generate solutions to the support request. The dispatcher then
directs the user's browser application 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 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 signature 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 by the dispatcher. The user support system may search the various servers to
generate the list of articles. 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 dispatcher which are located by the dispatcher based on
the signature information. 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
an article in the article section 158 will be described.
Figures 10a and 10b illustrate an example of a web page 166 located on the
official user support site, such as the Microsoft Personal Support Center in this
example, which the user is directed to when the user selects the second article from the web page shown in Figure 9b. The web page 166 may include various sections with
information about the solution to the support request, including an introduction section
168, a symptom section 170, a cause section 172 and a workaround section 174. The
introduction section may include a title and information about which versions of the
software application that the solution may be applicable to. The symptom section may
contain a brief synopsis of the problem, such as "...In Microsoft Word, if you edit a
footnote, the following error message may appear: Not a valid action for footnotes in
this example. The cause section may include an explanation of why the problem
occurs and the workaround section contains a solution to the problem. In this example,
the solution is that if you want to delete the footnote, you must delete the footnote
reference number that appears in the text of the document. Now, an example of a
solution from the newsgroup solutions list will be described.
Figure 11 illustrates a web page 176 displayed to the user when the user selects
the second newsgroup solution from the web page shown in Figure 9b. 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 9a, if the user is not satisfied with the solutions provided by the articles or the newsgroups,
the user escalate the support request and select to receive live support by selecting the
live support icon 152. The live support process will now be described.
Figure 12 illustrates a web page 184 which may be displayed to the user when
the user selects to receive live user support from the web page shown in Figure 9a.
The web page 184 may be a directory of user support sites which may be used by the
user so that the user support system provides the user with a choice of solutions. The
web page 184 may include a user section 186 and a support section 188. The user
section may provide the user with specific information about the user, such as that the
user may already exhausted their free user support calls in this example. Therefore,
the support section 188 may list one or more support sites or support centers which
provide user support for the particular support request for a fee. In the example shown,
there may be three support centers. The support section 188 may include cost
information as well as a rating of each support center by users of the user support
system. For example, after each live support experience, a user of the user support
system may fill out an evaluation form so that the user support system may change its
rating of the live support center if appropriate. The user support system may also be
integrated into the support center's automatic call director (ACD) so that the user
support system may include additional information about each support center, such as
the estimated hold time for each support call and any additional capabilities of the
support center such as voice or remote control. This additional information may be
gathered from the ACD or from other sources and then combined with the other information to permit users to select a support center based on the various factors (
price vs. wait tradeoff, for example) listed in the support section 188. The support
section 188 may also include web links to the support centers. In this example, the
user selects the Microsoft Personal Support center and is automatically linked to that
support center web page as will now be described.
Figure 13 is a diagram illustrating a 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 14a and 14b.
Figures 14a and 14b are diagrams illustrating a live support web page 200 that
may include an information section 202 and the live chat section 1 4. The information
section 202 may contain the various information contained in the signature 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 signature
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. Now, an example of a web page that permits a user
support person to provide a fix for a software application problem will now be
described.
Figure 15 is a diagram illustrating an example of a fix authoring user interface
screen 230 in accordance with the invention that permits a user support person to
generate a fix for a software application problem. In particular, the page 230 may
include a code writer section 232 which permits the user support person to generate
code to fix a software application problem. The particular software application
problem that the code applies to is specified in an upper section 234. Once the person
has completed the code, he may click an OK button 236 to save the fix code into the
knowledge base so that the fix code may be distributed to users. The next series of
pages permit the user support person to generate the information, fix and self-help
pages that are displayed to the client computer. Now, a page for assigning fixes to a
particular software application problem will be described.
Figure 16 is a diagram illustrating an example of a fix assignment user interface
screen 240 in accordance with the invention. In the next three pages shown in Figures
16 -18, an activator page may be used to assign the fixes, information and status
information which appear on the client user interface pages by changing an action field
241 from "assign fix" to "assign info" to "assign status". Now, assigning the fixes is described. The fix assignment screen 240 permits the user support people to assign
one or more fixes to a software application problem based on particular criteria.
Specifically, the user may enter one or more fixes (or the locations of the fixes or the
fix code) in a fix picker 242 and enter criteria in a criteria box 244. Thus, when the
criteria in the criteria box is identified in signature information from a client, one of the
fixes listed in the fix picker 242 is chosen and sent to the client computer. The page
240 also permits the user support person to modify the assignment of the fixes so that,
a new previously unknown fix which is better than the other known fixes may be
assigned to a criteria. The page may also permit the user support person to save the
new assignments. Now, a page for assigning the information and self-help will be
described.
Figure 17 is a diagram illustrating an example of a self-help assignment user
interface screen 250 in accordance with the invention. The page 250 may include the
criteria field 244 and a field 252 for assigning a URL link that directs the user of the
client computer to a web page with information about the particular software
application problem. The user support person may also assign the appropriate criteria
using the criteria field 244. Thus, when the criteria exists in the signature information
and the user of the client computer clicks on the information link, the user will be
directed to the web page pointed to by the URL entered by the user support person.
The page may also permit the user support person to update the assignment of the
information links. Now, a page for assigning the self-help links will be described. Figure 18 is a diagram illustrating an example of a self-help assignment user
interface screen 260 in accordance with the invention. The page 260 may include the
criteria field 244 and a field 262 for assigning one or more URL links for self-help
pages that may be accessed by the user of the client computer. The user support person
may also assign the appropriate criteria using the criteria field 244. Thus, when the
criteria exists in the signature information and the user of the client computer clicks on
the self-help link, a list of self-help pages will be displayed so that the user will be
directed to the web pages pointed to by the URLs entered by the user support person.
The page may also permit the user support person to update the assignment of the self-
help links. Now, more details about the detector located within each client computer
will be described.
Figure 19 is a diagram illustrating the detector 32 of the software application
user support system in accordance with the invention. As described above, the detector
32 is embedded in the client computer and may preferably be a software application
stored in the memory of the client computer which is executed by the microprocessor
of the client computer. Because the detector is embedded into the client computer, it is
able to monitor various operating system (OS) information and user actions and
commands so that the detector may automatically generate a signature when a software
application problem occurs in the client computer. Thus, even when a software
application crashes, the detector is able to generate a signature that may be
communicated to the dispatcher as some later time. The detector 32 may include an event detector 270, a database/local storage 272
and a signature gatherer 274 which are combined together into an intrinsic information
module. As shown, the information module may perform data collection when certain
event occur, such as the computer start, an application start, system or an application
shutdown, API calls or when another module detects a triggering event. It may also
monitor data stream by intercepting them (see the hooked events shown in Figure 19).
These data streams may be monitored in order to collect history information (prior user
actions or events) or to detect patterns within the data stream that should cause the
machine state information to be generated. For example, the information module may
monitor SQL database transactions and keep the most recent 30 transactions in a
history buffer so that the most recent SQL transactions may be included in a signature
if appropriate. The information module may also detect an anomalous condition, such
as an illegal SQL command in the data stream.
The event detector may, using various heuristics, attempt to determine when a
software application problem, such as a software crash or an error message, has
occurred. The event detector may detect the software application problem using
detection rules and information which may be stored in the database 272 as will be
described below. Once the software application problem has been detected, the event
detector 270 signals the signature gatherer 274 to generate a signature for the software
application problem. The signature may be temporarily stored in the database 272.
The signature gatherer 274 may then communicate the signature to the dispatcher as
described above. Now, each of these units will be described in more detail. The database 272 may contain information and detection rules which are used
for detecting a software application problem. It may also contain signatures. The
signature gatherer 274 may be connected to various data in the client computer which
are typically available to the operating system (OS), such as various OS data (e.g.,
stack data) and user action data. The gatherer may also make requests to the operating
system, the hardware or a software application as well as perform tests. The gatherer
274 may continually gather signature data which is periodically removed from memory
by new data. When a software application problem is detected, the gatherer 274 may
gather together the signature data gathered prior to the event and package the signature
data into a data packet which may be sent to the dispatcher.
The event detector 270 may detect that a software application problem has
occurred in several different ways. A software application crash event is fairly easy to
identify based on the OS data available to the event detector. The event detector may
also make requests to the operating system, the hardware or a software application as
well as perform tests. An error message generated by a software application is more
difficult since some dialog boxes are not reporting errors. In particular, when an error
message is generated, the OS of the client computer generates a dialog resource to
generate the window with the error message, a system message indicating that a string
should appear in the dialog box and the text to be placed into the string. In accordance
with a first detection method, all of the resource identifications for a particular OS may
be identified. For each resource identification, a chart may identify whether or not the
software application user support system is going to be called and what URL is going to be accessed. For example, a resource identification for a dialog box about checking
that the user wants to save a document is not a resource identification which would
trigger the generation of a signature. In the first detection method, the database 272
may store a list of the text patterns, such as "The printer XXX was not found" which
would be indicators that a software application problem has occurred. Then, the
incoming dialog text would be compared to the list of regular expressions and the user
support system is activated if a match occurs. In accordance with a second detection
method, the string associated with the resource may be identified and compared to a
list of typical strings which trigger the user support system. In accordance with a third
detection method, the detection of certain graphics characteristics of a dialog window
may be used to detect a software application problem. For example, any dialog
window that contains a one OK button and one other button indicates a software
application problem and a signature is generated and sent to the dispatcher. With all of
these detection methods, the user support system may automatically update the lists in
the detector periodically as additional information is generated from the knowledge
base, for example. Now, a second embodiment of the software application user
support system is described in which the help desk of a coφoration may be integrated
with the software application user support system.
Figure 20 is a diagram illustrating a second embodiment of a software
application support system 280 in accordance with the invention. Elements of this
embodiment of the invention are similar to the elements shown and described with
reference to Figure 1 and therefore have the same reference numerals and will not be described here in any detail. The system 280 may include one or more employees of a
coφoration (User #1, User #2 and User #N) who have personal computers which they
use to accomplish job related functions. Each of the client computers may include the
detector 32 which detects software application problems and generates a signature for
the event. The signatures generated by the detector 32, when a software application
problem occurs, are communicated over a computer network 36, such as an internal
coφorate Intranet, a LAN, a WAN or a public network, to the dispatcher 34.
In this embodiment, the users, the computer network 36 and the dispatcher 34
may be located within the secure network of the coφoration. This system 280 may
also include a help desk 282 which receives the information generated by the
dispatcher based on the information in each signature and passes the signature onto the
relevant server 38, 40, 42. The help desk 282 may also receive data back from the one
or more servers 38, 40, 42 which each handle software application problems for a
particular software application, such as Microsoft Word, Netscape Navigator and
Novell Group Wise in this example. Each server 38, 40, 42 may include the database
46, 48, 50 which stores the knowledge base which is used to resolve the software
application problems as described above.
In this embodiment, the solutions generated by the servers are communicated
back to the help desk 282 which then communicates the solutions back to the users so
that the user support system itself is transparent to the users. Thus, the users do not
know that the solutions being proposed by the help desk are actually being suggested by the user support system in accordance with the invention. The benefit of this
embodiment is that the coφoration has complete control over the system and the
general public does not have any access to the system. With this embodiment,
however, the coφoration may periodically receive knowledge base upgrades from the
system shown in the first embodiment since the system in the first embodiment is more
likely to grow the knowledge base more rapidly since more people (the general public)
may access that system. Now, a third embodiment of the user support system will be
described in which a developer of a software application may control the system.
Figure 21 is a diagram illustrating a third embodiment of the software
application support system 290 in accordance with the invention. Elements of this
embodiment of the invention are similar to the elements shown and described with
reference to Figure 1 and therefore have the same reference numerals and will not be
described here in any detail. The system 290 may include one or more users (User #1,
User #2 and User #N) who have personal computers which execute a software
application that is developed by the coφoration which owns the system 290. Each of
the client computers may include the detector 32 which detects software application
problems and generates a signature when the event occurs. The signatures generated
by the detector 32 when a software application problem occurs are communicated over
a computer network 36, such as an internal coφorate Intranet, a LAN, a WAN or a
public network, to the dispatcher 34. In this embodiment, the dispatcher 34 may be owned by the developer and
located on the developer's site. In this embodiment, the server 292 which resolves
software application problems associated with the developer's software application and
its database 294 with its knowledge base may be integrated into the dispatcher to form
a single integrated unit. Thus, this system 290 is designed to handle software
application problems related to the developer's software application only. The system
290 may, however, may have access to the other servers 48, 50 and 52 as support
channels so that the dispatcher 34 may use the information in the databases 46, 48, 50
of the servers 38, 40, 42 to resolve problems. In addition, the knowledge base from the
public servers 38, 40, 42 may be uploaded periodically to the server 292 at the
developer's site to update the knowledge base. As above, the public knowledge base is
likely to grow faster than the developer's internal knowledge base.
In this embodiment, the solutions generated by the servers are communicated
back to the users by directing the browser application of the client computer to
predetermined URLs. The benefit of this embodiment is that the developer has
complete control over the system and the knowledge base and the general public does
not have any access to the system. In addition, the developer may mine the
information in the knowledge base to determine various information about the software
application. For example, the developer, based on the number of signatures associated
with each class of problems, may determine the most prevalent user problems and
correct those prevalent problems in the next revision of the software application. Thus, by users accessing the system 290, the developer may determine information that may
be helpful to the future development of the software application.
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 providing user support for a support request,
the system comprising:
means for receiving a signature containing information from a client computer
at the time when a support request occurs at the client computer;
means for dispatching an incident, based on the information in the signature, to
a selected one of a plurality of user support sites; and
means for directing a browser application of the client computer to one of the
user support sites to provide the user with information and solutions to the support
request.
2. The system of Claim 1 , wherein the client computer comprises means
for receiving a user selection of a support request for which the user wants support and
means for collecting machine state information about the selected support request from
the client computer in order to provide a solution to the support request.
3. The system of Claim 2, wherein the support request is triggered by a
computer problem, the computer problem comprises an error dialog and wherein the
problem machine state information comprises one or more of a name of the dialog
window, a text string contained in the error dialog and an application call stack leading
up to the error dialog.
4. The system of Claim 1 , wherein each of the user support sites
comprising means for storing a database of solutions to support requests, a particular
software application problem, a particular system software problem and a particular
problem with a piece of computer hardware, the database being generated from prior
machine state signatures provided to the user support site.
5. The system of Claim 4, wherein the support request is generated by a
computer problem that comprises one of a software crash or a software application
error message.
6. The system of Claim 4, wherein the support request is generated by a
computer problem that comprises one of an operating system crash or an operating
system error message.
7. The system of Claim 4, wherein the support request is generated by a
computer problem that comprises a computer hardware problem and wherein the
machine state information comprises information about the configuration of the
computer hardware.
8. The system of Claim 1 further comprising a detector in the client
computer for detecting a computer problem and generating a signature of the computer
problem when the computer problem occurs in the client computer.
9. The system of Claim 8, wherein the detector further comprises a
database in the client computer containing known computer problems and means for
comparing the generated machine state information signature with the computer
problem database to provide a solution to the user of the client computer without
communicating with the dispatcher means.
10. The system of Claim 9 further comprising means for periodically
updating the problem database in the client computer so that the detector detects
additional computer problems, without sending the signature to the dispatcher means,
based on the updates to the problem database.
11. The system of Claim 8, wherein the detector further comprises means
for gathering operating system information from the client computer when the
computer problem occurs.
12. The system of Claim 8, wherein the detector further comprises means
for detecting that a computer error message has occurred.
13. The system of Claim 12, wherein the detecting means comprises means
for identifying a dialog box containing an error message.
14. The system of Claim 1 , wherein the machine state information
comprises an application name and an error message generated by the application.
15. The system of Claim 14, wherein the machine state information further
comprises one or more of configuration information, computer system type, user
comments, user's responses to questions and one or more pieces of information
generated by diagnostics being run on the client computer.
16. The system of Claim 1 further comprising means for escalating a
support request to a live support center along with unsolved support request
information, the unsolved support request information comprising the machine state
information signature and the prior actions taken by the user to solve the support
request.
17. The system of Claim 16, wherein the escalation means comprises a list
of information about support centers offering user support, the information including a
link to the support center, a cost of the support center and a rating of the support center
and means for selecting one of the support centers based on the support center
information.
18. The system of Claim 17, wherein the escalation means further
comprises means for receiving feedback for a particular support center from a user who used that support center and means for adjusting the rating information for the support
center based on the feedback.
19. The system of Claim 18, wherein escalation means comprises means for
tracking call wait time information at each support center and wherein the support
center information comprises the call wait time information.
20. The system of Claim 4, wherein each user support site further comprises
means for identifying machine state information signatures having a similar solution,
means for updating a database in the client computer to reflect the similarity of the
machine state information signatures and means for generating machine state
information signatures containing information about the similarity of the machine state
information signatures.
21. The system of Claim 4, wherein each user support site further comprises
means for identifying support requests which are not solved by the database and means
for reporting the unsolved support requests to a user support person.
22. The system of Claim 1 further comprising means for posting a support
request to a bulletin board to locate a solution to the support request.
23. The system of Claim 22 further comprising means for tracking the users
who post the support requests and the users who post solutions to the support requests
so that the user who post the solutions are rewarded for the solution.
24. The system of Claim 23, wherein the tracking means comprises an
electronic payment system so that the user who posts the solution receives a monetary
credit for the solution and the user who posted the computer problem receives a
monetary debit.
25. The system of Claim 1 further comprising a database of information
about one or more support request providers, the information including a link to the
support request provider and a rating of the support request provider and means for
selecting a support request provider from the database based on the information.
26. The system of Claim 1 , wherein said support request comprises a
question by the user about how to solve a problem.
27. A method for automatically providing user support for a support
request, the method comprising:
receiving a signature containing information from a client computer at the time
when a support request occurs at the client computer, the signature including a
software application name and the type of error message; dispatching an incident, based on the information in the signature, to a selected
one of a plurality of user support sites; and
directing a browser application of the client computer to one of the user support
sites to provide the user with information and solutions to the support request.
28. The method of Claim 27 further comprising receiving a user selection of
a support request for which the user wants support and collecting machine state
information about the selected support request from the client computer in order to
provide a solution to the support request.
29. The method of Claim 28, wherein the support request is triggered by a
computer problem, the computer problem comprises an error dialog and wherein the
problem machine state information comprises one or more of a name of the dialog
window, a text string contained in the error dialog and an application call stack leading
up to the error dialog.
30. The method of Claim 27, wherein each of the user support sites
comprising storing a database of solutions to support requests, a particular software
application problem, a particular system software problem and a problem with a
particular piece of computer hardware, the database being generated from prior
machine state signatures provided to the user support site.
31. The method of Claim 30, wherein the support request is generated by a
computer problem that comprises one of a software crash and a software application
error message.
32. The method of Claim 30, wherein the support request is generated by a
computer problem that comprises one of an operating system software application
crash and an operating system software application error message.
33. The method of Claim 30, wherein the support request is generated by a
computer problem that comprises a computer hardware problem and wherein the
machine state information comprises information about the configuration of the
computer hardware.
34. The method of Claim 27 further comprising detec cing a computer
problem in the client computer and generating a signature of the computer problem
when the computer problem occurs in the client computer.
35. The method of Claim 34, wherein the detecting further comprises a
database in the client computer containing known computer problems and comparing
the generated machine state information signature with the computer problem database
to provide a solution to the user of the client computer without communicating with the
dispatcher.
36. The method of Claim 35 further comprising periodically updating the
problem database in the client computer so that the detector detects additional
computer problems, without sending the signature to the dispatcher, based on the
updates to the problem database.
37. The method of Claim 34, wherein the detecting further comprises
gathering operating system information from the client computer when the computer
problem occurs.
38. The method of Claim 34, wherein the detecting further comprises
detecting that a computer error message has occurred.
39. The method of Claim 38, wherein the detecting comprises identifying a
dialog box containing an error message.
40. The method of Claim 27, wherein the machine state information
comprises an application name and an error message generated by the application.
41. The method of Claim 40, wherein the machine state information further
comprises one or more of configuration information, computer system type, user comments, user's responses to questions and one or more pieces of information
generated by diagnostics being run on the client computer.
42. The method of Claim 22 further comprising escalating a support request
to a live support center along with unsolved support request information, the unsolved
support request information comprising the state machine information signature and
the actions taken by the user to solve the problem.
43. The method of Claim 42, wherein the escalation comprises generating a
list of information about support centers offering user support, the information
including a link to the support center, a cost of the support center and a rating of the
support center and selecting one of the support centers based on the support center
information.
44. The method of Claim 43, wherein the escalation further comprises
receiving feedback for a particular support center from a user who used that support
center and adjusting the rating information for the support center based on the
feedback.
45. The method of Claim 44, wherein the escalation comprises tracking call
wait time information at each support center and wherein the support center
information comprises the call wait time information.
46. The method of Claim 30, wherein each user support site further
comprises identifying machine state information signatures having a similar solution,
updating a database in the client computer to reflect the similarity of the machine state
information signatures and generating machine state information signatures containing
information about the similarity of the machine state information signatures.
47. The method of Claim 30, wherein each user support site further
comprises identifying support requests which are not solved by the database and
reporting the unsolved support requests to a user support person.
48. The method of Claim 27 further comprising posting a support request to
a bulletin board to find a solution to the support request.
49. The method of Claim 48 further comprising tracking the users who post
the support requests and the users who post solutions to the support requests so that the
user who post the solutions are rewarded for the solution.
50. The method of Claim 49, wherein the tracking comprises an electronic
payment system so that the user who posts the solution receives a monetary credit for
the solution and the user who posted the computer problem receives a monetary debit.
51. The method of Claim 27 further comprising generating a database of
information about one or more support request providers, the information including a
link to the support request provider and a rating of the support request provider and
selecting a support request provider from the database based on the information.
52. The method of Claim 27, wherein said support request comprises a
question by the user about how to solve a problem.
53. A system for automatically generating a knowledge base containing
information about a plurality of support requests, the system comprising:
means for receiving a signature containing machine state information from a
client computer at the time when a support request occurs at the client computer;
means for comparing the signature to one or more templates in order to
categorize the signature;
means for generating a new template from the categorized signature so that
other signatures for a similar support request match the new template, the new template
being associated with one or more solutions; and
means for storing the signature, the new template and the solutions in a
database so that a knowledge base of signatures, templates and corresponding solutions
to the support request is generated.
54. A system for providing user support for a support request, the system
comprising:
means for receiving a signature containing machine state information from a
client computer at the time when a support request occurs at the client computer;
means for dispatching an incident, based on the state machine information in
the signature, to a selected one of a plurality of user support sites; and
means for generating a listing of one or more user support sites that provide a
solution to the support request, each support site listing including information about
the support center, the information including a link to the support site, a cost of the
support site and a rating of the support site.
55. The system of Claim 54 further comprising means for receiving
feedback for a particular support site from a user who used that support site and means
for adjusting the rating information for the support site based on the feedback.
56. The system of Claim 55 further comprising means for tracking call wait
time information at each support site and wherein the support center information
comprises the call wait time information.
PCT/US2000/014595 1999-05-29 2000-05-25 User support system and method WO2000074193A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP00937842A EP1190475A1 (en) 1999-05-29 2000-05-25 User support system and method
AU52965/00A AU5296500A (en) 1999-05-29 2000-05-25 User support system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32269999A 1999-05-29 1999-05-29
US09/322,699 1999-05-29

Publications (2)

Publication Number Publication Date
WO2000074193A1 true WO2000074193A1 (en) 2000-12-07
WO2000074193A9 WO2000074193A9 (en) 2002-07-11

Family

ID=23256033

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/014595 WO2000074193A1 (en) 1999-05-29 2000-05-25 User support system and method

Country Status (3)

Country Link
EP (1) EP1190475A1 (en)
AU (1) AU5296500A (en)
WO (1) WO2000074193A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065367A2 (en) * 2001-02-14 2002-08-22 The Workplace Helpline Method and apparatus for assisting workplace services and products
EP1262873A1 (en) * 2001-05-31 2002-12-04 Gateway, Inc. Method and apparatus for providing customer support
FR2825493A1 (en) * 2001-06-04 2002-12-06 Hewlett Packard Co METHOD AND SYSTEM FOR PROVIDING TECHNICAL SUPPORT DOCUMENTS VIA THE INTERNET
EP1291774A1 (en) * 2001-09-06 2003-03-12 Hewlett-Packard Company, A Delaware Corporation Assistance request system
EP1405153A2 (en) * 2001-06-12 2004-04-07 Digex, Inc. Automated message handling system and process
WO2007127764A2 (en) * 2006-04-28 2007-11-08 Scientific-Atlanta, Inc. Automated analysis of collected field data for error detection
US7681181B2 (en) 2004-09-30 2010-03-16 Microsoft Corporation Method, system, and apparatus for providing custom product support for a software program based upon states of program execution instability
US7954008B2 (en) 2007-01-15 2011-05-31 Microsoft Corporation Objective assessment of application crashes from a customer environment
US8122436B2 (en) 2007-11-16 2012-02-21 Microsoft Corporation Privacy enhanced error reports
US8316448B2 (en) 2007-10-26 2012-11-20 Microsoft Corporation Automatic filter generation and generalization
US8700781B2 (en) 2001-06-12 2014-04-15 Verizon Business Global Llc Automated processing of service requests using structured messaging protocols
US8972567B2 (en) 2012-02-08 2015-03-03 Sage Software, Inc. Selectively triggering execution of services in a computing environment
WO2021028442A1 (en) * 2019-08-12 2021-02-18 Sweepr Technologies Limited An automated support system for connected devices

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388252A (en) * 1990-09-07 1995-02-07 Eastman Kodak Company System for transparent monitoring of processors in a network with display of screen images at a remote station for diagnosis by technical support personnel
US5408655A (en) * 1989-02-27 1995-04-18 Apple Computer, Inc. User interface system and method for traversing a database
US5644735A (en) * 1992-05-27 1997-07-01 Apple Computer, Inc. Method and apparatus for providing implicit computer-implemented assistance
US5678002A (en) * 1995-07-18 1997-10-14 Microsoft Corporation System and method for providing automated customer support
US5754830A (en) * 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US5806043A (en) * 1995-06-06 1998-09-08 Interactive Media Works, L.L.C. Method for providing customer on-line support via prepaid internet access
US5877757A (en) * 1997-05-23 1999-03-02 International Business Machines Corporation Method and system for providing user help information in network applications
US5964891A (en) * 1997-08-27 1999-10-12 Hewlett-Packard Company Diagnostic system for a distributed data access networked system
US5983369A (en) * 1996-06-17 1999-11-09 Sony Corporation Online simultaneous/altering-audio/video/voice data based service and support for computer systems
US6065136A (en) * 1997-02-18 2000-05-16 Shimadzu Corporation System for remote diagnosis of device troubles

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408655A (en) * 1989-02-27 1995-04-18 Apple Computer, Inc. User interface system and method for traversing a database
US5388252A (en) * 1990-09-07 1995-02-07 Eastman Kodak Company System for transparent monitoring of processors in a network with display of screen images at a remote station for diagnosis by technical support personnel
US5644735A (en) * 1992-05-27 1997-07-01 Apple Computer, Inc. Method and apparatus for providing implicit computer-implemented assistance
US5806043A (en) * 1995-06-06 1998-09-08 Interactive Media Works, L.L.C. Method for providing customer on-line support via prepaid internet access
US5678002A (en) * 1995-07-18 1997-10-14 Microsoft Corporation System and method for providing automated customer support
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US5754830A (en) * 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5983369A (en) * 1996-06-17 1999-11-09 Sony Corporation Online simultaneous/altering-audio/video/voice data based service and support for computer systems
US6065136A (en) * 1997-02-18 2000-05-16 Shimadzu Corporation System for remote diagnosis of device troubles
US5877757A (en) * 1997-05-23 1999-03-02 International Business Machines Corporation Method and system for providing user help information in network applications
US5964891A (en) * 1997-08-27 1999-10-12 Hewlett-Packard Company Diagnostic system for a distributed data access networked system

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002234069B2 (en) * 2001-02-14 2006-02-16 The Workplace Helpline Method and apparatus for assisting workplace services and products
WO2002065367A3 (en) * 2001-02-14 2002-11-21 Workplace Helpline Method and apparatus for assisting workplace services and products
WO2002065367A2 (en) * 2001-02-14 2002-08-22 The Workplace Helpline Method and apparatus for assisting workplace services and products
US7464045B2 (en) 2001-02-14 2008-12-09 The Workplace Helpline, Llc Method and apparatus for managing workplace services and products
EP1262873A1 (en) * 2001-05-31 2002-12-04 Gateway, Inc. Method and apparatus for providing customer support
FR2825493A1 (en) * 2001-06-04 2002-12-06 Hewlett Packard Co METHOD AND SYSTEM FOR PROVIDING TECHNICAL SUPPORT DOCUMENTS VIA THE INTERNET
US7707264B2 (en) 2001-06-04 2010-04-27 Hewlett-Packard Development Company, L.P. Method and system for providing technical support documents via the internet
EP1405153A2 (en) * 2001-06-12 2004-04-07 Digex, Inc. Automated message handling system and process
US8364800B2 (en) 2001-06-12 2013-01-29 Verizon Business Network Services Inc. Automated message handling system and process
EP1405153A4 (en) * 2001-06-12 2005-07-20 Digex Inc Automated message handling system and process
US8700781B2 (en) 2001-06-12 2014-04-15 Verizon Business Global Llc Automated processing of service requests using structured messaging protocols
EP1291774A1 (en) * 2001-09-06 2003-03-12 Hewlett-Packard Company, A Delaware Corporation Assistance request system
US7681181B2 (en) 2004-09-30 2010-03-16 Microsoft Corporation Method, system, and apparatus for providing custom product support for a software program based upon states of program execution instability
WO2007127764A3 (en) * 2006-04-28 2008-02-14 Scientific Atlanta Automated analysis of collected field data for error detection
US8191099B2 (en) 2006-04-28 2012-05-29 Johnson Lee R Automated analysis of collected field data for error detection
WO2007127764A2 (en) * 2006-04-28 2007-11-08 Scientific-Atlanta, Inc. Automated analysis of collected field data for error detection
US7954008B2 (en) 2007-01-15 2011-05-31 Microsoft Corporation Objective assessment of application crashes from a customer environment
US8286036B2 (en) 2007-01-15 2012-10-09 Microsoft Corporation Objective assessment of application crashes from a customer environment
US8316448B2 (en) 2007-10-26 2012-11-20 Microsoft Corporation Automatic filter generation and generalization
US8122436B2 (en) 2007-11-16 2012-02-21 Microsoft Corporation Privacy enhanced error reports
US8972567B2 (en) 2012-02-08 2015-03-03 Sage Software, Inc. Selectively triggering execution of services in a computing environment
WO2021028442A1 (en) * 2019-08-12 2021-02-18 Sweepr Technologies Limited An automated support system for connected devices
US11677642B2 (en) 2019-08-12 2023-06-13 Sweepr Technologies Limited Automated support system for connected devices

Also Published As

Publication number Publication date
AU5296500A (en) 2000-12-18
EP1190475A1 (en) 2002-03-27
WO2000074193A9 (en) 2002-07-11

Similar Documents

Publication Publication Date Title
US7594176B1 (en) Automated retrieval, evaluation, and presentation of context-sensitive user support
US8694369B2 (en) Computer self-support management
US7680856B2 (en) Storing searches in an e-mail folder
US6151624A (en) Navigating network resources based on metadata
US8666921B2 (en) Technical support agent and technical support service delivery platform
US10025604B2 (en) System and method for providing network-based technical support to an end user
US6999990B1 (en) Technical support chain automation with guided self-help capability, escalation to live help, and active journaling
US7305465B2 (en) Collecting appliance problem information over network and providing remote technical support to deliver appliance fix information to an end user
US9929881B2 (en) Network-based platform for providing customer technical support
US7392321B1 (en) Method and system for evaluating quality of service for transactions over a network
US6510461B1 (en) System for managing and automatically deleting network address identified and stored during a network communication session when the network address is visited
US7359935B1 (en) Generating contextual user network session history in a dynamic content environment
US20060230343A1 (en) Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes
US20030078987A1 (en) Navigating network communications resources based on telephone-number metadata
JP2002041131A (en) Maintenance information management system and method for providing maintenance plan
CA2402437C (en) Methods and systems for monitoring quality assurance
EP1190475A1 (en) User support system and method
CN110659349A (en) Log query method, device, equipment and computer readable storage medium
US7120632B2 (en) Methods and systems for managing business information on a web site
CN1953403A (en) Method and apparatus for collocating monitoring reports
EP1228463A1 (en) Electronic technical support marketplace system and method
US20030084143A1 (en) Resource locator management system and method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2000937842

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2000937842

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: C2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 1-42, DESCRIPTION, REPLACED BY NEW PAGES 1-46; PAGES 43-55, CLAIMS, REPLACED BY NEW PAGES 47-60; PAGES 1/21-21/21, DRAWINGS, REPLACED BY NEW PAGES 1/21-21/21; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

WWW Wipo information: withdrawn in national office

Ref document number: 2000937842

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP