Command-based communication
By introducing command-based fork communication mode and automated public group suggestions in group communication system, data security and navigation efficiency problems in group communication are solved, and the secure transmission of sensitive information and user-friendly multi-mode is realized. Status communication experience.
Patent Information
- Application Number
- CN202380044315.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-16
- Filing Date
- 2023-04-24
- Publication Date
- 2025-01-10
AI Technical Summary
Existing communication systems have data security and navigation efficiency problems when dealing with multiple message transmission modes. Especially in group communication, the unintentional disclosure of sensitive information and the cumbersomeness of user navigation are difficult to solve, and the identification of public group members and suggestions are difficult to automate, resulting in inaccurate message addressing and waste of resources.
By introducing a command-based fork communication mode into the group communication flow, users allow them to create fork communication threads independent of the group thread within the compose field and automatically identify and suggest public groups using action commands (such as @ mentioned) Group recipients, reduce navigation operations, improve data security and messaging efficiency.
It realizes the secure transmission of sensitive information without leaving the group thread, simplifies user navigation, improves the accuracy and efficiency of message transmission, reduces the risk of unintentional disclosure, and automates public group suggestions, enhancing Security and user experience of communication systems.
Smart Images

Figure CN119301930A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to methods and systems for command-based communications according to some embodiments. Background Art
[0002] The use of software and hardware technologies has become a common method for people to communicate with each other. In particular, text communication, such as through instant messaging, text messaging, chat applications, and email communication, has become the primary mode of communication. Text communication has been developed to complement 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 has grown, so has the diversity and use of features supported by communication services. 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 command-based communication. A target user can be identified from a user database based on a parsed entry following an action command in a compose field. A user selection of one of two operating modes in which the system operates can be received, the two operating modes comprising a fork mode and a notification mode. In response to the user selecting the fork mode, a forked communication thread that deviates from the group thread can be created and sent to a second user.
[0004] In an example, a target user and a control element may be displayed, the control element corresponding to the target user and indicating a desire to switch the system's operating mode from a notification mode associated with the action command to a forked mode that deviates from the group thread. In response to the first user selecting the forked mode, for example, via the control element, a forked communication thread that deviates from the group communication flow may be created and sent to the second user. In some examples, the forked communication thread may include extracted content from the group thread encapsulated with the received message from the compose field.
[0005] Additional embodiments include methods and systems for providing public group suggestions as recipients of a message in a communication service. The communication platform or a communication service connected to the communication platform may 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 the first user. One or more of the identified public groups may be selected, and the message may be sent to the selected public groups.
[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 set 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 with reference to the accompanying drawings, which are provided to illustrate rather than limit the disclosed aspects.
[0009] Figure 1 An exemplary computer system is shown.
[0010] Figures 2A to 2C An exemplary notification feature in a group communication stream is shown.
[0011] Figures 3A-3D and Figure 4A-4B An exemplary forked message feature in a group communication flow is shown.
[0012] Figures 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 for providing public group suggestions for messages in a communication service is shown.
[0015] Figure 8 An exemplary method of selecting a recipient is shown.
[0016] Figure 9 An exemplary method of identifying a public group is shown.
[0017] Figure 10 An exemplary system including user equipment is shown.
[0018] Figure 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 communications about regular meetings, such as those held by groups of people in an organization, students in a classroom, etc., have become a particular challenge. There is a need to access previous information, frequently invite new users, and maintain data security and privacy for another changing group of people. A text thread associated with a regular 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 regular meeting. Attendees of a unified communication session are typically warned of new or external attendees, such as external attendees of an internal regular meeting, etc. However, such new or external attendees can typically access previous information, chat messages, documents, etc., which were generated before these users were invited, or provided after these users left, but are still accessible. 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 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 communication platform's compose field to navigate a predetermined, selectable, or searchable menu of options or features, which can be selected by additional selections, taps, mouse clicks, or other manual input from outside the compose field. For example, during an online meeting with video, navigating to an additional message thread separate from the message thread associated with the online meeting shifts the user's focus away from the online meeting and, in some examples, requires navigation of a large portion of the available screen space or an additional window.
[0022] The inventors have recognized systems and methods for providing command-based communications from a group communication stream to, among other things, improve navigation between different messaging modalities and increase data security and efficiency of message-based communications. In an example, transitioning between different messaging modalities can 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 compose field of a group thread of a group communication stream, in some examples, without navigating away from the group thread. For example, a user can use the compose field of a group thread of an online conference to create a forked communication thread that deviates from the group thread and is separate from the group thread for one or more users while participating in an online conference. Deviating from the group thread can include creating a new thread separate from the group thread, a new thread between the user and a selected recipient, or adding a new message to an existing thread between the user and the selected recipient. The forked communication thread is not viewable by members of the group thread who have not been specifically added to the forked communication thread by the user or the selected recipient.
[0024] A communication stream (e.g., a group communication stream) can include a text stream (e.g., text messaging, email communication, etc.), a video stream (e.g., a video call, etc.), or one or more communication threads between 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 a communication can have one or more separate group threads. In some examples, content (e.g., one or more previous messages, attachments, etc.) from the group communication stream (in which the forked communication thread was initiated) can be packaged and included with the forked communication thread to the second user, e.g., for reference, etc.
[0025] The technical solutions contemplated herein provide an automated, rule-based system for providing command-based communications from a group communication stream in some 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 to improve navigation of the growing number of options and features associated with unified communications.
[0026] There are additional problems with selecting multiple message recipients. As individuals associated with a particular group change, such as an organization bringing on new employees or a classroom introducing new students, it can be difficult for users to know who is included in a particular communication. Addressing communications to the appropriate party can be difficult. In addition, users with similar usernames are often mistaken for other users and are inadvertently addressed or included. User groups are often arranged in public groups within a particular communication service (e.g., in distribution lists, directory databases, etc.). For example, specific teams within an organization (e.g., accounting, engineering, etc.) often have common groups with relevant members assigned by the organization itself, or are determined and established by public communications occurring across communication services, such as through machine learning. However, these established public groups are often unknown to individual users of the communication service, such as new users, or sometimes even members of the public group itself. Communication services often provide access to users with public group memberships, but navigating to these users is often cumbersome. Furthermore, ensuring that the appropriate recipient receives a message on the first attempt reduces network traffic, reducing the time and resources associated with insufficient message delivery, etc.
[0027] The inventors have further recognized systems and methods that automatically identify and suggest to a user one or more public groups of a communication service to include as recipients of a message without the user having to separately search for public group memberships, navigate away from the message, or otherwise shift focus from the message and intended recipient, improving the accuracy of intended recipients, making appropriate suggestions not known to the user, reducing the back-and-forth of trying to find a suitable attribution for receiving messages, and increasing the richness of conversations and the diversity of participants in messages.
[0028] In certain examples, the technical solutions contemplated herein provide automatic suggestions of 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 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, misaddressed 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.
[0029] Figure 1 An exemplary computer system 100 is shown 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 .
[0030] 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, text, images, animations, hyperlinks, or voice or video communications for user groups, such as user groups of one or more communication platforms connected by devices (e.g., a first user device 101 and a second user device 111 or any number of additional authorized devices and users). The user groups may include organizational groups, subgroups, or channels 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 (e.g., 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.
[0031] 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 imaging device 103, a display device 104, a configuration device 105, or one or more other devices or modules.
[0032] Image device 103 may be configured to send, receive, or store images associated with communication service 110. In some examples, images may include icons, such as emoticons, representations of emotions (e.g., emojis), pictures, drawings, avatars, profile pictures, representations of one or more users, and the like. In some examples, image device 103 may include a repository (e.g., cloud-based storage, online profile, etc.) of images of first user device 101 or otherwise associated with first user 106. Display device 104 may be configured to display messages and other visual content associated with communication device 102, such as using a display or portion of a display of first user device 101. Configuration device 105 may be configured to receive, store, and maintain one or more device or user profiles, including selected user settings or preferences, previous user selections, or one or more other settings or preferences of first user 106 or one or more other users, such as those associated with communication flows with communication service 110. In other examples, one or more device or user profiles may be stored or maintained in a data structure or database of communication service 110 or accessible by communication service 110.
[0033] A short code is a specific instruction to perform an action within a communication platform or other application. It's typically triggered by an action command. An action command is a character, symbol, or specific combination of characters or symbols that indicates a desired action, such as an action from a set of desired actions for the first user.
[0034] An exemplary short code is an "@mention" response that is triggered by input of an "@" symbol as an action command and one or more characters of a target user's username or other identifying characteristic (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 had prior 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 users added to the message may be notified, and in some examples, added to the communication stream if not already a member. The generated list of users may be further narrowed and sorted, for example, in user selection mode according to a set of rules (e.g., alphabetically, according to previous activity, included in the 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 the list of users, enters the full username, or exits the functionality of a conventional "@mention" response, e.g., by entering a backspace symbol, a left arrow symbol, a delete symbol, or an exit symbol, selecting leave from the generated list, etc. Conventional auto-complete suggestions to complete usernames 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.).
[0035] 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.
[0036] 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 the communication thread, a group name 211 of the group, and the like. The body portion 215 includes left-aligned and right-aligned messages for the communication thread, a compose field 216, and a send button 217. The compose 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 from the first user, such as those entered in the compose field 216 and sent upon selecting the send button 217 or other sending action or character. Left-aligned messages (e.g., messages 222, 223, and 225) include messages from one or more users separate from the first user.
[0037] 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 for a user group (e.g., the user's organization or a larger group, etc.) that includes a first user. The communication flow can include data from the communication thread or multiple communication threads. 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, while the communication flow can include all communications of the first user or organization on the communication platform or multiple communication platforms.
[0038] The "Mentions" menu 230 includes a collection of one or more users. Figure 2A2 and 3. The avatars 231-233 and corresponding usernames ("USER2"-"USER4") 238-240 are shown, for example, in user selection mode. 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 username that matches one or more characters 227 following the "@" symbol 226 (e.g., between the "@" symbol 226 and the cursor 228) from the compose 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 or associated with a group in a communication flow of the communication service or available to the first user, for example, in a user database of the user. 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 users available to the first user having a corresponding username 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 username, the first character of the username, the first character of an email address associated with the username, etc.
[0039] 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 compose 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 compose 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.
[0040] The compose field 216 can include an auto-complete character 229 for 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 after 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.) can 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 can be provided to the selected user separately from the communication thread.
[0041] After selecting a user, an additional character message may optionally be entered in the compose field 216. For example, 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.
[0042] 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, a notification on the communication platform, a mobile notification, or a notification that is separate from or in addition to the communication thread. Figure 2B The chat interface is shown separate from the email communication to the second user.
[0043] Although shown 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.
[0044] Figures 3A-3DAn exemplary user interface 300 of a first user's communication platform is shown, including interaction with a user selection menu including a conventional "mentions" menu 230 (e.g., as described above with respect to Figure 2A-2C 35) and a forked mode menu 355 as a supplement to starting, creating, or providing a forked communication thread (in some examples, a new thread) from an existing communication thread. 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.
[0045] Figure 3A The @mention menu 230 in the example is similar to the one described above regarding 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 traditional "@mention" responses 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 the first user and the second user, rather than a contrasting group of group communication stream icons 351, 352, 353.
[0046] In some examples, if the existing communication thread is not a group 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, e.g., 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 selected.
[0047] 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 the 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 the user, etc.) across forked mode menu 355.
[0048] In some examples, the highlighted selection 245 may be the default selection, and the second highlighted selection 360 may appear in response to movement of a selection character (e.g., a right arrow) or user input. Figure 3A is shown as having highlighted selection 245 and a second highlighted selection 360, but as Figure 3B-3C As shown, similarly, the highlighted selection may be toggled in response to selecting a character or user input, such as user input 370 (eg, a mouse cursor, etc.).
[0049] In an example, when a first user is drafting a message or otherwise selecting a target user from a group communication stream, a forked mode menu 355 may appear in addition to the "mentions" menu 230. In some examples, the forked mode menu 355 may not be displayed in communications that are already private between two users, or in private or one-on-one communication threads with the 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 an 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 to add a corresponding message to the existing communication thread, regardless of whether the selected user is already a participant in the existing communication thread.
[0050] 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 "mentions" of users. Figure 2A-2C In contrast 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 the existing communication thread and a message providing the 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. Additionally, if the target user is the first user, the corresponding forked icon in the forked mode menu 355 or elsewhere may include an icon for a single user, an icon or avatar of the first user, etc.
[0051] 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 textual description for invoking the actions in the menu. A first user may select the highlighted selection 245 of the "@mentions" menu 230 through a conventional selection (e.g., selecting a character, such as an enter 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 for invoking the corresponding action in the menu. The first user may select the second highlighted selection 360 of the forking mode menu 355 through a combination of the SHIFT key and a conventional selection. Although illustrated herein as the instructions "Select" and "Shift+Select," other exemplary text instructions may be used.
[0052] 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 the return character may select the highlighted selection 245, while pressing the shift key and entering the return character may select the second highlighted selection 360, allowing the first user to select either without requiring the first user to remove their hands from the keyboard or even toggle between selections using the right and left arrows, etc.
[0053] In other examples, separate from or in addition to the above, the selection action can optionally include an expandable send menu 365 associated with the send button 217, where the send button 217 itself can indicate the type of transmission to be sent. In some examples, selection of the highlighted selection 245 or the second highlighted selection 360 can trigger the 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 can be used to display the expandable send menu 365 or to burst the group communication stream icon 366 or the fork icon 367 before selection.
[0054] 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 the 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 applies to all icons or menus disclosed herein.
[0055] Figure 3B-3D An additional switch between the highlighted selection 245 and the second highlighted selection 360 is shown, for example, by user input 370 on a corresponding menu or selectable element. 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 click, a double click, etc.), can automatically populate the selection in the compose field 216 and, in some examples, reposition the fork icon 367 near the send button 217 in the expandable send menu 365, for example. Figure 3B Conversely, selection of the group communication stream icon 351 by the second user (“USER2”) 238, for example, via user input 370 (e.g., a mouse click, a long tap, a double tap, etc.), can 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 .
[0056] In other examples, selection of the group communication stream icon 351 by the second user (“USER2”) 238, 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 supplement the send button 217 with the group communication stream icon 366, as shown. Figure 3C In some examples, the group communication stream icon 366 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 compose field 216, etc.
[0057] Conversely, selection of the fork icon 357 for 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 a 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 compose field 216, etc.
[0058] In other examples, instead of waiting for an action command, selection of a toggle selection 368, for example, on or otherwise associated with the send button 217, can 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 can be displayed to the user and selected, for example, via a radio button, to fork the communication thread, similar to that discussed herein.
[0059] Figure 4A-4B An exemplary user interface 400 is shown, for example, after a first user invokes forked mode from a group thread, including a pop-up window for a forked communication thread having a header portion 471 and a body portion 472 over the body portion 215 of the corresponding group thread. Although shown as a pop-up window over the group thread, in other examples, a separate user interface or window may be launched after the forked communication thread is invoked. However, in some examples, a pop-up window over the group thread as part of the group thread may reduce user errors associated with typing in the wrong window. In some examples, selecting a screen area of the group thread may switch the user interface back to the group thread and close or minimize the pop-up window or otherwise separate the forked communication thread from the group thread.
[0060] 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 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.
[0061] The body portion 472 includes previous group thread information 476 (e.g. Figure 4A-4B 221-224, etc. in ) and additional messages from forked communication threads, such as Figure 4B 446. 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.
[0062] In the example, body portion 472 may include button 478. In some examples, the first user may use button 478 to select more or fewer group threads to include in previous group thread information 476. In the example, selecting button 478 may bring up a cropping tool that displays more previous group threads and a movable selection box for selecting the amount to share. In some examples, button 478 may show the second user that additional information is available for viewing by scrolling to button 478 or selecting button 478.
[0063] 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 the 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.
[0064] Although the above Figures 3A-3D and Figure 4A-4B 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.
[0065] Figures 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.) that invoke 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 Figures 3A-3D and Figure 4A-4B Those platforms shown, etc.
[0066] The user interface 500 includes a header portion 580 and a body portion 579 configured to receive the body portion of the message. The header portion 580 includes different selectable fields and elements, including selectable "TO", "CC" and "BCC" buttons 581-583 and associated fields 584-586, a subject field 587 and a send button 588. Selection of the "TO", "CC" and "BCC" buttons 581-583 can initiate a select name pop-up to search for one or more recipients of the associated fields 584 (e.g., "TO" field 584, etc.). The select name pop-up typically includes one or more public groups that can be added to the new message as a recipient of one of the associated fields 584-586, typically including a break-out description of the membership of each public group. However, in some examples, it is not possible to search for a specific user's group membership. In other examples, the membership of one or more (or all) groups can be private, such as determined by permissions, etc. However, using such a popup 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.
[0067] exist Figure 5A , the body portion 579 of the message includes a first "@mention" shortcode comprising 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" shortcode comprising 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.
[0068] 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 that include both the first recipient and the target user, and suggests "GROUP1" 594 as the second highlighted selection 597.
[0069] In some examples, one or more target groups of the group suggestion menu can be sorted for display according to a set of rules (e.g., alphabetically, based on 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 the 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, selects leave from the generated list, etc.
[0070] 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 operating 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.). A second selection action (“shift + 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 shift key and conventional selection. Although shown herein as the instructions “select” and “shift + select,” other exemplary text instructions may be used.
[0071] 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 .
[0072] 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 add as a recipient to the message (e.g., in the "TO" field 584, the "CC" field 585, or the "BCC" field 586, etc.), or in some examples, to replace the first and second recipients.
[0073] 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.
[0074] 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. In some examples, the public group suggestion button may be nested within a select name popup for the "TO," "CC," or "BCC" buttons 581-583.
[0075] In other examples, the public group suggestion menu 590 can trigger a transition from an email message to a messaging service represented by the messaging service icon 570 , which in some examples can be selected as an additional toggle selection 568 on the group communication icon 569 .
[0076] In some examples, the communication service may additionally identify one or more public groups based on 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 adds one or more recipients 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.
[0077] Figure 6 An exemplary method 600 is shown for 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.
[0078] 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. In an example, the group communication stream may include a group thread, such as a unified communication session between multiple participants including the first user. In other examples, the group communication stream may include a series of emails or other messages between the 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 information to be displayed to the first user or to otherwise interact with the first user.
[0079] In an example, the action command may include a character, symbol, or specific combination of characters or symbols indicating a desired action, or, for example, an action from a set of desired actions for the first user. An exemplary action command includes an "@" symbol followed by one or more characters, for example, to trigger an "@mention" response. Once triggered, the system executing the method may enter a notification mode associated with the "mention" response.
[0080] At step 602, the entry following the action command from the compose field can be parsed, for example, by the communication platform or communication service to identify one or more characters following the action command in the compose field of the communication platform. A target user having one or more characters that match the one or more identified characters following the action command in the compose field of the communication platform can be identified. 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 that match the entry following the action command, a set of one or more rules can be applied to sort the matching entries for initial display to the first user. For example, the target user can be selected for display based on previous activity, inclusion in a communication stream, history with the user, etc.
[0081] 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, a control element may be displayed together with the target user so that not only the first user can select the target user as the second user, but also the operating 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 entirely, for example, by selecting outside of any displayed menu, entering an exit character (e.g., backspace, delete, exit, etc.), etc.
[0082] At step 604, a selection of one of two operating modes for the system to operate in may be received, for example, 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.
[0083] 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 along with the selection of the operating mode, for example, by selecting or interacting with a control element, including, for example, the selection of the second user in the example above. Figures 3A-3D Icons or menus, etc. shown and described in .
[0084] At step 606 , a message may be received from a compose field of the communication platform, such as through a user interface of the first device.
[0085] 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 based on the "@mention" response.
[0086] Alternatively, at step 607, if the received operating 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.).
[0087] In some examples, if a private message thread or a message thread that is separate from the group communication flow 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 specific message, including its content, separate from any existing threads, private or otherwise, between the first user and the second user, for example, to better organize and maintain records 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.
[0088] At step 611, at least some content, such as messages, attachments, etc., can be extracted from the group communication stream. In some examples, the current number of previous messages or attachments can be initially extracted. In other examples, the first user can select or change the content to be extracted and packaged with the optional received message.
[0089] At 612, the forked communication thread including the optional received message and the packaged extracted content can be sent to the second user, eg, for display as a group thread, as an email communication, etc., using a communication platform or the like.
[0090] 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.
[0091] 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.
[0092] At step 702, a first recipient can be received from a first user, for example, via a communication platform. In an example, the first recipient can 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 can come from the first recipient's contact page, such as in a messaging application. In other examples, the first recipient can be received in the body of the new message or in a compose field. At step 703, the first recipient can optionally be added to the recipient field, such as in an email communication, or if entered into a compose field after receiving a partial username, etc., as part of an "@mention" response or accepting an autofill suggestion.
[0093] 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 the one or more public groups based on the received first and second recipients, or a combination of the first recipient and the target recipient, etc.
[0094] In some examples, at step 704, a target second recipient can be identified based on the received characters, such as in a recipient field or in relation to an action command (e.g., 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 Figure 5A shown and described, etc.
[0095] At step 707, the set of one or more identified public groups may be displayed to the first user as suggested recipients of the message, for example, on a display of the first user device, etc., via the communication platform. In some examples, the set of one or more identified public groups may include all or less than all of the one or more identified public groups, depending on the number of identified public groups and the number selected for presentation to the first user. For example, if five public groups are identified across the communication service as including the received first and second recipients, and three public groups are presented to the user, a set of one or more rules may be applied to sort the identified public groups for initial display to the first user. For example, the identified public groups may be sorted for display based on overall activity, previous activity with the first user, etc.
[0096] At step 708, a selected public group from the set of one or more identified public groups may be received from the first user as a selected public group, and at step 709, the selected public group may optionally be 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., a "TO" field, a "CC" field, a "BCC" field, etc.). However, such activity provides priority for inclusion by the first user, which is undesirable in some examples. In other examples, rather than addressing the message only to the selected public group that includes the first recipient and the second recipient, but without separately addressing the first recipient and the second recipient used to determine the public group, the selected public group may replace the first user and the second user as recipients of the message.
[0097] 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 thread, as an email communication, or the like.
[0098] Figure 8 An exemplary method is shown for receiving a selected recipient (e.g., a first recipient or a second recipient) based on characters entered in a recipient field or in a compose field (e.g., part of a "mention" response, a user search box, etc.).
[0099] At step 811, an entry from a recipient field may be received from a user interface of a first user device, or separately received 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.
[0100] 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.
[0101] Figure 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.
[0102] 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 or a compose field of a message or email communication. In other examples, the first recipient and the second recipient may be received from the first user, for example, via individual selections from a larger list of individuals, such as a group thread, a group communication stream, or one or more other user groups.
[0103] At step 913, a message body or message subject, including one or more characters input by the first user, may be received. 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.
[0104] 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 one or more keywords identified from the message body or message subject. In some examples, in addition to identifying the 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.
[0105] Figure 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 can take the form of a mobile computing device or any other portable device, such as a mobile phone, a laptop, a tablet, a computing pad, a notebook, a gaming device, a portable media player, etc. In other examples, the user device 1002 can include a less portable device, such as a desktop personal computer, an information kiosk, a desktop device, an industrial control device, etc. Other examples can combine 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.
[0106] The processor 1008 may include any number of processing units and be programmed to execute computer-executable instructions for implementing aspects of the present disclosure. The instructions may be executed by a processor or processors within the computing device, or by a processor external to the user device 1002. In some examples, the processor 1008 is programmed to execute methods, such as one or more of the methods described herein. Additionally or alternatively, the processor 1008 may be programmed to present an experience in a user interface ("UI"). For example, the processor 1008 may represent an implementation of techniques for performing the operations described herein.
[0107] The transceiver 1010 may include an antenna capable of transmitting and receiving radio frequency ("RF") signals, as well as various antennas and corresponding chipsets to provide communication capabilities between the user device 1002 and one or more other remote devices. However, the example is not limited to RF signaling, as various other communication modalities may be used instead.
[0108] 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 smartphone 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's speaker system, visually presents the search response on a display screen in the car (e.g., located in the car's dashboard, in the headrest, on a pull-down screen, etc.), or a combination thereof. Other examples present the disclosed search responses through various other display or audio presentation components 1012.
[0109] 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 , while others may be external.
[0110] The I / O components 1016 may include a microphone 1018, one or more sensors 1020, a camera 1022, and a touch device 1024. The microphone 1018 may capture speech from a user and / or a user's speech or speech uttered by a user. The sensors 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 one or more of an accelerometer, a magnetometer, a pressure sensor, a photometer, a thermometer, a global positioning system ("GPS") chip or circuit, a bar scanner, a biometric scanner for scanning fingerprints, palm prints, blood, eyes, etc., a gyroscope, a near field communication ("NFC") receiver, or any other sensor configured to capture data from a user or the environment. The camera 1022 may capture images or videos of a user or a user uttering. The touch device 1024 may include a touchpad, a trackpad, a 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.
[0111] Memory 1026 may include any number of memories associated with or accessible by user device 1002. Memory 1026 may be internal to user device 1002, external to user device 1002, or a combination thereof. 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 disks (DVDs) or other optical or holographic media, magnetic 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 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. Memory 1026 may take the form of volatile and / or nonvolatile memory, and may be removable, non-removable, or a combination thereof; and may include various hardware devices, such as solid-state memory, hard drives, optical drives, and the like. Additionally or alternatively, the memory 1026 can 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 can 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 can 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 can communicate with corresponding applications or services, such as web services accessible via the network 1006. For example, an application can include a client-side operating application corresponding to a server-side application executing on a remote server or computing device in the cloud.
[0112] 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 that executes 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 the network interface card. Communication between the user device 1002 and other devices may be conducted 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 a communication interface that uses an electronic tag (e.g., an NFC tag, It operates using RF and short-range communication technologies (such as tags).
[0113] 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 voice 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.
[0114] Figure 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 communicating 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 device 1102, etc.).
[0115] Figure 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 other network environments are contemplated in other examples.
[0116] 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.
[0117] User devices 1102 include any type of user device 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 a communication service 1108 via a 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.
[0118] 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.
[0119] Communication service 1108 represents a server or collection of servers 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 over 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 trigger 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 may be scalable. For example, communication service 1108 may include multiple servers operating various parts of the software that together generate a composite icon or template for users of one or more user devices 1102.
[0120] User database 1132 can provide backend storage for web, user, and context data that can be accessed by communication service 1108 or user device 1102 via network 1106 and used by communication service 1108 to assemble subsequent data in a communication flow. The web, user, and context data stored in the database includes, for example, but is not limited to, one or more user profiles 1118 and public groups 1122. Public groups 1122 can include one or more user groups of communication service 1108 and textual descriptions of these groups. Additionally, although not shown for clarity, the servers of user database 1132 may include their own processors, transceivers, and memory. Furthermore, while networked environment 1100 depicts user database 1132 as a collection of devices separate from communication service 1108, the example may actually store the web, user, and context data discussed in the demonstration in user database 1132 on communication service 1108.
[0121] As used herein, a "user profile" refers to a collection of electronically stored information about a user. This information may be stored based on the user's explicit consent or "opt-in" to the storage of such personal information, and may include the user's name, age, gender, height, weight, demographics, current location, place of residence, nationality, family, friends, education, occupation, hobbies, skills, interests, web searches, health information, birthdays, anniversaries, holidays celebrated, moods, user status, and any other personalized information related to the user. A user profile includes static profile elements, such as name, place of birth, etc., as well as dynamic profile elements that change over time, such as place of residence, age, status, etc. A user profile may be constructed by asking questions of the user or by analyzing the user's behavior on one or more user devices.
[0122] In addition, user profile 1118 may include static and / or dynamic data parameters for an individual user. 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, job, or virtually any unique data point specific to the user. User profile 1118 may be expanded to cover various other aspects of the user.
[0123] The present disclosure relates to systems and methods for providing command-based personalized composite templates in communication flows according to at least the examples provided in the following sections:
[0124] (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 a user selection from the first user 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.
[0125] (A2) In some embodiments of A1, parsing the entry after the action command from the compose field includes identifying one or more characters after the action command in the compose 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, causing the set of the identified one or more users to be displayed to the first user based on one or more rules in the user selection mode, and receiving the selected user from the set of the identified one or more users as the second user from the first user.
[0126] (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.
[0127] (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.
[0128] (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 bifurcation mode and the target user as the second user.
[0129] (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.
[0130] (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.
[0131] (A8) In some embodiments of A1-A7, the forked communication thread includes an email thread between the first user and the second user.
[0132] (B1) In one aspect, some embodiments or examples include providing command-based communication, comprising: in response to an entry in a compose field of a group thread of a first user following an action command and based on the entry following 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 a desire to switch the 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 selection 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, comprising: receiving a message entered via the compose field; extracting 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.
[0133] (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 compose 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.
[0134] (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 a 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.
[0135] (C1) In one aspect, some embodiments or examples include providing public group suggestions as recipients of a message in a communication service, comprising: receiving a request to create 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 public group 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.
[0136] (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.
[0137] (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.
[0138] (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.
[0139] (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.
[0140] (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.
[0141] (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.
[0142] (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.
[0143] (C9) In some embodiments of C1-C8, causing the identified set of one or more public groups to be displayed to the first user includes: before adding the second recipient to the recipient field of the message, causing the identified set of one or more public groups to be displayed to the first user in a group suggestion menu, the group suggestion menu being near the active cursor or the position of the received second recipient of the message.
[0144] (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.
[0145] (C11) In some embodiments of C1-C10, receiving the first recipient of the message includes: parsing a first set of entries from the recipient field or from the compose field after the 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 the 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.
[0146] On the other hand, some embodiments include a system comprising 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 A1-A8, B1-B3, or C1-C11 described above 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 A1-A8, B1-B3, or C1-C11 described above in various combinations or permutations. On the other hand, some embodiments include a method or system comprising means for performing any of the embodiments A1-A8, B1-B3, or C1-C11 described above in various combinations or permutations.
[0147] Although a few 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 sequence shown to achieve the desired results. Other steps may be provided or eliminated from the described flows, and other components may be added to or removed from the described systems. Other embodiments are within the scope of the appended claims.
[0148] In the description herein, reference is made to the accompanying drawings which form a part thereof, and in which are shown by way of illustration specific embodiments that may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is understood that other embodiments may be utilized and that 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 limiting, and the scope of the invention is defined by the appended claims.
[0149] 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 used to implement the 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 used to perform a task. For example, each operation shown in the flowchart corresponds to the logic used to perform that 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.
[0150] 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 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.
Claims
1. A system for providing command-based communications, 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: 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 compose field, parsing an entry from the compose field that follows the action command; identifying, from a user database, a target user associated with the action command based on the parsed entry from the compose field; 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, entering the fork 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 input via the composition field; extracting the content of the group thread; packaging 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, comprising: receiving a message input via the composition field; Sending the message to the group thread; and A notification is caused to the second user for the sent message as a selection of the second user.
2. The system according to claim 1, in, Parsing an entry from the compose field following the action command includes: identifying one or more characters following the action command in the compose field, Wherein, identifying the target user from the user database comprises: identifying one or more users having first one or more characters matching the identified one or more characters after the action command, and The operations include: causing the identified set of one or more users to be displayed to the first user based on one or more rules in a user selection mode; and A selected user from the identified set of one or more users is received from the first user as the second user.
3. The system according to any one of claims 1 to 2, in, 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 The 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.
4. The system according to any one of claims 1 to 3, in, The group thread belongs to a group communication flow, and The forked communication thread between the first user and the second user is separate from a group view of the group communication stream and is not viewable by members of the group communication stream other than the first user and the second user.
5. The system according to any one of claims 1 to 4, wherein: The operations 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 a desired operating mode of the two operating modes, Wherein, 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.
6. The system according to claim 5, in, The control element includes a notification including a description of a selection action for selecting the control element, and Wherein, receiving the user selection of the fork mode includes: receiving the selection action by the first user in response to the notification including a description of the selection action.
7. The system according to any one of claims 1 to 6, in, The group thread is a message thread of a unified communication session between a plurality of participants including the first user, and The forked communication thread is located between the first user and the second user.
8. The system according to claim 7, in, The forked communication thread includes an email thread between the first user and the second user.
9. A method for providing command-based communications, comprising: 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 compose field, parsing an entry from the compose field that follows the action command; identifying, from a user database, a target user associated with the action command based on the parsed entry from the compose field; 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, entering the fork 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 input via the composition field; extracting the content of the group thread; packaging 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, comprising: receiving a message input via the composition field; Sending the message to the group thread; and A notification is caused to the second user for the sent message as a selection of the second user.
10. The method according to claim 9, in, Parsing an entry from the compose field following the action command includes: identifying one or more characters following the action command in the compose field, Wherein, identifying the target user from the user database comprises: identifying one or more users having first one or more characters matching the identified one or more characters after the action command, and Wherein, the method comprises: causing the identified set of one or more users to be displayed to the first user based on one or more rules in a user selection mode; and A selected user from the identified set of one or more users is received from the first user as the second user.
11. The method according to any one of claims 9 to 10, in, 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 The 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.
12. The method according to any one of claims 9 to 11, in, The group thread belongs to a group communication flow, and The forked communication thread between the first user and the second user is separate from a group view of the group communication stream and is not viewable by members of the group communication stream other than the first user and the second user.
13. The method according to any one of claims 9 to 12, comprising: 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 a desired operating mode of the two operating modes, Wherein, 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.
14. The method according to claim 13, in, The control element includes a notification including a description of a selection action for selecting the control element, and Wherein, receiving the user selection of the fork mode includes: receiving the selection action by the first user in response to the notification including a description of the selection action.
15. The method according to any one of claims 9 to 14, in, The group thread is a message thread of a unified communication session between a plurality of participants including the first user, and The forked communication thread is located between the first user and the second user.