Abstract:
A system for providing an individual user with customized information is described. The user provides the system with the user&#39;s preferences, including how often the user wants to receive information on products of interest. The system compares each user&#39;s preferences to a database to provide the user with notification of available products. The notification is individually prepared for each user by dynamically populating the notification with the necessary information as the notification is being sent to the individual. Thus, there is no need to first prepare the notification, store it, send it, and delete it. This approach reduces the need for more equipment as the number of needed notifications increases.

Description:
This application is a continuation of U.S. patent application Ser. No. 09/585,511 filed on Jun. 1, 2000, abandoned. 
    
    
     COPYRIGHT NOTICE 
     A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent and files or records, but otherwise reserves all copyright rights whatsoever. 
     TECHNICAL FIELD 
     The present invention is related to providing customized information according to a user&#39;s predefined criteria or profile. 
     BACKGROUND 
     The Internet has quickly become the primary source from which many people gather information they need to make many types of decisions. Research that people have done in the past is now being done over the Internet. Because there is so much information on the World Wide Web, however, it is oftentimes difficult for an individual to gather together information relevant to the individual&#39;s interests or needs. This difficulty is due to the fact that there are so many different web sites that must be visited or accessed to obtain the information. Visiting a large number of web sites, however, is a very time intensive undertaking. 
     People look to the World Wide Web for information for many different reasons including accessing health or medical information, historical research, current events and sports information. Perhaps one of the most explosive areas of Internet usage is that of purchasing goods. A task that oftentimes required either traveling from one store to another in order to compare prices, scanning the ads in the Sunday paper or calling by telephone (and hoping to reach an informed salesperson) has now been replaced by clicking into various web sites in order to identify the availabilities and prices of specific goods. While a person can do all of this from the convenience and privacy of his or her own home, traveling from store to store in order to determine what is on sale has been replaced by “surfing” from one web site to another web site to comparison shop. 
     To alleviate the drudgery of clicking from one web site to another to find the best price, programs called “shop-bots” are known. These are software programs that search the web to find the offered prices for a particular item. In operation, a user enters information about the item, e.g., brand name or model number. The shop-bot program then proceeds to search through a large number of web sites and returns with information regarding the product found from the various sites. The user then reviews the list of sites and prices that has been presented and can then access a particular web site directly. 
     One disadvantage of these shop-bots is that a particular shop-bot might only access sites that have paid a fee to be included in any searches that are performed. This may exclude, however, sites that have not paid but which have better prices for the particular item. A user of any particular shop-bot needs to know beforehand the inclusiveness or exclusiveness of the sites that will be searched to determine the accuracy of the results. Further, a shop-bot is only really helpful when the potential buyer knows the specific model that is desired. In a situation where the buyer is looking for a generic device without any limitations as to specific brand or model, e.g., any portable CD player, a shop-bot would either return too many results or might not be able to complete the search. A known example of such a shop-bot can be found at www.mysimon.com. 
     While it may be possible for a shopper to identify the best price for a particular item, this still does not address a shopper who is not necessarily actively looking for a particular item to buy but who is interested in knowing about items and their prices because an item of interest at the right price might cause the person to purchase it. Vendors would like to be able to inform potential buyers that an item is available at a certain price because the availability/price combination might be all that is necessary to entice a person to make the purchase. Of course, if the vendor cannot get the information to the buyer, then no sale will ever occur. 
     As an alternative to, or in conjunction with, a shop-bot that responds td a query, an individual can also sign up or register to receive a newsletter or notification of items of interest via e-mail. To tailor the newsletter to his or her interests, an individual completes a questionnaire or form that defines the individual&#39;s interests. The completed questionnaire defines the individual&#39;s profile. 
     After the profile is complete, it is used by the originator of the newsletter service to prepare a newsletter for delivery to the individual. As an example, the newsletter may be directed to identifying web sites that provide the goods or services that, according to the profile, are of interest to the individual. 
     Often, however, the individual is not receiving a newsletter that has been customized or prepared specifically for the individual. Instead, the completed profile is used to “lump” the individual into a group of individuals that, for the most part, have common interests. A single newsletter is prepared and bulk e-mailed to the group of individuals. 
     Providers of electronic newsletters group recipients together to send a single newsletter because preparing a single newsletter for a single user does not scale very efficiently for large numbers of individuals. As the number of recipients becomes larger, a significant amount of computing power, i.e., processors, storage devices and the like, would be necessary to generate the newsletters. If the newsletter is to be prepared in a timely manner, the equipment investment necessary for this mode of operation would be prohibitive. 
     Therefore, in order to provide a large number of individuals with information that has been timely prepared for each person according to his or her profile, and in a cost effective manner, a new mechanism or approach is necessary. 
     SUMMARY OF THE INVENTION 
     A system is provided that accepts a user&#39;s (i.e., a potential buyer&#39;s) profile to be used to notify that user of items for sale that are closely aligned with the user&#39;s interests. Via the Internet, a user completes a form on which various categories of products are listed. By identifying the categories and an associated level of interest in each category, a profile of that user is created and stored. Subsequently, the stored profile is compared to information regarding all of the available items and a list of items most likely of interest to the user is created. The list will identify the item, its price and where the item can be purchased. 
     The list is transmitted to the user as a newsletter via e-mail. As part of the recording of the user&#39;s preferences, the user can also identify how often this letter or newsletter is sent in addition to how many different bargains should be identified. 
     In one aspect of the present invention there is provided a computer-implemented method of providing information regarding one or more items for sale to a user The method comprises (a) comparing a user&#39;s stored profile data to data regarding a plurality of items; (b) identifying one or more items of interest to the user from the plurality of items according to the user&#39;s stored profile data; (c) organizing the identified one or more items of interest according to the user&#39;s stored profile data; (d) formatting a document representing the identified one or more items of interest as organized in step (c); and (e) providing the formatted document to the user. 
     In one aspect of the present invention there is provided a method of providing information regarding one or more items for sale to a user. The method comprises, under control of a client system, (a) displaying preference information to be selected by the user; and (b) upon completion of preference selection by the user, sending the selected preference information to a first server system. In addition, under control of the first server system, (c) receiving the selected preference information; (d) storing the selected preference information; (e) comparing the selected preference information to data representing one or more items available for purchase and determining one or more items of interest to the user; and (f) sending information regarding the identified one or more items of interest to the client system. 
     In one aspect of the present invention there is provided a server system for providing information to a user regarding one or more items for sale. The server system comprises a first data storage device storing item information on each item of a plurality of items for sale; a receiving component for receiving user purchase preference data from a client system; a second data storage device for storing the received user purchase preference data; a list generating component for comparing, for each respective user, the respective user purchase preference data to the stored item information to generate a list of one or more items for sale that may be of interest to the respective user; and a transmission component for transmitting the generated list to the respective user on the client system. 
     In one aspect of the present invention there is provided a computer program product comprising a computer-readable medium. Computer program instructions, on the computer-readable medium, when executed by a computer, direct the computer to perform a method of providing information to a user regarding one or more items for sale. The method comprises: (a) comparing a user&#39;s stored profile data to data regarding a plurality of items; (b) identifying one or more items of interest to the user from the plurality of items according to the user&#39;s stored profile data; (c) organizing the identified one or more items of interest according to the user&#39;s stored profile data; (d) formatting a document representing the identified one or more items of interest as organized in step (c); and (e) providing the formatted document to the user. 
     In one aspect of the present invention there is provided a computer-implemented method of preparing and sending an electronic newsletter message prepared for each individual of a plurality of individuals. The method comprises: retrieving a profile associated with a first individual; identifying a newsletter template in the retrieved profile, said newsletter template having one or more variable fields each to be provided with data as a function of information in the retrieved profile; identifying an e-mail address in the retrieved profile; establishing a connection with a mail server associated with the identified e-mail address; sending the newsletter template to the mail server, and, if, as the newsletter template is being sent to the mail server, a variable field is encountered, providing data for the variable field as a function of information in the retrieved profile and sending the provided data in the place of the variable field; and continuing to send the newsletter template, wherein the newsletter template with its one or more variable fields each completed with provided data is sent to the identified e-mail address; and wherein no version of the newsletter template with one or more variable fields completed is stored other than on the mail server. 
     In one aspect of the present invention there is provided a system for preparing and sending an electronic newsletter message prepared for each individual of a plurality of individuals. The system comprises: means for retrieving a profile associated with a first individual; means for identifying a newsletter template in the retrieved profile, said newsletter template having one or more variable fields each to be provided with data as a function of information in the retrieved profile; means for identifying an e-mail address in the retrieved profile; means for establishing a connection with a mail server associated with the identified e-mail address; means for sending the newsletter template to the mail server, and, if, as the newsletter template is being sent to the mail server, a variable field is encountered, providing data for the variable field as a function of information in the retrieved profile and sending the provided data in the place of the variable field; and means for continuing to send the newsletter template, wherein the newsletter template with its one or more variable fields each completed with provided data is sent to the identified e-mail address; and wherein no version of the newsletter template with one or more variable fields completed is stored on the system other than on the mail server. 
     In one aspect of the present invention there is provided a computer program product comprising a computer-readable medium. Computer program instructions on the computer-readable medium, when executed by a computer, direct the computer to perform a method of preparing and sending an electronic newsletter message prepared for each individual of a plurality of individuals. The method comprises: retrieving a profile associated with a first individual; identifying a newsletter template in the retrieved profile, said newsletter template having one or more variable fields each to be provided with data as a function of information in the retrieved profile; identifying an e-mail address in the retrieved profile; establishing a connection with a mail server associated with the identified e-mail address; sending the newsletter template to the mail server, and, if, as the newsletter template is being sent to the mail server, a variable field is encountered, providing data for the variable field as a function of information in the retrieved profile and sending the provided data in the place of the variable field; and continuing to send the newsletter template, wherein the newsletter template with its one or more variable fields each completed with provided data is sent to the identified e-mail address; and wherein no version of the newsletter template with one or more variable fields completed is stored other than on the mail server. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention will now be described with reference to the drawings, which are intended to illustrate and not to limit the invention, and in which: 
         FIG. 1  is a schematic diagram of a client system and a server connected via a computer network; 
         FIG. 2  is a screen display of a preliminary screen for entering user information; 
         FIG. 3  is a flowchart describing operation according to an aspect of the present invention; 
         FIG. 4  is a screen display of an initial screen for entering user information; 
         FIGS. 5A-5C  are additional screen displays for entering user information; 
         FIGS. 6 ,  6 A and  6 B are screen displays for entering a user&#39;s relative interest information; 
         FIG. 7  is a screen display for recording a user&#39;s interest in a particular category; 
         FIGS. 8 , and  8 A- 8 C are screen displays of an electronically transmitted newsletter; 
         FIG. 9  is a screen display of an item “clicked-on” from the newsletter; 
         FIG. 10  is a screen display of the item of  FIG. 9  as found at a vendor&#39;s web site; 
         FIG. 11  is a screen display of the electronically transmitted newsletter as shown in  FIG. 8A  where an offer has expired; 
         FIG. 12  is a screen display shown when the expired link has been accessed; 
         FIGS. 13 ,  13 A and  13 B show a flowchart describing the populating of a newsletter with data; 
         FIGS. 14 , and  14 A- 14 E show an HTML template that operates according to the process of  FIG. 13 ; 
         FIG. 15  is an example of a newsletter created according to the process of  FIG. 13 ; and 
       FIGS.  16  and  16 A- 16 D is the source for the newsletter shown in  FIG. 15 . 
     
    
    
     DETAILED DESCRIPTION 
     The present invention is directed to providing a potential buyer with information regarding products for sale, i.e., bargains, that match the potential buyer&#39;s interest. With the present invention, a potential buyer provides information regarding preferences and levels of interest in various types of merchandise. This information is stored in a database. Information regarding products for sale are also stored in a database. Of course, the preferences data and the product data could be stored in either the same database or separate databases that may be linked together. 
     The potential buyer&#39;s preferences are compared to the products that are available. A list of products that correlate to the potential buyer&#39;s interest is then provided to the potential buyer. 
     In one example of the present invention, the potential buyer provides the preference information by completing a form that is presented to the potential buyer on a client system connected to a server system via a computer network, e.g., the Internet. The information regarding merchandise that may be of interest to the potential buyer is transmitted from the server system to the client system also via the computer network for display on the client system. 
     As shown in  FIG. 1 , a client system  100  includes a display  101  connected to a processing unit  102  that includes memory and data storage and to which a keyboard  104  is connected. The client system  100  is connected to the computer network (Internet)  108  via a communications link  106 . The communications link  106  can be any one of, for example, a modem connection via a telephone line, a cable modem connection via a cable system, a wireless connection or any other medium that is known. 
     A server system  109  is also connected to the computer network via a communications link  110 . The communications link  110  may be any one of the connection types as described above relative to communications link  106 , however, because there is typically more data flowing back and forth from the computer network  108  to the server system  109 , a higher bandwidth connection such as T 1  may be implemented. The server system  109  includes a server  112  connected to a database  118 . Typically, the server  112  includes a processor and connected memory. Further, a display  114  and a keyboard  116  are connected to the server  112  to allow access by a web site operator. 
     In one example of the present invention, a user of the client system  100  will gain access to the computer network  108  and execute any one of a number of commercially available browser programs on the client system  100  to access the World Wide Web. These browser programs include Netscape Navigator and Microsoft Internet Explorer. In a preferred embodiment of the present invention, a user of the client system  100  would direct the browser to a web site, such as bargaindog.com. This web site is operated by the assignee of this application. 
     The server  112  of the server system  109  then transmits a web page for display on the display  101  of the client system  100 . For World Wide Web applications, the page is an HTML form. Of course, any other compliant application may be used. 
     When a user operating the client system  100  accesses, for example, the BargainDog.com web site, the user will be presented with an image of a home page  200  as shown in  FIG. 2 . The home page  200  is an HTML form that includes a name field  202  for the user to enter his or her first name and an e-mail address field  204  in which the user&#39;s e-mail address can be entered. By clicking on a “Join Now!” button  206 , the user begins a registration process as will be discussed below in more detail. 
     As already discussed above, one aspect of the present invention allows a user to define his or her shopping preferences that can be used to identify products of interest to the user. A flowchart of the steps implemented by one example of the present invention is presented in  FIG. 3 . 
     In step  300 , a user inputs preferences regarding different categories of goods. The user&#39;s profile is stored in a database in step  302 . Separately from the user inputting preferences, product descriptions including, e.g., manufacturer, model number, brief description, vendor name/location/web-site and price, are received from vendors in step  304 . Each product is classified and stored in the database at step  306 . The storing and classification of the products is transparent to the user&#39;s interaction with the web site. 
     The classification may involve providing the product with codes that identify attributes that can be used when compared to the individual&#39;s stored criteria. For example, and not one that is intended to be limiting, the product may be classified as to which gender the product applies, e.g., men&#39;s pants, the area, say, golf pants and the extent of the discount, for example, 45% off list price. 
     In step  308 , algorithm rules to define matches between a user&#39;s shopping preferences and the products are defined. This algorithm controls the determination of which product or products match a user&#39;s shopping preferences. The criteria for matching a user&#39;s profile to the data in the database is easily definable by one of ordinary skill in the art. 
     In step  310 , each user&#39;s shopping preference profile is compared to the products in the database. The most relevant bargains or products of interest to each user are then generated in step  312 . Subsequently, at step  314 , an e-mail newsletter is formatted for each user with a description of the top bargains generated in step  312 . The newsletter is formatted to place the most relevant products in a prominent location in the newsletter. Finally, in step  316 , the newsletter describing the bargains identified as being of interest to the user is sent to each user via e-mail. The preparation and sending of the newsletter will be discussed in more detail below. 
     The interaction between a user on the client system  100  and the web site on the server system  109  is accomplished via the computer network  108  and through the use of web pages provided by the web server and displayed on the display  101  of the client system  100 . The user&#39;s information with respect to e-mail address and shopping preferences is provided to the server system  109  by having the user enter data in the blank fields and transmitting the HTML documents with the completed fields back to the server system  109 . 
     The presentation of web pages by the server system  109  to the client system  100 , in one example, is accomplished by the presentation of documents formatted with HyperText Mark up Language (HTML). Of course, any similar mechanism for allowing a user to submit information by completing a form can also be used. 
     The home page  200 , as presented in  FIG. 2 , allows a user to register by submitting a first name and e-mail address through an action of clicking on the “Join Now!” button  206 . 
     When the user has clicked on the button  206 , a screen similar to a screen  400  as shown in  FIG. 4  is presented. The screen  400  includes, in a Subscriber Information section, the first name field  202  and the e-mail address field  204  as already filled in by the user. In addition, the user is prompted to confirm the e-mail address entered in the e-mail address field  204  by retyping it in an address confirmation field  402 . In order to preserve a user&#39;s privacy and to prevent another from changing a user&#39;s profile without authorization, the user is prompted to provide a password in password field  404  and then to confirm the password in a password confirmation field  406 . 
     As shown in  FIG. 5A , a next portion  500  of the subscriber information form is presented. As can be seen, the password field  404  and password confirmation field  406  are shown because the screen  500  represents the “scrolled down” portion from that which is shown in  FIG. 4 . Here the user chooses the format for the newsletter reporting the items of interest. The user may choose either HTML enhanced  502  or text only  504  formats. 
     The user then chooses how often to receive the newsletter regarding items of interest by completing the field  506 . In one example of the present invention, if a user clicks on the down arrow component  508  of the field  506 , the available frequencies for which the newsletter may be received will be presented in field  506   a  as shown in  FIG. 5B . Thus, the user only has to highlight one of the four choices presented in field  506   a  to choose how often to receive the newsletter. 
     Returning to  FIG. 5A , the user also may choose how long the newsletter will be, i.e., how many items of interest will be reported. This selection is accomplished by choosing from the options presented in field  510 . By clicking on the down arrow  512 , the user is presented with the choices as to the length of the newsletter in field  510   a  as shown in  FIG. 5C . 
     Some amount of personal information also may be entered by the user. Specifically, the user&#39;s zip code is entered in zip code field  514 , the user&#39;s birthday is entered in fields  516   a ,  516   b  and  516   c  while the user&#39;s gender is identified by choosing either field  518  or field  520 . 
     Once the foregoing fields are completed, a user clicks on a “Submit and go to customization page” button  522  to proceed to a next stage of user preference registration. 
     The user will then next be presented with a screen  600 , as shown in  FIG. 6A , showing a matrix  601  with different categories of products listed in horizontal rows and intersecting vertical columns describing various levels of interest. 
     As can be seen, there is an “Apparel &amp; Accessories” category  602 , a “Career &amp; Professional” category  604  and a “Cooking &amp; Food” category  606  among the listed categories. There are five levels of interest, one of which may be chosen by the user for each category of goods. Specifically, as shown in the matrix  601  there is a “Not Interested” level  608 , a “Somewhat Interested” level  610 , an “Interested” level  612 , a “Very Interested” level  614  and an “Extremely Interested” level  616 . In addition, by checking a box in a “Further Customize?” column  618 , a user may refine his or her level of interest in the respective category of goods. This will be discussed in more detail below. 
     As an example shown in the matrix  601  displayed in  FIG. 6A , a user has chosen the “Interested” level  612  for the “Apparel &amp; Accessories” category  602  and has chosen to further customize information regarding this category by checking the box in the “Further Customize?” column  618  associated therewith. Further, the user has indicated that he or she is somewhat interested in the “Career &amp; Professional” category  604  but does not want to further customize any information with respect to this category because the box has not been checked. With respect to the “Cooking &amp; Food” category  606 , the user has indicated no interest in this category. 
     Once the user has chosen a level of interest for all of the categories, or accepted the default settings, as shown in  FIG. 6B , by clicking on a “Submit and continue to customize” button  620 , the next level of customization is started. 
     The user is then presented with a screen  700 , as shown in  FIG. 7 , where further information for those categories as identified in  FIGS. 6A and 6B  may be provided. As a representative example, the “Apparel &amp; Accessories” category  602  is presented in a “Customized Apparel &amp; Accessories” area  702 . As shown, this particular example of customization includes refining the “Apparel &amp; Accessories” category to include men  702   a , women  702   b  and baby and toddler girls  702   c . Similarly, a “Customize Career &amp; Professional” area  704  is presented where more detailed information includes the choice of general workplace information  704   a . Those other categories identified in  FIGS. 6A and 6B  as requiring further customization would be similarly refined. 
     Depending on the frequency chosen by the user, a list of bargains of interest to the user is generated and electronically transmitted to the user as a newsletter. The process of preparing the newsletter will be discussed in more detail. 
     The list of bargains of interest for the user is sent as a newsletter via e-mail to the user. Advantageously, the present invention is capable of sending a large number of these individually prepared newsletters without needing to use valuable resources to store the newsletter prior to sending. This allows a system operating the present invention to avoid the necessity, and therefore the costs, of storage devices such as hard disk drives and computer processing resources. 
     The present invention operates to prepare the newsletter generally according to the flowchart  1300  as shown in FIGS.  13  and  13 A-B. As shown, in step  1302  the previously stored profile of an individual is retrieved. From that profile, step  1304 , a newsletter format for the individual is retrieved. In one example of the present invention, two types of newsletter format are available: HTML format and plain-text. At step  1306  it is determined whether the newsletter format is plain-text. If the format is plain-text then at step  1308  the plain-text template is retrieved. If, on the other hand, the newsletter format for the individual is not plain text then at step  1310  the HTML template is retrieved. Subsequent to the retrieval of either the HTML or plain-text template, at step  1312 , the e-mail address of the individual is retrieved from the profile. At step  1314 , a connection is established with the e-mail server for the identified e-mail address of the individual. This connection is established through conventional mechanisms that are not considered an aspect of the present invention. At step  1316 , the system begins sending the template to the e-mail server. At step  1318 , a point in the template is reached causing the suspension of the sending of the template to the e-mail server. 
     Subsequent to the suspension, at step  1320 , a search of the database based on the retrieved individual&#39;s profile is begun to identify those items in the database that will be of interest to the individual. P Once the items are identified, the system resumes sending the remainder of the template to the e-mail server. As will be discussed in more detail below, the template comprises variable fields that are filled with information identified by the search conducted in step  1320 . 
     At step  1324 , a determination is made as to whether a variable field in the template has been reached or the end of the template has been reached. If a variable field has been reached then, at step  1326 , the field is filled with the appropriate data from the search conducted at step  1320  and sent to the e-mail server, step  1327 . At step  1328  a determination is made as to whether or not the end of the template has been reached. If the end of the template has not been reached then at step  1330  the system continues to send the template and control returns back to step  1324 . If the end of the template has been reached either at step  1328  or at step  1324  then control passes to step  1332  where the profile of the next individual is retrieved with the process returning to step  1304  to begin the preparation of the transmission of a next newsletter to a next individual. 
     The present system populates the e-mail newsletter with information for the user while the newsletter is being sent. This preparation occurs “on the fly” and allows the present invention to customize the newsletter for the individual according to his or her profile without having to first generate the newsletter as a document, store the document, connect with the individual&#39;s e-mail server, send the newsletter, delete it and then repeat these steps for each individual. The present invention does not dedicate storage for holding the newsletter prior to it being sent. 
     As shown in FIGS.  14  and  14 A- 14 E, an example of an HTML template includes code  1400  for creating an HTML formatted newsletter that is sent as an e-mail message. As shown at element  1402  the template identifies the sender of the newsletter and at element  1404  the addressee field is a variable that is retrieved from the database. The lines of code between lines  1406  and  1408  in  FIG. 14B  generate the ranked items of interest for the individual according to his or her criteria as defined in the stored profile. 
     Once the bargains for the particular user have been identified and prioritized, the subsequent lines of HTML code in the HTML template format and present the information in the newsletter. It should be noted that the text template operates similarly to the HTML template. An example of the template that prepares a plain-text newsletter is presented in Appendix A. 
     In one example of formatting the newsletter, the top three items of interest are presented and displayed to the individual across the top of the newsletter. As described below, each of these items includes a small graphic image representing the item in addition to a relatively detailed description. The remaining items are presented by category without, however, a graphic image being provided. 
       FIG. 15  represents an example of an HTML formatted newsletter received by a user of the present invention. As can be seen, hyperlinks  1502 ,  1504  and  1506  represent the top three items identified for this particular user on this particular date. Each of these items includes a small graphic image and a written description of the item. A hyperlink is an element in an electronic document that links to another place in the same document or to an entirely different document. Typically, a user clicks on the hyperlink to follow the link. Typically the hyperlink is an implementation of a Uniform Resource Locator (URL). A URL is a standard way that has been developed to specify the location of a resource that is available electronically. A URL is most commonly used when using a World Wide Web (WWW) client to link to WWW pages. The first part of the URL identifies the protocol that is being used. Typically, in WWW applications, the HyperText Transfer Protocol (HTTP) is commonly used. The remaining hyperlinks  1508 ,  1510 ,  1512  and  1514  are presented under their respective category heading but do not include a graphic representation of the item as compared to the formatting in which hyperlinks  1502 - 1506  are presented. The operation and functionality of these HTML formatted newsletters has been discussed above. 
     The HTML source for the HTML newsletter as shown in  FIG. 15  is presented in FIGS.  16  and  16 A- 16 D. The source as presented in FIGS.  16  and  16 A- 16 D resulted from the operation of the previously described HTML template when run for this particular user on the particular date identified. 
     As shown in  FIG. 16A , portion  1602  is a URL that represents the graphic image portion of hyperlink  1502 . Similarly, portions  1604  and  1606  are URLs that refer to the graphic portions of hyperlinks  1504  and  1506 , respectively. Further, portions  1608 ,  1610  and  1612  represent the display of the respective prices for hyperlinks  1502 ,  1504  and  1506 . Portions  1614 ,  1616  and  1618  represent the formatted information for the portions  1502 ,  1504  and  1506 , respectively. 
     The remaining items of interest are also identified in the HTML source for the newsletter. One example is the portion  1620  which corresponds to hyperlink  1508  and its description. One of ordinary skill in the art of HTML coding will understand how the remainder of the HTML newsletter is formatted by reviewing  FIGS. 16A-16D  in comparison to the newsletter represented in  FIG. 15 . 
     The interaction of the recipient with an example newsletter listing items of interest will be discussed with reference to  FIGS. 8A-8C . This newsletter is sent via e-mail to the e-mail address that the user entered in e-mail address field  204  upon submitting his or her preferences. The newsletter includes descriptive hyperlinks to the three items which are identified by the system, step  312 , as being of the most interest to this particular user. 
     As an example shown in  FIG. 8A , there is a first hyperlink  802  describing address labels and a dispenser, a second hyperlink  804  to a book on family medicine and a third hyperlink  806  to a free chocolate heart with card purchase. Additional items of interest to the user are presented by category. The first category is described by the “Apparel &amp; Accessories” label  808  and includes a fourth hyperlink  810  to 14-Karat Gold Earrings.  FIG. 8B  shows a display  800   b  that is the next screen down from the display  800   a  as shown in  FIG. 8A . As can be seen in  FIG. 8B , additional categories and hyperlinks to items within the categories are also displayed. 
     Returning to  FIG. 8A , one example of the present invention provides pictures of the top three items in the hyperlinks  802 ,  804  and  806 , whereas the remaining hyperlinks are only textual descriptions. It should be noted that the hyperlink is accessed by the user clicking on either the graphic image portion or the underlined text. As is known, typically, when the user positions the arrow cursor over a hyperlink, the cursor turns into a hand image indicating a WWW page or document may be accessed. 
     When a user receives the newsletter and has an interest in one or more of the items described therein, the user may obtain additional information by clicking on the particular hyperlink. As an example, if the user were to click on the first hyperlink  802 , he or she would be directed to additional information about this item in the form of another screen  900 , i.e., an HTML document, as shown in  FIG. 9 . As can be seen, additional information regarding the address labels and dispenser is presented. Another hyperlink  902  is displayed in the screen  900 . This information resides on the server system  109  although, in an alternate example, the information may be residing on a different server. Screen  900  includes another hyperlink  902  directed to the vendor of, in this case, the address labels and dispenser. When the user clicks on the hyperlink  902 , he or she is then directed to the web site of that particular vendor, as shown in  FIG. 10 . 
     At this point, the user has been directed to the vendor of the item of interest. The user may then proceed to order the item by transacting with that vendor. 
     It is noted that often items are only available for certain prices for a set period of time. After the set period of time, the offer “expires.” The present invention provides for notification of this expiration via the already-delivered newsletter. 
     Screen display  800   a ′ as shown in  FIG. 11 , represents a later version of the screen display of the newsletter previously discussed in  FIG. 8A . As can be seen, one of the items has expired, represented by a link  806 ′. As discussed above, a hyperlink is used to point to the URL of the information displayed for hyperlink  806 . As a result, the base reference, i.e., the content of the document or web page that the hyperlink points to can change. 
     The hyperlink (URL) embedded in the newsletter does not change, i.e., it is pointing to the same location, however, the content at that location has changed. Consequently, at a time subsequent to the first time the recipient views the newsletter he or she will see different information. Specifically, the information at the URL target location can be updated and provided to the recipient without having to send another newsletter. As a result, in the particular example shown in  FIG. 11 , a user who views the newsletter some time after it has been initially received will be notified that the item is no longer available at that price. 
     If a user clicks on the “expired” link, he or she may be directed to an explanatory screen  1200 , as shown in  FIG. 12 . A section  1202  then explains that the selected items is no longer available. 
     The present invention provides a system and method that allows a user to define the types of products that the user may be interested in purchasing, the relative level of interest in each category and the types of products. This information is stored and regularly compared to information regarding products that are available. By comparing the user&#39;s preferences to the products that are available, a more targeted list of products may be provided to the individual. With this system, the individual will receive information regarding products that he or she is more likely to be interested in and, therefore, more likely to purchase. Advantageously, the user is not barraged with information regarding products in which he or she has very little or no interest. Advantageously for a seller, those potential buyers who have already expressed an interest in a particular product will be receiving information about the products and the advertising or information about the products is targeted to buyers who are more likely to make a purchase. 
     Of course, the profile and database containing the product information may be resident on a system separate from, but linked to, the server system  109 . Specifically, the mail server and the database used to prepare and send the newsletter may be a machine separate from a web server that services the web site. The newsletter generating system, in one example, is a dual-processor machine with two 700 MHz Pentium III processors and 512 megabytes of RAM. The system uses the Red Hat Linux operating systems and the MySQL database. Of course, these particular components could be substituted with known equivalents. 
     The present invention scales up very efficiently for when large numbers of newsletters must be prepared and delivered. In operation, the present invention achieves a throughput rate of approximately 150,000 e-mail newsletters delivered each hour on a single double-processor machine. This compares very favorably with a maximum throughput of not more than 10,000 e-mails on the same single double-processor system using the conventional prepare/store/send/delete methodology. 
     Further, additional information may be provided to the recipient of the newsletter by modifying the content of target of one of the links embedded in the newsletter. In this manner, the individual is updated without the necessity of sending an additional newsletter. Advantageously, this aspect of the present invention overcomes the disadvantages of a “static” e-mail message that cannot be modified without sending a new e-mail message some time after the first e-mail message. 
     While one example of the present invention involves a preparation of a newsletter describing items for sale that may be of interest to an individual, it is certainly clear to one of ordinary skill in the art that the present invention is not limited to the subject matter of items for sale but can provide any type of mass individualized message preparation. 
     Unless specifically stated herein, it should not be assumed that any described particular aspect or element of the system is essential. Further, variations, modifications, and other implementations of what is described herein will occur to those of ordinary skill in the art without departing from the spirit and the scope of the invention as claimed. In addition, in view of the foregoing description, one of ordinary skill in the art will understand that equivalent structures may be available to achieve the same results as those described above. Accordingly, the spirit and scope of the following claims should not be limited to the descriptions of the examples described herein. 
     
       
         
               
             
               
             
           
               
                 APPENDIX A 
               
               
                   
               
               
                 TEXT TEMPLATE 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 &lt;!suspend_auto_output&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/tags.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/basic.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/control.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/function.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/web.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/dbmysql.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/bdogmisc.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/sem.so&gt; 
               
               
                 &lt;!load_module path=/s/ehtml/date.so&gt; 
               
               
                 &lt;!sem_op key=qmdb op=−1&gt; 
               
               
                 &lt;!if cond=&lt;!not_equal left=&lt;!dbopen name=bargains host=192.168.0.100&gt; 
               
               
                      right=&gt;&gt;&lt;!template_defer&gt;&lt;!/if&gt; 
               
               
                 &lt;!resume_auto_output&gt;From: BargainDog &lt;comments@bargaindog.com&gt; 
               
               
                 To: &lt;!var name=template_key&gt; 
               
               
                 Subject: Bargains from BargainDog! 
               
               
                 &lt;!suspend_auto_output&gt; 
               
               
                 &lt;!-- Basic User Info --&gt; 
               
               
                 &lt;!dbselect query=‘select id, first_name, len, 
               
               
                       DATE_FORMAT(DATE_SUB(\‘&lt;!var name=day&gt;\’, INTERVAL &lt;!var 
               
               
                 name=interval&gt; 
               
               
                 DAY), \‘%Y%m%d\’), 
               
               
                       DATE_FORMAT(\‘&lt;!var name=day&gt;\’, \‘%M %d, %Y\’) 
               
               
                       from users where email = 
               
               
                       &lt;!dbliteral value=&lt;!var name=template_key&gt;&gt;’&gt; 
               
               
                 &lt;!var name=uid value=&lt;!dbfield num=1&gt;&gt; 
               
               
                 &lt;!var name=first_name value=&lt;!dbfield num=2&gt;&gt; 
               
               
                 &lt;!var name=len value=&lt;!dbfield num=3&gt;&gt; 
               
               
                 &lt;!var name=startday value=&lt;!dbfield num=4&gt;&gt; 
               
               
                 &lt;!var name=nice_date value=&lt;!dbfield num=5&gt;&gt; 
               
               
                 &lt;!/dbselect&gt; 
               
               
                 &lt;!-- The Query --&gt; 
               
               
                 &lt;!var name=qry value=‘select bargain_cat.id, 
               
               
                   substring(min(concat((bargains.cat_id &lt;&gt; bargain_cat.cat), 
               
               
                         bargain_cat.cat)), 2), 
               
               
                       min((bargains.cat_id &lt;&gt; bargain_cat.cat)) as pri, 
               
               
                       count(*) as cnt, bargains.quality 
               
               
                     from bargains straight_join bargain_cat straight_join user_cat 
               
               
                     where 
               
               
                      bargains.id = bargain_cat.id 
               
               
                     and bargain_cat.cat = user_cat.cat 
               
               
                     and user_cat.id = &lt;!var name=uid&gt; 
               
               
                     and bargains.start_date &gt;= &lt;!var name=startday&gt; 
               
               
                     and bargains.start_date &lt; &lt;!var name=day&gt; 
               
               
                     and bargains.cat_id &gt; 0 
               
               
                       and ((bargain_cat.bits1 = 0) or 
               
               
                      (user_cat.bits1 &amp;  bargain_cat.bits1)) 
               
               
                     and ((bargain_cat.bits2 = 0) or 
               
               
                      (user_cat.bits2 &amp;  bargain_cat.bits2)) 
               
               
                     and ((bargain_cat.bits3 = 0) or 
               
               
                      (user_cat.bits3 &amp;  bargain_cat.bits3)) 
               
               
                   group by bargain_cat.id 
               
               
                   order by bargains.quality DESC, cnt DESC, bargains.id DESC’&gt; 
               
               
                 &lt;!resume_auto_output&gt;&lt;!if_else 
               
               
                 cond=&lt;!equal left=&lt;!var name=first_name&gt; 
               
               
                 right=“&gt;&gt;Your&lt;!/else&gt;&lt;!possess_word word=&lt;!var name=first_name&gt;&gt;&lt;!if_else&gt; 
               
               
                 BargainDog Newsletter - &lt;!var name=nice_date&gt; 
               
               
                 ------------------------------- 
               
               
                 Top Bargains 
               
               
                 ------------------------------- 
               
               
                 &lt;!suspend_auto_output&gt; 
               
               
                 &lt;!var name=list value=”&gt; 
               
               
                 &lt;!var name=c value=0&gt; 
               
               
                 &lt;!dbselect var=r query=‘&lt;!var name=qry&gt; limit &lt;!var name=len&gt;’&gt; 
               
               
                 &lt;!if_else cond=&lt;!less left=&lt;!var name=c&gt; right=3&gt;&gt; 
               
               
                 &lt;!var name=c value=&lt;!plus &lt;!var name=c&gt; 1&gt;&gt; 
               
               
                 &lt;!dbselect query=‘select bargains.name, short_txt, merchants.name, 
               
               
                      IF(strike&lt;&gt;\‘0.00\’, 
               
               
                         concat(\‘(Originally $\’, strike, \‘)\’), 
               
               
                         \‘\’), 
               
               
                      IF(price&lt;&gt;\‘0.00\’, concat(\‘$\’, price), \‘Free!\’), 
               
               
                       bargains.id 
               
               
                   from bargains, merchants where 
               
               
                     bargains.id = &lt;!dbfield num=1&gt; 
               
               
                     and bargains.mer_id = merchants.id’ 
               
               
                 &gt;&lt;!resume_auto_output&gt;&lt;!dbfield num=1&gt; - &lt;!dbfield num=5&gt; &lt;!dbfield num=4&gt; 
               
               
                 &lt;!dbfield num=2&gt; 
               
               
                 Merchant: &lt;!dbfield num=3&gt; 
               
               
                 http://www.bargaindog.com/prod/?id=&lt;!dbfield num=6&gt;&amp;uid=&lt;!var name=uid&gt; 
               
               
                 &lt;!suspend_auto_output&gt;&lt;!/dbselect&gt; 
               
               
                 &lt;!/else&gt; 
               
               
                 &lt;!dbselect query=‘select bargains, name, short_txt, merchants.name, 
               
               
                      IF(strike&lt;&gt;\‘0.00\’, 
               
               
                         concat(\‘(Originally $\’, strike, \‘)\’), 
               
               
                         \‘\’), 
               
               
                      IF(price&lt;&gt;\‘0.00\’, concat(\‘$\’, price), \‘Free!\’), 
               
               
                       bargains.id, &lt;!dbfield num=2&gt; 
               
               
                   from bargains, merchants where 
               
               
                     bargains.id = &lt;!dbfield num=1&gt; 
               
               
                     and bargains.mer_id = merchants.id’&gt; 
               
               
                 &lt;!if cond=&lt;!equal left=“ right=&lt;!var name=cat&lt;!dbfield num=7&gt;&gt;&gt;&gt; 
               
               
                   &lt;!dbselect query=‘select name_full, id from categories where 
               
               
                         id = &lt;!dbfield num=7&gt;’&gt; 
               
               
                 &lt;!var name=cat&lt;!dbfield num=2&gt; value=‘ 
               
               
                 ------------------------------- 
               
               
                 &lt;!html_decode string=‘&lt;!dbfield num=1&gt;’&gt; 
               
               
                 ------------------------------- 
               
               
                 ’&gt; 
               
               
                   &lt;!var name=list value‘&lt;!var name=list&gt;&lt;\!var name=cat&lt;!dbfield num=2&gt;&gt;’&gt; 
               
               
                   &lt;!/dbselect&gt; 
               
               
                 &lt;!/if&gt; 
               
               
                 &lt;!var name=cat&lt;!dbfield num=7&gt; value=‘&lt;!var name=cat&lt;!dbfield num=7&gt;&gt; 
               
               
                 &lt;!dbfield num=1&gt; - &lt;!dbfield num=5&gt; &lt;!dbfield num=4&gt; 
               
               
                 &lt;!dbfield num=2&gt; 
               
               
                 Merchant: &lt;!dbfield num=3&gt; 
               
               
                 http://www.bargaindog.com/prod/?id=&lt;!dbfield num=6&gt;&amp;uid=&lt;!var name=uid&gt; 
               
               
                 ’&gt; 
               
               
                 &lt;!/dbselect&gt; 
               
               
                 &lt;!/if_else&gt; 
               
               
                 &lt;!/dbselect&gt; 
               
               
                 &lt;!if cond=&lt;!equal left=&lt;!var name=r&gt; right=0&gt;&gt;&lt;!template_fail&gt;&lt;!/if&gt; 
               
               
                 &lt;!resume_auto_output&gt;&lt;!dbselect query=‘select id, copy from 
               
               
                 newsads where run_date =&lt;!var name=day&gt; and format = 0’ 
               
               
                 &gt; ———————————————   
               
               
                 ADVERTISEMENT: 
               
               
                 &lt;!var name=ad value=&lt;!dbfield num=2&gt;&gt;&lt;!call name=ad&gt; 
               
               
                 
                   ———————————————— 
                 
               
               
                 &lt;!/dbselect&gt;&lt;!sem_op key=qmdb op=1&gt;&lt;!dbclose&gt;&lt;!if cond=&lt;!greater left=&lt;!var 
               
               
                 name=r&gt; right=3&gt;&gt; 
               
               
                 More Bargains From BargainDog: 
               
               
                 &lt;!call name=list&gt;&lt;!/if&gt; 
               
               
                 ------------------------------- 
               
               
                 Subscription Information 
               
               
                 ------------------------------- 
               
               
                 You are subscribed to this newsletter as “&lt;!var name=template_key&gt;”. 
               
               
                 To change your preferences, customize your category selections, 
               
               
                 or unsubscribe from the newsletter, please go to 
               
               
                 http://www.bargaindog.com/members/ 
               
               
                 ------------------------------- 
               
               
                 Disclaimer 
               
               
                 ------------------------------- 
               
               
                 This e-mail is meant for informational purposes only, and is not a guarantee 
               
               
                 that the products listed may be purchased at the above prices. Bargain 
               
               
                 Dog, its affiliated and non-affiliated merchants make no promises or 
               
               
                 guarantees about the price, quality or availability of products it lists in 
               
               
                 this service. For a full description of Bargain Dog&#39;s terms and 
               
               
                 conditions, go to: 
               
               
                 http://www.bargaindog.com/static/terms.ehtml