Some embodiments relate to systems and methods associated with actions taken by a user on a client device. More specifically, some embodiments are directed to systems and methods wherein a server may enhance the collection of user action data.
Users may interact and/or exchange information with a business enterprise application. For example, a user might access a remote business enterprise server via his or her smartphone to view a schedule of upcoming meetings. In some cases, the user or “client side” device (e.g., smartphone) may store information associated with the user's actions. For example, an application vendor might log user actions at client devices and later review those actions do determine which application features are the most popular. In other cases, a web-based service might collect information about user actions on a client device. For example, a web-based analytics service might track user actions to help determine which Uniform Resource Locator (URL) links are rarely selected by users. Similarly, a web-based analytics service might use pattern recognition techniques to automatically suggest a book or product to a user based on his or her actions (and the prior actions of similar users). There are limits, however, to such approaches. For example, the client device is typically battery operated, and the extra processing associated with enhancing information may consume a substantial amount of power. Moreover, the amount and types of information available at the client device or web service may be limited, and, as a result, certain types of enhancements may not be possible. For example, the client device or web service may be unable to determine if a particular telephone number is associated with a user's manager.
Accordingly, methods and mechanisms to efficiently, accurately, and/or automatically facilitate the enhancement of user action data collection may be provided in accordance with some embodiments described herein.
Some embodiments provide a system, method, program code and/or means to facilitate the enhancement of user action data collection. According to some embodiments, a business server may receive a user action reporting message from a remote mobile client device associated with a user. The business server may automatically determine supplemental context-based information associated with the received user action reporting message. The supplemental context-based information may then be stored at the business server.
With these and other advantages and features that will become hereinafter apparent, further information may be obtained by reference to the following detailed description and appended claims, and to the figures attached hereto.
Users may interact and/or exchange information with a business enterprise application. For example, a user might access a remote business enterprise server via his or her smartphone perform an action to view the time and location of an upcoming meeting. In some cases, the user or “client side” device (e.g., smartphone) may store information associated with the user's actions. For example, the client device might log the phone number, time and date, and duration of incoming telephone calls. Similarly, a web-based analytics service might store information about user actions performed at the client device.
There are limits, however, to such an approach. For example, the client device is typically battery operated, and the extra processing associated with enhancing information may consume a substantial amount of power (e.g., to analyze an article read by the user on the client device to determine the subject matter of the article). Moreover, the amount and types of information available at the client device or web-based service may be limited, and, as a result, certain types of enhancements may not be possible. For example, the client device or web-based service may be unable to determine a job description associated with a person who is attending a meeting being viewed by a user. In addition, an enterprise associated with a business server may want to customize user interfaces based on past actions taken by that user and/or analyze user action data associated with a substantial number of different users. For example, the enterprise might be interested in determining what percentage of users viewing a list of tasks scroll to the bottom of the list (so that all tasks have been viewed by the user). These types of customizations and business intelligence analytics cannot be practically implemented at the client device or a web-based service. To address such problems,
The mobile user device 110 may exchange business enterprise information with a business server 150. By way of example only, the business server 150 might be associated with an Enterprise Resource Planning (ERP) server, a business services gateway, a HyperText Transfer Protocol (HTTP) server, and/or an Advanced Business Application Programming (ABAP) server.
According to some embodiments, the business server 150 may directly communicate with one or more remote mobile user devices 110 via the Internet. The mobile user devices 110 may include one or more processors to receive electronic files and/or to execute applications and/or components (e.g., a plug-in that is integrated to a smartphone).
Note that
Any of the devices illustrated in
All systems and processes discussed herein may be embodied in program code stored on one or more computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, magnetic tape, OR solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
According to some embodiments, the mobile user device 110 may transmit a user action reporting message to the business server 150. Moreover, the business server 150 may automatically determine supplemental context-based information associated with the received user action reporting message, and store that information locally in a database 160. For example,
At 202, a business server may receive a user action reporting message from a remote mobile client device associated with a user. The user action reporting message may include, for example, a user identifier (e.g., an employee number), an application identifier or type, an object identifier, a message identifier (e.g., a Microsoft Exchange message identifier), a contact identifier, a search query, and/or a meeting identifier. For example, the user action reporting message might indicate that the user has opened an application, deleted a contact, or scrolled through a list of tasks. Note that the client device might not get any response after sending the user action reporting message to the business server (other than, in some embodiments, a simple “OK” or “error” protocol indication). This may help ensure that the response from the business server is relatively quick. A user might execute multiple actions in a relatively short amount of time, and, as a result, response times may be kept relatively short so that client applications will not hang due to pending requests for action reporting.
At 204, the business server may automatically determine supplemental context-based information associated with the received user action reporting message. For example, the supplemental context-based information may indicate that the user has opened an email message from his or her manager or indicate that he or she has completed a task associated with a customer he or she is not typically responsible for. Other examples of supplemental context-based information include a user title, a job description, communication information, office location information, and employee hierarchy information (e.g., indicating who works for who within an enterprise). According to some embodiments, this automatic determination is performed in substantially real time. According to other embodiments, the determination may be performed a periodic basis (e.g., a batch of received user actions may be processed each night). According to some embodiments, the determination may be associated with a separate process which is, for example, triggered by a scheduled task. Note that the determination of supplemental context-based information may include retrieving the supplemental context-based information from an external third-party service (e.g., a stock exchange or news service).
At 206, the supplemental context-based information may be stored at the business server. In this way, the supplemental information may be later analyzed to provide business information insights (e.g., to learn that users open tasks assigned to them by their managers 87% of the time and tasks assigned by colleagues only 55% of the time), to make recommendations to the user, or for any other purpose. According to some embodiments, the supplemental information may further be associated with transmitting an alert, generating a report, establishing a communication, and/or adjusting a workflow.
Consider, for example,
Note that data analytics associated with detailed statistics about user habits and actions may play an important role in allowing for any type of future analysis. One aspect of such an analysis may be a trustworthy assessment of the current user context. For example, it might be determined that users who receive tasks from their immediate supervisor typically perform an action to assign those tasks a “high” priority. As a result, the enterprise might determine that “high” priority should be the default value in such situations. As another example, an icon might be altered, moved, or deleted based on overall usage patterns throughout the enterprise.
Increasing the amount of collected data may lead to improved business information insights. Attempting to collect and analyze large amounts of data at the client device, however, can be impractical. For example, a mobile client is limited both by the need for an efficient battery usage, and by CPU performance. In addition, in order to have an efficient transformation of the data, an access to external accessory services might be required and this may not be feasible in the client device (e.g., a mobile phone may be outside an organization's internal network). For example, when storing data about an action related to a meeting, such as viewing a meeting or sending a response to a meeting request, it may be more relevant (for later analysis) to indicate whether the organizer is the user's co-worker or manager instead of a simply an employee number (e.g., as it may exist at an exchange-server). This kind of transformation may require access to an internal organization chart service, which may not be possible from the client device or a web-based service.
According to some embodiments described herein, in addition to any data gathering that is done on the client-side, the gathering and enrichment process is continued on the server according to current user context. On the server, which may be equipped with higher computational power and better access to internal and external services (as compared to the client side), more sophisticated business-logic for may be implemented for manipulating and enriching the data. For example, each time the client device indicates that the user has performed an action associated with a user identifier (e.g., organizer, attendees, and recipients) the server may enrich the data with an appropriate user title and affiliation relative to the current user of the client device (e.g., is the organizer his or her manager?). This kind of “offline collection” may decrease the client side load because the computations are performed by the server. In addition, these computations don't block the client device, which can continue work flows smoothly. The server may delay these computations for a number of hours, according to some embodiments (e.g., a nightly batch run might be performed by the server).
According to any of the embodiments described herein, an activity reporting mechanism may be designed to record user actions. Note that user actions may be performed on different kinds of objects (e.g., a user may perform an action to accept a meeting, scroll through a list of tasks, delete a contact, or launch an application). Each kind of action may be enriched with different additional properties and information. For example, an action associated with a meeting object may be enriched with additional data about the participants, location, etc., while an action associated with a contact object may be enriched with information from organization's internal systems, such as human resources information (job description. etc.), communication details, and/or an office location from an address book.
According to some embodiments, a user's client side device transmits a user action reporting message to a remote business server. For example,
Also included in the cellular telephone 700 are internal memory 780 and removable memory 785. Internal memory 780 may include one or more of ROM (read only memory), RAM (random access memory, e.g., static RAM), and flash memory. Removable memory 785 may comprise a flash memory, a Subscriber Identity Module (SIM) card or any other removable memory that is or becomes known. Cellular telephone 700 may therefore be equipped with an interface for physically receiving and transferring data to and from removable memory 785.
Note that information about a user action reporting message might be stored in the internal memory 780 and/or the removable memory 785. Memories 780 and 785 may also store program code that is executable by processor 775 to control telephone 700. The program code may include but is not limited to operating system program code, application program code, device driver program code, and database connector program code. The program code may include code to cause cellular telephone 700 to perform functions that are described herein. In some embodiments, the program code is executable to transmit user action reporting messages to a remote business server as appropriate.
Memories 780 and 785 may also store data used in the operation of cellular telephone 700. Such data may include phone numbers, addresses, access codes, stored audio files, text corresponding to the stored audio files, and other data. Some or all of the data may be read-only, while other of the data may be rewritable.
Analog/digital coder/decoder (A/D codec) 790 is also in communication with processor 775. A/D codec 790 may receive analog signals from microphone 750 (including speech input from a user), convert the analog signals to digital signals, and pass the digital signals to processor 775. Conversely, processor 775 may transmit digital signals to A/D codec 790, which converts the digital signals to analog signals and passes the analog signals to speaker 755. Speaker 755 then emits sound based on the analog signals.
RF receiver/transmitter 795 is operatively coupled to antenna 770 that may transmit the user action reporting messages. RF receiver/transmitter 795 may, in accordance with conventional practices, comprise a combination of two or more different receive/transmit modules (not separately shown) that operate in accordance with mutually different radio communication protocols to provide various services for the cellular telephone 700. For example, receiver/transmitter 795 may operate in accordance with one radio communication protocol to provide conventional two-way service for cellular telephone 700, and may operate in accordance with another radio communication protocol to provide PoC service for cellular telephone 700.
Those in the art will understand that the block diagram of
Architecture 900 includes operating system 910, which may comprise architecture 800 of
Communications environment 930 provides plug-in applications 950 with access to the communications functionality of operating system 910. This functionality may include text messaging, Web browsing and of course telephone communication. Plug-in applications 950 may also transmit data and commands to and receive input from user interface drivers 960 for control of the user interfaces of the smartphone. According to some embodiments, the architecture 900 may facilitate transmission of user action reporting messages to an enterprise server as appropriate.
The processor 1010 communicates with a storage device 1030. The storage device 1030 may comprise any appropriate information storage device, including combinations of magnetic storage devices (e.g., a hard disk drive), optical storage devices, and/or semiconductor memory devices. The storage device 1030 stores a program 1015 for controlling the processor 1010. The processor 1010 performs instructions of the program 1015 and thereby operates in accordance with any of the embodiments described herein. For example, the processor 1010 may receive a user action reporting message from a remote mobile client device associated with a user. The processor 1010 may automatically determine supplemental context-based information associated with the received user action reporting message. The supplemental context-based information may then be stored by the processor 1010.
The program 1015 may be stored in a compressed, uncompiled and/or encrypted format. The program 1015 may furthermore include other program elements, such as an operating system, a database management system, and/or device drivers used by the processor 1010 to interface with peripheral devices.
As used herein, information may be “received” by or “transmitted” to, for example: (i) the apparatus 1000 from another device; or (ii) a software application or module within the apparatus 1000 from another software application, module, or any other source.
In some embodiments (such as shown in
Referring to
The enricher identifier 1102 may be, for example, a unique alphanumeric code identifying business logic or enhancement steps that may be performed. For example, the “ENRICHERS.ORG_CHART.RELATION” enricher identifier 1102 may be associated with logic to add a work relationship (e.g., manager, subordinate, or co-worker) to a person identified by his or her email address in a property of a user action message, such as the “From” property of actions related to email messages. The package name 1104 and file name 1106 may be used to locate the executable code associated with the business logic or enhancement steps.
Referring to
The enricher identifier 1202 may be, for example, a unique alphanumeric code identifying business logic or enhancement steps that may be performed and may be identical to, or associated with, the enricher identifier 1102 stored in the enricher definitions database 1100. The action type 1204 may indicate which actions should trigger execution of the enricher identifier 1202. For example, a user action reporting message associated with a meeting response (e.g., an action accepting or declining a meeting invitation) triggers two of the enricher identifiers 1202 illustrated in
Referring to
The user identifier 1302 may be, for example, a unique alphanumeric code identifying a user of a client side device (e.g., smartphone). The user action identifier 1304 may be associated with a particular user action reporting message received by the apparatus 1000 at the particular date and time 1306. The action type 1308 may describe the type of action being reported (e.g., the user opened a new contact, the user accessed his or her email account, etc.). The supplemental context-based information 1310 may indicate the enhancement or enrichment made by the apparatus 1310. The supplemental context-based information 1310 may, for example, indicate automatically identified work relationships, a computerized ranking of an accepted meeting, a job description, etc.
In this way, server architecture may be designed in a way that supports an extension for the action enrichment mechanism. Such an approach may allow for the registration of additional enrichers plugins by unique key (e.g., exchange.meeting.enricher) in the registrations database 1200. Subsequently, according to the data in the user action reporting message, the plugins may be invoked to enrich the data of the appropriate action type (e.g. the ENRICHERS.MEETING.RANKING” enricher may be invoked for actions of type “MEETING.RESPONSE.*”).
Devices 1430 through 1490 are examples of some devices that may be a part of or in communication with communication network 1420. As such, devices 1430 through 1490 may receive communication events, either as intended recipients or as network nodes for passing messages. Devices 1430 through 1490 include satellite transmitter/receiver 1430, landline telephone 1440 having a subscriber line interface circuit to receive a telephone line (e.g., a cordless phone or a corded phone), communication tower 1450, desktop computer or server 1470, satellite 1480 and portable computing device 1490. Note the server 1470 might be associated with, for example, any of the embodiments described herein (e.g., to enhance collection of user action data via the mobile communication device 110). Any other suitable devices may be used as a transmitting device or a receiving device in conjunction with some embodiments.
The elements of system 1400 may be connected differently than as shown. For example, some or all of the elements may be connected directly to one another. Embodiments may include elements that are different from those shown. Moreover, although the illustrated communication links between the elements of system 1400 appear dedicated, each of the links may be shared by other elements. Elements shown and described as coupled or in communication with each other need not be constantly exchanging data. Rather, communication may be established when necessary and severed at other times or always available but rarely used to transmit data. According to some embodiments, actions by a user may be collected and enhanced by a program executing at the server 1470 or on demand in a computing cloud environment (located with or accessed via the communication network 1420).
The system 1400 may use one or more models to facilitate user action enhancement by the server. Such models may be created, for example, by a model designer or architect via a platform that creates and extends applications for enterprise interaction scenarios. Designers may be able to define a model (represented in a specified XML schema) that represents a useful improvement to user action data collection.
Thus, some embodiments may establish methods and mechanisms to efficiently, accurately, and/or automatically enrich the collection of user action data. The following illustrates various additional embodiments and do not constitute a definition of all possible embodiments, and those skilled in the art will understand that the present invention is applicable to many other embodiments. Further, although the following embodiments are briefly described for clarity, those skilled in the art will understand how to make any changes, if necessary, to the above-described apparatus and methods to accommodate these and other embodiments and applications.
Although embodiments have been described with respect to business systems and databases, note that embodiments may be associated with other types of enterprise data. For example, enrichment and enhancement of collected user action data with financial, governmental, educational, and/or medical processes and systems may be facilitated in accordance with any of the embodiments described herein.
Moreover, while embodiments have been illustrated using particular types of tables and databases, embodiments may be implemented in any other of a number of different ways. For example, some embodiments might be associated with third-party and/or publically available information, such as flight or train schedules, stock prices, etc. available via web sites. Further, while examples have been provided for particular types of user actions, note that any embodiment may be associated with any type of user action (e.g., spoken search terms).
Embodiments have been described herein solely for the purpose of illustration. Persons skilled in the art will recognize from this description that embodiments are not limited to those described, but may be practiced with modifications and alterations limited only by the spirit and scope of the appended claims.
The present application claims the benefit of U.S. Provisional Patent Application 61/971,713 entitled “SYSTEMS AND METHODS FOR SERVER ENHANCEMENT OF USER ACTION DATA COLLECTION” and filed Mar. 28, 2014. The entire contents of that application are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61971713 | Mar 2014 | US |