This application claims priority under 35 USC 119 or 365 to India Application No. 201741022186 filed Jun. 23, 2017, the disclosure of which is hereby incorporated by reference in its entirety.
The present invention pertains to the use of a messaging system to collect information from users participating in one or more instant messaging communication sessions in order to populate a database.
A messaging system allows users of the messaging system to exchange (instant) messages with other users of the messaging system in an instant messaging communication session. In order to use the messaging system, each user operates a user device with an instance of a messaging application (app) executed on that device. The messages are primarily text-based, but can also comprise rich content such as images, videos, documents, audio etc. This is referred to as instant messaging. The messaging takes place in real time, in that there is typically only a short delay (e.g. about two seconds or less) between a user sending a message and it being received by its intended recipient(s). The messages are transmitted and received between users via a network, for example a packet-based network such as the Internet, in the instant messaging communication session, which is effected by the messaging system, and in which the users are engaged. Other rich functionality, such as collaborative documents editing, poll creation, survey creations etc. may also be provided within the instant messaging communication session.
Within the messaging system, users may be able to create messaging groups. Multiple users, e.g. more than two users, may be participants in a messaging group. The participant's messaging accounts may be associated with the messaging group, which provides a convenient means by which those users can communicate with each other using a messaging service of the messaging system. For example, the messaging service may comprise a messaging server which relays messages between users in the group, or a look up server which allows network addresses of the users to be obtained so that messages can be sent between them directly etc. An instant messaging session can be conducted between all users in a group, and it may be possible to conduct further instant messaging communication sessions with sub-groups of a larger group.
A first aspect of the present invention is directed to a computer-implemented method of populating a database with information provided by users of a messaging system, the messaging system for effecting instant messaging communication sessions in which users of the message system engage by sending and receiving messages via a network of the messaging system, the method comprising implementing, by an information manager, the following steps: in response to an instruction received from an initiating one of the users, retrieving from the database initial information held in the database; generating a plurality of information requests based on the initial information retrieved from the database; sending each of the information requests to a recipient user via the network in an instant messaging communication session effected by the messaging system; receiving a response to each of the information requests, wherein that response conveys at least one piece of information provided by the recipient user to which that message was sent; assigning each of a plurality of fields of the database to one of the recipient users or to a group of the recipient users; and populating each of the database fields with one of the pieces of information provided by the recipient user to which it is assigned or one of the group of recipient users to which it is assigned.
The generated requests request, from the recipient users, pieces of information to be entered in the database field assigned to those users or their groups. Generating those requests using initial information that is retrieved from the database itself provides a convenient and self-contained mechanism for requesting and receiving information. The initial information can be entered in the database by the initiating user to indicate how he wishes the rest of the database to be populated. The database can for example be an electronic spreadsheet. The initiating user can enter the initial information into the spreadsheet to indicate desired structure and content for the spreadsheet, and the information manager uses this to automatically request the necessary information from the recipient users and uses that information to automatically populate the spreadsheet in the manner indicated by the initiating user via the initial information entered in the spreadsheet.
In embodiments, each of the information requests may comprise an identifier of a requested information type derived from the initial information by the information manager.
The initial information may comprise at least one column header of the electronic spreadsheet from which the identifier of the requested information type is derived.
Each of the information requests may be in the form of a survey having a series of questions derived from the initial information to be rendered at a user device operated by its recipient user.
The initial information may comprise multiple column headers of the spreadsheet and each of the questions may be derived from one of the column headers.
The plurality of database fields may be assigned to the recipient users or groups based on the responses received to the information requests.
The plurality of database fields may be pre-assigned to the recipient users or groups before the responses are received.
The fields may be pre-assigned by the information manager using the initial information in the database.
Each of the information requests may comprise structural data for rendering, at a user device operated by its recipient user, a representation of a set of the database fields pre-assigned to its recipient user or a group its recipient user is a member of the structural data denoting a structure of that set of database fields within the database, wherein at least two of the recipient users or groups are pre-assigned different sets of database fields.
The information manager may use a first part of the initial information to generate a first of the information requests sent to a first of the recipient users, and a second part of the initial information to generate a second of the information requests sent to a second of the recipient users, whereby the first and second recipient users receive different information requests.
The information manager may assign a first set of fields of the database to the first recipient user or to a group the first recipient user is a member of, the first information request being generated based on that assignment, and assign a second set of fields of the database to the second recipient user or to a group the second recipient user is a member of, the second information request being generated based on that assignment, whereby the first and second information requests are generated from different sets of database fields.
The first part of the initial information may be retrieved from at least one of the first set of database fields and at least another of the first set of database fields may be populated with the piece of information provided by the first recipient user, and the second part of the initial information may be retrieved from at least one of the second set of database fields and at least another of the second set of database fields may be populated with the piece of information provided by the second recipient user.
The first information request may comprise first structural data denoting a structure of the first set of database fields within the database for rendering a representation of the first set of database fields at a user device operated by the first recipient user, and the second information request may comprise second structural data denoting a structure of the second set of database fields within the database for rendering a representation of the second set of database fields at a user device operated by the second recipient user.
The information manager may identify at least one of the recipient users or groups automatically using the initial information in the database.
A second aspect of the invention is directed to an information manager for populating a database with information provided by users of a messaging system, the messaging system for effecting instant messaging communication sessions in which users of the message system engage by sending and receiving messages via a network of the messaging system, the information manager comprising: a network interface configured to connect to the network; at least one processor; and electronic storage coupled to the at least one processor and configured to hold computer-readable instructions, which are configured, when executed on the at least one processor, to implement the steps of the first aspect or any embodiment thereof.
A third aspect of the invention is directed to a computer program product comprising computer-readable instruction stored on a computer-readable storage medium and configured, when executed, to implement the steps of the first aspect or any embodiment thereof.
For a better understanding of the present invention, and to show how embodiments of the same may be carried into effect, reference is made to the following figures in which:
Embodiments of the invention are described below in relation to a database in the form an electronic spreadsheet, such as an Excel document. In this context, individual cells of the spreadsheet constitute database fields.
Electronic spreadsheets, such as Excel documents, are used extensively for storing and processing data by users. An electronic spreadsheet can be created and edited using a spreadsheet application, such as Excel, which can be a locally executed spreadsheet application or a Web application that is accessed via the Internet, for example.
The described embodiments leverage the power and reach of spreadsheet applications to integrate with a messaging app to help users seamlessly collect data from their network, using instant messaging functions.
An initiating user operates a user device, which he uses to create an electronic spreadsheet and populate it with some initial information, via a user input device of the user device. This initial information in the spreadsheet indicates what type of information the initiating user wants other users to provide (recipient users). For example, the initiating user may add a title (header) to a column of the spreadsheet to indicate a type of data to be entered in that column. It is convenient for the initiating user to enter this information in the actual spreadsheet to be populated, rather than having to provide it through a separate channel. When instructed by the initiating user, an information manager—also referred to as a database manager herein extracts this initial information from the spreadsheet and uses it to generate information requests that are sent to the recipient users. The recipient users can be identified by the database manager automatically using the initial information in the spreadsheet itself, or information provided by the initiating user as part of the instruction to the database manager. Each of the information requests is sent to its recipient user in an instant messaging communication session, also referred to herein as a “chat” or, equivalently, a “conversation”. The requests may all be sent in the same chat in which the recipient users are participating, or different information requests may be sent in different chats in which different recipient users are participating. Each recipient user can respond to the information request within the chat in which the request is sent, in order to provide one or more pieces of requested information. Cells of the spreadsheet are assigned to individual users, particular groups of users, or a combination of both. A cell assigned to a particular user or group of users is used by the database manager to hold information provided by that user or group. When any recipient user provides a piece of information in a chat, that piece of information will only ever be entered in a cell assigned to that user or to a group that user is a member of. Cells can be assigned to the recipient users before or after the information requests are sent, and may be assigned autonomously by the database manager (possibly using the initial information in the spreadsheet) or as specified by the initiating user in his instruction to the database manager.
The information request can be in the form of a “survey” wherein a series of questions is presented to the recipient user and his answers are used to populate the cells assigned to him or his group. Alternatively, a version of the cell(s) assigned to him or his group, corresponding to a limited portion of the spreadsheet, may be rendered at his device so he can edit those cells (and only these cells) directly.
As will be appreciated,
Returning to
With reference to
The messaging service 204 of the messaging system 100 is an instant messaging service that allows authorized users of the messaging accounts 214 to transmit instant messages to and receive instant messages from other authorised users of the messaging system. The messaging service 204 also allows those users to create messaging groups 216 (user groups). Information about each messaging group 216, such as a group identifier (grpID) and information about the users participating in that messaging group, is stored in the backend computer storage 146. The messaging accounts 214 of users participating in a messaging group are associated with the messaging group (that is, with the group ID of that messaging group) in the backend computer storage 146. Based on this group information and the information in the associated messaging accounts 214, the messaging service 204 allows the group participants to exchange instant messages within the messaging group via the network 108. That is, to engage in a chat with any of their groups. For example, the messages may be relayed between the participants by the messaging service—for example, via one or more message relay servers or other message relay nodes of the messaging system 100—or the messaging service 204 may provide network address information to allow the participants to exchange the messages with each other directly, in a peer-to-peer fashion. A variety of instant messaging protocols are in use today supporting a range of instant messaging services from different providers. The general principals of instant messaging are well known and are therefore not described in further detail.
However the messaging service 204 is implemented, the user identifiers uID are used as a basis for the exchange of messages in each messaging group, for example by identifying user devices 104 associated with the user identifiers uID of the users in the messaging group as recipient devices for messages in the group.
The messaging service 204 stores copies of messages exchanged in each chat in the backend storage 146 (chat histories, 218), so that they can be retrieved by users participating in those chats at any time.
The messaging service 204 can also provide enhanced (rich) communication functions within chats, such as the communication of interactive content (polls, surveys, meeting invites, job assignments etc.), rich content (audio data, image data, file sharing etc.). Each type of interactive content is also referred to herein as a “card”.
The database manager 212 is a computer system which can be implemented in a localised fashion, at a single computing device, or in a distributed fashion where different parts of that functionality are implemented at different co-operating computer devices. It can be implemented locally in the sense that it is embodied in the initiating user's device 104a or it can be implemented remotely for example as part of the back end system 142. The functionality of the database manager 212 is implemented in software, for example as code executed on the processor of the initiating user's device (104a) or the processor 144 of the back end system 142.
With reference to
At step S2, the initiating user 102a creates the spreadsheet 222 and populates it with initial information. The initial information specifies the type or types of information that the initiating user 102a wants other users to provide in order to complete the spreadsheet 222. A simple case is where the initiating user 102a enters column headers into the spreadsheet 222 in order to identify the type of information he wants collected for each column. The initiator user 102a may also have the option of entering additional information into the spreadsheet 222 at this stage, for example, to provide more targeted information collection. Examples of this are described later.
At step S4, the database manager 212 uses the initial information as entered in the spreadsheet 222 at step S2 to formulate information requests 502 to be sent to the recipient users 102b-d. These information requests 502 are generated according to an instruction from the initiating user 102a. The instruction can for example can be provided by the instruction user 102a selecting one or more UI options provided by the database manager 212 in order to specify or confirm which users the requests 502 should be sent to, and in some cases to specify which parts of the initial information in the spreadsheet 222 should be used to formulate which of the requests 502. In some implementations, the database manager 212 can use results of a semantic analysis performed on the initial information by the intelligent service(s) 220.
At step S6, each of the information requests 502 is sent to its intended recipient user in an instant messaging communication session (i.e. chat). The requests 502 can be sent in a single chat in which all of the intended recipient users are participating, or different requests 502 can be sent in different chats in which different recipient users are participating. Thus the requests 502 can be sent in one or more chats. The recipient users 102b-d receive these and each recipient user responds to the information request he has received in the chat in which it was sent. This may utilise one or more of the enhanced communication functions provided by the messaging service 204 as described later in various examples.
At step S8 the database manager 212 receives the responses 502R from the recipient users 102b-d and uses those responses 502R to populate the spreadsheet 222 automatically with the information conveyed in the responses 502R. The information provided by each recipient user is entered into cells of the spreadsheet 222 that are either assigned to (i.e. reserved for) that user or which are reserved for a group that user is a member of. For example, the information request 502 can be sent to all users in a particular group and each user in that group may be assigned a row or rows of the spreadsheet that are each reserved for holding a respective piece of information provided by that user. Another example is where the information requests 502 are sent to recipient users in multiple groups, in multiple chats, and each user group is assigned a row or rows of the spreadsheet which is reserved for holding information provided by the users in that group (where any user in a given group can provide information to be entered in cells reserved for that group).
Various example implementations will now be described.
The initiating user 102a uses a document editor to create an empty table (e.g. Excel Table) in the spreadsheet 222, with only table column titles (headers), and which might have table formulas in one or more columns. Via a user interface of the document editor itself, the initiating user 102a can connect to the messaging service 204 and select the table to send to one of his groups in the messaging system 100.
The initiating user 102a might choose to send only certain columns and may, for example, exclude any columns containing formulas. Columns containing formulas may be identified automatically by the database manager 212 and excluded by default, so that the user does not have to indicate them manually, but the user may be able to adapt the default selections.
The database manager 212 converts the selected part of the selected table into a survey, with table columns being converted into survey questions. Each question is derived from one of the column headers using that column header as an identifier of the type of information to be requested. The survey is circulated within the group via a group chat, exploiting the rich functionality of the messaging service 204.
Users in the group can then work in a familiar survey environment and answer the questions derived from the column titles. At a later point, the initiating user 102a could access the spreadsheet 222 using the document editor, and choose to fetch the data back from the survey into the table. In response, the document editor connects to the messaging service 204, fetches the group responses from the survey, and uses these to fill-in the table. Any column with formulas will be auto computed. Alternatively, the document editor can refresh the spreadsheet 222 automatically without requiring manual refreshes. For example, the spreadsheet 222 can be updated automatically as the recipient users respond, without the user having to refresh the document, by pushing updates to the document editor as responses are received from the recipient users.
To aid illustration further, a specific example will now be described with reference to
This can be extended in various ways.
For example, the table might have user phone numbers, or other user identifiers, that the DB manager 212 could use intelligently to send more targeted survey to users. In this case, cells are pre-assigned to the users and/or groups based on the user IDs in the spreadsheet. Some columns might have pre-filled information, which can then be converted into a more intelligent form targeted for the individual user in the group based on the phone number.
For example, a given user may not be asked questions for a column where the cell in that column assigned to him is already completed. Alternatively, he may be asked a question for that column but which is adapted for him based on the contents of that cell, e.g. to ask for more specific information. The provided information can then be merged appropriately with the existing information in the spreadsheet.
Specific parts of a spreadsheet 222 (like Excel Tables) can be sent to particular users/groups using the messaging service 204 for easing data capture and co-authoring during business conversations on the network apps. Respective structural data, derived from the spreadsheet 222, is included in each information request to allow the relevant part of the spreadsheet to be re-constructed at the recipient device. The structural data denotes a structure of the relevant cells in the database, i.e. how they are laid-out within the rows/columns, so that they can be presented with a matching layout at the recipient device. For example, a supervisor could use this to share the daily/weekly sales targets in an Excel Table, which the sales team updates during the day/week as business conversations over network app. This data is updated in the original Excel Table, which the supervisor can use to monitor/report. This significantly reduces the level of manual effort required on the part of the supervisor.
An example use case scenario is shown in
Within the messaging system 100, each spreadsheet 222 can be identified by a global spreadsheet identifier, which could for example be derived from a file name of the spreadsheet and/or an identifier of a part of the spreadsheet assigned to the user or group in question, such as a deep link to that part of the spreadsheet. Each information request and response can include the spreadsheet identifier for the spreadsheet, and/or the identifier for the part of the spreadsheet, to which they relate so that the database manager 212 can keep track of which responses apply to which spreadsheet. Each information request 502 and response 502R can comprise an identifier of the user and/or the group to which it relates so that the database manager 212 can see which responses have come from which users/groups. Individual tables within a spreadsheet may be identified by table identifiers, which can be particularly useful where a spreadsheet contains multiple tables. In this case, where a request 502 or response 502R pertains to a particular table, it can include the table identifier in order to identify that table.
Although the above has been described in relation to a database in the form of an electronic spreadsheet, the invention can also be applied to other types of databases which may or may not be similarly embodied in a file. The term database is used herein to mean any structured set of data that is stored electronically in a computer readable format. Examples of databases embodied as files include for example Excel files, Comma Separated Values (CSV) files and other plain text databases etc. However the database need not be embodied in a file and can be implemented in some other manner.
Note references to software executed on at least one processor (or similar) can mean all of the software are executed on the same processor, or that portions of the code can be executed on different processors, which may or may not be co-located. For example, in the example architecture of
Number | Date | Country | Kind |
---|---|---|---|
201741022186 | Jun 2017 | IN | national |