Computer systems are in wide use. Some computer systems receive interactions by users over a variety of different types of communication channels.
Some such computer systems include business systems. Business systems can include, for instance, customer relations management (CRM) systems, enterprise resource planning (ERP) systems, line-of-business (LOB) systems, among others.
In CRM systems, for instance, users of the CRM system often assist customers with various problems. Such users are sometimes referred to as customer service representatives. They perform customer service operations for a company that has implemented a CRM system.
In doing so, the customer service representative often receives communications from customers over multiple different channels, even for a single issue that the customer has raised. By way of example, a customer may send an e-mail to the company describing a problem with a product that the customer purchased from the company. The e-mail may illustratively be received at the CRM system where it is routed to a customer service representative. The customer service representative may then reply to the e-mail or schedule an appointment to talk to the customer, for instance. The customer may then call the customer service representative at the appointed time. The customer service representative may do other things as well, such as assign tasks (e.g., to a sales engineer) in order to address the issue raised by the customer. The customer service representative may also consult with colleagues in order to attempt to address the issue. At a later time, the customer service representative may send a text message to the customer scheduling another time to talk to the customer, as a follow up.
It can thus be seen that, even for a single customer service issue raised by a single customer, a customer service representative may communicate with the customer using a variety of different communication channels (such as e-mail, telephone, messaging, etc.) and the customer service representative may perform a variety of other activities related to the issue raised by the customer (such as consult with colleagues, post notes related to the issue, assign internal tasks, etc.).
In some CRM systems, in order to view all of this information, a customer service representative may need to navigate to different parts of the CRM system. For instance, in order to view e-mails related to this customer's issue, the customer service representative may need to navigate to the e-mail system. In order to view tasks or appointments, the customer service representative may need to navigate to the calendar or task management portion of the CRM system. In order to make a telephone call to the customer, the customer service representative may need to navigate to even a different portion of the CRM system. This can be cumbersome.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
A user accesses an activity thread that has display elements representing activities that have a common identifier. The activity thread is displayed to the user as a unified thread in which display elements that have been added to the thread since the user last accessed the thread are identified as new to the user.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
It will be appreciated that, while the present discussion proceeds with respect to business system 102 being a CRM system, it could be other business systems (such as an ERP system, an LOB system, among others) or other computer systems as well. For instance, it can be any other computer system that receives inputs through a variety of different communication channels and generates a unified view of those communications, corresponding to records in the business system. However, for the sake of the present example, the present discussion will proceed with respect to system 102 being a CRM system.
Thus, business system 102 illustratively includes application components 120, processor 122, business data store 124, communication components 126, integrated display processing components 128, contextual action processing component 130, new activity processing component 132, user interface component 134, and it can include other items 136 as well.
Before describing the overall operation of business system 102 in more detail, a brief description of some of the items in business system 102 will first be provided. Business data store 124 illustratively stores entities 138, workflows 140, processes 142, applications 144, and it can include other items 146. Entities 138 are illustratively business records that describe and define business entities within system 102. Therefore, for instance, a customer entity describes and defines a customer. A vendor entity describes and defines a vendor. A product entity describes and defines a product. A customer service issue entity describes and defines a customer service issue. The entities can be objects which have callable methods. They can also include more rich functionality than an object. They can include a wide variety of other business records as well.
Application components 120 illustratively include items that run applications 144, which, themselves, can use workflows 140 and processes 142 to operate on business data represented by entities 138 and other business records 146. Therefore, application components 120 can include calendar/meeting components 148, task management components 150, customer service application components 152, case identifier components 154, and they can include other components 156.
Calendar/meeting components 148 illustratively run calendar or meeting applications that can be used to make appointments, schedule meetings, send meeting requests, etc. Task management components 150 illustratively include one or more applications that allow users 112-114 to assign tasks, and to follow those tasks as they are performed, completed, etc. Customer service application components 152 illustratively run one or more customer service applications that can be accessed by users 112-114 in order to perform customer service operations for the company that has implemented business system 102. Therefore, they illustratively allow users 112-114 to track customer service issues, and to view information corresponding to those different issues. Case identifier component 154 includes one or more applications that receive activity inputs from customers or users and assign a case identifier to those activities. For instance, the first time a customer 116 contacts the company that uses business system 102, case identifier component 154 may assign a case number to that customer service call. This is illustratively a unique identifier within business system 102 that will be used to identify information and activities corresponding to the customer service issue raised by the customer service call. Other identifiers can be used as well, such as a customer account identifier, a social security number, an email address, etc.
Communication components 126 illustratively include applications or other components that facilitate communication between business system 102 and users 112-114, as well as customers 116-118. Therefore, in one example, communication components 126 illustratively include electronic mail components 158 that facilitate electronic mail communication not only internally among users 112-114, but externally between users 112-114 and customers 116-118. Telephone component 160 facilitates telephone communication among users 112-114 and customers 116-118. Messaging component 162 illustratively includes applications or other components that facilitate messaging (such as text messaging or other SMS messaging, or messaging using other types of messaging systems). The messaging can be facilitated between users 112-114 and customers 116-118. Communication components 126 can include other applications or components 164 as well, that facilitate other types of communication. This can include electronic and other mediums, such as telephone, facsimile, etc.
Integrated display processing components 128 include functionality that generates a unified display for users 112-114, corresponding to any given case number. Component 128 can also include other items 178 as well. In-line unification components 166 identify communications or other activities, of different types, that correspond to the same case number, and generate display elements corresponding to each identified activity. Components 166 then generate a unified display of those activities for a user 112-114. As is described below, each of the display elements is a record corresponding to some type of activity or activity input that corresponds to the case number. The activity or activity input can be a communication (internal or external), a task, a note, a meeting, etc. Thread generation component 168 places those display elements (or activities) in a unified thread, such as in chronological order or in reverse chronological order, so that a user accessing that case number can see the order in which the activities appeared. Activity filter components 170 provide user input mechanisms that allow a user to filter the activities displayed on the unified display. They can include, for instance, an activity type identifier 172 that identifies the different types of activities in the unified display, and filters 174 that filter those activities based on activity type, based on a source (such as external vs. internal activities), based on sensitivity (such as confidential or public), date, other system status (such as order status), etc. In-line activity creation component 176 generates user input mechanisms that can be actuated by a user in order to create in-line activities corresponding to the case number. This can be done without leaving the context of the business records (or case number) currently being viewed.
Contextual action processing component 130 illustratively allows a user to take contextual actions from selected activities within the unified display. For instance, if the unified display includes an e-mail message, a user viewing the unified display can select the e-mail message and take contextual actions that are related to the e-mail message. By way of example, the user can reply, reply all, attach attachments, etc. Again, this is done in-line, without losing the context of the business record represented by the unified display.
New activity processing component 132 illustratively includes new activity identifier 180 and visual indicia component 182. New activity identifier 180 identifies activities that are new to the particular user 112-114 that is viewing the unified display. Visual indicia component 182 adds visual indicia to identify the new activities on the unified display, so that the user can easily see those particular activities that are new, since the last time the user accessed the unified display for this case number (or business record).
Case identifier component 154 then determines whether the activity input has a business system identifier associated with it. This is indicated by block 204. By way of example, if customer 116 previously called user 112, user 112 may have a case number assigned to the issue raised by that customer. The identifier can be the customer name, a unique number assigned to the issue, or a wide variety of other identifiers. In that case, the customer number or other case identifier will be on subsequent activity inputs. In any case, case identifier component 154 determines whether the activity input has a business system identifier associated with it. If so, then processing skips to block 216 which is described in greater detail below. If not, however, then the current activity is processed as if it were the first activity corresponding to this issue. Thus, case identifier component 154 assigns an identifier to the activity. This is indicated by block 206 in
Thread generation component 168 then generates a new activity thread corresponding to this identifier. This is indicated by block 214 in
The activity information that is stored can include a timestamp 218 that identifies a time when the record corresponding to the activity input was created. For instance, if the activity input is an e-mail from a customer, then the activity can be added to the thread for the case identifier by including not only the e-mail content but a timestamp indicating when the e-mail was received (or sent). Thread generation component 168 can arrange the activities in any given thread in chronological order. For instance, where there are multiple items in a thread, they can be arranged in reverse chronological order (where the more recent items are placed at the top of the thread), or in forward chronological order (where the oldest activities in the thread are placed at the top of the thread). Arranging the activities in the thread in chronological order is indicated by block 220. Of course, the items can be arranged or placed in a thread in other ways as well, and this is indicated by block 222.
Thread generation component 168 then saves the new or modified thread for later access or display to a user 112-114. This is indicated by block 224 in
Display 226 also illustratively includes unified thread section 234. Section 234 illustratively includes a unified set of activities that have been received or performed with respect to this case number (identified by identifier 228) in some order determined by thread generation component 168. In the example shown in
It can be seen that in unified thread section 234, each activity is represented by a display element 236-246. The activities represent a variety of different types of activities that can be received or generated through a variety of different channels. For instance, display element 236 represents a note activity. The note activity is a note that was posted by a given user 112-114 for this case number. Display element 238 corresponds to a task that was created by a user 112-114 within business system 102. It includes a details actuator 248 that allows the user to be navigated to more details corresponding to the task that is represented by display element 238.
Display element 240 represents an e-mail activity. It briefly describes the issue regarding the e-mail at 250. It can include a textual portion 252 that includes a portion of the e-mail, and it includes identifying information 254 that identifies the sender of the e-mail and when it was sent. It can include other items as well. In the example shown, the case number is illustrated in the information 250. It can be seen that display element 240 represents an external e-mail from one of users 112-114 to a customer. This is indicated by a designator 256.
Display element 242 corresponds to an external e-mail that was sent by the system and received by a user 112-114 within business system 102. It includes similar information to that shown with respect to display element 240, and it is similarly numbered. However, it also indicates, by designator 258, that this is system e-mail that was automatically sent by the system, instead of a live user.
Element 244 indicates that a case was created and an identifier was assigned, because a customer 116-118 (in this case Abby H.) posted an issue on a social media network of the company using business system 102. Based on that input, case identifier component 154 identified the activity as one which did not yet have an identifier 228, and therefore it created a business record for the activity and assigned it an identifier.
Display element 246 is a wall post display element that represents an activity by which the customer posted a message on the social media wall of the business using system 102. It contains the contents of that post and also identifies who it was posted by and the date and time when it was posted.
It can thus be seen with respect to
In one example, new activity processing component 132 (shown in
System 102 first receives a user input from a user (such as a user 112) indicating that the user wishes to access a thread corresponding to an identifier (such as a case number, a customer name, etc.). This can be done by having user 112 log into system 102 using authentication information and then by providing the identifier so that user 112 can view the corresponding unified thread. Receiving a user input to access a thread corresponding to an identifier is indicated by block 260 in
In response, new activity identifier 180 determines when this user 112 last viewed the requested thread. This is indicated by block 270 in
Once new activity identifier 180 has identified when this user last viewed this thread, it examines the activities on the unified display, and, in one example, the timestamp for each activity, to determine whether any of the activities in the thread were added since the user last accessed the thread. If so, it identifies those activities as new activities. This is indicated by block 276 in
Once the new activity identifier 180 has identified any new activities, visual indicia component 182 then adds visual indicia that distinguish the new activities in the unified display from the old activities (which the user has already seen). It then generates a display of the unified display visually distinguishing new activities from other activities in the thread. This is indicated by block 282. It will be noted, of course, that the visual distinction can be made by using a wide variety of different types of visual indicia. For instance, each new activity can include the word “new”. This is indicated by block 284. The new activities can be shown in a different color or in bold, as indicated by block 286. They can be shown flashing as indicated by block 288. The display can include a demarcation line that shows all new activities above the line and all old activities below the line in the display, or vice versa. A demarcation line is indicated by block 290. It can visually distinguish the new activities from the old ones in other ways as well, and this is indicated by block 292.
It is first assumed that the user has provided inputs to access a unified display for a given identifier. Activity filter components 170 illustratively display filter user input mechanisms that allow the user to filter the activities displayed in the unified thread. Displaying the filter user input mechanisms is indicated by block 307 in
In another example, the user input mechanisms allow the user to quickly see all activities as indicated by block 312. They can include a wide variety of other filter user input mechanisms as well, and this is indicated by block 314.
As mentioned earlier, these are only examples of different filter criteria that can be used. A wide variety of other filter criteria can also be used by providing other filter user input mechanisms. Such criteria can include, for example, sensitivity, date, system status, etc.
The user then illustratively actuates one of the filter user input mechanisms. This is indicated by block 316. The user can actuate a single user input mechanism to filter based on a single set of filter criteria. This is indicated by block 318. In another example, the user can actuate a combination of different filter user input mechanisms to filter based upon a combination of filter criteria. This is indicated by block 320.
Once the user has actuated the user filter user input mechanisms, filters 174 (shown in
Activities mechanism 336 allows the user to filter the displayed activities based on activity type. In doing so, activity type identifier 172 (shown in
It will also be noted that, as described above with respect to
It is first assumed that the user is already viewing a unified display for a given record (e.g., for a given identifier).
The user then selects one of the activities in the unified thread 234. The user can do this, for example, by clicking on one of the display elements that represent the activities with a point and click device, by touching them (on a touch sensitive screen), or in other ways. Receiving user selection of an activity on the unified display is indicated by block 350 in the flow diagram of
In response, contextual action processing component 130 (shown in
The user can then actuate one of the contextual action user input mechanisms. This is indicated by block 360. When this occurs, the contextual action processing component 130 displays an in-line action pane with user input mechanisms that can be actuated to take the action represented by the contextual action user input mechanism that the user selected. Displaying the in-line action pane is indicated by block 362 in
The user can then provide user inputs on the in-line action pane through the contextual user input mechanisms provided thereon. Receiving those user inputs is indicated by block 366 in the flow diagram of
Once the action is taken, in-line unification components 166 update the unified view so that the unified thread of activities includes an item representing the action just taken. For instance, when the user sends the e-mail generated from in-line action pane 364 in
It can thus be seen that this provides significant technical advantages. It can reduce the overall processing load on system 102. This is because the user need not continuously switch between the various systems in order to take actions. Instead, the user can take actions directly from the unified thread. This is because the system generates in-line, contextually aware, user input mechanisms so that the user can select an action that is in the appropriate context for the activities in the unified thread. The system then generates an in-line action pane that allows the user to provide other inputs needed to take the specified action. This enables the system to provide an access point to its various components to streamline the processing required for a user to take an action. Thus, these technical advantages improve the operation of business system 102 and of the underlying computing components as well, and also improves user performance and resolution time for customers.
It is first assumed that the user is already viewing a unified display. In-line activity creation component 176 includes, in that display, activity creation user input mechanisms. This is indicated by block 372 in
The user then illustratively actuates one of the user input mechanisms to create a new activity. This is indicated by block 394 in the flow diagram of
As this is done, the authoring display is adapted based on the activity type. For instance, if the user actuates an e-mail user input mechanism, the authoring display will be an in-line display for creating an e-mail. If the user actuates the create task user input mechanism, the in-line display will be suitable for creating a task, etc. Adapting the authoring display based upon the activity type is indicated by block 398 in
Regardless of the type of new activity user input mechanism that the user actuates, the in-line activity authoring display is generated with user input mechanisms for authoring the activity, and it retains the context of the unified display. The particular authoring display is adapted based upon the type of activity that is to be created.
Once the in-line activity authoring display is displayed, the user illustratively provides user inputs authoring the particular activity. If the activity is an appointment, the user selects the day and time for the appointment. If it is an e-mail, the user authors the e-mail. If it is a post, the user authors the post, etc. Receiving the user authoring inputs is indicated by block 406 in
The in-line activity creation component 176 then communicates with the appropriate components in system 102 in order to perform the activity. This is indicated by block 408. By way of example, if the user has authored an e-mail, then component 176 communicates with electronic mail component 158 to create and send the e-mail that was authored. The same is true of the other components and systems within business system 102.
Once the new activity is performed, in-line unification components 168 update the unified view or unified thread to include a display element corresponding to the new activity. Updating the unified thread is indicated by block 410 in
Again, it can be seen that creating new activities from the unified display provide significant technical advantages. It can reduce the overall processing load on system 102, thereby allowing it to operate more efficiently and quickly. This is because the user need not continuously navigate between the different components or systems within business system 102, in order to generate a new activity. Instead, the user can do so directly from the unified display. Also, because the system maintains the context of the unified display, while the user is authoring the new activity, the system is more quickly and efficiently surfacing relevant information for the user. This also has the effect of improving the performance of business system 102. Other technical advantages, such as those discussed above, can be obtained as well.
The present discussion has mentioned processors and servers. In one embodiment, the processors and servers include computer processors with associated memory and timing circuitry, not separately shown. They are functional parts of the systems or devices to which they belong and are activated by, and facilitate the functionality of the other components or items in those systems.
Also, a number of user interface displays have been discussed. They can take a wide variety of different forms and can have a wide variety of different user actuatable input mechanisms disposed thereon. For instance, the user actuatable input mechanisms can be text boxes, check boxes, icons, links, drop-down menus, search boxes, etc. They can also be actuated in a wide variety of different ways. For instance, they can be actuated using a point and click device (such as a track ball or mouse). They can be actuated using hardware buttons, switches, a joystick or keyboard, thumb switches or thumb pads, etc. They can also be actuated using a virtual keyboard or other virtual actuators. In addition, where the screen on which they are displayed is a touch sensitive screen, they can be actuated using touch gestures. Also, where the device that displays them has speech recognition components, they can be actuated using speech commands.
A number of data stores have also been discussed. It will be noted they can each be broken into multiple data stores. All can be local to the systems accessing them, all can be remote, or some can be local while others are remote. All of these configurations are contemplated herein.
Also, the figures show a number of blocks with functionality ascribed to each block. It will be noted that fewer blocks can be used so the functionality is performed by fewer components. Also, more blocks can be used with the functionality distributed among more components.
The description is intended to include both public cloud computing and private cloud computing. Cloud computing (both public and private) provides substantially seamless pooling of resources, as well as a reduced need to manage and configure underlying hardware infrastructure.
A public cloud is managed by a vendor and typically supports multiple consumers using the same infrastructure. Also, a public cloud, as opposed to a private cloud, can free up the end users from managing the hardware. A private cloud may be managed by the organization itself and the infrastructure is typically not shared with other organizations. The organization still maintains the hardware to some extent, such as installations and repairs, etc.
In the embodiment shown in
It will also be noted that architecture 100, or portions of it, can be disposed on a wide variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers, or other mobile devices, such as palm top computers, cell phones, smart phones, multimedia players, personal digital assistants, etc.
Under other embodiments, applications or systems are received on a removable Secure Digital (SD) card that is connected to a SD card interface 15. SD card interface 15 and communication links 13 communicate with a processor 17 (which can also embody processor 122 from
I/O components 23, in one embodiment, are provided to facilitate input and output operations. I/O components 23 for various embodiments of the device 16 can include input components such as buttons, touch sensors, multi-touch sensors, optical or video sensors, voice sensors, touch screens, proximity sensors, microphones, tilt sensors, and gravity switches and output components such as a display device, a speaker, and or a printer port. Other I/O components 23 can be used as well.
Clock 25 illustratively comprises a real time clock component that outputs a time and date. It can also, illustratively, provide timing functions for processor 17.
Location system 27 illustratively includes a component that outputs a current geographical location of device 16. This can include, for instance, a global positioning system (GPS) receiver, a LORAN system, a dead reckoning system, a cellular triangulation system, or other positioning system. It can also include, for example, mapping software or navigation software that generates desired maps, navigation routes and other geographic functions.
Memory 21 stores operating system 29, network settings 31, applications 33, application configuration settings 35, data store 37, communication drivers 39, and communication configuration settings 41. Memory 21 can include all types of tangible volatile and non-volatile computer-readable memory devices. It can also include computer storage media (described below). Memory 21 stores computer readable instructions that, when executed by processor 17, cause the processor to perform computer-implemented steps or functions according to the instructions. Similarly, device 16 can have a client business system 24 which can run various business applications or embody parts or all of system 102. Processor 17 can be activated by other components to facilitate their functionality as well.
Examples of the network settings 31 include things such as proxy information, Internet connection information, and mappings. Application configuration settings 35 include settings that tailor the application for a specific enterprise or user. Communication configuration settings 41 provide parameters for communicating with other computers and include items such as GPRS parameters, SMS parameters, connection user names and passwords.
Applications 33 can be applications that have previously been stored on the device 16 or applications that are installed during use, although these can be part of operating system 29, or hosted external to device 16, as well.
Additional examples of devices 16 can be used as well. Device 16 can be a feature phone, smart phone or mobile phone. The phone can include a set of keypads for dialing phone numbers, a display capable of displaying images including application images, icons, web pages, photographs, and video, and control buttons for selecting items shown on the display. The phone can include an antenna for receiving cellular phone signals such as General Packet Radio Service (GPRS) and 1×rtt, and Short Message Service (SMS) signals. In some embodiments, the phone also includes a Secure Digital (SD) card slot that accepts a SD card.
The mobile device can also be a personal digital assistant (PDA) or a multimedia player or a tablet computing device, etc. (hereinafter referred to as PDA). The PDA can include an inductive screen that senses the position of a stylus 63 (or other pointers, such as a user's finger) when the stylus is positioned over the screen. This allows the user to select, highlight, and move items on the screen as well as draw and write. The PDA can also include a number of user input keys or buttons which allow the user to scroll through menu options or other display options which are displayed on the display, and allow the user to change applications or select user input functions, without contacting the display. The PDA can include an internal antenna and an infrared transmitter/receiver that allow for wireless communication with other computers as well as connection ports that allow for hardware connections to other computing devices. Such hardware connections are typically made through a cradle that connects to the other computer through a serial or USB port. As such, these connections are non-network connections.
Note that other forms of the devices 16 are possible.
Computer 810 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 810 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media is different from, and does not include, a modulated data signal or carrier wave. It includes hardware storage media including both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 810. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computer 810, such as during start-up, is typically stored in ROM 831. RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 820. By way of example, and not limitation,
The computer 810 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,
Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A visual display 891 or other type of display device is also connected to the system bus 821 via an interface, such as a video interface 890. In addition to the monitor, computers may also include other peripheral output devices such as speakers 897 and printer 896, which may be connected through an output peripheral interface 895.
The computer 810 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 810. The logical connections depicted in
When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873, such as the Internet. The modem 872, which may be internal or external, may be connected to the system bus 821 via the user input interface 860, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 810, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
It should also be noted that the different embodiments described herein can be combined in different ways. That is, parts of one or more embodiments can be combined with parts of one or more other embodiments. All of this is contemplated herein.
Example 1 is a computer system, comprising:
an in-line unification component that identifies activity inputs, indicative of activities of a plurality of different activity types, as corresponding to a common identifier in the computer system;
a thread generation component that generates a thread including display elements, each representing a different identified activity input;
a user interface component that displays a unified display corresponding to the common identifier, including the display elements in the thread; and
a new activity processing component that identifies new activity inputs as activity inputs received since a given user last accessed the thread and provides an indication of the new activity inputs to the user interface component for display on the unified display.
Example 2 is the computer system of any or all previous examples wherein the thread generation component generates the thread by including a time stamp corresponding to each respective display element indicative of a time corresponding to the activity input represented by the respective display element.
Example 3 is the computer system of any or all previous examples wherein the new activity processing component comprises:
a new activity identifier that identifies the new activity inputs by identifying a last access time indicative of a time that the given user last accessed the thread and compares the last access time for the given user to the time stamps corresponding to the display elements.
Example 4 is the computer system of any or all previous examples wherein the new activity identifier identifies the last access time for the given user by receiving a user identifier for the given user and accessing a user access log for the given user based on the user identifier.
Example 5 is the computer system of any or all previous examples wherein the new activity processing system comprises:
a visual indicia component that generates visual indicia as the indication of the new activity inputs.
Example 6 is the computer system of any or all previous examples wherein the user interface component displays the unified display with the visual indicia to visually distinguish the new activity inputs from other activity inputs.
Example 7 is the computer system of any or all previous examples wherein the user interface component displays the visual indicia as a visual indicator proximate each display element corresponding to a new activity.
Example 8 is the computer system of any or all previous examples wherein the user interface component displays the unified display with visual dividing line dividing the display elements corresponding to new activity inputs from the display elements corresponding to the other activity inputs.
Example 9 is the computer system of any or all previous examples wherein the user interface component displays the unified display with visual indicia that modifies an appearance of display elements corresponding to new activity inputs to visually identify them as new activity inputs.
Example 10 is a method, comprising:
receiving a user input, corresponding to a user identifier, accessing a thread including display elements, the display elements in the thread representing activity inputs indicative of activities, of a plurality of different activity types, as corresponding to a common identifier in a computer system;
identifying, as new display elements, display elements in the thread that represent activity inputs that have been added to the thread since a last time a user input corresponding to the user identifier was received to access the thread; and
displaying a unified display showing the display elements in the thread by visually distinguishing the new display elements in the thread from remaining display elements in the thread.
Example 11 is the method of any or all previous examples and further comprising:
generating the thread by including a time indicator corresponding to each display element, the time indicator indicating a time when the corresponding display element is added to the thread.
Example 12 is the method of any or all previous examples wherein identifying comprises:
identifying the last time the user input corresponding to the user identifier was received to access the thread.
Example 13 is the method of any or all previous examples wherein identifying the last time the user input corresponding to the user identifier was received to access the thread, comprises:
accessing an access log corresponding to the user identifier.
Example 14 is the method of any or all previous examples wherein identifying comprises:
comparing the time indicator corresponding to the display elements to the identified last time.
Example 15 is the method of any or all previous examples wherein visually distinguishing the new display elements in the thread from remaining display elements in the thread comprises:
displaying a visual indicator proximate each new display element in the thread.
Example 16 is the method of any or all previous examples wherein visually distinguishing the new display elements in the thread from remaining display elements in the thread comprises:
displaying a segmentation dividing the new display elements in the thread from the remaining display elements in the thread.
Example 17 is the method of any or all previous examples wherein visually distinguishing the new display elements in the thread from remaining display elements in the thread comprises:
visually modifying an appearance of the new display elements relative to the remaining elements in the thread.
Example 18 is a computer readable storage medium that stores computer executable instructions which, when executed by a computer, cause the computer to perform a method, comprising:
generating a thread including display elements, the display elements in the thread representing activity inputs indicative of activities, of a plurality of different activity types, that correspond to a common identifier in a computer;
receiving a user input, corresponding to a user, accessing the thread;
identifying, as new display elements, display elements in the thread that represent activity inputs that have been added to the thread since a last time a user input corresponding to the user was received to access the thread; and
displaying the display elements in the thread by visually distinguishing the new display elements in the thread from remaining display elements in the thread.
Example 19 is the computer readable storage medium of any or all previous examples and further comprising generating the thread by including a time indicator corresponding to each display element, the time indicator indicating a time when the corresponding display element is added to the thread, wherein identifying comprises:
identifying the last time the user input corresponding to the user was received to access the thread; and comparing the last time to the time indicator on the display elements.
Example 20 is the computer readable storage medium of claim 18 wherein visually distinguishing the new display elements in the thread from remaining display elements in the thread comprises at least one of:
displaying a visual indicator proximate each new display element in the thread;
displaying a segmentation dividing the new display elements in the thread from the remaining display elements in the thread; or
visually modifying an appearance of the new display elements relative to the remaining elements in the thread.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.