SYSTEM AND METHOD FOR AUTOMATED FILLING OF WEB-BASED FORMS
FIELD OF THE INVENTION
[0001] The present invention relates to the field of exchange of computer user information between a user and a web-based form field. More particularly, the invention relates to the automated population of web-based forms that request user information.
SUMMARY OF THE INVENTION
[0002] The present invention is directed to a method for providing user information to a website server. The method comprises accessing the website server to display a webpage, wherein the webpage comprises at least one data field adapted to request a user information element. Modifying the webpage to determine the user information elements requested by the at least one data field and retrieving user information elements that match the user information requested by the at least one data field. The webpage is further modified to automatically populate each of the at least one data fields with at least one matching user information element.
[0003] Further, the present invention is directed to a system for automatically completing data fields in a webpage. The system comprises a secure master file stored at a location remote from a user access device. The master file comprises at least a first user profile and a second user profile. The first and second user profiles each comprise at least one user information element. A webpage interpretation module is adapted to determine the user information elements requested by each data field of the webpage and to access the secure master file. A source code module is adapted to modify the webpage to populate each data field with each user information element from each user profile that matches the user information element requested by the data field and to place a most probable match from either the first use profile or the second user profile at the top of a list in the data field. A  display device displays the webpage with each data field having a matching user information element from the master file to the user.
DESCRIPTION OF THE FIGURES [0004] Figure 1 is a flow chart illustrating the method for providing user information to a website server in accordance with the present invention.
[0005] Figure 2 is an illustrative representation of a plurality of data fields automatically filled using the present invention. Figure 2 indicates operation of the present invention through the display of an icon within the data field populated by the system of the present invention. [0006] Figure 3 is an illustrative example of a plurality of data fields populated using the system of the present invention showing the capability of altering the information present in the field using information stored in a user profile.
[0007] Figure 4 is a flow chart describing a method of automatically populating data fields present in a web-based form. DESCRIPTION OF THE INVENTION
[0008] Computer networks, particularly those with global reach such as the Internet, have greatly influenced the way that individuals, companies and institutions conduct transactions, and store, buy, and retrieve documents, images, music, and video. Convenience, ease of use, speed, and low overhead costs are contributing factors to the widespread use of the Internet for purchasing goods as well as conducting secure transactions. Many of the websites used for purchasing goods and conducting secure transactions as well as social networking websites and news sources require user registration and subsequent authentication before allowing access to the websites features and content. Additionally, many websites require additional user information elements to complete a user transaction or fully register a user with such a website. These user information elements may include the user's name,  home or work addresses, telephone numbers, shipping addresses, and credit card information. Accordingly, many websites have developed pages comprising a plurality of data fields devoted to collecting user information elements input by a user during registration or consummation of a commercial transaction. Population of the data fields by users can become tedious and time consuming. Thus, programs have been developed to assist users in populating web page data fields. However, there exists a continued need for improved systems to securely and efficiently assist users in completing web-based forms. [0009] The form fill utility plugin of the present invention provides the user a central location for storage of profile information used to populate a web-based form. This profile information may be stored either locally at the user's device or by an online identity provider. The form fill utility of the present invention allows a user access to its user profiles from any device having Internet access when the user's profile information is stored by an online identity provider. Additionally, the present invention provides the user with an efficient tool capable of automatically populating data fields in a web-based form to increase the speed and ease of online transactions.
[0010] Turning now to the figures and specifically to Figure 1, there is shown therein a flow chart illustrating a method for providing user information to a website server utilizing the form fill utility plugin described herein below. At step 100 the user accesses the website server to display a webpage comprising a form having at least one data field adapted to request a user information element. At step 102 a webpage interpretation module of the form fill utility plugin determines the user information elements requested by each data field of the webpage and populates the data fields on the form using stored user information elements from a secure user master file. A source code module modifies the webpage to populate each of the data fields with each user information element from each user profile that matches the user information element requested by the data field and places a most probable match at the  top of a list in the data field. Data fields often present on such web pages include: a user name, a user password, a user address, a user e-mail address, a user telephone number and a user payment method such as a credit card type and number. [0011] Referring now to FIG. 2, populating the data fields 20, 22, 24, and 26 of the form 28 is accomplished by modifying the webpage 30 to determine the user information elements requested by the at least one data field. The user information elements that match the user information requested by the at least one data field are retrieved from either the user's local profile or from the online identity provider. Next, the webpage is further modified to automatically populate each of the at least one data fields 20-26 with at least one matching user information element. In populating the data fields the plugin populates the data fields 20-26 using an educated guess based upon the content of the webpage 30, based upon previous experience filling the form 28, or by reading code imbedded in the webpage 30 corresponding to the information sought by the data fields 20-26. For example, the plugin may populate a first name field 20 with a user's nickname or alias rather than the user's legal name based upon frequency of use or prior interaction by the present user or the interaction of other users with the website.
[0012] In accordance with the present invention the form fill utility plugin or online identity provider may maintain a list of approved web pages and allow automatic population of the data fields upon loading of a white list webpage. However, the plugin will not automatically populate web pages not included in the approved list until the user takes an action meant to indicate a desire to populate the data fields. Such action may include tabbing the cursor to a data field or clicking in an unpopulated data field. The plugin may also maintain a list of know or suspected phisbing web sites and will not attempt to auto-populate the fields if a known or suspected phishing web page is loaded by the user. Data fields that have been populated using the plugin may also contain an identifier indicating the individual  field has been automatically populated. The user is informed the form fill plugin utility has populated the field using a visual indicator 32 such as the "Vidoop Shield" shown in each data field 20-26 of FIG. 2.
[0013] Referring again to FIG. 1, at Step 104 the user is given an opportunity to review the populated data fields 20-26 to determine if the data provided is correct. If the data is correct, the user may click the submit button (not shown) and the data is submitted (Step 106) to the website or other entity collecting such information. One skilled in the art will appreciate that the form fill utility plugin may also make a record of the category of user information submitted for later user by the user or to teach the plugin how to populate the form when encountered again by a different user.
[0014] In the event any of the data fields 20-26 has been populated with incorrect user information element data, the user may click the incorrect data field (Step 108) and either change or delete the user information element data. When the user modifies or deletes the data in the field, the visual indicator 32 (FIG. 2) is removed from the data field 20-26. [0015] Upon clicking the desired data field to modify or delete, the form fill piugin utility may present the user with a dropdown list 34 (FIG 3) at Step 110. The dropdown list 34 presents the user with alternative user information elements from across the user's stored profiles. The user simply clicks the desired information element and the data field is repopulated (Step 112). Of course, the user may also enter the new information element using their keyboard or other input device. In addition to the alternative user information elements, the dropdown list may include a sub-list 36 (FIG. 3) comprising the user's alternative profiles. The user may select an alternative profile and the form fill plugin utility will automatically populate the selected field and all of the other fields with appropriate user information elements from the newly selected user profile. By way of example, if the user loads a page from a trusted website the data fields on the page may automatically populate  with the user's "default" profile information. If the user wishes to switch to an alternative profile for this particular webpage, the user may simply click any data field containing the visual indicator 32 (FIG. 2) and the dropdown list of FIG.3 will appear for the selected field. As discussed herein, the dropdown list may contain alternative information associated with the user's "default" profile such that if the user selects the alternative information element associated fields may also auto-update. For example, if the user's "State" field is populated on load of the web page with "Oklahoma" the user may click the State data field to find the dropdown list. The drop down list will provide the user with all alternative addresses the user has saved that are associated with the "default" profile. In the present example the user may select "Texas" as the correct state and the remaining fields associated with the user's address, such as street number and city, will automatically update to correspond to the user's Texas address. Alternatively, the user may select his "work" profile from the dropdown list submenu 36 (FIG. 3) and each data field will automatically update to reflect the information associated with the user's work profile. The user may then edit or modify each individual field as described above. Thus, the data fields with user information elements in them prior to the user selecting an alternative profile will have the user information replaced by the information associated with the selected profile, the data fields that did not have any data in them under the default profile will be updated if the alternative profile has appropriate data associated with it, and data fields that do not have any corresponding profile data will either be left alone, if originally blank, or deleted if the newly selected profile does not have profile data to fill the data field,
[0016] Additionally, if the user enters a new user information element into the data field that is classified as a parent data field in a data group (i.e., street address to a user's street, city, state and ZIP code data group), the child user information for the entry is also changed. As used herein "child data" or "child information" means any data field whose  presence on a web page is directly tied to and governed by the presence of another data field considered the child's parent field. For example, a user's street address and first name data fields may be the parents to the user's city, state and ZIP code fields and the user's last name, respectively. [0017] After the user has provided or selected the desired user information element to populate the data field, the user may click a submit button (Step 114) on the webpage to submit the user information elements to the website provider or other information requesting entity. [0018] Upon submission of the user information the form fill plugin utility will audit the submitted information to determine if any new user information has been submitted (Step 116). The plugin will cross reference the data provided to the associated data field with data stored in connection with the selected user profile and when no new data is provided by the user (Step 118) the process will end (Step 120). If the data provided is new the plugin will determine if the new data corresponds to an existing data field label (Step 122). If the provided data is not new for an existing label no new data is stored and the process ends (Step 118). However, if the data provided by the user represents new data for an existing label the new data is stored (Step 124) as an alternative value for the associated data field and user profile and the process ends (Step 120). Data fields corrected by the user or not populated by the plugin and completed by the user may be logged for future review and use. The plugin will collect the web site name and address, the date the user visited the webpage, a description of the data field, and the type of data input by the user i.e., name, address, phone number. This collected data may then be used to teach the plugin how to correctly interact with the data fields the next time a user loads the webpage. [0019] Turning now to Figure 4 there is shown therein a flow chart illustrating the function of the form fill utility plugin of the present invention with the inclusion of an online  identity provider such as www.myVidoop.com to authenticate the user's identity prior to allowing the plugin to populate the data fields present on a website. In accordance with the present invention the user open a webpage comprising at least one data field at Step 400. At Step 402 the plugin determines if the user has authenticated its identity to the identity provider. Alternatively, if the user is accessing the webpage with a recognized workstation but has not authenticated its identity to the identity provider, the plugin may present the user with a dialog that informs the user the plugin has user information elements saved they could use to auto-populate the loaded data fields. The dialog will prompt the user to authenticate its identity to the online provider (Step 404) and notify the user the plugin will auto-populate the data fields upon authentication based upon the steps set forth in Figure 1.
[0020] After the user has authenticated to the identity provider the plugin determines if the user has stored information element data (Step 406) and auto-populates the data fields with the user's information elements (Step 408) as discussed herein. If the user does not have any stored user information elements the user is required to input their information (Step 410) and submit the information to the website provider (Step 412).
[0021] Returning to Step 408, after the data fields have been auto-populated, the user is presented with the webpage having the data fields populated for review. The fields that have been populated by the plugin will include the visual indicator 32 (FIGs, 2 & 3). If the data used to populate the data fields is retrieved from the user's profile and correct (Step 414) the user may click a submit button on the webpage (Step 416) and no new data is saved. However, if any of the user information elements are incorrect the user is able to input alternative or new data (Step 410) as previously described herein and click the submit button (Step 412). [0022] After submission of the user information elements the plugin will monitor the next webpage loaded into the user's browser to determine if the web site is presenting a  multi-page form (Step 418). In the event the website is not presenting a multi-page form the plugin proceeds to Step 420 and determines if the user has provided any new information elements that should be saved for future use. The form fill utility plugin may either automatically save the new data provided by the user or prompt the user to instruct the plugin to save the data in a master file associated with the user's profile. The master file may comprise a secure set of data stored at a location remote from the user's network access device. The master file may comprise at least the user's default profile and a second or alternative profile. Each of the user's profiles may comprise at least one user information element. [0023] When the user provides new information the data is saved (Step 422) by the plugin on the user's online profile master file and when no new data has been provided no new data is saved (Step 424) and the process ends (Step 426). When the plugin determines the form is a multi-page form (Step 418) the plugin next determines if the user has selected to submit the form or loaded another page (Step 428). When the user has selected to submit the form the process proceeds to the previously described Step 420. If another page is loaded, the data loaded in the data fields of the previous page is cached (Step 430) and the process returns to Step 406 and continues in the described process loop until the user selects to submit the data (Step 412) and proceed through the "save" subroutine to the process end (Step 424). [0024] Various modifications can be made in the design and operation of the present invention without departing from the spirit thereof. Thus, while the principal preferred construction and modes of operation of the invention have been explained in what is now considered to represent its best embodiments, which have been illustrated and described, it should be understood that the invention may be practiced otherwise than as specifically illustrated and described.