The present disclosure relates to the field of enterprise-related communication functions. More specifically, the present disclosure is related to a method and system for generating context-appropriate user prompts from an enterprise messaging application.
In mobile computing, usability, design, and expedience are paramount to the user experience. A primary goal is to increase efficiency in user operations, and yet collaboration and communication are conventionally separate computing functions, leading to duplication of user effort.
Some systems can provide a certain level of context awareness to increase efficiency and expedite the performance of user functions. For example, based on users' social network or search operations context-aware user prompts offer targeted advertisements, or recommend activities.
Savings of time and labor are particularly important in a commercial environment. Yet, previous systems have not made sufficient use of enterprise-relevant context awareness. Context for enterprise-related functions provides different challenges and demands from consumer context. For example, management and collaboration functions may require that both managers and employees follow certain protocols. Moreover, with conventional enterprise computing solutions, users are often required to use different application interfaces to perform different collaborative functions. Switching between these interfaces can be tedious and error-prone.
A system and method are provided for generating context-appropriate user prompts from an application. During operation, the system receives a user text input in the application window. The system then analyzes the received user text input to determine an enterprise objective of a user and an enterprise function associated with the user objective. The system then generates a user prompt corresponding to the enterprise function. The system then displays the user prompt in the application window.
In the figures, like reference numerals refer to the same figure elements.
The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the disclosed system is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Embodiments of the present invention solve the problem of integrating the communication and collaborative functions in an enterprise environment by generating context-appropriate user prompts within an enterprise messaging application. For example, a user may input a chat message or search term. The system can then apply a language processing heuristic to infer an enterprise-related objective based on the user input. The system improves significantly over previous systems by automatically providing expedient, context-appropriate user prompts which allows the user to access directly enterprise functions. The system can further expedite such functions by pre-populating user option controls, e.g., in a form based on the determined context. The system can be integrated with other information sources such as an address book, to facilitate more complex operations, such as submitting information to a manager. In the following description, user “Xiaohei” is used as an example for an employee user, and user “Xiaobai” is used as an example for a manager user.
As shown in
These exemplary discussions relate, respectively, to the company's management and control information systems for vacation requests and for task management. These systems could be integrated with the EIM application package, or be standalone applications. Moreover, the discussions contain contextual information that is potentially more up-to-date than the statuses reflected in the vacation or task management systems. Note that the disclosed embodiments are not limited to analyzing discussions via EIM, and can also analyze contextual information obtained from other applications such as Internet or intranet searches, local storage or file system searches, a calendar or other workflow application, an address book or social network, etc.
The disclosed embodiments can use the contextual information obtained from the EIM application to analyze one or more context cues, and determine from them a work-related user function that is relevant to the discussion. In these examples, the user function could be vacation or task management. The system can apply machine learning or language processing to analyze the context. Based on the relevance and the context, the system can further determine that one or more participants in the conversation might want to perform this determined work function soon, and therefore assist them in doing so.
The system can use the conversational context to generate a user prompt to configure this enterprise-related user function.
In some embodiments, the popup displayed by the system may simply be a confirmation prompt, or a prompt for further action, e.g. “Would you like to request time off?” or “Would you like to open the task management app?” In some embodiments, the system can instead directly open a prompt or window associated with the user function or application, or can gather information on behalf of the user function or application. The system can then open the application related to the user function after the user affirms (e.g., by tapping “yes”) in the initial popup. The system can also incorporate relevant contextual information into the prompt.
For example, form 230 can include fields that allow the form permits the user to select the type of time off 232, such as vacation, sick or personal days off, unpaid leave, jury duty, etc. The form can also contain a field 234 for the user to specify the start and end dates of the time-off request. Additional fields can be used to allow the user to specify other parameters, such as multiple time intervals, start and end times or partial days off, etc.
In some embodiments, the system can pre-populate the option fields based on the determined context. The system can apply machine learning or language processing to context from the EIM chat, search terms, calendar, or address book, etc., to determine likely values for these fields.
Once the user confirms the selections in the form, the system can update the data in the company's information system and/or perform the enterprise-related user function. In some embodiments, the system sends the selection information to a separate application, which performs the user function.
The system can also show searchable lists of pending requests related to collaborative functions.
In some embodiments, request list 430 can be searchable or sortable based on any detail included in the list. For example, details including request type, requester name, manager name, reimbursement amount, task status, timestamp of request, request priority, etc., can be used to search or sort the list. In some embodiments, the search or sort may include compound conditions based on multiple conditions.
This section describes details of the system's operation.
The user input is not limited to text, and can include any content the user inputs in the application. For example, a user Xiaohei can use an EIM text input box or a voice input mode to enter the input content in the system. The user input can also include content input by an EIM conversation partner of the local user, for instance a chat message received by Xiaohei from Xiaobai.
In one embodiment, the system can analyze user input in real time. The system can display a user prompt even before the user completes typing a message. The system can also analyze historical user input, e.g. historical messages loaded when an EIM session starts. For example, the system can recognize that a previous EIM message from Xiaobai such as, “Keep me informed of the project progress” corresponds to an ongoing collaborative task. Thus, the system can show a user prompt relevant to task management when the EIM session loads. Since the user input is a historical message, Xiaohei can access the task management user prompt simply by opening the EIM session window, even without typing or receiving any new messages, which can expedite user operation.
The system may then analyze the received user input (operation 504). If the user input is a voice message, the system can apply a voice-recognition function to convert the message into text. The system may then determine, based on the user input, an enterprise objective of the user and a collaborative enterprise function associated with the user objective (operation 506). The enterprise objective may indicate an intention of the user to perform some work-related function or activity. For example, the enterprise objective can include an intention to inform a manager that the user needs to take a sick leave day, or an intention to manage a team project. The enterprise function may include information systems for collaborative enterprise work, e.g., time-off requests, collaboration on a shared document or presentation, video conferencing, distance learning, or task management.
In some embodiments, the system can analyze the user input locally within an EIM client executing on a mobile device to determine the enterprise function. Alternatively, the client device can transmit the input to a server which can analyze the user input. Then, the client device can determine the relevant enterprise function based on a context analysis result received from the server. In a further embodiment, when the user input contains a specific sequence of characters, the system can display a function selection window including a menu of enterprise functions. Then, the system can determine an enterprise function according to a selection by the user. The user can also define the specific sequence of characters corresponding to different enterprise functions, to improve the system's usability and efficiency.
The system then generates a user prompt corresponding to the enterprise function (operation 508). The system presents the user prompt for display in the application (e.g., EIM) window (operation 510). The system can use various triggers for displaying the user prompt corresponding to the enterprise function, which are not limited by the present disclosure. In addition, the system can first display a confirmation prompt associated with the user prompt in the application window, and when the user activates the confirmation prompt, the system can display a full user prompt or pop-up control.
The system can also pre-populate user option fields based on contents of the user input, as in the example shown in
As shown in the example in
The system then determines whether to analyze the user input (operation 554). For example, the system can determine this based on a setting by the user, the availability of a network connection to a server, and/or the particular application or context. Responsive to determining that the user input should not be analyzed, the system can proceed to displaying the user input content within the application window (operation 566), without determining a relevant enterprise objective of the user.
In the case of analyzing the user input, the system can then upload the collected input content to a server (operation 556). In this embodiment, the EIM application client (e.g., a DingTalk client) can upload Xiaohei's input to a corresponding EIM server, and the server can determine whether the user input contains context relevant to an enterprise objective and enterprise function. The client system then receives the analysis results from the server (operation 558). The system can then determine whether a collaborative enterprise function is associated with the user input content (operation 560). If no such enterprise function exists (i.e., the system does not identify any enterprise function to be relevant to the user input content), the system then can proceed to displaying the user input content within the application window (operation 566).
Note that an EIM application such as DingTalk, besides supporting instant messaging, can also facilitate collaborative enterprise functions, such as request approval and attendance checking. Such efficient and effective interoperability between communication and collaborative teamwork functions, without the need for multiple applications, can be essential for organizations such as enterprises, government agencies, or nonprofits. In some embodiments, the EIM client (e.g., DingTalk) can analyze the input to determine context and upload the context to a server to determine a relevant enterprise function, if such a function exists. The server can use machine learning and language processing heuristics to analyze the input and determine the relevant enterprise objective and function.
Responsive to determining that there is a relevant enterprise function, the system can then generate a corresponding user prompt (operation 562). For example, if Xiaohei's input content matches the enterprise function of time-off requests, the system can display a confirmation prompt. When Xiaohei selects the confirmation prompt, the system displays a time-off request popup. In another embodiment, the system can display the time-off request popup directly without the confirmation step. The enterprise function popup can also be combined with the confirmation prompt, thereby allowing the user to configure the enterprise function within the original application window.
The system can then perform the enterprise function according to user input received via the generated user prompt (operation 564). Continuing the above example, if Xiaohei configures a time-off request, the system can then process this request. For instance, the system can send Xiaohei's request into the organization's information system or database for time-off requests, and/or send the request to Xiaohei's manager for approval.
Subsequently, the system processes the user text input content within the application (operation 566). For example, if the original application is an EIM session, the system can display the user input as an instant message, and accordingly send the message to the receiving party. In some embodiments, the processing in operation 566 can occur independently of the enterprise function, to avoid disruption to the messaging session between the two parties.
In an embodiment, the system can analyze the user input locally, i.e., without sending it to a server.
In some embodiments, the system uses a confirmation prompt to confirm that the user wishes to perform the enterprise function.
The system then processes the received input using a machine learning or language processing heuristic (operation 804). In some embodiments, this heuristic may include supervised or unsupervised learning, clustering methods, a neural network, or another machine learning or language processing heuristic. The heuristic may be trained based on actual user interactions in an enterprise. In some embodiments, the system analyzes the user input locally on the device without needing to send the input content to a remote server.
The system then infers an enterprise-related objective based on the user input (operation 806). The system can determine a collaborative enterprise function associated with the enterprise-related objective (operation 808). Next, the system can generate an enterprise-related user prompt corresponding to the enterprise function (operation 810). The system then performs the enterprise function according to the user input received via the generated user prompt (operation 812). In some embodiments, users do not need to switch repeatedly between the EIM session window and application screens for each enterprise function, as both the EIM and enterprise functions can be performed in the EIM session window. This can increase the collaborative productivity of users.
Extracting Context from a User Search
The disclosed embodiments are not limited to extracting context from user input in an EIM application window, but can include other user applications, such as search. The search could include an Internet, company intranet, or local device search.
If the local user is a manager responsible for approving requests, the system can instead display a list including all pending requests received by the manager that are relevant to the determined context.
In this example, the pending request list may contain additional controls. For example, when the local user Xiaobai is the approver, the system can display buttons 954 such as “Approve” and “Reject,” enabling Xiaobai to act on her approval decision efficiently. Moreover, if Xiaobai selects a “view details” button, the system may display a reimbursement request window showing full information of the selected request.
As discussed above, the user can configure the system to display a function selection window including a menu of enterprise functions when the user's input contains a specific sequence of characters.
In addition to real-time user input as described above, the system can also extract context from historical input in the application window (e.g., an EIM session window, search window, etc.).
The embodiments described herein provide a system and method generating context-appropriate user prompts from an application. During operation, the system receives a user input in the application window. The system then analyzes the received user input to determine an enterprise function corresponding to the user input. The system then generates a user prompt corresponding to the enterprise function. The system then displays the user prompt in the application window.
In a variation on this embodiment, analyzing the user input to determine the enterprise function comprises applying a language processing heuristic to the input.
In a variation on this embodiment, the received user text input includes a chat message or search term.
In a variation on this embodiment, the generated user prompt includes an enterprise-related form, which further includes a user option field. Generating the user prompt further comprises pre-populating the user option field.
In a variation on this embodiment, the enterprise function includes one or more of: a reimbursement or expense request; a vacation or leave request; and task management information.
In a variation on this embodiment, the system further generates a list of pending requests involving the user and relating to the enterprise function. The system then displays the list of pending requests in the application window.
In a variation on this embodiment, the enterprise application is an instant messaging application.
In one embodiment, processor 1302 can execute instructions in storage device 1306 in order to implement operating system 1330 and user prompt generating system 1332, which can comprise various modules. In one embodiment, instructions in storage device 1306 can implement a user input receiving module 1334, a user input analyzing module 1336, and a user prompt generating module 1338.
User input receiving module 1334 can receive user input in an application window. User input analyzing module 1336 may analyze the user input to determine an enterprise objective of a user and an enterprise function. User prompt generating module 1338 may generate a user prompt corresponding to the enterprise function.
In some embodiments, modules 1334, 1336, and 1338 can be partially or entirely implemented in hardware and can be part of processor 1302. Further, in some embodiments, the system may not include a separate processor and memory. Instead, in addition to performing their specific tasks, modules 1334, 1336, and 1338, either separately or in concert, may be part of general- or special-purpose computation engines.
The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed.
The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
Furthermore, methods and processes described herein can be included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field-programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
The foregoing descriptions of various embodiments have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention.
Number | Date | Country | Kind |
---|---|---|---|
201610810906.9 | Sep 2016 | CN | national |
Under 35 U.S.C. §119, this application claims the benefit and right of priority of Chinese Patent Application No. 201610810906.9, filed Sep. 8, 2016, the disclosure of which is incorporated by reference herein. This application is related to U.S. patent application Ser. No. 15/469,248, Attorney Docket Number ALI-A9268US, entitled “METHOD AND SYSTEM FOR TASK PROCESSING” filed Mar. 24, 2017, the disclosure of which is incorporated herein by reference.