Intelligent form filling
A method, apparatus, and storage media for implementing an intelligent form filling system are provided. The system generates an association between a first field name and a second field name based on entry of field values by users into a first form document at a first device within a plurality of devices connected to a network and stores the association in a field name dictionary data structure at a server device connected to the network to form a field name association. The system identifies a field name in a second form document that matches the first field name or the second field name in the field name association. In response to the second user entering a value into the identified field, the system causes to be presented to the second user a prompt to associate the first field name and the second field name in a data file.
1 . A method for intelligent form filling, the method comprising:
generating an association between a first field name and a second field name based on entry of field values by at least a first user into a first form document at a first device within a plurality of devices connected to a network;
storing the association in a field name dictionary data structure at a server device connected to the network to form a field name association;
storing a data file containing name-value pairs associating values with field names for a second user, a company employing the second user, or a client of the company employing the second user;
receiving a second form document provided by the second user at a second device within the plurality of devices;
identifying a field name in the second form document that matches the first field name or the second field name in the field name association;
causing to be presented to the second user a prompt to associate the first field name and the second field name in the data file; and
storing, in the data file, a name-value pair associating, based on a response by the second user to the prompt, a field value with:
only the identified field name, or
both the first field name and the second field name,
wherein the method is performed by one or more computing devices.
2 . The method of claim 1 , wherein generating the association between the first field name and the second field name comprises determining a confidence value indicating a confidence that the first field name and the second field name refer to the same field.
3 . The method of claim 2 , wherein the confidence value is based on a percentage of users who enter a same value into a field corresponding to the first field name and a field corresponding to the second field name.
4 . The method of claim 2 , wherein storing the association comprises storing the confidence value in association with the field name association in the field name dictionary data structure.
5 . The method of claim 2 , wherein the prompt includes a presentation of the confidence value to the second user.
6 . The method of claim 1 , further comprising:
determining that the second user enters a field value into a field corresponding to the identified field name in the second form document, wherein causing the prompt to be presented to the second user is performed in response to determining that the second user enters the field value into the field corresponding to the identified field name in the second form document; and
storing, in the data file, the name-value pair associating the first field name and the second field name with the entered field value in response to the second user providing input indicating acceptance of the field name association.
7 . The method of claim 1 , further comprising:
determining that the second user enters a field value into a field corresponding to the identified field name in the second form document, wherein causing the prompt to be presented to the second user is performed in response to determining that the second user enters the field value into the field corresponding to the identified field name in the second form document; and
storing, in the data file, the name-value pair associating the identified field name with the entered field value in response to the second user providing input indicating rejection of the field name association.
8 . The method of claim 1 , further comprising:
identifying a particular field name that exists in the field name dictionary data structure and does not exist in the second form document; and
causing to be presented to the second user a prompt to enter a value for the particular field name.
9 . The method of claim 1 , further comprising:
identifying a particular field name in the second form document that matches a given field name in the data file; and
causing to be presented on the second device a prompt to enter a value associated with the given field name in the data file into the second form document in association with the particular field name.
10 . The method of claim 9 , further comprising:
in response to the second user entering a new value for the particular field name, causing the value associated with the given field name in the data file to be updated to the new value.
11 . The method of claim 1 , wherein:
the data file is a user data file, and
the method further comprises:
identifying a particular field name in the second form document that matches a given field name in the user data file and matches the given field name in a company data file; and
causing to be presented on the second device a prompt including a first option to enter a first value associated with the given field name in the user data file and a second option to enter a second value associated with the given field name in the company data file into the second form document in association with the particular field name.
12 . The method of claim 1 , further comprising causing to be displayed to the second user a graphical user interface allowing the second user to edit name-value pairs in the data file.
13 . The method of claim 1 , further comprising:
in response to detecting an update condition for a given value in the data file, causing to be presented to the second user a prompt to update the given value.
14 . The method of claim 1 , wherein the first device or the second device is a multi-function peripheral device.
15 . The method of claim 1 , wherein:
the second device is a multi-function peripheral device,
the second form document is a hardcopy form document being scanned by a scanner of the multi-function peripheral device to form a digital image of the hardcopy form document, and
the method comprises performing optical character recognition on the digital image of the hardcopy form document.
16 . The method of claim 1 , further comprising:
authenticating the second user using an authentication profile; and
permitting access to the data file in response to the second user having corresponding access privileges.
17 . The method of claim 1 , wherein identifying the field name in the second form document that matches the first field name or the second field name in the field name association comprises matching the field name in the second form document to the first field name or the second field name using string pattern matching, fuzzy logic, or a classification machine learning model.
18 . One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause:
generating an association between a first field name and a second field name based on entry of field values by at least a first user into a first form document at a first device within a plurality of devices connected to a network;
storing the association in a field name dictionary data structure at a server device connected to the network to form a field name association;
storing a data file containing name-value pairs associating values with field names for a second user, a company employing the second user, or a client of the company employing the second user;
receiving a second form document provided by the second user at a second device within the plurality of devices;
identifying a field name in the second form document that matches the first field name or the second field name in the field name association;
causing to be presented to the second user a prompt to associate the first field name and the second field name in the data file; and
storing, in the data file, a name-value pair associating, based on a response by the second user to the prompt, a field value with:
only the identified field name, or
both the first field name and the second field name.
19 . An apparatus comprising:
one or more processors; and
one or more memories communicatively coupled to the one or more processors and storing instructions which, when processed by the one or more processors, cause:
generating an association between a first field name and a second field name based on entry of field values by at least a first user into a first form document at a first device within a plurality of devices connected to a network;
storing the association in a field name dictionary data structure at a server device connected to the network to form a field name association;
storing a data file containing name-value pairs associating values with field names for a second user, a company employing the second user, or a client of the company employing the second user;
receiving a second form document provided by the second user at a second device within the plurality of devices;
identifying a field name in the second form document that matches the first field name or the second field name in the field name association;
causing to be presented to the second user a prompt to associate the first field name and the second field name in the data file; and
storing, in the data file, a name-value pair associating, based on a response by the second user to the prompt, a field value with:
only the identified field name, or
both the first field name and the second field name.