Public group suggestion message recipients
By introducing a command-based communication system with fork mode and notification mode in unified communication, the problems of data security and navigation complexity in group communication are solved, and the public group recipients are automatically identified, which improves communication efficiency and security sex.
Patent Information
- Application Number
- CN202380044312.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-16
- Filing Date
- 2023-04-25
- Publication Date
- 2025-01-17
AI Technical Summary
In unified communication, the prior art is difficult to effectively manage and navigate multiple messaging modes, resulting in data security and inefficiency. Especially in group communication, the unintentional disclosure of sensitive information and user access rights management are complex, and the public Difficulty in identifying group members.
Provides a command-based communication system and method that allows users to create out-of-group communication threads without leaving the compose field by introducing fork modes and notification modes in the group communication flow, and automatically identify and suggest public Groups serve as recipients of messages to improve data security and navigation efficiency.
Improve navigation efficiency between different message delivery modes, enhance data security, reduce the unintentional disclosure of sensitive information, simplify the process of users finding the appropriate recipients, and improve the diversity and participation of messages.
Smart Images

Figure CN119325591A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to methods and systems for providing public group suggestions as recipients of messages in a communication service in accordance with some embodiments. Background Art
[0002] The use of software and hardware technologies has become a common method for communication between people. In particular, text communication, such as through instant messaging, text messaging, chat applications, email communication, etc., has become the main mode of communication. In particular, text communication has been developed as a supplement to other forms of communication, such as unified communications or communications that support multiple modalities, including audio, video, messaging, and screen, document or application sharing. As the popularity of text communication grows, the diversity and use of features supported by communication services also grows. Each additional feature introduces unique risks to data privacy, security and access. Summary of the invention
[0003] Embodiments of the present disclosure include methods and systems for providing public group suggestions as recipients of messages in a communication service. A communication platform or a communication service connected to the communication platform can identify one or more public groups of the communication service based on the received first and second recipients of the message, and display the one or more public groups as suggested recipients to a first user. One or more of the identified public groups can be selected, and a message can be sent to the selected public group.
[0004] Additional embodiments include methods and systems for providing command-based communications from a group communication stream. A target user may be identified from a user database based on a parsed entry following an action command in a compose field of a group thread of the group communication stream. A user selection of one of two operating modes in which the system operates may be received, the two operating modes including a fork mode and a notification mode. In response to the user selecting the fork mode, a forked communication thread between a first user and a second user that is deviated from the group thread may be created and sent to the second user.
[0005] In an example, a target user and a control element may be displayed that corresponds to the target user and indicates a desire to switch the operating mode of the system from a notification mode associated with the action command to a forked mode of a group message that deviates from the group communication stream. In response to the user selecting the forked mode, for example, via the control element, a forked communication thread between the first user and the second user that deviates from the group thread of the group communication stream may be created and sent to the second user. In some examples, the forked communication thread may include extracted content of the group communication stream encapsulated with the received message from the compose field.
[0006] The claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computing device to implement the disclosed subject matter. The term "article of manufacture" as used herein is intended to encompass a computer program accessible from any computer-readable storage device or medium. Computer-readable storage media may include, but are not limited to, magnetic storage devices such as hard disks, floppy disks, magnetic strips, optical disks, compact disks (CDs), digital versatile disks (DVDs), smart cards, flash memory devices, and the like. In contrast, computer-readable media (i.e., non-storage media) may additionally include communication media, such as transmission media for wireless signals, and the like.
[0007] This Summary is provided to introduce a group of concepts that will be further described in the following 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 to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The disclosed aspects will hereinafter be described in conjunction with the accompanying drawings, which are provided to illustrate rather than limit the disclosed aspects.
[0009] Figure 1 An exemplary computer system is shown.
[0010] Figure 2A to Figure 2C An exemplary notification feature in a group communication stream is shown.
[0011] Figure 3A-3D and Figure 4A-4B An exemplary forked message feature in a group communication flow is shown.
[0012] Figure 5A-5C An exemplary public group feature in a communication service is shown.
[0013] Figure 6 An exemplary method of controlling transitions between a notification mode and a forking mode from a group communication stream is shown.
[0014] Figure 7 An exemplary method of providing common group suggestions for messages in a communication service is illustrated.
[0015] Figure 8 An exemplary method of selecting a recipient is shown.
[0016] Fig. 9 An exemplary method of identifying a public group is shown.
[0017] Fig.10 An exemplary system including user equipment is shown.
[0018] Fig.11An exemplary networked environment including one or more user devices, a communication server, and a user database communicating over a network is shown. DETAILED DESCRIPTION
[0019] Unified communications systems offer a variety of conferencing services to bring together and share information in different ways among various combinations of in-room, remote or virtual participants. As sharing becomes easier and more prevalent, the need to control permissions, security and access to sensitive information increases, as does the need to reduce the inadvertent disclosure of sensitive information.
[0020] For example, organizations manage people in different ways. Information and communication about periodic meetings held, such as those associated with people in an organization, students in a classroom, etc., have become specific challenges. It is necessary to access previous information, frequently invite new users, and maintain data security and privacy of other changing people. A text thread associated with a periodic meeting of a first set of users may not be suitable for sharing with a different set of individuals invited to the next meeting of the periodic meeting. Attendees of a unified communication session are usually warned of new or external attendees, such as external attendees of an internal periodic meeting, etc. However, such new or external attendees can usually access previous information, chat messages, documents, etc., which were generated before these users were invited, or provided after these users left, but can still be accessed. Even invited users who did not attend (such as users who tried to join after the meeting ended, etc.) can sometimes access communications from previous meetings or can retain access to future communications. Many situations can be managed by permissions or different access levels (e.g. guest access, etc.), or by the attendees themselves in different ways, such as by opening a separate message thread, but human error (e.g. unawareness of the audience, typing in the wrong window, etc.) remains a common source of inadvertent disclosure of sensitive information.
[0021] In addition, navigation of communication platforms and associated options, features, and services has become increasingly cumbersome. Managing, navigating to, and selecting specific options or features has become increasingly difficult and time-consuming, particularly for users of small devices with limited screen space, often requiring the user to shift focus away from the compose field of the communication platform to navigate a predetermined, selectable, or searchable menu of options or features that can be selected by additional selections, taps, mouse clicks, or other manual input from outside the compose field. For example, during an online conference with video, navigation to an additional message thread that is separate from the message thread associated with the online conference shifts the user's focus away from the online conference and, in some examples, requires navigation of a large portion of the available screen space or an additional window.
[0022] The inventors have recognized, among other things, systems and methods for providing command-based communications from a group communication stream to improve navigation between different messaging modalities and increase data security and efficiency of message-based communications. In an example, transitions between different messaging modalities may include transitioning between operating modes, such as from a default notification mode in a group setting to a forked mode outside of the group setting, the forked mode providing a separate message thread between a first user and a second user separate from any unselected members of the group setting.
[0023] In some examples, a command-based communication can be initiated from the composition field of the group thread of the group communication stream, in some examples, without navigating away from the group communication thread. For example, a user can use the composition field of the group communication thread of the online conference to create a forked communication thread that deviates from the group thread and is separated from one or more users of the group communication thread while participating in an online conference. A communication stream (such as a group communication stream) can include one or more communication threads between a text stream (such as text messaging, email communication, etc.), a video stream (such as a video call, etc.), or two or more users, such as a conversation group in a communication service or platform. A communication stream can include multiple communication threads. For example, a conversation group of communication can have one or more separate group communication threads. In some examples, the content (such as one or more previous messages, attachments, etc.) from the group communication stream (wherein the forked communication thread is initiated) can be packaged and included with the forked communication thread to the second user, such as for reference, etc.
[0024] The technical solutions contemplated herein provide an automated, rule-based system for providing command-based communications from a group communication stream in certain examples without requiring the first user to navigate or move away from traditional character input in a composition field of a communication platform to address technical issues of data security, inadvertent disclosure of sensitive information, and improve navigation of the increasing number of options and features associated with unified communications.
[0025] There are additional problems in selecting multiple message recipients. As individuals associated with a particular group change, such as organizations that introduce new employees, classrooms that introduce new students, etc., it may be difficult for users to know who is included in a particular communication. Addressing communications to the appropriate party may be difficult. In addition, users with similar user names are often mistaken for other users and are inadvertently addressed or included. User groups are usually arranged in public groups of a particular communication service (e.g., in distribution lists, directory databases, etc.). For example, a particular team in an organization (e.g., accounting, engineering, etc.) usually has a group common to related members assigned by the organization itself, or is determined and established by public communications that occur across communication services, such as by machine learning, etc. However, the established public groups are usually not known to individual users of the communication service, such as new users, or sometimes even members of the public group itself. Communication services can usually access users with public group memberships, but navigating to these users is usually cumbersome. In addition, ensuring that the appropriate recipient receives the message at the first attempt reduces network traffic, reduces time and resources associated with insufficient message delivery, etc.
[0026] The inventors have further recognized a system and method that automatically identifies and suggests to a user one or more public groups of a communication service to include as recipients of a message without the user having to individually search for public group memberships, navigate away from the message, or otherwise shift focus from the message and intended recipients, improves the accuracy of intended recipients, makes appropriate suggestions that are not known to the user, reduces the back and forth of trying to find a suitable attribution for receiving messages, and increases the richness of conversations and the diversity of participation in messages.
[0027] In certain examples, the technical solutions contemplated herein provide automatic suggestions for one or more public groups for a communication service based on information about one or more recipients, without requiring the first user to navigate away from the message or to know the name of the public group, or even the existence of the public group, to address technical issues of inadvertent disclosure of sensitive information, mis-addressed or under-addressed messages (messages that do not have all relevant members), and to improve navigation of the increasing number of options and features associated with unified communications.
[0028] Figure 1 An exemplary computer system 100 for providing a communication flow between users, such as users of a first user device 101 and a second user device 111 communicating directly or indirectly through a communication service 110 coupled to a network 106 , is shown.
[0029] The communication service 110 may include one or more devices configured to manage communication flows, such as one or more processors, transceivers, memories, storage devices, databases, servers, etc., wherein the communication flows include emails, documents, chats, comments, texts, images, animations, hyperlinks, or voice or video communications for user groups, such as user groups of one or more communication platforms through connected devices (such as the first user device 101 and the second user device 111 or any number of additional authorized devices and users). The user group may include an organizational group, subgroup or channel of employees within an organization stored in a user database, or other self-organized user groups within or outside an organization or between multiple organizations. In an example, the communication device 102 may include one or more communication platforms (such as Microsoft Teams, Skype, etc.) installed on or accessible to the corresponding user device, or the communication device 102 may include hardware and software configured to enable one or more communication platforms to communicate with the corresponding user device.
[0030] The first user device 101 is exemplary and may include a communication device 102 configured to communicate with one or more additional devices (e.g., a second user device 111) directly or through a communication service 110. The communication device 102 may be configured to send information to or receive information from the communication service 110. The communication device 102 may include an image device 103, a display device 104, a configuration device 105, or one or more other devices or modules.
[0031] The image device 103 may be configured to send, receive, or store images associated with the communication service 110. In some examples, the images may include icons, such as emoticons, representations of emotions (e.g., emoticons), pictures, drawings, avatars, profile pictures, representations of one or more users, etc. In some examples, the image device 103 may include a repository (e.g., cloud-based storage, online profiles, etc.) of images of the first user device 101 or otherwise associated with the first user 106. The display device 104 may be configured to display messages and other visual content associated with the communication device 102, such as using a display or a portion of a display of the first user device 101. The configuration device 105 may be configured to receive, store, and maintain one or more of a device or user profile, including selected user settings or preferences, previous user selections, or one or more other settings or preferences of the first user 106 or one or more other users, such as associated with a communication flow of the communication service 110, etc. In other examples, one or more device or user profiles may be stored or maintained in a data structure or database of the communication service 110 or accessible by the communication service 110.
[0032] A short code is a specific instruction to perform an action in a communication platform or other application. A short code is usually triggered by an action command. An action command is a character, symbol, or a specific combination of characters or symbols that indicates a desired action, or, for example, an action in a set of desired actions of the first user.
[0033] An exemplary short code is an "@mention" response triggered by input of an "@" symbol as an action command and one or more characters of a target user's username or other identifying characteristics (e.g., first name, last name, email address, etc.). The characters typically include letters, numbers, or symbols, such as those selectable by the first user using a keyboard. In response to receiving the action command and the one or more characters, one or more target users starting with (or including) the received one or more characters may be identified, for example, from a user database, existing users in the communication stream, or one or more users who have previous communications with the first user or are otherwise available to the first user. The one or more target users may be displayed to the first user for selection and insertion into the communication stream. The selected user added to the message may be notified, and in some examples, the selected user is added to the communication stream if there are no members yet. The generated list of users may be further narrowed and sorted according to a set of rules (e.g., alphabetically, according to prior activity, included in the communication stream, history with the user, etc.) and additionally with each additional received character following the "@" symbol until the first user makes a selection, exhausts the list of users, enters the full username, or exits functionality of the conventional "@mention" response, such as by entering a backspace symbol, a left arrow symbol, a delete symbol, or an exit symbol, selecting to leave from the generated list, etc. Conventional auto-complete suggestions to complete the username may be made according to one or more rules, such as giving priority to users who are already members or participants in the communication stream, or scored by one or more other factors (e.g., the first user's history, amount of participation in the communication stream, etc.).
[0034] Figure 2A-2C An exemplary user interface 200 of a first user's communication platform is shown, including interaction with an "@mention" menu 230, which is triggered by input of an "@mention" short code, which includes an action command, an "@" symbol 226, followed by one or more characters 227 of a username or other identifying characteristic.
[0035] The user interface 200 includes a header portion 202 and a body portion 215. The header portion 202 may include a plurality of configurable fields, such as an avatar 203 of a first user, a username 204 of the first user, a status badge 205, a status message 207 of the first user, a group avatar 210 of a group associated with a communication thread, a group name 211 of the group, and the like. The body portion 215 includes left-right aligned messages of the communication thread, a composition field 216, and a send button 217. The composition field 216 may include a field in which the first user enters a message or other command or short code for interacting with one or more other users or communication streams. Right-aligned messages (e.g., messages 220, 221, and 224) include messages of the first user, which are, for example, entered in the composition field 216 and are sent when the send button 217 or other sending action or character is selected. Left-aligned messages (e.g., messages 222, 223, and 225) include messages of one or more users separate from the first user.
[0036] The communication thread shown in the body portion 215 of the user interface 200 of the communication platform can be a thread of a communication flow of a user group (e.g., an organization of a user or a larger group, etc.) including a first user. The communication flow can include data from the communication thread or multiple communication threads, and in some examples, the multiple communication threads include communication threads from multiple different communication platforms from the user group. For example, a communication thread can include a conversation between a first user and a second user of an organization, and a communication flow can include all communications of the first user or organization on the communication platform or multiple communication platforms.
[0037] The "Mentions" menu 230 includes a collection of one or more users, in Figure 2A231-233 and corresponding user names ("USER2"-"USER4") 238-240. Among other things, the set of one or more users can be selected from a plurality of users available to (but different from) the first user based on a user name that matches one or more characters 227 following the "@" symbol 226 (e.g., between the "@" symbol 226 and the cursor 228) from the composition field 216. The avatars 231-233 may include selected avatars or profile pictures representing or associated with the corresponding one or more users. The plurality of users available to the first user may include one or more users of a group in a communication flow of the communication service or associated with a group or available to the first user, etc., the one or more users being in a user database of the user, for example. For example, if one or more characters 227 from the composition field 216 between the “@” symbol 226 and the cursor 228 include the text character “S,” the set of one or more users may include a first user available to the user having a corresponding user name that begins with the text character “S” at some major portion, such as the first letter of a first or last name associated with the user name, the first character of the user name, the first character of an email address associated with the user name, etc.
[0038] The “@mention” menu 230 may include a highlighted selection 245 that, initially (without additional user input), is a default selection, a highest-rated selection, a most recent selection, or a closest match to one or more characters 227 following (or directly following) the “@” symbol 226 from the composition field 216. The highlighted selection 245 may change upon input by the first user, such as by filtering or sorting associated with one or more characters additionally received in the composition field 216, selecting characters (e.g., up arrow, down arrow, etc.), or selection of a username or movement of user input on the “@mention” menu 230.
[0039] The compose field 216 may include an auto-complete character 229 of the highlighted selection 245 following the cursor 228, in some examples the auto-complete character 229 having a different font than the one or more characters 227 entered by the first user in the compose field 216, until the auto-complete character 229 is optionally accepted by the first user, such as by a selection character (e.g., a right arrow, a tab character, etc.). Selecting a user from the "@mention" menu 230, entering all characters of the username of the "@mention" menu 230 following the "@" symbol 226 in the compose field 216, or entering a selection character to select the highlighted selection 245 or auto-complete character 229 (e.g., a right arrow selection character, a tab character, etc.) may automatically populate the compose field 216 with the username of the selected user or a representation of the selected user to be displayed in the communication stream upon selection of the send button 217 or other sending action or character (e.g., an enter character or a return character, etc. from an active cursor in the compose field 216). In addition to displaying the selected user's username in the communication stream, a separate notification of the "@mention" in the communication stream may be provided to the selected user separately from the communication thread.
[0040] After selecting a user, additional character messages may optionally be entered in the composition field 216. For example, in Figure 2B , a second user ("USER2") 238 has been selected and an additional character message "HOW'S IT GOING?" has been entered in the compose field 216. Figure 2C An additional right-aligned message 246 is shown including the displayed username of the selected user and an additional character message.
[0041] In the example, Figure 2B The communication thread shown may include a chat interface of a communication platform between a first user and a second user. In an example, a separate notification for an @mention in the communication stream may include a notification to one or more different devices of the second user, such as a desktop notification separate from or in addition to the communication thread, a notification on the communication platform, a mobile notification, or a notification to a different device of the second user. Figure 2B The chat interface shown separates the email communication to the second user.
[0042] Although illustrated herein as an “@” symbol 226 , other exemplary motion commands may include a left parenthesis “(” character, a colon (“:”), a double colon (“::”), a left square bracket (“[”), and the like.
[0043] Figure 3A-3DAn exemplary user interface 300 of a first user's communication platform is shown, including interaction with a user selection menu including a traditional "mentions" menu 230 (e.g., as described above with respect to Figure 2A-2C The user interface 300 includes a header portion 202 having a plurality of configurable fields. The body portion 215 includes a message for the communication thread, a compose field 216, and a send button 217.
[0044] Figure 3A The @mention menu 230 in is similar to the one described above with respect to Figure 2A-2C The described menu (as well as other similarly labeled elements), but additionally includes optional selectable group communication stream icons 351, 352, 353 to further distinguish a traditional "@mention" response from a corresponding fork mode menu 355, the fork mode menu 355 including contrasting, selectable, private fork icons 357, 358, 359 showing a conversation between a first user and a second user, rather than a contrasting group of group communication stream icons 351, 352, 353.
[0045] In some examples, if the existing communication thread is not a group communication thread (e.g., a communication thread with more than two users, etc.) but a communication thread between two users, the selectable group communication flow icons 351, 352, 353 may be omitted, or icons of the corresponding number of users may be included, such as two users instead of the currently shown group (e.g., 6 users), etc., for example, in order to clearly depict to the first user the action that will occur once a selection is made.
[0046] As mentioned above Figure 2A-2C , the highlighted selection 245 in the “@mention” menu 230 can change upon input by the first user, such as by filtering or sorting associated with one or more characters otherwise received in the composition field 216, selecting characters (e.g., up arrow, down arrow, etc.), or selection of a username or movement of user input on the “@mention” menu 230. However, in Figure 3A-3C , forked mode menu 355 includes a second highlighted selection 360. Highlighted selection 245 of “@mentions” menu 230 is additionally interacted with highlighted selection 360 of forked mode menu 355, such as by movement of additional selection characters (e.g., a right arrow to move from highlighted selection 245 in “@mentions” menu 230 to a corresponding selection in forked mode menu 355, a left arrow to move backward, etc.) or user input (e.g., a selection, a tap, a mouse click, or other manual input from a user, etc.) across forked mode menu 355.
[0047] In some examples, highlighted selection 245 may be the default selection, and second highlighted selection 360 may appear in response to movement of a selection character (e.g., a right arrow) or user input. Figure 3A 245 and a second highlighted selection 360, but as shown in Figure 3B-Figure 3C As shown, similarly, the highlighted selection may be toggled in response to selection of a character or user input, such as user input 370 (eg, a mouse cursor, etc.).
[0048] In an example, when the first user is drafting a message or otherwise selecting a target user from a group communication stream, the forked mode menu 355 may appear in addition to the "mention" menu 230. In some examples, the forked mode menu 355 may not be displayed in an already private communication between two users, or in a private or one-to-one communication thread with a target user. However, in other examples, the forked mode menu 355 may appear in addition to each "mention" response, as long as one or more of the target users are not the only other users of the existing communication thread, such as to allow the first user to select a forked mode communication with the target or selected user, rather than adding the selected user to the existing communication thread, or adding the corresponding message to the existing communication thread, regardless of whether the selected user is already a participant in the existing communication thread.
[0049] Although discussed herein with respect to two users, a forked communication thread may include more than two users, as described above with respect to adding "mentioned" users. Figure 2A-2C Compared to what is described, the set of one or more users or target users may include a first user, such as to enable the first user to create a command-based fork from a communication stream (e.g., typically a group communication stream) to a separate thread, including information (e.g., messages, attachments, etc.) from an existing communication thread and a message providing a message. In some examples, the "@mention" response may be used to create a command-based short code separate from a simple email forwarding, to create a forked response from a first communication stream (e.g., a group message thread, an email chain, etc.) to a second communication stream that is typically more private, such as to more securely retain or discuss sensitive information in a controlled environment. In some examples, the forked communication thread may include a link back to the original communication thread. In addition, if the target user is the first user, the corresponding forked icon in the forked mode menu 355 or elsewhere may include an icon of a single user, an icon or avatar of the first user, etc.
[0050] In an example, the "mentions" menu 230 may optionally include one or more control elements, separate from or in addition to the forking mode menu 355. In an example, the control elements may include descriptions of selection actions for controlling the selection of an operating mode (e.g., selecting between a "mention" response and a forking mode response, etc.). For example, a first selection action ("SELECT") 350 may be displayed in the "mentions" menu 230, including a text description to invoke the action in the menu. The first user may select the highlighted selection 245 of the "@mentions" menu 230 by conventional selection (e.g., selecting a character, such as an input character or a return character, a tab character, etc., or a user input selection, such as a mouse click, a long click, a double click, etc.). A second selection action ("SHIFT+SELECT") 356 may be displayed in the forking mode menu 355, including a description to invoke the corresponding action in the menu. The first user may select the second highlighted selection 360 of the forking mode menu 355 by a combination of the shift key and conventional selection. Although illustrated herein as the instructions "Select" and "SHIFT+SELECT," other exemplary text instructions may be used.
[0051] For example, if both a highlighted selection 245 in the "@mention" menu 230 and a second highlighted selection 360 in the forked mode menu 355 are shown, input of a return character may select the highlighted selection 245, while pressing the shift key and inputting the return character may select the second highlighted selection 360, allowing the first user to select either without the first user having to remove their hands from the keyboard or even switch between selections using the right and left arrows, etc.
[0052] In other examples, separate from or in addition to the above, the selection action may optionally include an expandable send menu 365 associated with the send button 217, where the send button 217 itself may indicate the type of transmission to be sent. In some examples, selection of the highlighted selection 245 or the second highlighted selection 360 may trigger display of one of the group communication stream icon 366 or the fork icon 367. In other examples, an additional toggle selection 368 on the send button 217 may be used to display the expandable send menu 365 or burst the group communication stream icon 366 or the fork icon 367 prior to selection.
[0053] In other examples, the fork mode menu 355 can trigger an email message to a selected target user represented by an email icon 369, which in some examples can be selected as an additional toggle selection 368 on one or more of the selectable group communication stream icons 351-353 or fork icons 357-359. Although shown herein with respect to the fork icon 359, such a toggle selection 368 for switching from messaging to email or vice versa is applicable to all icons or menus disclosed herein.
[0054] Figure 3B-Figure 3D An additional switch between highlighted selection 245 and second highlighted selection 360 is shown, such as by user input 370 on a corresponding menu or selectable element. Selection of fork icon 357 for second user (“USER2”) 238, such as by user input 370 (e.g., a mouse click, a long click, a double click, etc.), may automatically populate the selection in compose field 216 and, in some examples, reposition fork icon 367 adjacent to send button 217 in expandable send menu 365, such as Figure 3B Conversely, selection of the group communication stream icon 351 of the second user (“USER2”) 238 by user input 370, such as by user input 370 (e.g., a mouse click, a long tap, a double tap, etc.), may automatically populate the selection in the compose field 216 and, in some examples, reposition the group communication stream icon 366 adjacent to the send button 217 in the expandable send menu 365, similar to Figure 3A As shown in .
[0055] In other examples, selection of the group communication stream icon 351 of the second user (“USER2”) 238 by user input 370 (e.g., a mouse click, a long tap, a double tap, etc.) may automatically populate the selection in the compose field 216 and supplement the send button 217 with the group communication stream icon 366, such as Figure 3C In some examples, the group communication stream icon 366 itself may include a toggle selection 368, invocation of which may toggle the mode of operation, such as after a user has been added to the composition field 216, etc.
[0056] Conversely, selection of the fork icon 357 of the second user (“USER2”) 238, for example, by user input 370 (e.g., a mouse click, a long tap, a double tap, etc.), may automatically populate the selection in the compose field 216 and supplement the send button 217 with the fork icon 367, as shown. Figure 3D In some examples, the fork icon 367 itself may include a toggle selection 368, invocation of which may switch the mode of operation, such as after a user has been added to the composition field 216, etc.
[0057] In other examples, instead of waiting for an action command, selection of a toggle selection 368, e.g., on or otherwise associated with the send button 217, may prompt the first user to enter a target user in the absence of a user in the compose field 216. In examples, a separate menu of target users may be displayed to the user and selected, e.g., via a radio button, to fork the communication thread, similar to that discussed herein.
[0058] Figure 4A-4B An exemplary user interface 400 is shown, for example, after a first user invokes fork mode from the group communication thread, including a pop-up window of a forked communication thread, the forked communication thread having a header portion 471 and a body portion 472 on the body portion 215 of the corresponding group communication thread. Although shown as a pop-up window on the group communication thread, in other examples, a separate user interface or window may be launched after the forked communication thread has been invoked. However, in some examples, a pop-up on the group communication thread as part of the group communication thread may reduce user errors associated with typing in an error window. In some examples, selecting a screen area of the group communication thread may switch the user interface back to the group communication thread, and close or minimize the pop-up window or otherwise separate the forked communication thread from the group communication thread.
[0059] The header portion 471 of the forked communication thread may include a plurality of configurable fields, such as the first user's avatar 203, the first user's username 204, the status badge 205, the first user's status message 207, etc. Instead of the group name and icon associated with the group communication thread, the header portion 471 of the forked communication thread may include additional fields for the selected second user, such as the second user's avatar 473, the second user's username 474, the second user's status badge 475, the second user's status message 477, etc. If additional users are added to the forked communication thread, similar fields may be added or repositioned to reflect the additional users.
[0060] The body portion 472 includes previous group communication thread information 476 (e.g. Figure 4A-4B 221-224, etc.) and additional messages from forked communication threads, such as Figure 4B 446 in the message. In an example, when invoked, the forked mode response may optionally include information from the group communication stream (e.g., messages, attachments, one or more screenshots of the view before the forked communication thread was invoked, etc.), such as the last number of messages or attachments, information from a specific time period (e.g., the last 5 minutes of information, etc.), etc.
[0061] In an example, body portion 476 may include button 478. In some examples, the first user may use button 478 to select more or less group communication threads to include in previous group communication thread information 476. In an example, selecting button 478 may bring up a cropping tool that displays more previous group communication threads and a movable selection box to select the amount to share. In some examples, button 478 may show the second user that additional messages are available for scrolling to button 478 or viewing by selecting button 478.
[0062] The send button 217, the fork icon 367 and the switch option 368 can be as follows Figure 3D The switch selection 368 may, for example, effect a transition back to the group communication stream by invoking an expandable send menu 365 including a selectable group communication stream icon 366, and invoking the switch selection 368 may, for example, switch the operating mode after a user has been added to the compose field 216, etc.
[0063] Despite the above Figure 3A-3D and Figure 4A - Figure 4C is shown as a message in a communication platform, but the disclosure herein is applicable to drafting, creating and responding to email messages in an email application.
[0064] Figure 5A-5C An exemplary user interface 500 of a communication platform of a first user is shown, including interaction with a new message on the communication platform and insertion of a first recipient and a second recipient ("FIRSTRECIPIENT(first recipient)", "SECONDRECIPIENT(second recipient)", etc.) invoking a public group suggestion in the communication service. Although described herein with respect to email communications in an email platform, the disclosure herein is applicable to other messaging platforms, such as Figure 3A-3D and Figure 4A - those platforms shown in Figure 4C, etc.
[0065] User interface 500 includes a header portion 580 and a body portion 579 configured to receive the body portion of a message. Header portion 580 includes different selectable fields and elements, including selectable "TO", "CC" and "BCC" buttons 581-583 and associated fields 584-586, subject field 587 and send button 588. Selection of "TO", "CC" and "BCC" buttons 581-583 can start a selection name pop-up to search for one or more recipients of associated fields 584 (such as "TO" fields 584, etc.). The selection name pop-up usually includes one or more public groups that can be used to add to a new message as a recipient of one of the associated fields 584-586, usually including a break-out description of the membership of each public group. However, in some examples, it is impossible to search for specific user group membership. In other examples, the membership of one or more (or all) groups can be private, such as determined by permission, etc. However, using such a pop-up is cumbersome, and stepping through each group of a communication service (eg, an organization, etc.) may take a significant amount of time or even be impossible.
[0066] exist Figure 5A , the body portion 579 of the message includes a first "@mention" short code including a first "@" symbol 526 followed by the text characters "FIRSTRECIPIENT." In response, the user "FIRSTRECIPIENT" has been addressed as the first recipient of the message in the "TO" field 584. The body portion 579 of the message additionally includes a second "@mention" short code including a second "@" symbol 527 followed by the text characters "SECONDREC" and an active cursor 528. In response, the "@mention" menu 589 has been triggered, suggesting the target user "SECONDRECIPIENT" 592 as a highlighted selection 596.
[0067] In addition, the user interface 500 includes an additional public group suggestion menu 590, which automatically displays the target groups "GROUP1", "GROUP2" and "GROUP3" 594-596 as three target public groups including both the first recipient and the target user, and suggests "GROUP1" 594 as the second highlighted selection 597.
[0068] In some examples, one or more target groups of the group suggestion menu can be ordered for display according to a set of rules (e.g., alphabetically, according to previous activity, included in a communication stream, history with the user, etc.) and additionally with each additional received character followed by an "@" symbol until the first user makes a selection, exhausts a list of public groups stored and managed, for example, by the communication service at a remote server or database, etc., enters a full public group name, or exits the functionality, for example by entering a backspace symbol, a left arrow symbol, a delete symbol, or an exit symbol, selecting to leave from a generated list, etc.
[0069] In an example, the "@mention" menu 589 may optionally include one or more control elements, separate from or in addition to the public group suggestion menu 590. In an example, the control element may include a description of a selection action for controlling the selection of an operation mode (e.g., selecting between a "mention" response and a public group suggestion response, etc.). For example, a first selection action ("select") 591 may be displayed in the "mention" menu 589, including a text description to invoke the action in the menu. The first user may select the highlighted selection 596 of the "@mention" menu 589 by conventional selection (e.g., selecting a character, such as an input character or a return character, a tab character, etc., or a user input selection, such as a mouse click, a long click, a double click, etc.). The second selection action ("upgrade + select") 593 may be displayed in the public group suggestion menu 590, including a description to invoke the corresponding action in the menu. The first user may select the second highlighted selection 597 of the public group suggestion menu 590 by a combination of the upshift key and the conventional selection. Although shown herein as the instructions "select" and "upshift + select", other exemplary text instructions may be used.
[0070] In some examples, to further illustrate that the target groups “GROUP1,” “GROUP2,” and “GROUP3” 594 - 596 in the public group suggestion menu 590 are groups rather than individual users, a group communication icon 569 may be displayed in the public group suggestion menu 590 .
[0071] exist Figure 5B, the full name of the target user "SECONDRECIPIENT" has been entered, selected, or received in the body portion 579 of the message, and the user "SECONDRECIPIENT" has been addressed as the second recipient of the message in the "TO" field 584. In response, the "@mention" menu 589 has been closed. However, upon receiving a second or additional recipient, the public group suggestion menu 590 can remain or alternatively be automatically triggered, such as to suggest a public group to be added to the message as a recipient (e.g., in the "TO" field 584, the "CC" field 585, or the "BCC" field 586, etc.), or in some examples, replace the first recipient and the second recipient.
[0072] Figure 5C Exemplary alternative placements of the common group suggestion menu 590 are shown, depending on, for example, whether the first and second recipients are entered in the "TO" field 584 or the body portion 579 of the message.
[0073] In an example, the user interface 500 may include a public group suggestion button, such as in a toolbar, a ribbon, or one or more other menus or areas of the user interface 500. Selection of the public group suggestion button may trigger identification of one or more public groups of received recipients, such as the first recipient and the second recipient entered in the "TO" field 584, etc. In some examples, the public group suggestion button may be nested in a selection name popup of the "TO", "CC", or "BCC" buttons 581-583.
[0074] In other examples, the common group suggestion menu 590 may trigger a transition from an email message to a messaging service represented by the messaging service icon 570 , which in some examples may be selected as an additional toggle selection 568 on the group communication icon 569 .
[0075] In some examples, the communication service may additionally identify one or more public groups based on a semantic or natural language analysis of one or more keywords in the subject field 587 or body portion 579 of the message, or alternatively, one or more messages in a message thread leading to a new message, etc. For example, if a first user is sending an email or message about a particular topic or technical area, and one or more recipients are added to the first message, the communication service may supplement the one or more recipients with the identified keywords to enhance, better categorize, or enrich the public group suggestions.
[0076] Figure 6 An exemplary method 600 of controlling, by a communication platform executing on a first user device or by a communication service connected to the communication platform, a transition between a notification mode and a forking mode from a group communication stream is shown.
[0077] At step 601, an action command, for example, entered by a first user in a compose field of a group communication stream, is detected, for example, by a communication platform of a first user device. In an example, the action command may indicate a function to be performed by the communication platform or by a communication service connected to the communication platform, for example, via a network, etc. In an example, the group communication stream may include a group message thread, such as a unified communication session between multiple participants including the first user, etc. In other examples, the group communication stream may include a series of emails or other messages between multiple participants. Although in some examples, the communication service may receive information from the communication platform, perform one or more operations based on the received information, and provide instructions to the communication platform, such as to cause the information to be displayed to the first user or otherwise interact with the first user.
[0078] In an example, the action command may include a character, symbol, or a specific combination of characters or symbols indicating a desired action, or, for example, an action in a set of desired actions for the first user. An exemplary action command includes an "@" symbol, followed by one or more characters, such as to trigger an "@mention" response. Once triggered, the system executing the method may enter a notification mode associated with a "mention" response.
[0079] At step 602, the entry after the action command from the composition field can be parsed, for example, by the communication platform or the communication service to identify one or more characters after the action command in the composition field of the communication platform. A target user having one or more characters matching one or more identified characters after the action command in the composition field of the communication platform can be identified. For example, by performing a query, the target user can be identified as one or more users available to the first user, or included in a user database managed or stored by the communication platform (e.g., an organization, such as one or more companies or private directories, etc.), the communication service, or one or more servers or databases associated with the communication service. In some examples, if a large number of target users are identified as having characters matching the entry after the action command, a set of one or more rules can be applied to sort the matching entries to initially display to the first user. For example, the target user can be selected for display based on previous activities, included in the communication flow, with the user's history, etc.
[0080] At step 603, the target user may be optionally displayed to the user by a display of the first user device, for example, via a communication platform. In some examples, the control element may be displayed together with the target user so that not only the first user may select the target user as the second user, but also the operation mode may be switched from the notification mode to a forked mode separate from the notification mode. In some examples, the control element may include one or more of an icon, a separate menu element, or an instruction to perform a specific operation to select one of the notification mode or the forked mode. Alternatively, the first user may avoid selecting either mode and exit the notification mode completely, for example, by selecting, entering an exit character (e.g., backspace, delete, exit, etc.) outside any displayed menu, etc.
[0081] At step 604, a selection of one of two operating modes for the system to operate in may be received, such as by a user interface of the first device through a communication platform, etc. The two operating modes may include a forking mode and a notification mode.
[0082] At step 605, a selection of a second user may be received, for example, in response to displaying the target user (or one or more target users, etc.). In some examples, the selection of the second user may be received together with the selection of the operating mode, for example, by selecting or interacting with a control element, including, for example, as described above in Figure 3A-3D Icons or menus, etc. shown and described in .
[0083] At step 606, a message may be received from a compose field of a communication platform, such as through a user interface of the first device.
[0084] At step 607, if the received operation mode is not the forked mode, the system can remain in the notification mode and the method can proceed to step 608. At step 608, the received message can be sent to the group communication stream. At step 609, the second user can be notified of the message according to the "@mention" response.
[0085] Alternatively, at step 607, if the received operation mode is the forked mode, the system may transition from the notification mode to the forked mode, and the method may proceed to step 610. At step 610, a forked communication thread may be created between the first user and the second user, the forked communication thread being separate from the group view of the group communication stream, and in some examples, the forked communication thread is not viewable by members of the group communication stream other than the first user and the second user (unless separately added by the first user, etc.).
[0086] In some examples, if a private message thread or a message thread away from the group communication stream already exists, the forked communication thread may include a new message for the existing communication thread between the first user and the second user. In other examples, a new thread may be created for the particular message, including its content, separate from any existing thread, private or otherwise, between the first user and the second user, such as to better organize and maintain a record of the forked communication thread separate from other communications between the first user and the second user. In other examples, the forked communication thread may include an email message between the first user and the second user.
[0087] At step 611, at least some content, such as messages, attachments, etc., may be extracted from the group communication stream. In some examples, the current number of previous messages or attachments may be initially extracted. In other examples, the first user may select or change content for extraction and packaging with an optional received message.
[0088] At 612, the forked communication thread including the optional received message and the packaged extracted content may be sent to the second user, eg, for display as a group message, as an email communication, etc. using a communication platform or the like.
[0089] Figure 7 An exemplary method 700 is shown of providing a public group suggestion as a recipient of a message, for example, by a communication platform executing on a first user device or by a communication service connected to the communication platform.
[0090] At step 701, a request for creating a message may be received from a first user, for example, in a communication platform on a first user device. In an example, the request may include a request for creating a new email message, a request for creating a new message in a messaging application, etc.
[0091] At step 702, a first recipient may be received from a first user, for example, via a communication platform. In an example, the first recipient may be received in a recipient field of a new message (e.g., a "TO" field of an email). In other examples, the request to create a new message may come from a contact page of the first recipient, for example, in a messaging application. In other examples, the first recipient may be received in the body or compose field of the new message. At step 703, the first recipient may be optionally added to the recipient field, for example, in an email communication, or if entering the compose field after receiving a partial username, etc. as part of an "@mention" response or accepting an autofill suggestion.
[0092] At step 704, a second recipient may be received from the first user, and at step 705, the second recipient may be optionally added to the recipient field. At step 706, one or more public groups may be identified based on the first recipient and the second recipient, such as public groups of a communication service (e.g., of an organization, etc.), or public groups stored in a user database (e.g., a user database to which the first user is a member or has access, etc.). One or both of the communication platform or the communication service may identify one or more public groups based on the received first recipient and second recipient, or a combination of the first recipient and a target recipient, etc., such as by performing a query.
[0093] In some examples, at step 704, the target second recipient can be identified based on the received characters, such as in a recipient field or relative to an action command (such as a "mention" response, etc.), and presented to the first user for selection, such as described herein. However, before the second recipient is selected or received, one or more public groups including the received first user and the target second user can be identified and presented to the user along with the identified target second recipient, such as described herein. Figure 5A As shown and described etc.
[0094] At step 707, the set of one or more public groups identified can be displayed to the first user, for example, on a display of the first user device, etc., through a communication platform, as a suggested recipient of the message. In some examples, depending on the number of public groups identified and the number selected to be presented to the first user, the set of one or more public groups identified can include all or less than all of the one or more public groups identified. For example, if five public groups are identified as including the received first recipient and the second recipient in the entire communication service, and three public groups are presented to the user, a set of one or more rules can be applied to sort the identified public groups for initial display to the first user. For example, the identified public groups can be sorted for display according to overall activity, previous activity with the first user, etc. In other examples, the set of one or more public groups identified can include a unit set or a single public group in the one or more public groups identified. For example, if the one or more public groups identified include more than one group, the set for display can include only one. In another example, the one or more public groups identified can include only one public group, so that the set of one or more public groups identified similarly includes only one public group.
[0095] At step 708, a selected public group from the set of one or more public groups identified may be received from the first user as a selected public group, and at step 709, the selected public group may be optionally added to the recipient field of the message. In some examples, in addition to separately addressing the first user and the second user, the selected public group may also be added to the message as a separate recipient, such as in one or more fields (e.g., "TO" field, "CC" field, "BCC" field, etc.). However, such an activity provides a priority of inclusion by the first user, which is undesirable in some examples. In other examples, the selected public group may replace the first user and the second user as the recipient of the message, rather than only addressing the message to the selected public group including the first recipient and the second recipient, but not separately addressing the first recipient and the second recipient used to determine the public group.
[0096] At step 710, the message may be sent to the selected public group, including causing the message to be displayed to the selected public group as a group message, as an email communication, or the like.
[0097] Figure 8 An exemplary method is shown for receiving a selected recipient (eg, a first recipient or a second recipient) based on characters entered in a recipient field or in a compose field (eg, part of a "mention" response, a user search box, etc.).
[0098] At step 811, an entry from a recipient field may be received from a user interface of a first user device, or may be received separately in a compose field as part of an “@mention” response, and the entry may be parsed, for example, via a communication interface or a communication service coupled to the communication interface, to identify one or more target recipients having, for example, a first one or more characters that match the entry from the recipient field.
[0099] At step 812, one or more target recipients may be displayed to the first user, for example, on a display of the first user device via the communication platform. At step 802, a selected recipient may be received from the first user via a user interface of the first user device.
[0100] Fig. 9 An exemplary method of identifying a public group using a first recipient and a second recipient and, optionally, one or more keywords or other information from a first user is shown.
[0101] At step 902, a first recipient may be received from a first user, for example, via a communication platform coupled to a communication service. At step 904, a second recipient may be received from the first user, for example, via the communication platform. In an example, the first recipient and the second recipient may be received from the first user, for example, based on characters entered in a recipient field of a message or email communication or in a compose field, etc. In other examples, the first recipient and the second recipient may be received from the first user, for example, via single selection from a larger list of individuals in a group communication thread, a group communication stream, or one or more other user groups, etc.
[0102] At step 913, a message body or message subject may be received, including one or more characters input by the first user. At step 914, one or more keywords may be identified from the message body or message subject, for example, based on semantic or natural language analysis of the message body or message subject, or alternatively, one or more messages in a message thread leading to the message body or message subject.
[0103] At step 906, one or more public groups may be identified, for example, by a communication platform or a communication service based on the received first and second users and the identified one or more keywords from the message body or message subject. In some examples, in addition to identifying a public group having the first and second users, the communication service may also receive and store text descriptions of the public groups stored in a user database, and further sort or supplement the identified public groups based on matching results from the identified keywords and the received and stored text descriptions of the public groups.
[0104] Fig.10 An exemplary system 1000 is shown that includes a user device 1002 (e.g., a computing device) having at least one processor 1008, a transceiver 1010, one or more presentation components 1012, one or more input / output (I / O) ports 1014, and a memory 1026. The user device 1002 may take the form of a mobile computing device or any other portable device, such as a mobile phone, a laptop device, a tablet device, a computing pad, a notebook, a gaming device, a portable media player, etc. In other examples, the user device 1002 may include a less portable device, such as a desktop personal computer, an information kiosk, a desktop device, an industrial control device, etc. Other examples may incorporate the user device 1002 as part of a multi-device system in which two separate physical devices share or otherwise provide access to the illustrated components of the user device 1002.
[0105] Processor 1008 may include any number of processing units and is programmed to execute computer executable instructions for implementing aspects of the present disclosure. Instructions may be executed by a processor or processors within a computing device, or by a processor external to user device 1002. In some examples, processor 1008 is programmed to perform methods, such as one or more methods described herein, etc. Additionally or alternatively, processor 1008 may be programmed to present an experience in a user interface ("UI"). For example, processor 1008 may represent an implementation of techniques for performing the operations described herein.
[0106] The transceiver 1010 may include an antenna capable of sending and receiving radio frequency ("RF") signals and various antennas and corresponding chipsets to provide communication capabilities between the user device 1002 and one or more other remote devices. However, the examples are not limited to RF signaling, as various other communication modalities may be used instead.
[0107] The presentation component 1012 may include, but is not limited to, a computer monitor, a television, a projector, a touch screen, a phone display, a flat panel display, a wearable device screen, a television, a speaker, a vibration device, and any other device configured to display, verbally communicate, or otherwise indicate image search results to a user of the user device 1002 or to provide information visually or audibly on the user device 1002. For example, the user device 1002 may include a smart phone or mobile tablet device that includes a speaker capable of playing audible search results to the user. In other examples, the user device 1002 may include a computer in a car that audibly presents the search response through the car speaker system, visually presents the search response on a display screen in the car (e.g., located in the dashboard of the car, in the headrest, on a drop-down screen, etc.), or a combination thereof. Other examples present the disclosed search response through various other display or audio presentation components 1012.
[0108] I / O ports 1014 allow user device 1002 to be logically coupled to other devices and I / O components 1016 , some of which may be internal to user device 1002 and others of which may be external.
[0109] I / O components 1016 may include microphone 1018, one or more sensors 1020, camera 1022, and touch device 1024. Microphone 1018 may capture speech from a user and / or a user's speech or speech emitted by a user. Sensor 1020 may include any number of sensors on or in a mobile computing device, electronic toy, game console, wearable device, television, vehicle, or other user device 1002, such as an accelerometer, magnetometer, pressure sensor, photometer, thermometer, global positioning system ("GPS") chip or circuit, bar scanner, biometric scanner for scanning fingerprints, palm prints, blood, eyes, etc., gyroscope, near field communication ("NFC") receiver, or one or more of any other sensors configured to capture data from a user or environment. Camera 1022 may capture images or videos of a user or a user. Touch device 1024 may include a touchpad, trackpad, touch screen, or other touch capture device. In other examples, I / O components 1016 may include one or more of a sound card, a vibration device, a scanner, a printer, a wireless communication device, or any other component for capturing information related to a user or the environment.
[0110] The memory 1026 may include any number of memories associated with or accessible by the user device 1002. The memory 1026 may be internal to the user device 1002, external to the user device 1002, or a combination thereof. The memory 1026 may include, but is not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CDROM, digital versatile disk (DVD) or other optical or holographic media, cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, memory wired into an analog computing device, or any other medium for encoding desired information and accessed by the user device 1002. The terms computer-readable medium, machine-readable medium, and storage device do not include carrier waves, as carrier waves are considered too ephemeral. The memory 1026 may take the form of volatile and / or non-volatile memory, may be removable, non-removable, or a combination thereof; and may include various hardware devices, such as solid-state memory, hard disk drives, optical disk drives, and the like. Additionally or alternatively, the memory 1026 may be distributed across multiple user devices 1002, such as in a virtualized environment where instruction processing is performed on multiple of the user devices 1002. The memory 1026 may store various device applications that, when executed by the processor 1008, operate to perform functions on the user device 1002, as well as other data. Exemplary applications may include search applications, instant messaging applications, email applications, web browsers, calendar applications, address book applications, messaging programs, media applications, location-based services, search programs, and the like. Applications may communicate with corresponding applications or services, such as web services accessible via the network 1006. For example, an application may include a client-side operating application corresponding to a server-side application executed on a remote server or computing device in the cloud.
[0111] The instructions stored in the memory 1026 may include, among other things, one or more of a communication interface application 1028, a user interface application 1030, and a communication platform 1032 executed on the user device 1002. The communication interface application 1028 may include one or more computer executable instructions for operating a network interface card and a driver for operating a network interface card. Communication between the user device 1002 and other devices may be performed over a wired or wireless connection or over the network 1006 using any protocol or mechanism. In some examples, the communication interface application 1028 may utilize the use of electronic tags (e.g., NFC tags, It operates using RF and short-range communication technologies (such as tags, etc.).
[0112] In some examples, user interface application 1030 includes a graphics application for displaying data to a user and receiving data from a user. User interface application 1030 may include computer executable instructions for operating a graphics card to display search results and corresponding images or voices on or through presentation component 1012. User interface application 1030 may interact with various sensors 1020 and camera 1022 to capture and present information through presentation component 1012.
[0113] Fig.11 An exemplary networked environment 1100 is shown that includes one or more user devices 1102, a communication service 1108, and a user database 1132 that communicate via a network 1106. In some examples, user and environment data is transmitted by the user device 1102 to the communication service 1108 via the network 1106. In certain examples, the communication service 1108 may include one or more servers, memories, databases, or processors, and may be configured to provide and manage one or more messaging services or communication flows for one or more users or groups of users (e.g., users of the user devices 1102, etc.).
[0114] Fig.11 The illustrated networked environment 1100 is an example of a suitable computing system environment and is not intended to suggest any limitation on the scope of use or functionality of the examples disclosed herein. The illustrated networked environment 1100 should not be interpreted as having any dependency or requirement related to any single component, module, index, or combination thereof, and in other examples, other network environments are contemplated.
[0115] The network 1106 may include the Internet, a private network, a local area network (LAN), a wide area network (WAN), or any other computer network, including various network interfaces, adapters, modems, and other networking devices for communicatively connecting the user device 1102 and the communication service 1108. The network 1106 may also include configurations for point-to-point connections.
[0116] The user devices 1102 include any type of user devices discussed herein. Each user device 1102 can capture user or environment data from its respective user and transmit the captured user and environment data to the communication service 1108 via the network 1106, for example, using a communication interface application as discussed herein. In response, the communication service 1108 can provide and receive messages including images, video, audio, text, and other various communication media to and from the user devices 1102 via the network 1106.
[0117] The user device 1102 may include various software applications and presentation components for communicating via the communication platform 1112 to combine subsequent data in the communication stream. For example, a mobile phone may display a communication platform (e.g., a Microsoft Teams application) for communicating with friends or other users in a group. The communication platform may include features that provide command-based generation, selection, and display of personalized composite icons or templates in the communication stream. Any number of different variations of the user device 1102 and presentation technology may be used to acquire and integrate the device.
[0118] Communication service 1108 represents a server or server set configured to execute different web service computer executable instructions. Communication service 1108 includes a processor 1104 for processing executable instructions, a transceiver 1110 for communicating through network 1106, and a memory 1114 embodying at least the following executable instructions: communication platform 1112, reaction application 1116, matching application 1120 or one or more other applications, devices or modules, such as triggering devices, audio devices, etc. Memory 1114 may include instructions for repository application 1128 and delivery application 1130. Although communication service 1108 is shown as a single box, it is not limited to this and can be scalable. For example, communication service 1108 can include multiple servers of various parts of operating software, which together generate composite icons or templates for users of one or more user devices 1102.
[0119] The user database 1132 can provide backend storage for web, user, and environment data, which can be accessed by the communication service 1108 or the user device 1102 through the network 1106 and used by the communication service 1108 to combine subsequent data in the communication flow. The web, user, and environment data stored in the database include, for example, but not limited to, one or more user profiles 1118 and public groups 1122. The public group 1122 may include one or more user groups of the communication service 1108 and text descriptions of these groups. In addition, although not shown for clarity, the servers of the user database 1132 may include their own processors, transceivers, and memories. In addition, the networked environment 1100 depicts the user database 1132 as a collection of devices separate from the communication service 1108, however, the example may actually store the web, user, and environment data discussed in the display in the user database 1132 on the communication service 1108.
[0120] As used herein, a "user profile" refers to a collection of electronically stored information about a user. Such information may be stored based on the user's explicit consent or "opt-in" to store such personal information, and includes the user's name, age, gender, height, weight, demographics, current location, place of residence, nationality, family, friends, studies, occupation, hobbies, skills, interests, web searches, health information, birthdays, anniversaries, holidays celebrated, moods, user status, and any other personalized information about the user. A user profile includes static profile elements, such as name, place of birth, etc., and dynamic profile elements that change over time, such as place of residence, age, status, etc. A user profile may be constructed by asking questions to the user or by analyzing the user's behavior on one or more user devices.
[0121] In addition, user profile 1118 may include static and / or dynamic data parameters for individual users. Examples of user profile data include, but are not limited to, the user's age, gender, race, name, location, interests, web search history, social media connections and interactions, purchase history, daily behavior, work, or virtually any unique data point specific to a user. User profile 1118 may be expanded to cover various other aspects of a user.
[0122] The present disclosure relates to systems and methods for providing command-based personalized composite templates in a communication flow according to at least the examples provided in the following sections:
[0123] (A1) In one aspect, some embodiments or examples include providing command-based communication, including: detecting an action command included in a composition field of a group thread of a first user, wherein the action command indicates a function to be performed by the system; in response to detecting the action command in the composition field, parsing an entry from the composition field that follows the action command; based on the parsed entry from the composition field, identifying a target user associated with the action command from a user database; receiving from the first user a user selection of one of two operating modes in which the system operates and a selection of the target user as a second user, wherein the two operating modes include a fork mode and a notification mode; in response to the user selecting the fork mode, A forked communication thread is created between two users to enter the forked mode, and the forked communication thread deviates from the group thread, including: receiving a message input via the compose field; extracting the content of the group thread; encapsulating the extracted content and the message received via the compose field into the forked communication thread having members including the first user and the second user; and sending the forked communication thread to the second user; and in response to the user selecting the notification mode, entering the notification mode by creating a message in the group thread from the first user, including: receiving a message input via the compose field; sending the message to the group thread; and causing a notification to the second user for the sent message as the second user's selection.
[0124] (A2) In some embodiments of A1, parsing the entry after the action command from the composition field includes identifying one or more characters after the action command in the composition field, identifying the target user from the user database includes identifying one or more users having first one or more characters that match the identified one or more characters after the action command, based on one or more rules in a user selection mode, causing a set of the identified one or more users to be displayed to the first user, and receiving a selected user from the set of the identified one or more users from the first user as the second user.
[0125] (A3) In some embodiments of A1-A2, creating the forked communication thread includes creating a new message in an existing forked communication thread between the first user and the second user, and sending the forked communication thread to the second user includes causing the forked communication thread to be displayed to the first user and the second user.
[0126] (A4) In some embodiments of A1-A3, the group thread belongs to a group communication stream, and the forked communication thread between the first user and the second user is separated from the group view of the group communication stream and cannot be viewed by members of the group communication stream other than the first user and the second user.
[0127] (A5) In some embodiments of A1-A4, some embodiments or examples include: causing the target user and a control element to be displayed to the first user, the control element corresponding to the target user and indicating the desired operating mode of the two operating modes, receiving the user selection of one of the two operating modes in which the system operates from the first user includes: receiving a selection of the control element corresponding to the target user, wherein receiving the selection of the control element includes: receiving the user selection selecting the fork mode and the target user as the second user.
[0128] (A6) In some embodiments of A1-A5, the control element includes a notification, the notification includes a description of a selection action for selecting the control element, and receiving the user selection of the fork mode includes: receiving the selection action by the first user in response to the notification including the description of the selection action.
[0129] (A7) In some embodiments of A1-A6, the group thread is a message thread of a unified communication session between multiple participants including the first user, and the forked communication thread is between the first user and the second user.
[0130] (A8) In some embodiments of A1-A7, the forked communication thread includes an email thread between the first user and the second user.
[0131] (B1) In one aspect, some embodiments or examples include providing command-based communication, including: in response to an entry in a composition field of a group thread of a first user after an action command and based on the entry after the action command, identifying a target user from a user database; causing the target user and a control element to be displayed to the first user, the control element corresponding to the target user and indicating an expectation to switch an operating mode from a notification mode associated with the action command to a forked mode; receiving from the first user a user selection of one of two operating modes in which the system operates and a selection of the target user as a second user, wherein the two operating modes include a forked mode and a notification mode; and in response to the user selecting the forked mode, entering the forked mode by creating a forked communication thread between the first user and the second user, the forked communication thread deviating from the group thread, including: receiving a message entered via the composition field; extracting content of the group thread, encapsulating the extracted content and the message received via the composition field into the forked communication thread having members including the first user and the second user; and sending the forked communication thread to the second user.
[0132] (B2) In some embodiments of B1, some embodiments or examples include: in response to the user selecting the notification mode, entering the notification mode by creating a message in the group thread from the first user, including: receiving a message entered via the writing field; sending the message to the group thread; and causing a notification to the second user regarding the sent message as the second user's selection.
[0133] (B3) In some embodiments of B1-B2, some embodiments or examples include: detecting the action command in the composition field of the communication platform of the first user, wherein the action command indicates a function to be performed by the system; in response to detecting the action command in the composition field, parsing the entry after the action command from the composition field to identify one or more characters after the action command; identifying the target user from the user database includes: identifying one or more target users having first one or more characters that match the identified one or more characters after the action command; based on one or more rules in the user selection mode, causing the set of the identified one or more users to be displayed to the first user; receiving the selected user from the set of the identified one or more users from the first user as the second user.
[0134] (C1) In one aspect, some embodiments or examples include providing public group suggestions as recipients of a message in a communication service, including: receiving a request for creating a message from a first user; receiving a first recipient of the message from the first user; receiving a second recipient of the message from the first user; and in response to receiving the first recipient and the second recipient of the message, automatically identifying one or more public groups of the communication service, the one or more public groups including the first recipient and the second recipient as members; and based on one or more rules, causing at least one of the identified one or more public groups to be displayed to the first user as a suggested recipient of the message; receiving a selected public group from the at least one of the identified one or more public groups as a selected public group from the first user; and sending the message to the selected public group.
[0135] (C2) In some embodiments of C1, the one or more public groups of the communication service include one or more groups in a directory database or one or more distribution lists stored by the communication service and including the organization of the first recipient and the second recipient.
[0136] (C3) In some embodiments of C1-C2, the one or more public groups include one or more public groups of recipients of corresponding previous messages of the first user stored by the communication service.
[0137] (C4) In some embodiments of C1-C3, sending the message to the selected public group includes: causing the message to be displayed in a group communication stream.
[0138] (C5) In some embodiments of C1-C4, some embodiments or examples include: receiving a message body entered via a compose field of the message or a message subject entered via a subject field of the message; and identifying one or more keywords in the message body or the message subject, and identifying the one or more public groups of the communication service includes: using the first recipient and the second recipient and the identified one or more keywords.
[0139] (C6) In some embodiments of C1-C5, some embodiments or examples include: in response to receiving the first recipient, adding the first recipient to the recipient field of the message.
[0140] (C7) In some embodiments of C1-C6, some embodiments or examples include: in response to receiving the selected public group, replacing the first recipient with the selected public group in the recipient field of the message.
[0141] (C8) In some embodiments of C1-C7, some embodiments or examples include: in response to receiving the second recipient, adding the second recipient to the recipient field of the message; and in response to receiving the selected public group, adding the selected public group to the recipient field of the message.
[0142] (C9) In some embodiments of C1-C8, causing the set of one or more identified public groups to be displayed to the first user includes: before adding the second recipient to the recipient field of the message, causing the set of one or more identified public groups to be displayed to the first user in a group suggestion menu, the group suggestion menu being near the position of an active cursor or the received second recipient of the message.
[0143] (C10) In some embodiments of C1-C9, some embodiments or examples include: in response to receiving the selected public group, adding the selected public group to the recipient field of the message.
[0144] (C11) In some embodiments of C1-C10, receiving the first recipient of the message includes: parsing a first set of entries from a recipient field or from a compose field after an action command to identify one or more characters of the first recipient; identifying a first target user that matches the identified one or characters from the first set of entries from a user database; causing the first target user to be displayed to the first user; receiving a selection of the first target user as the first recipient from the first user; and in response to receiving the first recipient, adding the first recipient to the recipient field of the message, and receiving the second recipient of the message includes: parsing a second set of entries from the recipient field or from the compose field after an action command to identify one or more characters of the second recipient; identifying a second target user that matches the identified one or more characters from the second set of entries from the user database; causing the second target user to be displayed to the first user; and receiving a selection of the second target user as the second recipient from the first user.
[0145] On the other hand, some embodiments include a system including a processor and a memory device, the memory device being coupled to the processor and having a program stored thereon, the program being for execution by the processor to perform operations of any of the embodiments including the above A1-A8, B1-B3, or C1-C11 in various combinations or permutations. On the other hand, some embodiments include a non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of the storage device, the one or more programs including instructions for performing any of the embodiments including the above A1-A8, B1-B3, or C1-C11 in various combinations or permutations. On the other hand, some embodiments include a method or system including units for performing any of the embodiments including the above A1-A8, B1-B3, or C1-C11 in various combinations or permutations.
[0146] Although some embodiments have been described in detail above, other modifications are possible. For example, the logic flows depicted in the accompanying drawings do not require the particular order or sequential order shown to achieve the desired results. Other steps may be provided, or steps may be eliminated from the described flows, and other components may be added to or removed from the described systems. Other embodiments may be within the scope of the appended claims.
[0147] In the description herein, reference is made to the accompanying drawings which form a part thereof, and in which specific embodiments that can be practiced are shown by way of illustration. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it should be understood that other embodiments may be utilized, and structural, logical, and electrical changes may be made without departing from the scope of the invention. Therefore, the description of the exemplary embodiments included should not be considered limited, and the scope of the invention is defined by the appended claims.
[0148] Functions can be configured to perform operations using, for example, software, hardware, firmware, etc. For example, the phrase "configured to" can refer to the logical circuit structure of a hardware element for implementing an associated function. The phrase "configured to" can also refer to the logical circuit structure of a hardware element designed to implement the associated function of firmware or software. The term "module" refers to a structural element that can be implemented using any suitable hardware (such as a processor, etc.), software (such as an application, etc.), firmware, or any combination of hardware, software, and firmware. The term "logic" covers any function for performing a task. For example, each operation shown in the flowchart corresponds to the logic for performing the operation. Operations can be performed using software, hardware, firmware, etc. The terms "component", "system", etc. can refer to computer-related entities, hardware, and software, firmware, or a combination thereof in execution. A component can be a process, object, executable file, program, function, subroutine, computer, or a combination of software and hardware running on a processor. The term "processor" can refer to a hardware component, such as a processing unit of a computer system.
[0149] In addition, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computing device to implement the disclosed subject matter. The term "article of manufacture" as used herein is intended to cover a computer program accessible from any computer-readable storage device or medium. Computer-readable storage media may include, but are not limited to, magnetic storage devices such as hard disks, floppy disks, magnetic strips, optical disks, compact disks (CDs), digital versatile disks (DVDs), smart cards, flash memory devices, and the like. In contrast, computer-readable media (i.e., non-storage media) may additionally include communication media, such as transmission media for wireless signals, and the like.
Claims
1. A system for providing a public group suggestion as a recipient of a message in a communication service, comprising: one or more processors; as well as a memory storing computer executable instructions that, when executed, cause the one or more processors to control the system to perform operations comprising: receiving a request from a first user to create a message; a first recipient receiving the message from the first user; receiving from the first user at least one character of a username of a second recipient of the message; In response to receiving at least one character of the username of the first recipient and the second recipient of the message and only after receiving the first recipient and the at least one character: automatically identifying at least one recipient corresponding to the at least one character of the username of the second recipient; automatically identifying one or more public groups including the first recipient and the at least one recipient corresponding to the at least one character of the username of the second recipient as members; and identifying at least one of the identified one or more public groups as a suggested recipient of the message based on one or more rules; causing the identified one or more public groups to be displayed only after receiving the at least one character of the username of the first recipient and the second recipient; receiving, from the first user, a selected public group among the at least one public group among the identified one or more public groups as a selected public group; and The message is sent to the selected public group.
2. The system according to claim 1, in, The one or more public groups of the communication service include one or more groups in a directory database or one or more distribution lists of an organization stored by the communication service and including the first recipient and the second recipient.
3. The system according to claim 1, in, The one or more public groups include one or more public groups of recipients of corresponding previous messages of the first user stored by the communication service.
4. The system according to any one of claims 1 to 3, in, Sending the message to the selected public group includes causing the message to be displayed in a group communication stream.
5. The system according to any one of claims 1 to 4, wherein the operations include: receiving a message body input via a composition field of the message or a message subject input via a subject field of the message; as well as identifying one or more keywords in the message body or the message subject, The identifying of the one or more public groups of the communication service includes: using the first recipient and the second recipient and the identified one or more keywords.
6. The system according to any one of claims 1 to 5, wherein the operations include: In response to receiving the first recipient, the first recipient is added to a recipient field of the message.
7. The system of claim 6, wherein the operations include: In response to receiving the selected public group, the first recipient is replaced in the recipient field of the message with the selected public group.
8. The system of claim 6, wherein the operations include: in response to receiving the second recipient, adding the second recipient to the recipient field of the message; as well as In response to receiving the selected public group, the selected public group is added to the recipient field of the message.
9. A system according to any one of claims 6 to 8, in, causing the identified set of one or more public groups to be displayed to the first user comprises: causing the identified set of one or more public groups to be displayed to the first user in a group suggestion menu prior to adding the second recipient to the recipient field of the message, the group suggestion menu being adjacent to an active cursor or a location of the received second recipient of the message, and The operations include: In response to receiving the selected public group, the selected public group is added to the recipient field of the message.
10. The system according to any one of claims 1 to 9, in, The first recipient receiving the message includes: parsing a first set of entries from a recipient field or from a compose field following an action command to identify at least one character of a username of the first recipient; identifying, from a user database, a first target user that matches the identified at least one character of the user name from the first set of entries; causing the first target user to be displayed to the first user; receiving, from the first user, a selection of the first target user as the first recipient; and In response to receiving the first recipient, adding the first recipient to a recipient field of the message, and wherein receiving the second recipient of the message comprises: parsing a second set of entries from the recipient field or from the compose field following the action command, to identify the at least one character of the username of the second recipient; identifying, from the user database, a second target user that matches the identified at least one character of the user name from the second set of entries; causing the second target user to be displayed to the first user; and A selection of the second target user as the second recipient is received from the first user.
11. A method for providing a public group suggestion as a recipient of a message in a communication service, comprising: receiving a request from a first user to create a message; a first recipient receiving the message from the first user; receiving from the first user at least one character of a username of a second recipient of the message; In response to receiving at least one character of the username of the first recipient and the second recipient of the message and only after receiving the first recipient and the at least one character: automatically identifying at least one recipient corresponding to the at least one character of the username of the second recipient; automatically identifying one or more public groups, the one or more public groups including as members the first recipient and the at least one recipient corresponding to the at least one character of the username of the second recipient; as well as identifying at least one public group of the identified one or more public groups as a suggested recipient of the message based on one or more rules; causing the identified one or more public groups to be displayed only after receiving the at least one character of the username of the first recipient and the second recipient; receiving, from the first user, a selected public group among the at least one of the identified one or more public groups as a selected public group; as well as The message is sent to the selected public group.
12. The method according to claim 11, in, The one or more public groups of the communication service include one or more groups in a directory database or one or more distribution lists of an organization stored by the communication service and including the first recipient and the second recipient.
13. The method according to claim 11, in, The one or more public groups include one or more public groups of recipients of corresponding previous messages of the first user stored by the communication service.
14. The method according to any one of claims 11 to 13, in, Sending the message to the selected public group includes causing the message to be displayed in a group communication stream.
15. The method according to any one of claims 11 to 14, comprising: receiving a message body input via a composition field of the message or a message subject input via a subject field of the message; as well as identifying one or more keywords in the message body or the message subject, The identifying of the one or more public groups of the communication service includes: using the first recipient and the second recipient and the identified one or more keywords.