This application relates to a method and system to automate the processing of electronic data and, in one example embodiment, to a method and a system to automate the provision of contributions, from a plurality of contributors, to an electronic communication (e.g., an email).
Obtaining input to an electronic communication (e.g., an email) from a team of people is a cumbersome undertaking, utilizing current technology. For example, should an author of an email wish to solicit contributions to the email from a group of people, the author may send the email in parallel to the entire group, and then receive piecemeal contributions in response. The author then is required to accumulate and synthesize the contributions of received back from the team into a final work product before this can be sent to a recipient.
Alternatively, the author may sequentially send the email to a first contributor, receive the email back, send it to a second contributor, and receive the e-mail back, repeating these steps until all contributors have had the opportunity to contribute to the work product. At this stage, the author may then send the final email to the recipient.
It will be appreciated that the above described parallel and sequential methods of soliciting contributions from a team of contributors is very demanding on the time and resources of the author. The author may be required to continually follow up with contributors that do not respond, monitor the progress of the email through the team of contributors, and synthesize contributions received in a piecemeal manner into an acceptable work product.
While the above described parallel and sequential processes may be valid for certain mission-critical communications in which the final work product is required to be very precise and accurate, such processes may be overly complex and burdensome in cases where a less comprehensive communication (e.g., an 80% solution) is sufficient, since it is expected that an iterative discussion may follow. Examples of such communications may include, for example, development of a project plan, the structure of a local project, the arrangements for a conference etc.
Further, the above described prior art methodologies of manually soliciting contributions in either a parallel of a sequential manner, in addition to imposing burdens on authors of electronic communications and contributing terms, may provide unnecessary burdens on electronic communication systems (e.g., email systems) in that the network traffic resulting from the back and forth between the author and the contributors increases resource consumptions by such electronic communication systems. The storage of such multiple electronic communications also consumes memory and storage resources for such electronic communication systems.
According to an aspect of the invention, there is provided a system to automate provision of contributions, from a plurality of contributors, to an electronic communication. The system includes an electronic communication system to receive, from an originator of electronic communication, identifiers for the plurality of contributors to the electronic communication. The identifiers are received by the electronic communication system as a single input. A workflow system automatically progresses the electronic communication to each of the plurality of contributors, the automatic progressing of the electronic communication by the workflow system being performed utilizing the identifiers. The automatic progressing also enables each of the plurality of contributors to provide a respective contribution relating to the electronic communication.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of an embodiment of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details.
One embodiment of the invention seeks to provide an electronic communication (e.g., email, Instant Message (IM), SMS etc.) solution whereby contributors can provide contributions to an electronic communication, without unduly delaying or blocking delivery of the communication (e.g., by a contributor failing to deliver input), and also without the need for the initiator of the electronic communication, at different times, to have to readdress and redirect the electronic communication to a number of contributors.
One embodiment envisages a situation in which an initiator prepares an initial draft of an electronic communication, in much the same way as such a draft would be prepared if it were to be sent directly to an eventual and final recipient. A system, according to an example embodiment, progresses the electronic communication past each of the contributors in a certain order (e.g., a daisy chain order, a sequence order, an availability order, or a random order) and also can apply temporal constraints (e.g., deadlines) to the provision of the contributions from each of the contributors. Within such temporal constraints, contributors have the opportunity to provide any one of a number of contributions, or to complete any one of a number of tasks, pertaining or relating to the electronic communication. Such contributions may include, for example, a review of the electronic communication and/or modifying or editing the communication.
In the example embodiment, once the temporal constraints are evaluated to be true (e.g., a deadline has expired), the electronic communication will automatically be removed from the relevant contributor's domain (e.g., removed from the reviewer's email box). The electronic communication will then be sent to the next contributor, and eventually to the intended recipient, with the originator receiving a copy of the communication sent to the recipient. In one embodiment, the electronic communication may be sent back to the originator for a final review, prior to delivery to the recipient.
Each of the extended communication system 12 and the workflow system 14 are accessible, via a network 25 (e.g., the Internet, a Local Area Network (LAN) or a Wide Area Network (WAN)), by a number of client machines 24-32. Client machine 24 is shown to be associated with an originator 23 of an electronic communication 50, and client machine 32 is shown to be associated with an eventual recipient 33 of the electronic communication 50. Each of the client machines 24-32 also hosts a communication client 34 (e.g., an email or Personal Information Management (PIM) application, such as the Outlook! Application developed by a Microsoft Corporation of Redmond, Wash. State, or a Web browser).
Turning now specifically to the architectures of the extended communication system 12 and the workflow system 14, the extended communication system 12 includes a number of communication modules 40 which operate to enable communications between the communication clients 34 executing on the various client machines 24-32. Such communication modules 40 may include components typically found, for example, in an email server, such as the (MS Outlook email server). In addition to the communications modules 40, the extended communication system 12 includes a presentation module 42 that, in one example embodiment, presents an electronic communication to a user of a communication client 34 in a non-standard manner and as part of the progression of electronic communication to a number of contributors. For example, in one embodiment, the presentation module 42 operates to place an email in the inbox of a user's email client, without having the system 12 “send” the email in the typical sense. Here, an email delivered to an inbox by the presentation module 42 would not appear to have been sent in terms of information in the message metadata (e.g., the forwarding data). Further, the presentation module 42 may operate to present an electronic communication to a user of a PIM application in number of ways. For example, an email may be placed in a user's task manager of the PIM application (e.g., Microsoft Outlook) by a presentation module 42, in one example embodiment. To this end, the presentation module 42 may interact with one or more of the communication modules 40, thereby effecting a presentation of an electronic communication to a user of a communication client 34 in a manner that is differentiated (e.g., in terms of the message metadata) from other more typical communications presented by the communication client 34 to a user.
The communications modules 40 further also operate to send an electronic communication to an eventual recipient (e.g., the user of client machine 32) on the occurrence of a predetermined delivery event. The predetermined delivery event may be communicated to the communication modules 40 by the workflow system 14 and/or the scheduler 44. Examples of delivery events include completion of a last task and/or contribution by a last contributor with respect to the electronic communication (e.g., as determined by the workflow system 14), the expiration of an overall contribution time period with respect to the electronic communication (e.g., determined by the scheduler 44), or receipt of approval, from an originator, for the relevant electronic communication to be sent to a recipient.
The workflow system 14 operatively processes a list of contributors, identified utilising a list of identifiers receive as a single (e.g., concurrent) input to the extended communication system 12, and also operatively communicates with the presentation module 42 to sequentially present the electronic communication to a group or team of contributors. The workflow system 14 is shown to instantiate a workflow 46 based on metadata received at the extended communication system 12 from the originator 23, the metadata being received in association with the electronic communication.
The workflow system 14 operatively computes the available time, or a predetermined time interval, that an electronic communication will be presented, by the presentation module 42 to a user of a communication client 34. The computation of the available time to a contributor may be computed based on an expected delivery date or time of an electronic communication, taking into account a number of contributors and also the business (or work) hours that are available to each of the contributors. In determining the number of work hours that are available to each of the contributors, the workflow system 14 may access calendar information, stored by the extended communication system 12 in the databases 22, and may also access profile information regarding each of the contributors. For example, the workflow system 14 may examine the calendar of a particular contributor to assess how much available time the respective contributor has to make a contribution to the electronic communication, before the delivery deadline. Also, a profile of a particular contributor may indicate that the contributor is only working part time, and a computation of the available time for a particular contributor may be computed to take this information into account.
In one embodiment, the scheduler 44 may form part of the workflow system 14, as shown in a broken line, instead of being included within the extended communication system 12. In a further embodiment, the workflow system 14 need not be a system separate from the extended communication system 12 but could be an integrated module (e.g., a plug-in) to the extended communication system 12.
In a further embodiment, the metadata 52 may include further specification information, as provided by the originator 23, regarding the progression of the electronic communication 50 past the contributors. For example, the metadata 52 may include specifications by the originator 23 as to what contribution (e.g., review, editing, supplementation etc.) is required by each of the contributors, and also temporal constraints (specified by the originator 23) with respect to the time available to each of the contributors to make a respective contribution. However, in the embodiment described below, it would be assumed that the workflow system 14 automatically calculates the available time to each contributor, based on known factors, and also that a common contribution (e.g., review) is required from each of the contributors. Accordingly, in the example embodiment discussed below, the metadata 52 is not described as including temporal specifications provided by the originator 23.
Further details regarding this process will now be described above with reference to a number of example embodiments.
At block 62, the originator 23 creates the electronic communication 50, including the metadata 52. For example, where the communication client 34 is an email client, the electronic communication 50 may comprise an email, with the metadata 52 including identifiers in the form of email addresses for each of the contributors and for the recipient 33. A user interface presented by a communication client 34 may enable the originator 23 to differentiate between the identifiers of the contributors and that of the eventual recipient (or recipients). The metadata 52 created at block 62 may further include a delivery time for delivery of the electronic communication 50 to the recipient 33.
The metadata 52 may also optionally include a respective time available to each of the contributors to provide a contribution to the electronic communication, and a description and/or specification of a contribution (e.g., a task) that the originator 23 requires from each of the contributors.
At block 64, the electronic communication system 12 receives the electronic communication 50, and the associated metadata 52, from the client machine 24 of the originator 23, and communicates the metadata 52 to the workflow system 14 via the interfaces 16 and 18.
At block 66, the workflow system 14 automatically creates and/or instantiates the workflow 46 based on the received metadata 52. The workflow system 12, in one embodiment, automatically calculates a time period (or interval) to allocate to each contributor to provide a contribution, this calculation taking into account the delivery date and time for the electronic communication, the number of contributors, the number of work hours available to each contributor (or to the contributors as a whole).
The workflow 46 also specifies a sequence in which the electronic communication 50 is progressed past the team of contributors. This sequence may be determined based on any one of a number of factors. In one embodiment, the sequencing is determined by an organizational hierarchy applicable to the contributors. For example, it may be most useful to sequence the progression of the electronic communication 50 so as to receive contributions from the more junior contributors of an organizational hierarchy of prior to presenting the electronic communication to more senior contributors. To this end, the workflow system 14, when creating the scheduling, may reference organizational hierarchy information as stored within the databases 22.
In another embodiment, the sequencing of the progression may be performed with reference to calendars of the various contributors. For example, the workflow system 14 may determined, from calendar information stored within the databases 22, that a certain contributor only becomes available at a time closer to the delivery deadline for the electronic communication 50. Accordingly, the sequencing of the electronic communication 50 may be established such that the electronic communication 50 is only presented to the relevant contributor at a time when he or she becomes available.
In yet another embodiment, the sequencing of the electronic communication 50 may be determined based on the respective contributions that are required or requested from each of the contributors with respect to the electronic communication 50. For example, the contribution of a first contributor may be the input or authoring of a large volume of text to be included into the electronic communication 50, whereas the contribution of a further contributor may be to perform a final review of the electronic communication prior to transmission to the recipient 33. In this case, the contributor authoring text is scheduled earlier in the sequence than the contributor performing the review. Here, the sequencing may be determined with reference to a contribution description, received from the originator 23, for each of the contributors.
Moving on to block 68, the workflow system 14 instructs, via the interfaces 16 and 18, the electronic communication system 12 to automatically progress the electronic communication 50 to each of the contributors, for a respective time period, so as to enable the respective contributors to provide a contribution (e.g., perform a task) relating to the electronic communication 50. The workflow system 14 may message the presentation module 42 in order to provide the presentation module 42 with an indication of a time at which the electronic communication 50 should be withdrawn from a preceding contributor (if present), and then presented to a next contributor. In an alternative embodiment, the workflow system 14 provides the scheduling information to the presentation module 42 in a batch mode, with the scheduler 44 utilizing the sequencing information to sequentially present the electronic communication 50 to each of the contributors, prior to the communication modules 40 sending the electronic communication 50 to the recipient 33.
At block 70, a determination is made whether a workflow termination event is detected. In one embodiment, the workflow termination event may constitute a predetermined delivery event, triggering a transmission of the electronic communication 50 to the recipient 33 at block 72. If no workflow termination events are detected, the method 60 continues to progress the electronic communication 50 through the contributors at block 68, until such a termination event is detected at decision block 70.
In various embodiments, the workflow termination events detected at block 70 may include the completion of a last task by a last contributor of a team of contributors, the expiration of an overall contribution time period specified for the electronic communication, a passing of the delivery date/time for the electronic communication, and the receipt of approval of from the originator 23 for the electronic communication to be transmitted to the recipient 33. The method 60 ends at block 74.
The method 80 commences at block 86 and progresses to block 88 where an originator 23 composes an email communication, including metadata including an email address of an intended recipient, the email addresses of one or more contributors, an expected delivery date and time, and an indication as to whether the originator 23 wishes to perform a review of a final draft of the email prior to it being transmitted to the recipient 33.
The email is then communicated, together with the metadata 52 to the workflow engine 84, which proceeds to compute a workflow in the form of a process model at block 90 and to instantiate the process model at block 92, where after the instance of the process model is started. At block 94, a process step is set to zero (e.g., begin node). Specific of, in one embodiment, the process may be represented by a series of nodes, each node representing parameters pertaining to the presentation of the email to a respective contributor.
At decision block 96, a determination is made by the workflow engine 84 whether the end node in the process is reached. This determination is made in order to assess whether the electronic communication has been progressed to the last contributor of a sequence of contributors specified in terms of the process model.
Following a positive determination at decision block 96, a message is sent from the workflow engine 84 to the extended email system 82 to send the final and fully contributed email to the recipient 33, this transmission occurring at block 98.
At block 100, the extended email system 82 replaces an original copy of the email, residing in a “sent folder” of the originator 23 with the final and fully contributed email, where after the method 80 terminates at block 102.
Returning to decision block 96, if it is determined that the end node of the instance of the process model has not been reached, the method 80 progresses to block 104. The workflow engine 84 assigns the partially-contributed email to a next contributor, as specified in terms of the instance of the process model. A message (or other communication) is then sent from the workflow engine 84 to the extended email system 82, where the presentation module 42 proceeds to display the partially-contributed email in the contributor's mail inbox at block 106. At block 108, the contributor then contributes to the partially-contributed email (e.g., by performing a specified or non-specified task with respect to the electronic email) and transmits an indication that the contribution is complete back to the workflow engine 84. In one embodiment, this indication may comprise the contributing user pressing a “send” button displayed by the extended email system 82 or by selecting a “contribution complete” button also displayed by the system 82.
At block 110, the workflow engine 84 proceeds to increment the process step, where after the method 80 loops a, back to decision block 96.
Dealing specifically with the functioning of the scheduler 44 it will be noted that the scheduler 44 is stopped at block 112, responsive to the communication to the scheduler 44 of an identifier identifying a relevant node of the instance of the process model. The node ID is sent to the scheduler 44 responsive to the determination that the end node in the instance of the process model has been reached.
The scheduler 44 is also started, for a predetermined time interval, responsive to receipt of a node identifier and a time value indicative of the predetermined time interval, at block 114. Accordingly, the scheduler 44 is started, at block 114, for a predetermined time period responsive to the assignment of the email to a next contributor at block 104. As is indicated in
Accordingly, Alice drafts the email and addresses it to Edmund with the names of Bob, Claire and David in the CC-field of the email. Alice then sends the email with a special option “SEND AND REQUEST CONTRIBUTION”, and selects a delivery dateline by which the email should be delivered to Edmund (e.g., in “2 business days”).
The extended email system 82 receives the email, and presents it in Bob's inbox, flags the email as requiring a contribution, and sets an expiry time, (e.g., six hours in the case of the instance 120). Within that time period, Bob can edit the email. Once he has finished editing the email (or making some other contribution), he simply selects the “send” button on his email client to send the email, as he would normally do.
The email is then removed from Bob's inbox, and presented in Claire's inbox, also for a contribution within six hours. Assume, for example, that Claire is too busy to contribute to the email. In this case, it will be automatically removed from her inbox after six hours, and then presented within David's inbox.
After David has finished making his contribution, the email, in the instance 120, is delivered to Edmund, with Alice, Bob, Claire and David also each receiving carbon copies for their information. The email will at this point also be copied into Alice's sent items folder, replacing the initial daft email that Alice prepared.
Referencing the second instance 122 shown in
Turning first to
From the above, it will be appreciated that an embodiment of the present invention may provide a technical advantage, in that it may reduce load on an extended communication system 12 by avoiding communications between the extended communication system 12 and a client machine of an originator 23 in order to progressively and successively advance an electronic communication through a group of contributors. Specifically, the extended communication system 12, in conjunction with the workflow system 14, operates to automatically sequence and advance the electronic communication 50 through the group of contributors based on the received metadata 52 received as a single, concurrent input at the extended communication system 12.
Further, in one embodiment, by automatically advancing the electronic communication 50 from one contributor to the next at the expiration of a predetermined contribution time interval, the system also reduces communications and load on the extended communication system 12, in that the originator 23 is not required to follow-up and chase down a contributor that does not have the time to make a contribution. In addition to providing the above technical advantages, embodiments of the present invention make the soliciting and provision of contributions, by a number of contributors to a single electronic communication, less cumbersome and requiring less communications between an originator and contributors.
The example computer system 200 includes a processor 202 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 204 and a static memory 206, which communicate with each other via a bus 208. The computer system 200 may further include a video display unit 210 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 200 also includes an alphanumeric input device 212 (e.g., a keyboard), a user interface (UI) navigation device 214 (e.g., a mouse), a disk drive unit 216, a signal generation device 218 (e.g., a speaker) and a network interface device 220.
The disk drive unit 216 includes a machine-readable medium 222 on which is stored one or more sets of instructions and data structures (e.g., software 224) embodying or utilized by any one or more of the methodologies or functions described herein. The software 224 may also reside, completely or at least partially, within the main memory 204 and/or within the processor 202 during execution thereof by the computer system 200, the main memory 204 and the processor 202 also constituting machine-readable media.
The software 224 may further be transmitted or received over a network 226 via the network interface device 220 utilizing any one of a number of well-known transfer protocols (e.g., HTTP).
While the machine-readable medium 222 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
Although an embodiment of the present invention has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.