U.S. patent application number 16/894745 was filed with the patent office on 2021-12-09 for system and method for reacting to messages.
This patent application is currently assigned to Slack Technologies, LLC. The applicant listed for this patent is Slack Technologies, LLC. Invention is credited to Mark CHRISTIAN, Andrew FONG.
Application Number | 20210382590 16/894745 |
Document ID | / |
Family ID | 1000004925305 |
Filed Date | 2021-12-09 |
United States Patent
Application |
20210382590 |
Kind Code |
A1 |
FONG; Andrew ; et
al. |
December 9, 2021 |
SYSTEM AND METHOD FOR REACTING TO MESSAGES
Abstract
The present disclosure generally relates to techniques for
reacting to a message in a communication platform. An exemplary
method implemented at least in part by a user computing device of a
user associated with a communication platform comprises: displaying
the message in a message area; identifying, based on the message,
one or more reactive emojis; displaying one or more graphical
representations of the one or more reactive emojis; receiving, from
a user, an input selecting a graphical representation of the one or
more reactive graphical representations; in response to receiving
the input, displaying a reaction to the message in a reaction area;
and displaying a response input area for inputting a response to
the message.
Inventors: |
FONG; Andrew; (Menlo Park,
CA) ; CHRISTIAN; Mark; (San Francisco, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Slack Technologies, LLC |
San Francisco |
CA |
US |
|
|
Assignee: |
Slack Technologies, LLC
San Francisco
CA
|
Family ID: |
1000004925305 |
Appl. No.: |
16/894745 |
Filed: |
June 5, 2020 |
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 51/22 20130101;
G06F 3/0484 20130101 |
International
Class: |
G06F 3/0484 20060101
G06F003/0484; H04L 12/58 20060101 H04L012/58 |
Claims
1. A method implemented at least in part by a user computing device
of a user, the method comprising: receiving a message; in response
to receiving the message, identifying, based on context of the
message, one or more reactive emojis; displaying the message in a
message area and the identified one or more reactive emojis in a
reaction area; receiving, from a user, an input selecting a
reactive emoji of the identified one or more reactive emojis in the
reaction area; in response to receiving the input, simultaneously
and automatically displaying an indication of the selection of the
reactive emoji in addition to the identified one or more reactive
emojis in the reaction area along with displaying a response input
area for inputting a response to the message.
2. The method of claim 1, wherein displaying the reactive emojis
comprises: displaying inactive versions of the reactive emojis in
the reaction area; and displaying the indication of the selection
of the reactive emoji comprises displaying an active version of the
selected reactive emoji in the reaction area.
3. The method of claim 1, wherein the one or more reactive emojis
are identified based on semantic context of the message.
4. The method of claim 1, further comprising: determining whether a
user has permission to use an emoji of the one or more reactive
emojis; in response to a determination that the user does not have
permission to use the emoji, displaying a disabled version of the
emoji.
5. The method of claim 4, further comprising: displaying a user
interface for installing the emoji.
6. The method of claim 1, wherein identifying the one or more
emojis comprises: determining that the message includes a file; and
identifying the one or more emojis based on the file.
7. The method of claim 1, wherein identifying the one or more
emojis comprises: determining that the message includes a keyword;
and identifying the one or more emojis based on the keyword.
8. The method of claim 1, further comprising: in response to
receiving the input, launching an application associated with the
selected reactive emoji.
9. A method implemented at least in part by a user computing device
of a user associated with a communication platform, the method
comprising: displaying, at a user computing device associated with
a first user, a message received from a second user in a message
area, wherein the received message includes one or more emojis, and
the displayed message comprises one or more selectable graphical
representations of the one or more emojis; receiving, from the
first user, an input on a selectable graphical representation of
the one or more selectable graphical representations in the
displayed message; and in response to receiving the input,
displaying, in a reaction area different from the message area, a
reaction to the message based on the selected graphical
representation.
10. The method of claim 9, further comprising: identifying the one
or more emojis based on a keyword of the message.
11. An electronic device, comprising: a display; one or more
processors; a memory; and one or more programs, wherein the one or
more programs are stored in the memory and configured to be
executed by the one or more processors, the one or more programs
including instructions for: receiving a message; in response to
receiving the message, identifying, based on context of the
message, one or more reactive emojis; displaying the message in a
message area and the identified one or more reactive emojis in a
reaction area; receiving, from a user, an input selecting a
reactive emoji of the identified one or more reactive emojis in the
reaction area; in response to receiving the input, simultaneously
and automatically displaying an indication of the selection of the
reactive emoji in addition to the identified one or more reactive
emojis in the reaction area; and displaying a response input area
for inputting a response to the message.
12. The electronic device of claim 11, wherein displaying the
reactive emojis comprises: displaying inactive versions of the
reactive emojis in the reaction area; and displaying the indication
of the selection of the reactive emoji comprises displaying an
active version of the selected reactive emoji in the reaction
area.
13. The electronic device of claim 11, wherein the one or more
reactive emojis are identified based on semantic context of the
message.
14. The electronic device of claim 11, wherein the one or more
programs further include instructions for: determining whether a
user has permission to use an emoji of the one or more reactive
emojis; in response to a determination that the user does not have
permission to use the emoji, displaying a disabled version of the
emoji.
15. The electronic device of claim 11, wherein identifying the one
or more emojis comprises: determining that the message includes a
keyword; and identifying the one or more emojis based on the
keyword.
16. A non-transitory computer-readable storage medium storing one
or more programs, the one or more programs comprising instructions,
which when executed by one or more processors of an electronic
device having a display, cause the electronic device to: receiving
a message; in response to receiving the message, identifying, based
on context of the message, one or more reactive emojis; displaying
the message in a message area and the identified one or more
reactive emojis in a reaction area; receiving, from a user, an
input selecting a reactive emoji of the identified one or more
reactive emojis in the reaction area; in response to receiving the
input, simultaneously and automatically displaying an indication of
the selection of the reactive emoji in addition to the identified
one or more reactive emojis in the reaction area; and displaying a
response input area for inputting a response to the message.
17. The non-transitory computer-readable storage medium of claim
16, wherein displaying the reactive emojis comprises: displaying
inactive versions of the reactive emojis in the reaction area; and
displaying the indication of the selection of the reactive emoji
comprises displaying an active version of the selected reactive
emoji in the reaction area.
18. The non-transitory computer-readable storage medium of claim
16, wherein the one or more reactive emojis are identified based on
semantic context of the message.
19. The non-transitory computer-readable storage medium of claim
16, wherein the one or more programs further cause the electronic
device to: determine whether a user has permission to use an emoji
of the one or more reactive emojis; in response to a determination
that the user does not have permission to use the emoji, display a
disabled version of the emoji.
20. The non-transitory computer-readable storage medium of claim
16, wherein identifying the one or more emojis comprises:
determining that the message includes a keyword; and identifying
the one or more emojis based on the keyword.
Description
FIELD OF THE INVENTION
[0001] The present disclosure relates generally to computer user
interfaces, and more specifically to systems and methods for
reacting to messages in a communication system.
BACKGROUND
[0002] A communication platform (e.g., messaging platform, email
platform) can allow a user to react to a message using one or more
emojis. For example, a group-based or channel-based communication
system provides user interfaces for reacting to a message using
emojis in addition to user interfaces for responding to the
message. However, identifying and selecting emojis to react with
can be a non-intuitive and cumbersome experience for the user. For
example, the user may need to examine a large collection of emojis
in order to identify the desired emojis. As another example, the
user may need to enter multiple inputs to launch the appropriate
emoji menu, scroll through the emoji menu, and select the desired
emojis.
[0003] Accordingly, there is a need for simplified and intuitive
user interfaces for reacting to messages in a communication
platform.
BRIEF SUMMARY
[0004] Described herein are systems methods for reacting to
messages. The present disclosure includes systems, electronic
devices, methods, and non-transitory computer-readable media for
implementing a communication system, and more specifically for
providing user interfaces for reacting to messages within the
communication system. Embodiments of the present disclosure provide
simplified and intuitive user interfaces for reacting to messages
in the communication platform (e.g., a group-based communication
system). Such techniques can enhance the operability of the system
(e.g., by helping the user to quickly identify and select desired
emoji out of numerous emojis) which, additionally, reduces power
usage and improves battery life of the device by enabling the user
to use the system more quickly and efficiently.
[0005] As discussed above, a communication platform (e.g.,
messaging platform, email platform) can allow a user to react to a
message using one or more emojis. For example, a group-based or
channel-based communication system provides user interfaces for
reacting to a message in addition to user interfaces for responding
to the message. However, identifying and selecting emojis to react
with can be a non-intuitive and cumbersome experience for the user.
In some examples, there is limited screen real estate and it is
inefficient and/or difficult to search for an emoji via emoji
menus. For example, the user may need to examine a large collection
of emojis in order to identify the desired emojis. As another
example, the user may need to enter multiple inputs to launch the
appropriate emoji menu, scroll through the emoji menu, and select
the desired emojis.
[0006] The present disclosure includes techniques for providing
natural and intuitive user interfaces for reacting to messages
within a communication system. In some embodiments, the
communication system is a channel-based messaging platform. In some
embodiments, the communication system displays a message such that
the emojis within the message can be directly interacted with
(e.g., as selectable graphical representations). Upon receiving a
user selection of an emoji within the message, the emoji can be
displayed as a reaction in a reaction area. In some embodiments,
the system can automatically identify emojis to recommend based on
the message (e.g., based on the content and the context of the
message). Once identified, the emojis can be surfaced to the user
such that they can be easily selected. In some embodiments, the
system surfaces the recommended emojis in the reaction area as
inactive emojis (e.g., grayed-out emojis) that can be selected to
switch to an active state. In some embodiments, the system surfaces
the recommended emojis in one or more menus such that the
recommended emojis can be more easily accessed than from a full
collection emojis (e.g., with minimal scrolling).
[0007] In some embodiments, a user computing device of a user
associated with a communication platform can display the message in
a message area; identify, based on the message, one or more
reactive emojis; display one or more graphical representations of
the one or more reactive emojis; receive, from a user, an input
selecting a graphical representation of the one or more reactive
graphical representations; in response to receiving the input,
display a reaction to the message in a reaction area; and display a
response input area for inputting a response to the message.
[0008] In some embodiments, a user computing device of a user
associated with a communication platform can display, at the user
computing device, a message comprising one or more emojis in a
message area, wherein the displayed message comprises one or more
selectable graphical representations of the one or more emojis;
receive, from a user, an input on a selectable graphical
representation of the one or more selectable graphical
representations in the displayed message; and in response to
receiving the input, display, in a reaction area different from the
message area, a reaction to the message based on the selected
graphical representation.
DESCRIPTION OF FIGURES
[0009] For a better understanding of the various described
embodiments, reference should be made to the Description of
Embodiments below, in conjunction with the following drawings in
which like reference numerals refer to corresponding parts
throughout the figures.
[0010] FIG. 1A depicts an exemplary communication system, in
accordance with some embodiments.
[0011] FIG. 1B depicts an exemplary user interface of a group-based
communication system, in accordance with some embodiments.
[0012] FIG. 1C depicts an exemplary user interface of a group-based
communication system, in accordance with some embodiments.
[0013] FIG. 1D depicts an exemplary user interface of a group-based
communication system, in accordance with some embodiments.
[0014] FIG. 1E depicts an exemplary user interface of a group-based
communication system, in accordance with some embodiments.
[0015] FIG. 2A depicts an exemplary user interface of a group-based
communication system, in accordance with some embodiments.
[0016] FIG. 2B depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0017] FIG. 2C depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0018] FIG. 2D depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0019] FIG. 2E depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0020] FIG. 2F depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0021] FIG. 2G depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0022] FIG. 2I1 depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0023] FIG. 2I depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0024] FIG. 3A depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0025] FIG. 3B depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0026] FIG. 3C depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0027] FIG. 3D depicts an exemplary user interface for reacting to
a message in a group-based communication system, in accordance with
some embodiments.
[0028] FIG. 4 depicts an exemplary user interface for reacting to a
message in a group-based communication system, in accordance with
some embodiments.
[0029] FIG. 5 depicts an exemplary emoji menu in a group-based
communication system, in accordance with some embodiments.
[0030] FIG. 6A depicts a block diagram of an exemplary process for
reacting to a message, in accordance with some embodiments.
[0031] FIG. 6B depicts a block diagram of an exemplary process for
reacting to a message, in accordance with some embodiments.
DETAILED DESCRIPTION
[0032] The following description sets forth exemplary methods,
parameters, and the like. It should be recognized, however, that
such description is not intended as a limitation on the scope of
the present disclosure but is instead provided as a description of
exemplary embodiments.
[0033] The present disclosure includes systems, electronic devices,
methods, and non-transitory computer-readable media for
implementing a communication system, and more specifically for
providing user interfaces for reacting to messages within the
communication system. Embodiments of the present disclosure provide
simplified and intuitive user interfaces for reacting to messages
in the communication platform (e.g., a group-based communication
system). Such techniques can enhance the operability of the system
(e.g., by helping the user to quickly identify and select desired
emoji out of numerous emojis) which, additionally, reduces power
usage and improves battery life of the device by enabling the user
to use the system more quickly and efficiently.
[0034] As discussed above, a communication platform (e.g.,
messaging platform, email platform) can allow a user to react to a
message using one or more emojis. For example, a group-based or
channel-based communication system provides user interfaces for
reacting to a message in addition to user interfaces for responding
to the message. However, identifying and selecting emojis to react
with can be a non-intuitive and cumbersome experience for the user.
In some examples, there is limited screen real estate and it is
inefficient and/or difficult to search for an emoji via emoji
menus. For example, the user may need to examine a large collection
of emojis in order to identify the desired emojis. As another
example, the user may need to enter multiple inputs to launch the
appropriate emoji menu, scroll through the emoji menu, and select
the desired emojis.
[0035] The present disclosure includes techniques for providing
natural and intuitive user interfaces for reacting to messages
within a communication system. In some embodiments, the
communication system is a channel-based messaging platform. In some
embodiments, the communication system displays a message such that
the emojis within the message can be directly interacted with
(e.g., as selectable graphical representations). Upon receiving a
user selection of an emoji within the message, the emoji can be
displayed as a reaction in a reaction area. In some embodiments,
the system can automatically identify emojis to recommend based on
the message (e.g., based on the content and the context of the
message). Once identified, the emojis can be surfaced to the user
such that they can be easily selected. In some embodiments, the
system surfaces the recommended emojis in the reaction area as
inactive emojis (e.g., grayed-out emojis) that can be selected to
switch to an active state. In some embodiments, the system surfaces
the recommended emojis in one or more menus such that the
recommended emojis can be more easily accessed than from a full
collection emojis (e.g., with minimal scrolling).
[0036] Although the following description uses terms "first,"
"second," etc. to describe various elements, these elements should
not be limited by the terms. These terms are only used to
distinguish one element from another. For example, a first
graphical representation could be termed a second graphical
representation, and, similarly, a second graphical representation
could be termed a first graphical representation, without departing
from the scope of the various described embodiments. The first
graphical representation and the second graphical representation
are both graphical representations, but they are not the same
graphical representation.
[0037] The terminology used in the description of the various
described embodiments herein is for the purpose of describing
particular embodiments only and is not intended to be limiting. As
used in the description of the various described embodiments and
the appended claims, the singular forms "a," "an," and "the" are
intended to include the plural forms as well, unless the context
clearly indicates otherwise. It will also be understood that the
term "and/or" as used herein refers to and encompasses any and all
possible combinations of one or more of the associated listed
items. It will be further understood that the terms "includes,"
"including," "comprises," and/or "comprising," when used in this
specification, specify the presence of stated features, integers,
steps, operations, elements, and/or components, but do not preclude
the presence or addition of one or more other features, integers,
steps, operations, elements, components, and/or groups thereof.
[0038] The term "if" is, optionally, construed to mean "when" or
"upon" or "in response to determining" or "in response to
detecting," depending on the context. Similarly, the phrase "if it
is determined" or "if [a stated condition or event] is detected"
is, optionally, construed to mean "upon determining" or "in
response to determining" or "upon detecting [the stated condition
or event]" or "in response to detecting [the stated condition or
event]," depending on the context.
[0039] FIG. 1A illustrates an example environment 150 for
performing techniques described herein. In at least one example,
the example environment 150 can be associated with a communication
platform that can leverage a network-based computing system to
enable users of the communication platform to exchange data. In at
least one example, the communication platform can be "group-based"
such that the platform, and associated systems, communication
channels, messages, and/or virtual spaces, have security (that can
be defined by permissions) to limit access to a defined group of
users. In some examples, such groups of users can be defined by
group identifiers, as described above, which can be associated with
common access credentials, domains, or the like. In some examples,
the communication platform can be a hub, offering a secure and
private virtual space to enable users to chat, meet, call,
collaborate, transfer files or other data, or otherwise communicate
between or among each other. As described above, each group can be
associated with a workspace, enabling users associated with the
group to chat, meet, call, collaborate, transfer files or other
data, or otherwise communicate between or among each other in a
secure and private virtual space. In some examples, members of a
group, and thus workspace, can be associated with a same
organization. In some examples, members of a group, and thus
workspace, can be associated with different organizations (e.g.,
entities with different organization identifiers).
[0040] In at least one example, the example environment 150 can
include one or more server computing devices (or "server(s)") 152.
In at least one example, the server(s) 152 can include one or more
servers or other types of computing devices that can be embodied in
any number of ways. For example, in the example of a server, the
functional components and data can be implemented on a single
server, a cluster of servers, a server farm or data center, a
cloud-hosted computing service, a cloud-hosted storage service, and
so forth, although other computer architectures can additionally or
alternatively be used.
[0041] In at least one example, the server(s) 152 can communicate
with a user computing device 154 via one or more network(s) 156.
That is, the server(s) 152 and the user computing device 154 can
transmit, receive, and/or store data (e.g., content, information,
or the like) using the network(s) 156, as described herein. The
user computing device 154 can be any suitable type of computing
device, e.g., portable, semi-portable, semi-stationary, or
stationary. Some examples of the user computing device 154 can
include a tablet computing device, a smart phone, a mobile
communication device, a laptop, a netbook, a desktop computing
device, a terminal computing device, a wearable computing device,
an augmented reality device, an Internet of Things (TOT) device, or
any other computing device capable of sending communications and
performing the functions according to the techniques described
herein. While a single user computing device 154 is shown, in
practice, the example environment 150 can include multiple (e.g.,
tens of, hundreds of, thousands of, millions of) user computing
devices. In at least one example, user computing devices, such as
the user computing device 154, can be operable by users to, among
other things, access communication services via the communication
platform. A user can be an individual, a group of individuals, an
employer, an enterprise, an organization, or the like.
[0042] The network(s) 156 can include, but are not limited to, any
type of network known in the art, such as a local area network or a
wide area network, the Internet, a wireless network, a cellular
network, a local wireless network, Wi-Fi and/or close-range
wireless communications, Bluetooth.RTM., Bluetooth Low Energy
(BLE), Near Field Communication (NFC), a wired network, or any
other such network, or any combination thereof. Components used for
such communications can depend at least in part upon the type of
network, the environment selected, or both. Protocols for
communicating over such network(s) 156 are well known and are not
discussed herein in detail.
[0043] In at least one example, the server(s) 152 can include one
or more processors 158, computer-readable media 160, one or more
communication interfaces 162, and input/output devices 164.
[0044] In at least one example, each processor of the processor(s)
158 can be a single processing unit or multiple processing units,
and can include single or multiple computing units or multiple
processing cores. The processor(s) 158 can be implemented as one or
more microprocessors, microcomputers, microcontrollers, digital
signal processors, central processing units (CPUs), graphics
processing units (GPUs), state machines, logic circuitries, and/or
any devices that manipulate signals based on operational
instructions. For example, the processor(s) 158 can be one or more
hardware processors and/or logic circuits of any suitable type
specifically programmed or configured to execute the algorithms and
processes described herein. The processor(s) 158 can be configured
to fetch and execute computer-readable instructions stored in the
computer-readable media, which can program the processor(s) to
perform the functions described herein.
[0045] The computer-readable media 160 can include volatile and
nonvolatile memory and/or removable and non-removable media
implemented in any type of technology for storage of data, such as
computer-readable instructions, data structures, program modules,
or other data. Such computer-readable media 160 can include, but is
not limited to, RAM, ROM, EEPROM, flash memory or other memory
technology, optical storage, solid state storage, magnetic tape,
magnetic disk storage, RAID storage systems, storage arrays,
network attached storage, storage area networks, cloud storage, or
any other medium that can be used to store the desired data and
that can be accessed by a computing device. Depending on the
configuration of the server(s) 152, the computer-readable media 160
can be a type of computer-readable storage media and/or can be a
tangible non-transitory media to the extent that when mentioned,
non-transitory computer-readable media exclude media such as
energy, carrier signals, electromagnetic waves, and signals per
se.
[0046] The computer-readable media 160 can be used to store any
number of functional components that are executable by the
processor(s) 158. In many implementations, these functional
components comprise instructions or programs that are executable by
the processor(s) 158 and that, when executed, specifically
configure the processor(s) 158 to perform the actions attributed
above to the server(s) 152. Functional components stored in the
computer-readable media can optionally include a workspace
management component 166, a channel management component 168, an
operating system 170, and a datastore 172.
[0047] In at least one example, the workspace management component
166 can manage workspaces. That is, in at least one example, the
communication platform can be partitioned into different
workspaces, which can be associated with different groups of users,
as described above. As described above, each workspace can be
associated with a group identifier and one or more user accounts
can be mapped to, or otherwise associated with, the group
identifier. User(s) corresponding to such user account(s) can be
"members" of the group.
[0048] In some examples, the workspace management component 166 can
manage workspace membership. That is, the workspace management
component 166 can receive requests to associate users with
individual workspaces and the workspace management component 166
can associate user accounts associated with such users with group
identifiers associated with the individual workspaces. For example,
responsive to receiving a request to add a user to a workspace, the
workspace management component 166 can associate a user account of
the user with a group identifier of the workspace. The workspace
management component 166 can disassociate user accounts and group
identifiers, for example, when a user is removed from a
workspace.
[0049] In at least one example, the workspace management component
166 can manage cross-workspace data integration, as described
herein. For example, the workspace management component 166 can
detect updates to data associated with a workspace and can
integrate such updated data into user interface(s) presented via
user computing device(s) of user(s) associated with the workspace.
Such data integration can be "cross-workspace" such that,
regardless of which workspace a user is logged in to, the user can
receive updated data associated with each of the workspaces of
which he or she is a member and/or access data associated with each
of the workspaces of which he or she is a member (pending
permissions, as described below). That is, the workspace management
component 166 can detect updates to data associated with a
workspace and can integrate such updated data into user
interface(s) presented via user computing device(s) of user(s)
associated with the workspace. Similarly, the workspace management
component 166 can facilitate cross-workspace operations. For
example, the workspace management component 166 can facilitate
messages between workspaces, searches between or across multiple
workspaces, and the like. Additional details of operations that can
be performed by the workspace management component 166 are
described below.
[0050] In at least one example, the channel management component
168 can manage communication channels. As described above, in at
least one example, the communication platform can be a
channel-based messaging platform, that in some examples, can be
usable by group(s) of users. Users of the communication platform
can communicate with other users via communication channels. A
communication channel, or virtual space, can be a data route used
for exchanging data between and among systems and devices
associated with the communication platform. In at least one
example, the channel management component 168 can establish a
communication channel between and among various user computing
devices, allowing the user computing devices to communicate and
share data between and among each other. In at least one example,
the channel management component 168 can manage such communications
and/or sharing of data. In some examples, data associated with a
communication channel can be presented via a user interface. In at
least one example, the channel management component 168 can
interact with the workspace management component 166 to manage the
generation, presentation, and/or updating of user interfaces.
Additional details of operations that can be performed by the
channel management component 168 are described below.
[0051] In at least one example, the operating system 170 can manage
the processor(s) 158, computer-readable media 160, hardware,
software, etc. of the server(s) 152.
[0052] In at least one example, the datastore 172 can be configured
to store data that is accessible, manageable, and updatable. In
some examples, the datastore 172 can be integrated with the
server(s) 152, as shown in FIG. 1A. In other examples, the
datastore 172 can be located remotely from the server(s) 152 and
can be accessible to the server(s) 152 and/or user device(s), such
as the user device 154. The datastore 172 can comprise multiple
databases, which can include user data 174, permission data 176,
workspace data 178, and channel data 180. Additional or alternative
data may be stored in the data store and/or one or more other data
stores.
[0053] In at least one example, the user data 174 can store data
associated with users of the communication platform. In at least
one example, the user data 174 can store data in user profiles
(which can also be referred to as "user accounts"), which can store
data associated with a user, including, but not limited to, one or
more user identifiers associated with multiple, different
organizations or entities with which the user is associated, one or
more communication channel identifiers associated with
communication channels to which the user has been granted access,
one or more group identifiers for groups (or, organizations, teams,
entities, or the like) with which the user is associated, an
indication whether the user is an owner or manager of any
communication channels, an indication whether the user has any
communication channel restrictions, a plurality of messages, a
plurality of emojis, a plurality of conversations, a plurality of
conversation topics, an avatar, an email address, a real name
(e.g., John Doe), a username (e.g., j doe), a password, a time
zone, a status, a token, and the like.
[0054] In at least one example, the permission data 176 can store
data associated with permissions of individual users of the
communication platform. In some examples, permissions can be set
automatically or by an administrator of the communication platform,
an employer, enterprise, organization, or other entity that
utilizes the communication platform, a team leader, a group leader,
or other entity that utilizes the communication platform for
communicating with team members, group members, or the like, an
individual user, or the like. In some examples, permissions
associated with an individual user can be mapped to, or otherwise
associated with, an account or profile associated with the user
data 174. In some examples, permissions can indicate which users
can communicate directly with other users, which channels a user is
permitted to access, restrictions on individual channels, which
workspaces the user is permitted to access, restrictions on
individual workspaces, and the like. In at least one example, the
permissions can support the communication platform by maintaining
security for limiting access to a defined group of users. In some
examples, such users can be defined by common access credentials,
group identifiers, or the like, as described above.
[0055] In at least one example, the workspace data 178 can store
data associated with individual workspaces. As described above, the
communication platform can be partitioned into workspaces
associated with groups of users. In at least one example, a group
identifier can be associated with a workspace. In at least one
example, the group identifier can indicate a physical address in
the workspace data 178 where data related to the corresponding
workspace is stored. In at least one example, data associated with
workspace permissions can be stored in association with the group
identifier, data identifying users associated with the workspace
can be stored in association with the group identifier, data
associated with messages and/or other content associated with the
workspace can be stored in association with the group identifier,
data associated with communication channels associated with the
workspace can be stored in association with the group identifier,
and the like. In some examples, workspaces can be associated with
one or more organization identifiers, which can be associated with
organizations or other entities associated with the communication
platform. In some examples, such data can be mapped to, or
otherwise associated with, other types of data in the datastore 172
(e.g., the user data 174, the permission data 176, the channel data
180, etc.).
[0056] In at least one example, the channel data 180 can store data
associated with individual communication channels. In at least one
example, the channel management component 168 can establish a
communication channel between and among various user computing
devices, allowing the user computing devices to communicate and
share data between and among each other. In at least one example, a
communication channel identification may be assigned to a
communication channel, which indicates the physical address in the
channel data 180 where data related to that communication channel
is stored. A communication channel may be "public," which may allow
any user within an organization (e.g., associated with an
organization identifier) to join and participate in the data
sharing through the communication channel, or a communication
channel may be "private," which may restrict data communications in
the communication channel to certain users or users having
particular roles (e.g., managers, administrators, etc.). In some
examples, a communication channel may be "shared," which may allow
users associated with different organizations (e.g., entities
associated with different organization identifiers) to join and
participate in the data sharing through the communication channel.
Shared channels may be public such that they are accessible to any
user of either organization, or they may be private such that they
are restricted to access by certain users or users having
particular roles from both organizations.
[0057] In some examples, the datastore 172 can be partitioned into
discrete items of data that may be accessed and managed
individually (e.g., data shards). Data shards can simplify many
technical tasks, such as data retention, unfurling (e.g., detecting
that message contents include a link, crawling the link's metadata,
and determining a uniform summary of the metadata), and integration
settings. In some examples, data shards can be associated with
organizations, groups (e.g., workspaces), communication channels,
users, or the like.
[0058] In some examples, individual organizations can be associated
with a database shard within the datastore 172 that stores data
related to a particular organization identification. For example, a
database shard may store electronic communication data associated
with members of a particular organization, which enables members of
that particular organization to communicate and exchange data with
other members of the same organization in real time or near-real
time. In this example, the organization itself can be the owner of
the database shard and has control over where and how the related
data is stored. In some examples, a database shard can store data
related to two or more organizations (e.g., as in a shared
channel).
[0059] In some examples, individual groups can be associated with a
database shard within the datastore 172 that stores data related to
a particular group identification (e.g., workspace). For example, a
database shard may store electronic communication data associated
with members of a particular group, which enables members of that
particular group to communicate and exchange data with other
members of the same group in real time or near-real time. In this
example, the group itself can be the owner of the database shard
and has control over where and how the related data is stored.
[0060] In some examples, a communication channel can be associated
with a database shard within the datastore 172 that stores data
related to a particular channel identification. For example, a
database shard may store electronic communication data associated
with the communication channel, which enables members of that
particular communication channel to communicate and exchange data
with other members of the same communication channel in real time
or near-real time. In this example, a group or organization can be
the owner of the database shard and can control where and how the
related data is stored.
[0061] In some examples, individual users can be associated with a
database shard within the datastore 172 that stores data related to
a particular user account. For example, a database shard may store
electronic communication data associated with an individual user,
which enables the user to communicate and exchange data with other
users of the communication platform in real time or near-real time.
In some examples, the user itself can be the owner of the database
shard and has control over where and how the related data is
stored.
[0062] The communication interface(s) 162 can include one or more
interfaces and hardware components for enabling communication with
various other devices (e.g., the user computing device 154), such
as over the network(s) 156 or directly. In some examples, the
communication interface(s) 162 can facilitate communication via
Websockets, Application Programming Interfaces (APIs) (e.g., using
API calls), HypterText Transfer Protocols (HTTPs), etc.
[0063] The server(s) 152 can further be equipped with various
input/output devices 164 (e.g., I/O devices). Such I/O devices 164
can include a display, various user interface controls (e.g.,
buttons, joystick, keyboard, mouse, touch screen, etc.), audio
speakers, connection ports and so forth.
[0064] In at least one example, the user computing device 154 can
include one or more processors 182, computer-readable media 184,
one or more communication interfaces 186, and input/output devices
188.
[0065] In at least one example, each processor of the processor(s)
182 can be a single processing unit or multiple processing units,
and can include single or multiple computing units or multiple
processing cores. The processor(s) 182 can comprise any of the
types of processors described above with reference to the
processor(s) 158 and may be the same as or different than the
processor(s) 158.
[0066] The computer-readable media 184 can comprise any of the
types of computer-readable media 184 described above with reference
to the computer-readable media 160 and may be the same as or
different than the computer-readable media 160. Functional
components stored in the computer-readable media can optionally
include at least one application 190 and an operating system
192.
[0067] In at least one example, the application 190 can be a mobile
application, a web application, or a desktop application, which can
be provided by the communication platform or which can be an
otherwise dedicated application. In some examples, individual user
computing devices associated with the environment 150 can have an
instance or versioned instance of the application 190, which can be
downloaded from an application store, accessible via the Internet,
or otherwise executable by the processor(s) 182 to perform
operations as described herein. That is, the application 190 can be
an access point, enabling the user computing device 154 to interact
with the server(s) 152 to access and/or use communication services
available via the communication platform. In at least one example,
the application 190 can facilitate the exchange of data between and
among various other user computing devices, for example via the
server(s) 152. In at least one example, the application 190 can
present user interfaces, as described herein. In at least one
example, a user can interact with the user interfaces via touch
input, keyboard input, mouse input, spoken input, or any other type
of input.
[0068] A non-limiting example of a user interface 194 is shown in
FIG. 1A. As illustrated in FIG. 1A, the user interface 194 can
present data associated with one or more communication channels
and, in some examples, one or more workspaces. That is, in some
examples, the user interface can integrate data from multiple
workspaces into a single user interface so that the user (e.g., of
the user computing device 154) can access and/or interact with data
associated with the multiple workspaces that he or she is
associated with and/or otherwise communicate with other users
associated with the multiple workspaces. In some examples, the user
interface 194 can include a first region 196, or pane, that
includes indicator(s) (e.g., user interface element(s) or
object(s)) associated with workspace(s) with which the user (e.g.,
account of the user) is associated. In some examples, the user
interface 194 can include a second region 198, or pane, that
includes indicator(s) (e.g., user interface element(s) or
object(s)) representing data associated with the workspace(s) with
which the user (e.g., account of the user) is associated.
[0069] In at least one example, the user interface 194 can include
a third region 199, or pane, that can be associated with a data
feed (or, "feed") indicating messages posted to and/or actions
taken with respect to one or more communication channels and/or
other virtual spaces for facilitating communications (e.g., a
virtual space associated with direct message communication(s), a
virtual space associated with event(s) and/or action(s), etc.) as
described herein. In at least one example, data associated with the
third region 199 can be associated with the same or different
workspaces. That is, in some examples, the third region 199 can
present data associated with the same or different workspaces via
an integrated feed. In some examples, the data can be organized
and/or is sortable by workspace, time (e.g., when associated data
is posted or an associated operation is otherwise performed), type
of action, communication channel, user, or the like. In some
examples, such data can be associated with an indication of which
user (e.g., member of the communication channel) posted the message
and/or performed an action. In examples where the third region 199
presents data associated with multiple workspaces, at least some
data can be associated with an indication of which workspace the
data is associated with.
[0070] In at least one example, the operating system 192 can manage
the processor(s) 182, computer-readable media 184, hardware,
software, etc. of the server(s) 152.
[0071] The communication interface(s) 186 can include one or more
interfaces and hardware components for enabling communication with
various other devices (e.g., the user computing device 154), such
as over the network(s) 156 or directly. In some examples, the
communication interface(s) 186 can facilitate communication via
Websockets, APIs (e.g., using API calls), HTTPs, etc.
[0072] The user computing device 154 can further be equipped with
various input/output devices 188 (e.g., I/O devices). Such I/O
devices 188 can include a display, various user interface controls
(e.g., buttons, joystick, keyboard, mouse, touch screen, etc.),
audio speakers, connection ports and so forth.
[0073] While techniques described herein are described as being
performed by the workspace management component 166, the channel
management component 168, and the application 190, techniques
described herein can be performed by any other component, or
combination of components, which can be associated with the
server(s) 152, the user computing device 154, or a combination
thereof.
[0074] FIGS. 1B-5 illustrate exemplary techniques including
exemplary user interfaces ("UI") for reacting to a message, in
accordance with some embodiments. These figures are also used to
illustrate the processes described below, including the processes
in FIGS. 6A-B.
[0075] FIGS. 1B-E illustrate exemplary user interfaces of a
group-based communication system, in accordance with some
embodiments. In some embodiments, the user interfaces are displayed
at an electronic device. The electronic device can be a client
device or user device of the group-based communication system. The
client device can be a desktop computer, a laptop computer, a
smartphone, a netbook, a tablet computer, a wearable device, etc.
The client device is in communication with one or more servers of
the group-based communication system, as described in detail
herein.
[0076] A group-based communication system can support communication
and collaboration among one or more groups of users. Specifically,
a group-based communication system can provide a virtual
communication environment that is accessible to only a defined
group of users in the group-based communication system. The
group-based communication channel can provide user interfaces for
displaying communications posted by channel members. The virtual
communication environment is also referred to as a "group-based
communication channel" or "channel." In some embodiments, two
different channels can be associated with the same group of users
in the group-based communication system.
[0077] The defined group of users can include users from an
organization (e.g., all or a subset of employees in a company) or
users from multiple organizations (e.g., a subset of employees in
company A and a subset of employees in company B). In some
embodiments, access to a channel can be granted to a non-member
user by a member user of a channel (e.g., by validating a request
to join, by sending an invitation to join).
[0078] In some embodiments, a group-based communication system
includes a channel list pane. The channel list pane is configured
to display one or more lists of group-based communication channels
accessible to a user. The channel list pane can further include
user affordances for indicating which channel has new messaging
communications and for selecting channels. The channel list pane
can include additional information, such as notifications, channel
names, name of the user, etc.
[0079] In some embodiments, the group-based communication system
includes a thread communication pane. The thread communication pane
is configured to display a selected group-based communication
channel. For example, the thread communication panel can include
user interfaces for displaying messages. A message can comprise
digital content such as text data, image data, video data, audio
data, attachments, workflows, objects, or any combination thereof.
The message can be associated with metadata (e.g., a sending user
identifier, a message identifier, a global identifier, a
group-based communication channel identifier, a timestamp). The
messages can be organized in one or more threads. A channel member
can respond to and/or react to a message, as described in detail
below.
[0080] With reference to FIG. 1B, user interface 100 is a user
interface of a group-based communication system (e.g., FIG. 1A) and
comprises a channel list pane displaying a plurality of group-based
communication channels ("#General," "#Architecture,"
"#Engineering," and "#Music"). Each channel provides a virtual
communication environment or feed that is configured to display
messaging communications posed by channel members (e.g., validated
users accessing the environment using client devices). In the
depicted example, the user, Taylor Jones, has a member of the four
listed channels.
[0081] In the depicted example in FIG. 1B, the "#General" channel
has been selected in the communication system. Accordingly, thread
communication pane 102 of the user interface 100 displays
information associated with the selected group-based communication
channel. The thread communication pane may include a variety of
information, such as messaging communications, and may include a
variety of actuators for initiating requests.
[0082] The user interface 100 allows the user to react to a
message, respond to the message, or both. As depicted example, upon
a user selection of a given message 103 (e.g., via a mouse hover
input indicated by cursor 104) in a message area, a menu 106 is
displayed. The menu 106 includes a user affordance 108 for reacting
to the selected message and a user affordance 109 for responding to
the selected message in a thread. The user can also respond to the
message using the text box 105.
[0083] The group-based communication platform allows the user to
react to a message (e.g., using one or more emojis) and to respond
to the message (e.g., by composing a new message, which may include
one or more emojis, one or more text strings, one or more
attachments, or any combination thereof). As described below, the
user interfaces for inputting reactions and responses are distinct;
further, the user interfaces for displaying reactions and responses
are distinct as well.
[0084] Upon a user selection of the user affordance 108, the
electronic device displays one or more user interfaces for reacting
to the message. With reference to FIG. 1C, the electronic device
displays an emoji menu 112. The emoji menu comprises one or more
collections of emojis, such as a collection of frequently used
emojis (frequency of usage by the user above a predefined
threshold), a collection of favorite emojis (e.g., as previously
specified by the user), and a collection of emojis directed to a
topic (e.g., "Smileys and People").
[0085] In response to a user selection of an emoji in the menu 112,
the emoji is displayed as a reaction to the message. For example,
with reference to FIG. 1E, the graphical representation of the
selected emoji 132 is shown in a reaction area 134 as a reaction to
the message. In the depicted example, an icon 136 is displayed in
the reaction area to provide a second entry point to menu 112.
Additional user interfaces and methods for reacting to a message
are described in detail herein.
[0086] Upon a user selection of the user affordance 109, the
electronic device displays one or more user interfaces for
responding to the message. With reference to FIG. 1D, the
electronic device displays a user affordance 122. The user
affordance 122 allows the user to compose a new message as a
response to the selected message 103. In the depicted example, the
user affordance 122 allows the user to enter, edit, and format the
message, which can comprise one or more text strings, images,
emojis, and attachments. While the user interface 120 displays the
user affordance 122 is a pane separate from the thread
communication pane 102, it should be appreciated that the user
affordance 122 can be displayed in other manners (e.g., underneath
the message 103 within the channel panel 102).
[0087] While the user affordance 122 is provided in response to a
user selection of the user affordance 109, it should be appreciated
that the user affordance can be displayed without a user selection
(e.g., in the channel pane).
[0088] When the user completes composing the response to the
selected message (e.g., by selecting "Send" in the user affordance
122), the response is displayed in the thread communication pane
102. For example, with reference to FIG. 1E, the response ("Thanks!
My reaction is above.") is shown in a response area 138 as a
response to the message. The reaction area 136 and the response
area 138, as shown in FIG. 1E, are two distinct areas.
[0089] FIGS. 2A-I, 3A-D, 4, and 5 illustrate additional user
interfaces for reacting to a message in a group-based communication
system. While the embodiments of the present disclosure are
described in the context of a group-based communication system, it
should be appreciated that they are not so limited. The user
interfaces and methods for reacting to a message can be applied in
any communication system (e.g., messaging systems, email
systems).
[0090] FIGS. 2A-G illustrate exemplary user interfaces for reacting
to a message comprising one or more emojis, in accordance with some
embodiments. With reference to FIG. 2A, an electronic device (e.g.,
a client device of a group-based communication system) receives a
message from another channel member, John Smith (represented by
icon 202). The message can comprise one or more text string, one or
more emojis, one or more images, one or more attachments, or any
combination thereof. The message includes text strings (e.g.,
"Hello! Pls . . . ") and multiple emojis. In some embodiments, the
message is received from a server (e.g., a server of a group-based
communication system) or a client device. As described with
reference to FIGS. 1B-D, the user can react to the message by
selecting the user affordance 201 of menu 203.
[0091] In some embodiments, the electronic device receives the
message in one or more data structures (e.g., a JSON formatted
representation), which can include data representing the various
components of the message (e.g., text strings, emojis, images,
attachments) and data specifying the style/formatting/positioning
of these components. In some embodiments, the emoji within the
message can be represented by image data or a reference to image
data (e.g., a text identifier such as ":thumbsup:") in the data
structure.
[0092] In some embodiments, the electronic device processes the
message so that the emojis in the message can be rendered as
selectable graphical representations. For example, the electronic
device can parse the data structures representing the message to
identify the emojis within the message, and retrieve the image data
corresponding to the emojis. Rather than rendering the emojis as
plain images or ASCII characters, the electronic device can
automatically render the emojis as UI components (e.g., buttons)
such that the user can interact with the emojis within the message
by clicking on them, as shown in FIG. 2B.
[0093] In some embodiments, the processing of the message can be
performed at the electronic device, at a server (e.g., a server of
a group-based communication platform), or a combination thereof.
For example, the server can receive the message (e.g., from John
Smith's device), parse the data structures representing the
message, and update the data structures to specify that the emojis
are to be rendered as selectable graphical representations (e.g.,
buttons). The updated data structure can be then transmitted to the
electronic device such that the message can be rendered
accordingly.
[0094] With reference to FIG. 2B, the electronic device displays
the message in a message area 204. The displayed message comprises
selectable graphical representations of the emojis that can be
selected as reactions (also referred to as reactive emojis). In
other words, the eyes emoji 206 and the six thumbs-up emojis are
all selectable by the user within the message. In some examples,
based on the context of the message, a collection of one or more
emojis may be recommended for display in the message using
embeddings or other natural language processing techniques to
determine emojis that correspond with the semantics of the message.
The recommended collection of emojis may be presented to the user
during composition of the message such that the user has the option
to include the collection of emojis in the message that is
posted.
[0095] The electronic device can indicate that the emojis within
the message are selectable. For example, as shown in FIG. 2C, when
the cursor hovers over the eyes emoji 206, the electronic device
displays the cursor as a hand to indicate that the emoji can be
selected. In some embodiments, upon receiving a predetermined input
(a hover input of predefined duration range, a tap input of
predefined duration range), the electronic device can display an
explanation of the emoji. For example, as shown in FIG. 2C, the
explanation can be a tooltip 208 indicating the name of the emoji
and its selectable nature. In some embodiments, the explanation can
specify the input needed to select the emoji (e.g., tap and hold
for 2 seconds, hold the Ctrl key and click).
[0096] The electronic device can receive, from the user, an input
on the selectable graphical representation of the eyes emoji 206 in
the displayed message in the message area 204. The input can be a
voice command, a mouse click, a keyboard input, a tap on a
touch-enabled display, a tap-and-hold (e.g., over a predefined
duration), or any combination thereof (e.g., hold the Ctrl key and
click). In some embodiments, the input for selecting the emoji 206
can vary depending on the type of the electronic device (e.g.,
desktop, smartphone) and the input devices connected to the
electronic device (e.g., mouse, keyboard, touch-enabled display).
The input can be specified by the electronic device, for example,
using tooltip 208.
[0097] With reference to FIG. 2D, in response to receiving the
input, the electronic device displays, in a reaction area 210, a
reaction to the message based on the selected graphical
representation. In the depicted example, the reaction area is
underneath the message area. The reaction is identical to the
selected emoji 206. In other words, the electronic device displays
a separate instance of the eyes emoji in the reaction area 210 as a
reaction to the message.
[0098] Reacting to a message is different from responding to the
message in some embodiments. The user can react to the message
using emojis only, and the emojis are accessible via the selectable
graphical representations within the message or via user affordance
212 of FIG. 2E (the selection of which can cause an emoji menu to
be displayed as described in FIGS. 1B-E). The reactions are shown
in reaction area 210.
[0099] In contrast, the user interfaces for responding to the
message and displaying the response are different. With reference
to FIG. 2E, the user can respond to the message via user affordance
214 (the selection of which can cause a user affordance for
composing a message to be displayed in a response area as described
in FIGS. 1B-E and 2H-I). The response to the message by the user is
shown in an area 216 (i.e., response area) different from the
reaction area 210, as shown in FIG. 2E.
[0100] Also with reference to FIG. 2E, the user can select some or
all of the selectable graphical representations within the message
as reactions to the message. In the depicted example, the user has
selected all of the selectable graphical representations within the
message. Accordingly, the eyes emoji and the six thumbs-up emojis
are displayed in the reaction area 210. An emoji can be selected
multiple times by multiple users in the channel as their reactions
to the message and the reaction area 210 can indicate the number of
times the emoji was selected.
[0101] In some embodiments, the user can remove a reaction from the
reaction area 210 by selecting the selectable graphical
representation in the message area for a second time. In FIG. 2F,
the user selects the emoji 206 within the message for a second
time. In response to the second selection, the eyes emoji is
removed from the reaction area 210, as shown in FIG. 2G. In some
embodiments, a third selection of the eyes emoji 206 can cause the
eyes emoji to be added back onto the reaction area 210. In other
words, the selection of the eyes emoji can cause the reaction area
to toggle between displaying the eyes emoji and not displaying the
eyes emoji as a reaction). In some embodiments, the selection of
the eyes emoji can be done via the selectable graphical
representation 206, via a full emoji menu (e.g., menu 112), or a
combination thereof.
[0102] In some embodiments, a user may not be able to use an emoji
as a reaction. For example, the emoji may require special
permission to use, and the user does not have permission to react
using the emoji. As another example, the emoji is not installed at
the electronic device. As another example, the emoji is not
associated with the user's account.
[0103] In some embodiments, the electronic device and/or the server
can make a determination as to whether a user can use an emoji
before rendering the message. If it is determined that the user
cannot use the emoji, the electronic device can display the emoji
as disabled (e.g., not selectable or grayed out) in the message
area. In some embodiments, the electronic device can provide
follow-up user interfaces for installing the emoji (or associated
emoji collection), requesting permission to use the emoji (or
associated emoji collection), downloading the emoji (or associated
emoji collection), purchasing the emoji (or associated emoji
collection, or obtaining the emoji via other means. In some
embodiments, if an emoji is not available to a user based on
his/her organization's policies, the emoji is not displayed in the
message. In some embodiments, a text version of the emoji is
displayed for selection when the emoji cannot be rendered or is not
available.
[0104] In some embodiments, the electronic device and/or the server
can make a determination as to whether a user can use an emoji
after the message is rendered and the user has selected the emoji
as a reaction in the message area. For example, the electronic
device sends a notification to the server, which can determine
whether the user can use the selected emoji as a reaction. If not,
the server can send a warning to the electronic device. After
receiving the warning, the electronic device can notify the user
that the reaction has failed, revert the reaction if it has been
made, display the emoji in the message area as disabled, and/or
provide follow-up user interfaces as described above.
[0105] With reference to FIG. 2H, upon a user selection of the user
affordance 221, the electronic device displays one or more user
interfaces for responding to the message. The electronic device
displays a response input area 223 comprising a user affordance 222
in a thread pane 230. The response input area allows the user to
compose a new message as a response to the selected message. In
some examples, the response input area is for responding to the
message as a thread of the original message. In the depicted
example, the user affordance 222 allows the user to enter, edit,
and format the message, which can comprise one or more text
strings, images, emojis, and attachments. While the user interface
displays the user affordance 222 is in a thread pane separate from
the channel pane, it should be appreciated that the user affordance
222 can be displayed in other manners (e.g., underneath the message
within the channel panel).
[0106] The user can also react to the message from within the
thread pane 230. Reacting to the message in the thread pane can
result in the emoji being displayed in the channel pane.
[0107] While the user affordance 222 is provided in response to a
user selection of the user affordance 211, it should be appreciated
that the user affordance can be displayed without a user selection
(e.g., in the channel pane).
[0108] When the user completes composing the response to the
selected message (e.g., by selecting "Send" in the user affordance
222), the response is displayed in the channel pane. For example,
with reference to FIG. 2I, the response ("Thanks! My reaction is
above.") is shown in a response area 238 as a response to the
message. The reaction area 234 and the response area 238, as shown
in FIG. 2I, are two distinct areas.
[0109] FIG. 3A-D illustrate exemplary user interfaces for reacting
to a message, in accordance with some embodiments. With reference
to FIG. 3A, an electronic device receives a message and displays
the message in a message area 302. As depicted, the message
received is an email message. In some embodiments, the message is
displayed by a group-based communication system as discussed above
with reference to FIGS. 1B-E and 2A-I.
[0110] The electronic device identifies, based on the message, one
or more reactive emojis to recommend. The electronic device can
identify the emojis based on the content of the message, the
context of the message, or a combination thereof. The content of
the message includes text strings, image data, emojis, attachments,
or any combination thereof. The context of the message includes the
sender identity, the time stamp, other metadata associated with the
message, how the message relates to the rest of the conversation
(e.g., whether it is a part of a thread), frequently used emojis in
the present channel (e.g., usage above a predefined threshold), or
any combination thereof. In some embodiments, the electronic device
can analyze (e.g., parse) the message based on one or more
predefined rules to identify what emojis to recommend as reactions.
In some embodiments, after one or more reactive emojis (e.g.,
thumb-up emoji) are identified, additional emojis that are likely
to be found together as reactions (e.g., thumbs-down emoji) can be
identified.
[0111] For example, with reference to FIG. 3A, the message is an
email message with an attachment and the email message is sent via
an application (i.e., the Email App). Based on some or all of these
parameters, the electronic device can determine to recommend an
eyes emoji and a check mark emoji.
[0112] The electronic device can identify the emojis based on the
content of the message, the context of the message, or a
combination thereof. In some embodiments, one or more rules can
associate predefined keywords with emojis. In some embodiments, one
or more rules can associate certain context with emojis. The
context can be derived by parsing the text string (e.g., using
semantic parsing, natural language processing techniques,
embeddings, etc.).
[0113] In some embodiments, processing of the message to determine
reactive emojis can be performed by the electronic device, another
client device, one or more servers, or a combination thereof. For
example, the parsing and rule-based recommendation of emojis can be
performed by a server, which transmits the recommended emojis to
the electronic device to be displayed in the reaction area of the
message.
[0114] The electronic device can display one or more graphical
representations of the one or more reactive emojis. With reference
to FIG. 3A, the electronic device displays the graphical
representations of the identified emojis (eyes emoji and check
emoji) in a reaction area 304. As shown, the graphical
representations are shown to be inactive, indicating that the
graphical representations have not been selected. An inactive
version of a graphical representation can be indicated in many
manners (e.g., a grayed out version of the graphical
representation, a version with dash lines rather than solid lines,
some other muted manners.)
[0115] In some embodiments, the electronic device can provide an
explanation of the graphical representations of the reactive emojis
upon receiving a predefined user input. With reference to FIG. 3A,
when the cursor hovers over a selectable graphical representation
306, the electronic device displays a tooltip providing an
explanation of the graphical representation. Similarly, with
reference to FIG. 3B, when the cursor hovers over a selectable
graphical representation 308, the electronic device displays a
tooltip providing an explanation of the graphical representation
308. In some embodiments, the tooltip can further indicate that a
selection of the graphical representation would trigger a reaction
and/or specify the selection (e.g., click, tap, tap-and-hold).
[0116] The electronic device can receive, from a user, an input
selecting a graphical representation of the one or more reactive
graphical representations and, in response to receiving the input,
display a reaction to the message in a reaction area. With
reference to FIG. 3B, after the electronic device receives a
selection of the eyes emoji 306, the electronic device displays the
reaction in the reaction area 304. Here, displaying the reaction
comprises updating the display of the emoji 306 so as to display an
active version of the emoji (e.g., without any grayed-out or other
muted effects). Similarly, with reference to FIG. 3C, after the
electronic device receives a selection of the check emoji 308, the
electronic device displays the reaction in the reaction area 304 by
displaying an active version of the check emoji.
[0117] In some embodiments, the selections of a reactive emoji can
cause the reaction area to toggle between displaying an active
version of a reactive emoji and displaying an inactive version of
the reactive emoji. In some embodiments, the selections of a
reactive emoji can be done via the selectable graphical
representation 306, via a full emoji menu (e.g., menu 112), or a
combination thereof. With reference to FIG. 3D, the electronic
device can provide an explanation of the reactive emoji based on a
current state of the reactive emoji. As shown, when the reactive
emoji is in an active state, the tooltip indicates that the
reactive emoji has been selected as a reaction and that the user
can click to inactivate the emoji.
[0118] The electronic device can display a response input area for
inputting a response to the message. The response input area is
distinct from the reaction area 304. In some embodiments, the
response input area is displayed underneath the reaction area 304
and includes a user affordance (e.g., user affordance 122 or 222)
for composing a new message. In some embodiments, the response
input area is displayed in a different pane from the channel pane,
as shown in FIGS. 1D and 2H. As described above, responding to a
message can be distinct from reacting to the message. The areas for
inputting reactions (e.g., area 304) and inputting responses (e.g.,
user affordance 122) are distinct, and the areas for displaying
reactions (e.g., area 304) and displaying responses (e.g., response
area 138) are also distinct.
[0119] FIG. 4 illustrates another exemplary user interface for
reacting to a message, in accordance with some embodiments. An
electronic device receives a message and displays the message in a
message area 402. The message comprises a text string ("I just
reviewed it and ready to provide feedback").
[0120] The electronic device identifies, based on the message, one
or more reactive emojis to recommend. As discussed above, the
electronic device can identify the emojis based on the content of
the message, the context of the message, or a combination thereof.
In some embodiments, one or more rules can associate predefined
keywords with emojis. For example, the word "review" can be
pre-associated with the eyes emoji and the check emoji (as shown by
410 and 412). In some embodiments, one or more rules can associate
certain context with emojis. For example, if the message refers to
a file that the user shared in the channel earlier, a high-five
emoji is provided (as shown by 414). The context can be derived by
parsing the text string (e.g., using semantic parsing, natural
language processing techniques, embeddings, etc.).
[0121] In some embodiments, processing of the message to determine
reactive emojis can be performed by the electronic device, another
client device, one or more servers, or a combination thereof. For
example, the parsing and rule-based recommendation of emojis can be
performed by a server, which transmits the recommended emojis to
the electronic device to be displayed in the reaction area of the
message.
[0122] With reference to FIG. 4, the electronic device displays one
or more graphical representations of the one or more reactive
emojis via a menu (i.e., menu 404). In some embodiments, the menu
404 is displayed responsive to a user input (e.g., a hover input
over the message).
[0123] FIG. 5 depicts another example of a menu. Emoji menu 504 can
be displayed responsive to a user input (e.g., a selection of user
affordance 108 of FIG. 1C or 136 of FIG. 1E). The emoji menu 504
comprises a section 506 ("Handy Reactions") for displaying the one
or more reactive emojis identified based on the message.
[0124] With reference to FIGS. 4 and 5, the electronic device can
receive, from a user, an input selecting a graphical representation
of the one or more reactive graphical representations (e.g., from
menu 404 or menu 504) and in response to receiving the input,
displaying a reaction to the message in a reaction area, as shown
in FIGS. 1E and 2I. The electronic device can display a response
input area (e.g., user affordance 122 or 222) for inputting a
response to the message, as shown in FIGS. 1D and 2H.
[0125] As described above with reference to FIGS. 2A-I, a user may
not be able to use an emoji as a reaction. In some embodiments, the
electronic device and/or the server can make a determination as to
whether a user can use an emoji before rendering the message. If it
is determined that the user cannot use the emoji, the electronic
device can display the emoji as disabled (e.g., not selectable) in
the area 304, menu 404, and/or emoji menu 504. In some embodiments,
the electronic device can forego displaying the emoji from the area
304, menu 404, and/or emoji menu 504. In some embodiments, the
emoji is rendered as text or ASCII characters. In some embodiments,
the electronic device can provide follow-up user interfaces for
installing the emoji (or associated emoji collection), requesting
permission to use the emoji (or associated emoji collection),
downloading the emoji (or associated emoji collection), purchasing
the emoji (or associated emoji collection, or obtaining the emoji
via other means.
[0126] In some embodiments, the electronic device and/or the server
can make a determination as to whether a user can use an emoji
after the user has selected the emoji as a reaction from the area
304, menu 404, and/or emoji menu 504. For example, the electronic
device sends a notification to the server, which can determine
whether the user can use the selected emoji as a reaction. If not,
the server can send a warning to the electronic device. After
receiving the warning, the electronic device can notify the user
that the reaction has failed, revert the reaction if it has been
made, display the emoji in the area 304, menu 404, and/or emoji
menu 504 as disabled (or remove the emoji), and/or provide
follow-up user interfaces as described above.
[0127] In some embodiments, in response to receiving a user
selection of a reactive emoji (e.g., from message area 204, area
304, menu 404, and/or emoji menu 504), the electronic device can
launch an application and/or trigger a workflow associated with the
selected emoji. For example, a ticket emoji, when clicked, results
in a ticket also being filed. In some embodiments, the selected
emoji is associated with an API that causes an application or
workflow to be launched.
[0128] FIG. 6A illustrates process 600, according to various
examples. Process 600 is performed, for example, using one or more
electronic devices implementing a software platform. In some
examples, process 600 is performed using a client-server system,
and the blocks of process 600 are divided up in any manner between
the server and a client device. In other examples, the blocks of
process 600 are divided up between the server and multiple client
devices. Thus, while portions of process 600 are described herein
as being performed by particular devices of a client-server system,
it will be appreciated that process 600 is not so limited. In other
examples, process 600 is performed using only a client device or
only multiple client devices. In process 600, some blocks are,
optionally, combined, the order of some blocks is, optionally,
changed, and some blocks are, optionally, omitted. In some
examples, additional steps may be performed in combination with the
process 600. Accordingly, the operations as illustrated (and
described in greater detail below) are exemplary by nature and, as
such, should not be viewed as limiting.
[0129] At block 602, an exemplary system (e.g., one or more
electronic devices) displays the message in a message area (e.g.,
message area 302). At block 604, the system identifies, based on
the message, one or more reactive emojis (e.g., emojis 306, 308,
410, 412, 414, Handy Reactions in FIG. 5). At block 606, the system
displays one or more graphical representations of the one or more
reactive emojis. At block 608, the system receives, from a user, an
input selecting a graphical representation of the one or more
reactive graphical representations. At block 610, the system, in
response to receiving the input, displays a reaction to the message
in a reaction area (e.g., reaction area 304). At block 612, the
system displays a response input area for inputting a response to
the message (e.g., response input area 223).
[0130] In some embodiments, displaying the graphical
representations involves displaying inactive versions (e.g., grayed
out versions) of the graphical representations in the reaction
area. In some embodiments, displaying the reaction to the message
involves displaying an active version of the selected graphical
representation in the reaction area (e.g., FIG. 3C).
[0131] In some embodiments, the one or more reactive emojis are
identified based on semantic context of the message.
[0132] In some embodiments, the system determines whether a user
has permission to use an emoji of the one or more reactive emojis.
In accordance with a determination that the user does not have
permission to use the emoji, the system displays a disabled version
of the emoji.
[0133] In some embodiments, a user interface is displayed for
installing the emoji.
[0134] In some embodiments, identifying the one or more emojis
includes determining that the message includes a file. In some
embodiments, the one or more emojis is identified based on the
file.
[0135] In some embodiments, one or more emojis are identified based
on a determination that the message includes a keyword and the
keyword is mapped to a predetermined emoji.
[0136] In some embodiments, the system launches an application
associated with the selected graphical representation in response
to the user selecting an emoji.
[0137] FIG. 6B illustrates process 650, according to various
examples. Process 650 is performed, for example, using one or more
electronic devices implementing a software platform. In some
examples, process 650 is performed using a client-server system,
and the blocks of process 650 are divided up in any manner between
the server and a client device. In other examples, the blocks of
process 650 are divided up between the server and multiple client
devices. Thus, while portions of process 650 are described herein
as being performed by particular devices of a client-server system,
it will be appreciated that process 650 is not so limited. In other
examples, process 650 is performed using only a client device or
only multiple client devices. In process 650, some blocks are,
optionally, combined, the order of some blocks is, optionally,
changed, and some blocks are, optionally, omitted. In some
examples, additional steps may be performed in combination with the
process 650. Accordingly, the operations as illustrated (and
described in greater detail below) are exemplary by nature and, as
such, should not be viewed as limiting.
[0138] At block 652, a system (e.g., one or more electronic devices
including a user computing device) displays a message comprising
one or more emojis in a message area (e.g., message area 204),
wherein the displayed message comprises one or more selectable
graphical representations of the one or more emojis (e.g., emoji
206). At block 654, the system receives, from a user, an input on a
selectable graphical representation of the one or more selectable
graphical representations in the displayed message (e.g., FIG. 2B).
At block 656, the system, in response to receiving the input,
displays, in a reaction area (e.g., reaction area 210) different
from the message area, a reaction to the message based on the
selected graphical representation.
[0139] In some embodiments, one or more emojis is identified based
on a keyword used in the message.
[0140] Although the disclosure and examples have been fully
described with reference to the accompanying figures, it is to be
noted that various changes and modifications will become apparent
to those skilled in the art. Such changes and modifications are to
be understood as being included within the scope of the disclosure
and examples as defined by the claims.
[0141] The foregoing description, for purpose of explanation, has
been described with reference to specific embodiments. However, the
illustrative discussions above are not intended to be exhaustive or
to limit the invention to the precise forms disclosed. Many
modifications and variations are possible in view of the above
teachings. The embodiments were chosen and described in order to
best explain the principles of the techniques and their practical
applications. Others skilled in the art are thereby enabled to best
utilize the techniques and various embodiments with various
modifications as are suited to the particular use contemplated.
* * * * *