CUSTOMER SURVEY SYSTEM AND METHOD

Abstract: A customer survey system and method (10) including a web page survey server (20) and an e-mail survey server (18) coupled to the Internet (12) to provide surveys written in extended HTML to a number of customers. An analysis system (16) is included for receiveng customer survey data and for creating at least one report web page with at least one graphical depiction of customer data (24a-d) that is hosted by a reporting server (26). Preferably, the reporting server is coupled to a corporate Intranet (14) providing firewall security for the reported data. Surveys provided through the web page survey server are converted into an e-mail format for receipt by the corporate Intranet. Additionally, a digital signature is inserted into each of the surveys for authentication purposes. Java Applets are provided to the user to permit tabulated survey result data to be displayed in multiple graphical formats.

Description: Customer Survey System and Method BACKGROUND OF THE INVENTION This invention relates generally to electronic surveys, and more particularly to electronic surveys conducted over a public wide area network. Companies often desire to survey customers and potential customers in order to develop information that can aid in their marketing, customer support, and product development efforts. One known way for surveying customers is the use of "electronic surveys" wherein e-mail surveys are sent to customers over a public wide area network (WAN), such as the Internet. The e-mail surveys are answered by the customers and e-mailed back to the company. The answers are then either manually or automatically tabulated, compared with the answers from other customers, and converted into reports. There are several problems with prior art e-mail survey techniques. For one, it is very difficult to authenticate that the answers of to survey came from the intended recipient of the survey. For example, the survey might have been passed from the intended recipient to another person. Additionally, in the prior art it was not possible to tell whether a survey for a particular recipient has been answered multiple times. These factors tend to create inaccuracies and false assumptions in the survey reports. In addition, in the prior art reports tended to require considerable manual tabulations, and often displayed the results in a hard-to-understand tabular formats. It is also known in the prior art to conduct surveys via web pages over the Internet. To conduct such a survey, web pages are hosted on a web server coupled to the Internet, and web pages (in the form of HTML files) are delivered to customer machines. The survey information is then submitted back to the web server for the generation of reports. One company that creates web-based surveys is Decisive Technology, Inc. of Mountain View, California. The URL of their website is http://www.decisive.com. While Decisive does provide the service of creating web-based surveys, their reporting capabilities are rather simple. Also, the reports that they generate are not web-based, and thus lack the power and sophistication that a web-based report would provide. While web page surveys, in general, have the advantage of being more graphical than e- mail surveys, they still suffer from many of the same disadvantages. For example, there is no convenient way to authenticate the identity ofthe customer responding to a web page survey. In addition, useful report generation remains difficult and relatively unsophisticated. .9. SUMMARY OF THE INVENTION The present invention includes systems, apparatus and methods for conveniently and effectively generating customer surveys and customer survey reports. Preferably, the customer surveys provide identity authentication to eliminate a source of error in the survey results. These surveys are preferably delivered over the Internet and the customer information is e-mailed back to the company for the purpose of analysis. The analysis system generates web pages which can be viewed by clients over a company's private Intranet. A customer survey system in accordance with the present invention includes a survey server coupled to the Internet to provide surveys to a number of customers via the Internet, analysis system for receiving customer data provided by the customers and for creating at least one report web page with at least one graphical depiction of customer data, and a reporting server hosting the at least one report web page. Preferably, the reporting server is coupled to a corporate Intranet to provide firewall security. The survey server can either be an e-mail server or a web server. In the case of a web server, the customer information is preferably converted into an e-mail format for receipt by the company. Also preferably, a digital signature is inserted into the surveys to authenticate the source ofthe survey information. A method for surveying customers includes providing a number of surveys over the Internet, receiving customer data provided by the customers in response to the surveys, creating at least one report web page with at least one graphical depiction of the customer data, and hosting the report web page on a web server for viewing by a client. Preferably, the surveys are each provided with a digital signature to identify the customer to which it was addressed. The surveys can either be e-mail surveys, with the digital signature is inserted into each of the e-mail surveys, or web page surveys, where the digital signature is inserted into at least one page web of each ofthe surveys. A method for creating a survey in accordance with the present invention includes a preparing a survey script and processing the survey script to create a survey including a digital signature which identifies the intended recipient of the survey. The method also includes delivering the intended survey to the intended recipient, receiving a response to the survey, and verifying the authenticity ofthe response by the digital signature. A method for creating a web page survey in accordance with the present invention includes writing a web page script in " CCML™" or " CML™" language (which is an extension of standard HTML) including tags for a survey report, generating a report in the CML language, hosting the web page script on a web site, receiving customer responses via the web site including the customer responses in the report and posting the report on a web site for viewing by a user. The present invention provides a secure, efficient and verifiable system and method for surveying customers over a WAN. In addition, the present invention provides improved reporting capabilities, including web-based reporting and graphical survey result options. These and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following descriptions of the invention and a study of the several figures ofthe drawing. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a illustration of a customer survey system in accordance with the present invention; Figure lb is a flow diagram of a process for producing, deploying, collecting, analyzing and reporting electronic surveys embodied by the system 10 of Fig. 1; Figure 2 is a block diagram of a typical architecture for a computer used in the customer survey system of Fig. 1 ; Figure 3 is a flow diagram of a customer survey system generator in accordance with the present invention; Figure 4 is a sample of a script developed by the generator of Fig. 3; Figure 5 is a flow diagram illustrating the " CREATE EMAIL SURVEY" operation 60 of Fig. 3; Figure 6 is a flow diagram illustrating the "CREATE WEB SURVEY" operation 64 of Fig. 3; Figure 7 is a flow diagram illustrating the " CREATE FILES FOR PROCESSING SURVEYS" operation 68 of Fig. 3; Figure 8 is a flow diagram illustrating the "CREATE SURVEY.SBE" operation 116 of Fig. 7; Figure 9 is a flow diagram illustrating the " CREATE SURVEY.CRE" operation 118 of Fig. 7; Figure 10 is a flow diagram illustrating the "CREATE TRAIL NAME.HTM, NAVIGATION BARS, AND HTML LAUNCH FILES" operation 120 of Fig. 7; Figure 11 is a flow diagram illustrating the " CREATE SURVEY.EXP" operation 122 of Fig. 7; Figure 12 is a flow diagram illustrating the "CREATE DATEBASE" operation 70 of Fig. 3; Figure 13 is a flow diagram illustrating the generation of HTML datasets; Figure 13a is an illustration of a query database in accordance with the present invention; Figure 14 is a flow diagram illustrating the "PARSE VARIABLES AND ALLOCATE" operation 198 of Fig. 13; Figure 15 is a flow diagram illustrating the "DO COMPUTATION" operation 204 of Fig. 13: Figure 16 is a flow diagram illustrating the "GENERATE DATASETS" operation 206 ofFig. 13; Figure 17 illustrates the delivery of a survey to a client and the receipt of data in accordance with the system of Fig. 1 ; Figure 18 is a flow diagram ofthe " SEND OUT SURVEY" operation 19 of Fig. IA; Figure 19 illustrates the viewing of customer survey data in accordance with the present invention; Figure 20 is a flow diagram of a Java Applet running on a client ofthe system of Fig. 1; Figure 21 is a flow diagram illustrating the Java Applet process in greater detail; Figure 22 is a flow diagram illustrating the "REDRAW" operations of Fig. 21; Figure 23 is an illustration of a navigation bar; Figure 24a is a illustration of side-by-side bar charts created by the system of the present invention; Figure 24b is an illustration of a bullet diagram produced in accordance with the present invention; Figure 24c is an illustration of a gauge display in accordance with the present invention; and Figure 24d is an illustration of a rating diagram in accordance with the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In Fig. 1, a customer survey system 10 in accordance with the present invention preferably operates over a wide area network (WAN) operating with TCP/IP protocols, such as the Internet 12. In addition, the customer survey system 10 preferably also operates over a private network system operating with TCP/IP protocols, such as an Intranet 14. It will be appreciated, however, that other forms of wide area networks and local area networks (LANs) are suitable for the customer survey system ofthe present invention. The customer survey system 10 includes a development and analysis system 16, and e- mail server 18, a survey web server 20, an e-mail client 22 which may be behind a firewall 24, and a reporting web server 26. Coupled to the Internet 12 are a number of customer machines, such as customer machines 28A and 28B. Coupled to the Intranet 14 are a number of client machines such as client machines 30A and 30B. The development and analysis system 16 preferably comprises a personal computer or computer workstation running computer implemented processes of the present invention that will be discussed in greater detail subsequently. The hardware of the development and analysis 16 can be, for example, a personal computer system operating under the "WLNTEL" standard, i.e. a microcomputer using an Intel or Intel-capable microprocessor and operating under a Microsoft Windows 95 or Microsoft NT operating system. The e-mail server 18 is also preferably implemented on a personal computer or a personal computer workstation. It performs standard e-mail services under the guidance of software provided by a number of vendors. It should be noted that the development and analysis 16 and e-mail server 18 can be provided on a single computer system. However, in the present preferred embodiment the development analysis 16 and the e-mail server 18 are provided as two, separate computer systems. The survey web server 20 is again preferably implemented on a personal computer or a computer workstation and may be maintained by a commercial host, such as an Internet Service Provider (ISP). However, the functionality of this survey web server 20 can also be provided on the same computer or "machine" which provides the development and analysis system 16, or the e-mail server 18, or both. The e-mail client 22 is, again preferably implemented on a personal computer or a computer workstation and operates under a commercially available software program to provide e-mail box capabilities. Since the e-mail client 22 is receiving information from the Internet, it is often desirable to have the e-mail client behind a firewall 24 to prevent computer viruses and other unwanted processes from entering the e-mail client 22. Firewalls 24 are commercially available from a number of vendors. A reporting web server 26 is also preferably a personal computer or a computer workstation capable of operating as a web server. It is preferably coupled to a corporate Intranet 14 which supports a number of client machines 30A, 30B, etc. The development and analysis system 16, e-mail server 18, survey web server 20, e-mail client 22. and reporting web server 26 each perform an important function in the customer survey system of the present invention. As noted above, these various systems, servers and clients can be "hosted" on one or more distinct computer systems. Therefore, the functionalities described herein are somewhat independent of the actual computer or machine upon which they are hosted. In operation, a user of the customer survey system (referred to herein as a "company" , "user" , or " client") first develops a survey on the development and analysis system 16. This survey can be disseminated to various customers by e-mail, in the form of web pages, or both. The e-mail format for the survey is provided to the e-mail server 18, and the web page of the survey is provided to the survey web server 20. In the instance of an e-mail survey, the survey is e-mailed to a customer, in this case customer 28A, who responds to the e-mail survey and sends it back to the e-mail client 22 as indicated. In the instance of a web page survey, the survey web server 20 sends web pages to a customer, in this case customer 28B, who responds to the surveys to the survey web server 20. The survey web server 20 then processes the surveys and e-mail the surveys to the e-mail client 22. There are several advantages to e-mailing the survey results to the e-mail client 22. For one, all survey information will be received back in a common format, i.e. an e-mail format. In addition, the e-mail client performs a number of logging processes which are useful in the analysis of the client information. Still further, by e-mailing the results from the survey web server 20 to the e-mail clients 22, a firewall 24 can be used to prevent viruses and other undesirable processes from entering the company's systems. It should be noted that the customer machines 28A and 28B are typically personal computers provided with e-mail and web browsing capabilities. For example, e-mail capability can be provided by a software program known as Eudora, while web browsing capabilities can be provided by web browsers from NetScape Communications, Inc. or MicroSoft Corporation. Once the e-mail client 22 has received a sufficient number of surveys, they are retrieved by the development and analysis system 16. The development and analysis system 16 then produces web pages which comprise a report of the customer survey results. These web pages are hosted on a reporting web server 26 that is coupled to the Intranet 14. The reporting web server 26 provides web pages in the HTML format to the various clients 30A and 30B, as well as JAVA Applets. The client machines 30A and 30B are, again, preferably personal computers, and are provided with web browser software available from NetScape Communications, Inc., Microsoft Corporation, and others. In Figure IA, a process 13 for producing, deploying, collecting, analyzing and reporting electronic surveys in accordance with the present invention is shown in flow diagram form. The process 13 begins at 15 and, in an operation 17, all of the necessary files for deploying an electronic survey are created. This operation 17 may be performed, for example, on the development and analysis system 16 (Fig. 1). Next, in an operation 19, the survey is sent, e.g. from the system 16 of Fig. 1 to the e-mail server 18, and from there to the Internet 12. An operation 21 collects the responses, preferably at the e-mail client 22 of Fig. 1. Reports are generated in an operation 23 on the development and analysis system 16 of Fig. 1, and the reports are displayed to clients (e.g. clients 30a and 30b) in an operation 25 via a reporting web server 26 and the Intranet 14. The survey process 13 is then completed at 27. Figure 2 illustrates a computer system or "machine" 32 that can perform a part of the customer survey system 10 in accordance with the present invention. For example, computer 32 can represent the architecture of the computers of clients 30a and 30b, system 16, etc. The architecture shown is a standard microcomputer architecture. It will, of course, be appreciated by those skilled in the art that other standard architectures are available. Computer system 32 includes a microprocessor 34 which is coupled to a high speed local or memory bus 36 and an I/O bus 38. Of course, these buses 36 and 38 are shown for the purposes of illustration and can be implemented in a variety of fashions. Coupled to the memory bus 36 is random access memory (RAM) 40 and read only memory (ROM) 42, both of which are instances of computer readable media. Coupled to the I/O bus 38 are a number of peripherals such as a keyboard 44, monitor 46, network card 48 and other computer readable media 50. The computer readable media 50 can take a variety of forms such as a hard disk drive, a floppy disk drive, a high-density drive such as an Iomega Jazz or Zip drive, a CD-ROM drive, other optical read/write systems, etc. The microprocessor 34 typically operates under program control stored in the various computer readable media. In Fig. 3, a process 52 running on the development and analysis system 16 of Fig. 1 is illustrated in flow-diagram form. This process 52 includes the operations 17 and 23 of Fig. IB. The process 52 begins at 54 and starts under the control the Customer Cast Foresite™ generator 56. The Foresite generator 56 receives CCML information from a database 58. As will be discussed in greater detail subsequently, CCML scripts are written an extended HTML format language. The Foresite generator 56 provides the user with a menu of options. In one option, an e- mail survey is created. In the e-mail generation option, the system creates a one or two part text file for the survey. The two-part text files are used if it is desired to embed a digital signature into the text file. The generated text file is stored in a text file 62, and operational control is returned to operation 56. Also created is a parsing pattern for the e-mail, which is stored in a file 63. If the "web generation" option is chosen by the user in operation 56, an operation 64 generates a two-part web page with a hidden field. These web pages are stored in a file 66, and operational control is again returned to operation 56. With the selection of the reports generator, operational control is transferred from operation 56 to operation 68, where web pages are generated for navigational purposes. Process control is then returned to operation 56. Another option in operation 56 is to create a database. With the selection of this operation, an operation 70 creates the database and returns process control to operation 56. Finally, if a "PARSE SURVEY" option is selected at operation 56, an operation 72 determines the data type to be parsed. If it is e-mail, an operation 74 parses the e-mail and then an operation 80 stores the information in a survey database 82. Subsequently, the data sets 84 are created, and process control is returned to operation 56. If, however, the data type from operation 72 is a web page, operation 76 parses the web pages, and operation 80 stores the parsed information in the survey database 82. Operation 84 will create the data set for the parsed web pages and will return process control to operation 56. Finally, dummy information can also be generated by an operation 78, to store dummy survey data in database 82 and to create data sets in operation 84. Fig. 4 illustrates a portion of a CCML™ or CML™ file stored in database 58. It should be noted that the CCML file is written in a language which is an extension of the standard HTML language. A description of the CCML language can be found at http://www.customercast.com. In Fig. 5, the process 60 of Fig. 3 is illustrated in greater detail. The process 60 begins at 86 and an operation 88 parses the script. Script parsing is a standard operation, as will be appreciated by those skilled in the art. Next, in an operation 90 decides whether the script should be split. In general, the script is to be split when it is desired to insert a digital signature for customer verification purposes. If a split is not desired, an operation 92 creates an un-split survey and names it SURVEY.TXT in operation 92. If operation 90 decides that there is to be a split, then operation 94 creates two survey parts. The first survey part is called SURVEY.TXT 1, and the second part is called SURVEY. TXT2. The process 60 is then complete at 96. In Fig. 6, the process 64 of Fig. 3 is illustrated in greater detail. The process 64 begins at 98 and the script is then parsed in operation 100. Operation 102 then decides if there is only one web page or if there are multiple web pages. If there is only one web page, an operation 104 determines whether the page should be split. Again, this decision is dependent upon whether or not a digital signature is to be inserted into the page. If the page is not to be split, an operation 106 creates a file SURVEY.HTM. If the page is to be split, then operation 108 creates two files, namely, SURVEY.HTM1 and SURVEY.HTM2. The process 64 is then completed at 110. If operationl02 determines that there are multiple web pages, and operation 112 determines whether the first page is to be split. It should be noted that only the first web page needs to be split, since the digital signature needs only to be inserted into one page. If operation 112 determines that the first page is not to be split, then operation 114 creates the file SURVEY.HTM and SURVEY-2.CGI. If operation 112 determines that the first page is to be split, then operation 116 creates the files SURVEY.HTM 1, SURVEY.HTM2, and SURVEY- 2.CGI. The process 64 is then complete at 110. In Fig. 7, the process 68 of Fig. 3 is illustrated in greater detail. The process 68 begins at 112 and in operation 114 parses the CML file or " script." The parsed CML file is used to create a number of other files used in the system of the present invention. In an operation 116, a file SURVEY.SBE, which will be discussed in greater detail subsequently. An operation 118 creates a file SURVEY.CRE, which will also be discussed later. In operation 120 creates a number of files including trail files, navigation files, and HTML launch files. An operation 122 creates a SURVEY.EXP file. The operation 120 creates files used to navigate the reporting website. The trail files include an htm file that enumerates the trails. In the present embodiment, this htm file is named trails/index.htm. For each trail, there is an htm file with the format <letter>.htm. For example, there may be trail files a.htm, b.htm, c.htm, etc. These htm files enumerate the charts that are on that trail. The HTML launch files include cc-nav.htm and tablenav.htm for the navigation bar. They also include launch.asp, other.asp, and xfer.asp to start the html windows. In addition, they include index.htm and tindex.atm for the starting pages. In Fig. 8, the process 116 for creating the SURVEY.SBE of Fig. 7 is shown in greater detail. It will be noted by those skilled in the art, that the process 116 is a type of "translator" process. The process 116 begins at 124 and, in an operation 126, for each tag, if the tag produces a data set, there is an allocation of DATASET and SBE memory. Memory allocations of this type are well known to those skilled in the art of programming an object-oriented programming languages. Next, in an operation 128, the SBE file is generated. In an operation 130, each section is written according to the proper format. In an operation 132, for each data set the operators are written for continuing that data set. Finally, for an operation 134, for each data set the data set generation instruction is written. The process 116 ends at 136 with a completed SBE file. In Fig. 9, the process 118 of Fig. 7 for creating the SURVEY.CRE file is described in greater detail. This CRE file is created from the tags parsed from the CML file in operation 114 of Fig. 7. As described on the aforementioned CustomerCast website, there are several types of tags used in the present invention.. The process 118 begins at 138 and, in an operation 140, this determines if there are more tags. If not, the process is complete at 142 with the final CRE file. If there are more tags, a new tag is obtained in 141, an operation 144 determines whether the tag produces a column. If not, process control is returned to operation 140. If the tag obtained in operation 141 does produce a column as determined by operation 144, the CRE file is written in an operation 146. In Fig. 10, operation 120 of Fig. 7 is described in greater detail. The process 120 begins at 148 and, in operation 150, for each data set, if it is on a default trail, it is added to the trail lists. As used herein, a "trail" is a linear sequence of web pages without branches. That is, each web page along a trail points only to a web page that follows it and web page that precedes it. In an operation 152, for each trail tag, elements are added to the trail list. An operation 154 generates the trail HTML from the trail list. Finally, an operation 156 generates the navigation and launch HTML and the process is complete at 158. The navigation HTML is used to navigate among the various web pages of the survey, and the launch HTML is the launch for route for home page ofthe web based survey. In Fig. 11, the process 122 of Fig. 7 is described in greater detail. The process 122 begins at 160 and, in an operation 162, it is determined if there are more data sets. If not, the process is complete at 164. If there are more data sets, an operation 166 obtains a data set in an operation 168 determines whether the column has been exported. If not, process control is returned to operation 162. If the column has been exported, the column is written to the EXP file in an operation 170, and operation control is returned to operation 162. In Fig. 12, the "CREATE DATABASE" operation 70 of Fig. 3 is shown in greater detail. The process 70 begins at 172 and, in an operation 174, it is determined if there are more columns. If not, the SQL statement is executed and the process is complete at 178. If operation 174 determines that there are more columns, a number of operations 180-192 (i.e. if statements) determine the type of SQL statement to construct. If it is determined that the column is a fixed character ("c"), a fixed character is added the SQL statement by operation 181. If it is determined that the column is a variable character ("v"), the variable character is added to the SQL statement in an operation 183. Likewise, operation 185, 187, 189, 191 and 193 add memo ("m"), logical ("1"), integer ("i"), numeric ("n") or time stamp ("t"), respectively columns, those columns are also added to the SQL statement. Process control is then returned step 174. It is well known to those skilled in the art of relational database management that the SQL statement, when executed by a SQL database manager such as those made by Oracle, Sybase, IBM, Microsoft, and others will generate the appropriate relational database table. In Fig. 13, the process of generating survey results, i.e. the " survey base engine" is described in greater detail. This survey base engine is a virtual machine or "computer" which executes instructions that are written in the survey.sbe file, and preferably runs on the development and analysis system 16, and the final reports preferably end up on the reporting web server 26 (see Fig.l). The process begins at 194 and, in an operation 196, the SQL statement is used to query the survey database. The depiction ofthe survey database is shown in Fig. 13 A. Next, in an operation 198, the variables are parsed and allocated into the memory of the survey base engine. In an operation 200, the instructions are parsed and loaded for computing results. An operation 202 determines whether that it is the end of the records and, if not, the computation is performed in an operation 204. If the end of record has been reached as determined by operation 202, the data sets (i.e. survey results) are generated in operation 206 and the process is completed at 208. In Fig. 14, the process 198 of Fig. 13 is shown in greater detail. Process 198 begins at 210, and an operation 212 allocates long variable (integers). Next, in operation 214 allocates doubles (floating point variables), an operation 216 allocates long vectors. An operation 218 allocates double vectors, and in operation 220 allocates Boolean vectors (i.e. true/false vectors). In operation 222 allocates the long matrices, and in operation 224 allocates the double matrices. Operation 226 allocates the text strings (up to 255 characters), and operation 228 allocates memo strings (up to 4095 characters). The process 198 is complete at 230. In Fig. 15, the operation 204 of Fig. 13 is shown in greater detail. The process 204 begins at 232 and, in operation 234, it is determined if there are any more operators. If yes, a series of operations 238-266 determine the type of operator. Once the operator is determined, the appropriate computation is performed in computations 239-267, respectively. These operators are set forth in the following Table 1. TABLE 1 After the appropriate operation is performed, operational control is returned to 234 to determine if there are more operations. At the end of the operation's list the process 204 is complete at 236. At this point, it is useful to define some of the terms used herein. By "nominal integer" it is meant an integer number (e.g. 0, 1, 2, ... n-1) where no average is computed. For example, if red, green and blue where assigned the nominal integers 0, 1, and 2, it would not make sense to average these numbers. An "ordinal integer" on the other hand is averagable. Ordinal integers can be any where in the range n...m. As an example, if a survey question asked for approval ratings in the range of 1-7, then n=l, and m=7. These ordinal integers are averagable. A "continuous" number can be any number at all. By "binning" it is meant that occurrences are counted for a histogram. For example, if a favorite color is chosen as red in a number of surveys, the responses are "binned" for the histogram. By "re-binning" it is meant that binned sub-categories are combined into a larger category. For example, if there is a bin for red being the favorite color and orange being the favorite color, these two bins can be re-binned into a "hot color" bin for those who like either red or yellow. By "multi-nominal" it is meant that a Boolean vector is corresponding to all selections that apply. A Boolean vector is an array of 1 's and 0's coπesponding to a selection or non-selection of an item corresponding to that point in the array. For example, the survey may ask which foods a customer likes from a list of 50 different foods. A customer then can check 0-49 of these selections to create a multi-nominal that is typically stored as a Boolean vector. By "cross tab" it is meant that two variables are cross-related. For example, the gender male and female can be cross related to favorite colors red, blue and green in a cross tab arrangement. Finally, the term " gap" is the difference between the two ordinal integers. For example, if a first ordinal integer is 7 and a second ordinal integer is 5, the gap is 2. In Fig. 16, the operation 206 of Fig. 13 is shown in greater detail. The process 206 begins at 268 and, in an operation 270, it is determined if there are more data sets. If not, the process is complete at 272. The process 206 then determines the type of data set to be created. These types of data sets are summarized below in Table 2. TABLE 2 When one of the data set type 274-290 is recognized, the appropriate data set is generated. Process control then returns to operation 270 until there are no more data sets, at which time process 206 is completed at 272. In Fig. 17, a process for delivery of a web page survey to a customer and receiving survey data from the customer is described in greater detail. This process was previously mentioned with respect to the survey web server 20 of Fig. 1. In Fig. 17, a customer 28B uses a web browser to request a survey via the Internet 12 from the web server 20. The survey is delivered to the customer in the form of HTML files as indicated at 294. The customer then fills out the survey on the customer machine 28B and submits the survey as indicated at 296. The survey is typically submitted by selecting a submit button within the web browser window. The web server 20 then sends an acknowledgment or "thank you" to the customer machine 28B as indicated at 298. The web server 20 can typically be a Unix or NT computer system coupled to the Internet through an Internet service provider (ISP). In response to the request 292 for the survey, the two part survey SURVEY.HTM1 and SURVEY.HTM2 is combined at the server 20 to form the SURVEY.HTML survey web pages. As part of this combining process, the web server inserts a digital signature or authentication code identifying the address of the customer machine 28B. When the survey is submitted in operation 296, the web server 20 uses a Perl program SURVEY. CGI to e-mail survey data to the e-mail clients 22 in an operation, and logs the transactions in an operation 302. The logs of the transaction can be later received by the development and analysis system 16 to help track the process. In Fig. 18, a process for sending an e-mail survey is illustrated. The process begins at 34 in an operation 306 obtains the next address from an e-mail address database 308. The e-mail database includes the Internet e-mail address of the customers that are to be surveyed. If an operation 310 that there is no next address, the process is completed at 312. Otherwise, the operation 314 takes the two part text file stored in database 62 (see Fig. 3) and inserts a digital signatures in operation 316. The digital signature is a unique, encrypted code derived from the e-mail address. This digital signature is sandwiched between the two parts of the text file and is returned with the completed survey. Since the company knows the appropriate code to decode the digital signature, it is possible to verify that the returned e-mail survey was completed by the appropriate party. In addition, if multiple e-mail surveys are received, the digital signature can verify that they are copies of an original survey and can delete the duplicates. Finally, operation 318 at the e-mail address and sends (i.e. e-mails via the Internet) the survey to the intended recipient. Process control then returns to operation 306. A preferred method for creating a digital signature uses a "one way pad" to encrypt a code derived from the e-mail address. The use of" one way pads" is well known to those skilled in the art. Other methods for creating digital signatures are also well known to those skilled in the art of cryptography and computer security systems. In Fig. 19, a pictorial depiction ofthe process operating on a client computer 30A or 30B is shown. More particularly (an additional reference to Fig. 1), the reporting web server 26 delivers HTML 320 and JAVA 322 to a client through an Intranet 14. The portion ofthe HTML 320 is illustrated on the left side of the Fig. 19 and the JAVA Applet program 322 is shown on the right side of Fig. 19. The process of the present invention imbeds HTML comments which can be recognized by the JAVA Applet 322 to create various forms of charts from the HTML table commands. For example, the HTML comments at 324 and 326 tell the JAVA Applet 322 to create a pie chart 328 for viewing by the client from the table 330. Without the JAVA Applet 322 the HTML comment fields 324 and 326 would be ignored by the web browser and the table 330 would be displayed as a standard HTML table 332 by the web browser. Therefore, even without the JAVA Applet 322 the data would be viewable by a client 30A or 30B although in a less graphical form. In Fig. 20 illustrates the operation of the JAVA Applet 322 of Fig. 19 in greater detail. The JAVA Applet 322 operates on the HTML file to define one or more graphing objects 334A, 334B, etc. The JAVA Applet 322 also creates a data object 336. The graphing objects 334A, 334B, etc. can use the data object 336 to create the appropriate graph. An advantage of the architecture shown in Fig. 20 is that graphing objects from third party vendors can be easily added. For example, a graphing object known as JCHART™ of Roguewave of Mountain View, California is a useful graphing object that can be used with the process ofthe present invention. In Fig. 21, the JAVA Applet process 322 is shown in greater detail. The process begins at 338. an operation 340 displays the trail buttons and controls as part of the navigation bar. The navigation bar will be discussed in greater detail subsequently with reference to Fig. 23. Next, an operation 342 waits for a selection from the user. If the user select a change in the trail, an operation 344 reloads the trail list, an operation 346 redraws the first charts on the trail for the current samples. Operational control is then returned to operation 342. If the operation 342 detects a change sample request by the user, an operation 348 changes the sample, an operation 350 performs a redraw. If operation 342 detects a changed chart selection by the user, an operation 352 changes the chart, and in operation 334 redraws the chart. If the operation 342 detects a compared toggle (on off) by the user, an operation 356 sets the toggle, and operation 358 redraws the charts. If the toggle is on, it draws two charts for each sample. Otherwise, operation 358 draws one chart. After the end of any of operation 346, 350, 354 and 358, operational control is returned to operation 342. The redraw process (such as the redraw processes 350 of Fig. 21) is illustrated is greater detail in Fig. 22. The redraw processes for operations 246, 354, and 358 are essentially the same. The process 350 begins at 360 and in an operation 362, the HTML comments and tags are parsed to create the data object. An operations 364-378 determine the type of chart to be created, and activates the appropriate graphing object in operations 365-379, respectively. The types of charts are summarized below in Table 3. TABLE 3 After the completion of any of the graphical plots, the process 350 is completed as indicated at 380. Fig. 23 illustrates the navigation bar 382. With reference to Fig. 23, the navigation bar 382 includes a logo 384 and a number of "buttons" 386-414. It will be appreciated by those skilled in the art of graphical user interfaces that the "buttons" 386-414 are computer-generated images of buttons which, when selected by an appropriate pointing mechanism such as a computer mouse, will cause an action to be taken by the computer. Buttons 386-400 are used to define the type of chart or graphic desired, and buttons 402-414 are used to define content of the displayed chart or graphic. The types of charts corresponding to the buttons 386-400 are defined below in Table 4. The types of content corresponding to buttons 402-414 are defined below with respect to Table 5. Figs. 24a-24d illustrate several of the graphs that can be produced by the present invention. In Fig. 24a, side-by-side bar charts compare medium company and large company results Fig. 24b illustrates a bullet chart. Fig. 24c shows side-by-side gauge charts. Fig. 24d shows a ratings chart. As noted previously, a number of different types of graphs and charts are known to those skilled in the art, and there are a number of vendors for graphing and charting software. In addition, specialized graphing and charting routines can be developed in a straightforward manner to be used in conjunction with the reporting capabilities of the present invention. While this invention has been described in terms of several preferred embodiments, it is contemplated that alternatives, modifications, permutations and equivalents thereof will become apparent to those skilled in the art upon a reading of the specification and study of the drawings. It is therefore intended that the following appended claims include all such alternatives, modifications, permutations and equivalents as fall within the true spirit and scope of the present invention.

