The present invention relates generally to methods and systems of on-line communication, and more particularly is concerned with facilitating communication between an operator of a website and website visitors.
The Internet is a world-wide collection of inter-connected networks that is widely used to access information, communicate, and carry out business transactions. A web server is an Internet-connected computer system that can provide information to Internet-connected client computers. Client computers use a computer program called a web browser to connect to and access information on web servers. Using a web browser, a user of an Internet-connected computer can access a huge number of different web servers. The vast collection of web servers available on the Internet is frequently referred to as the World Wide Web.
A web browser displays information received from a web server in units that have the appearance of pages, and because of their appearance, the pages downloaded from web servers and displayed by web browsers are frequently referred to as web pages. Web pages contain elements including formatted text, images, and links. A link is an active connection to other web pages and may be expressed as a Uniform Resource Locator (“URL”), which is the addresses of a web page. When a user selects a link, his or her web browser will then request and receive the web page corresponding to the URL of the link.
The collection of web pages associated with a web server of a particular name is frequently referred to as a website. Many websites provide information that is continually updated. The person that coordinates the updating of information on a website and ensures its proper continued operation may be referred to as a website operator. A website operator may monitor the operation of the website, considering, for example, past statistics including the number of times a particular web page has been accessed in the past.
A website visitor is a person who uses a web browser to “visit” a website, that is, request and receive web pages of the website . By using a web browser to connect to a website and by selecting links within a website that allow a website visitor to navigate among the various web pages within a website, a website visitor may access all of the information a website operator wishes to provide to the website visitor. When data transfer is initiated by the website visitor, it is sometimes referred to as “pulling content,” because from the perspective of the website visitor, content is being pulled down to his or her browser. Conversely, when data transfer is initiated at the web server it is referred to as “pushing content.”
The dominant protocol suite used on the Internet is the Transmission Control Protocol and Internet Protocol (“TCP/IP”) suite. Web servers and web browsers use the Hypertext Transfer Protocol (“HTTP”), which is built upon TCP/IP, to exchange information. Establishment of a connection between a web browser and a web server begins with a web server process waiting or listening for a connection at a placeholder on the server known as a “port,” which, in the case of HTTP is usually port 80. A client establishes a logical network connection by connecting to port 80. Once the network connection is established, the software in the web server and web browser uses the network connection to send and receive data. The software construct that a program uses to send and receive data over the network connection is referred to as a “socket.”
Current methods of communication between website operators and website visitors comprise methods in which a visitor is given an opportunity to send a message to an operator. The visitor may ask a question or request additional information. Many websites merely provide a catalog or a list of products that are offered for sale. These systems do not provide a means for a website operator to contact a visitor to offer help and answer individual questions or to provide additional information. In many cases existing systems do not provide a reliable means to determine whether a product is actually in stock, and, even if a traditional website contains an in-stock indicator, it is not possible for a potential customer to receive actual confirmation that the in-stock indicator is actually correct. Other questions a website visitor may wish to ask include how many of the products are shipping, and if a product is not in stock, when the product will become available. In many traditional websites, a potential customer has no way to ask whether a product will interoperate with a particular peripheral, etc. The answers to these types of questions can be crucial to concluding a sale, and current systems do not provide a means for operators to proactively contact visitors and push out web content or proactively provide website visitors with necessary information.
The present invention provides methods and systems for facilitating on-line communications between a website operator and a website visitor visiting a website. Consistent with the present invention, a visitor list is maintained that includes visitors currently accessing operator contact-enabled web pages. A visitor path record is maintained that corresponds to at least one visitor in the visitor list by recording information about web pages that a visitor accesses. Information is transmitted to a website visitor in the list of visitors and information is received from the website visitor in response to the transmitted information.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one several embodiment of the present invention and together with the description, serve to explain the principles of the present invention.
Reference will now be made in detail to exemplary embodiments of the invention, an example of which is illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
As shown, a client computer system 110 may contain a web browser 150 which is a computer software program such as the Netscape Navigator Internet web browser or the Microsoft internet Explorer Internet web browser. In systems consistent with the present invention, the browser software may have an integrated runtime environment for executing software programs that may be downloaded over network 100. An example of such an environment is the JAVA™ applet runtime environment as contained in various versions of the two browsers named above. In order to operate in a mode consistent with the present invention, a user may cause browser 150 to download an applet such as the enabling applet 140. Enabling applet 140 is a small program that may be automatically downloaded over network 100 and executed in an integrated runtime environment within web browser 150. Enabling applet 140 allows web pages to be made operator contact-enabled.
In one embodiment of the present invention, enabling applet 140 is caused to be downloaded to web browser 150 from server computer 182. Enabling applet 140 applet may be displayed as an image associated with a customer support function so that if a website visitor clicks on the image, it will send a message to an operator indicating that a user has requested assistance. An enabling applet 140 consistent with the present invention may be associated with a set of web pages referred to, for the sake of discussion, as operator contact-enabled web pages. Operator contact-enabled web pages are those web pages containing enabling applet 140 that facilitates the real-time monitoring of website visitor activity and that facilitates communication between a website operator and a website visitor.
An enabling applet is downloaded from web server process 160 when a visitor accesses an operator contact-enabled web page. This occurs as a result of methods for associating applets with web pages that are well known in the art, including, for example, inserting applet tags into web pages. The operator contact-enabled web pages are provided to client computers 110, 120, and 130 over network 100 by web server process 160. Web server process 160 may be, for example, the Apache web server, the Internet Information Server from Microsoft, or the Netscape Enterprise Web server from Netscape.
Web server process 160 has associated with it the operator contact service 170 which may be, for example, a JAVA™ application running in a JAVA™ Virtual Machine (“JVM”) on the same server machine as the web server process 160. It is not necessary that operator contact service 170 be executed on the same server computer system as web server process 160. However, as is understood by one skilled in the art, additional steps must be taken to satisfy security models such as the JAVA™ applet security model, if operator contact service 170 is resident on a server other than the server on which web server process 160 is resident. If an operator contact service executes on a computer system other than one which is executing web server process 160, then it would be connected to operator computer 180 and client computer systems 110, 120, and 130 via the network. Nevertheless, by using a network connection to the computer system on which web server process 160 is executing, operator contact service 185 can operate on server computer 184 in the same way as operator contact service 170 on server computer 182. It is known in the art that processes can interoperate by exchanging information over a network similar to the way processes interoperate when they exchange information through memory while executing on a single machine.
Operator contact service 170 receives information about a website visitor's activities as the website visitor accesses operator contact-enabled web pages. For example, operator contact service 170 receives a connection from an enabling applet each time a new operator contact-enabled web page is accessed. This allows operator contact service 170 to maintain records related to various aspects of a website visitor's web browsing activities, such as, for example, which pages a visitor has accessed, how many times a visitor has accessed a particular page, and how long a visitor has been browsing a particular page or the entire site.
In step 230, it is determined whether the login information provided by the operator is valid. If it is not valid, then the method may end, or, in another embodiment consistent with the present invention, the operator may be given another opportunity to present valid authentication information. In either case the server will provide some response to the operator. If valid information is presented, then the server transmits the website visitor list to the operator application (step 240). Finally, in step 250, the operator application displays the website visitor list so that an operator can select a particular visitor to contact and provide information or to view the visitor path information for a particular visitor as shown in FIG. 8.
If the connection is from a new website visitor, then the website visitor is assigned to a group (step 325) and added to the website visitor list (step 330). The website visitor list can be, for example, a linked list or array of data structures or objects maintained in the memory of a computer system executing the operator contact service. In an embodiment consistent with the present invention, the newly updated website visitor list is transmitted to operator application 190 of
If the connection is accepted from an enabling applet being executed by a website visitor that is already in the website visitor list, i.e. the visitor is not a new visitor, then the visitor has either selected an operator contact-enabled page that the visitor had not previously selected, or else the visitor has reloaded the same operator contact-enabled page. In either case, the operator contact service saves a timestamp corresponding to the end time associated with the duration of time the visitor had been viewing the page (step 340).
Next, the two paths merge and, regardless whether the connection is from a new visitor, the page currently being accessed is added to the visitor's path record, which comprises a record of the path through the operator contact-enabled website that the visitor has taken (step 350). If the visitor has reloaded a page that he or she was already viewing or if the visitor has returned to a page that he or she had already visited in the current session, then a new page entry will not be created. However, a counter, associated with the visitor path record, of the number of times the page is accessed could be incremented, for example. When a new path entry is added to a visitor path record as in step 350, the updated visitor information including the visitor path record and any other user properties a website operator has obtained about a website visitor is compared to a set of rules specified by the website operator. This comparison is represented by step 355 and further described in FIG. 4. Once a new entry for the currently viewed web page exists in the page list, a time stamp is recorded indicating the time the visitor began viewing the page (step 360). At this point the operator contact service again waits for additional connections.
At step 510 the operator contact service transmits a question (step 510). Questions may be obtained from a database of relevant questions, and an artificial intelligence engine, such as a software program configured to implement stored rules, may be used to integrate known information about the visitor into the process of selecting and formulating questions. The artificial intelligence engine can therefore ensure that only those questions are asked for which an answer is not already known, and the engine can parse the answers for incorporation into the formulation of subsequent questions. For example, if the website visitor is a repeat customer and the visitors payment information is already stored in a database, the artificial intelligence engine could ask the following question: “Would you like to use the same payment and shipping information you used for your last purchase?” Depending on the answer, the artificial-intelligence engine will ask different subsequent questions.
Next the service accepts a response from the website visitor and stores the response for later use (step 520). At step 530 the service determines whether this is the last question in the series of questions. If it is not the last question then the method resumes at step 510 and an additional question is asked. If it is the last question, an appropriate action is taken based on the responses to the questions (step 540). Optionally, an operator can review the gathered information for accuracy before the system takes action based on the responses.
In
In one embodiment of the present invention, window 930 is used by the operator to view the user path of a particular website visitor. Window 930 displays the page by URL, the time the page was first accessed, and the amount of time the website visitor spent on the page. This information may be useful to the operator to where a visitor's interests lie so that proactive operator contact can appropriate visitors with an appropriate message.
Other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5991735 | Gerace | Nov 1999 | A |
| 6070149 | Tavor et al. | May 2000 | A |
| 6615251 | Klug et al. | Sep 2003 | B1 |
| 6615258 | Barry et al. | Sep 2003 | B1 |
| 6654726 | Hanzek | Nov 2003 | B1 |
| 6701362 | Subramonian et al. | Mar 2004 | B1 |
| 6704732 | Barclay | Mar 2004 | B1 |
| 20030158897 | Ben-Natan et al. | Aug 2003 | A1 |
| Number | Date | Country |
|---|---|---|
| WO 9726729 | Jul 1997 | WO |