Claims: What is claimed is: C L A I M S 1. A customer survey system comprising: a survey server coupled to a TCP/IP network, said network being coupled to a plurality of customer machines, said survey server providing surveys to said plurality of customer machines via said network; an analysis system receiving customer data provided by customers in response to said surveys, said analysis system creating at least one report web page with at least one graphical depiction of said customer data; and a reporting server hosting said at least one report web page. 2. A customer survey system as recited in claim 1 wherein said TCP/IP network is a first TCP/IP network, and further comprising a second TCP/IP network coupled to said reporting server, said second TCP/IP network being coupled to a plurality of client machines. 3. A customer survey system as recited in claim 2 wherein said first TCP/IP network comprises a public TCP/IP network, and wherein said second TCP/IP network comprises a private TCP/IP network. 4. A customer survey system as recited in claim 3 wherein said public TCP/IP network comprises the Internet, and wherein said second TCP/IP network comprises a Intranet. 5. A customer survey system as recited in claim 2 further comprising an e-mail client coupled to said TCP/IP network for receiving said customer data, said e-mail client being coupled to said analysis system. 6. A customer survey system as recited in claim 5 wherein said customer data includes a digital signature identifying a customer machine. 7. A customer survey system as recited in claim 5 wherein said survey server is a survey e-mail server, wherein said surveys are e-mailed to said customer machines. 8. A customer survey system as recited in claim 7 wherein said survey server is a survey web server, wherein said surveys are provided to said customer machines as web pages. 9. A customer survey system as recited in claim 8 wherein said customer data is received by said survey web server. 10. A customer survey system as recited in claim 9 wherein said customer data is e- mailed to an e-mail client coupled to said TCP/IP network and to said analysis system. 11. A method for surveying customers comprising: providing a plurality of surveys over the Internet to a plurality of customer machines; receiving customer data provided by customers in response to said surveys; creating at least one report web page with at least one graphical depiction of said customer data; and hosting said report web page for viewing by a client. 12. A method for surveying customers as recited in claim 11 wherein said report web page is hosted on an Intranet. 13. A method for surveying customers as recited in claim 11 wherein said plurality of surveys are each provided with a digital signature to identify the customer machine to which it is sent. 14. A method for surveying customers as recited in claim 14 wherein said plurality of surveys are a plurality of e-mail surveys, and wherein said digital signature is inserted into each of said e-mail surveys. 15. A method for surveying customers as recited in claim 13 wherein said plurality of surveys are a plurality of web page surveys, and wherein said digital signature is inserted into at least one web page of each of said web page surveys. 16. A method for surveying customers as recited in claim 13 wherein said receiving customer data includes receiving customer data via e-mail over the Internet. 17. A method for surveying customers as recited in claim 11 wherein said report web page includes at least one graphical display derived from an HTML table. 18. A method for surveying customers as recited in claim 11 wherein providing a plurality of surveys includes preparing a survey description in an extended HTML language. 19. Computer readable media including program instructions for implementing the method of claim 11. 20. A method for creating a survey comprising: preparing a survey script; and processing said survey script to create a survey including inserting a digital signature into said survey which identifies the intended address ofthe recipient ofthe survey. 21. A method for creating a survey as recited in claim 20 further comprising: delivering said survey to said intended address; receiving a response to said survey; and verifying the authenticity of said response by said digital signature. 22. A method for creating a survey as recited in claim 20 wherein said survey script is written in an HTML language, and wherein said survey includes at least one web page supported by a web server. 23. A method for creating a survey as recited in claim 22 further comprising converting said response at said web server into an e-mail response, and sending said e-mail response. 24. A method for creating a survey as recited in claim 20 wherein said survey script is an e-mail script, and wherein said response is an e-mail response. 25. Computer readable media including program instructions for implementing the method of claim 20. 26. A method for creating a web page survey comprising: writing a web page script in an HTML language including tags for a survey report; generating a report in an extended HTML language; posting said web page script on a web site; receiving customer responses via said web site; including said customer responses in said report; and posting said report on a web site for viewing by a user. 27. Computer readable media including program instructions for implementing the method of claim 26.

Inventors: RENAUD DAVID J, RENAUD, DAVID, J.
Applicants: CUSTOMER CAST INC, CUSTOMER CAST, INC.
Application year: 1999
Main classification: G06F17
IPC codes: G06Q10, G06Q30, G06Q50, H04L29