IP Library Granted Patent US 11,637,714
Granted Patent B2
US 11,637,714 · App. 17/086,287 · Granted Apr 25, 2023

Embeddings-based discovery and exposure of communication platform features

Inventors: Aaron Mauer (New York, NY); Zhifeng Deng (Fremont, CA); Adam Oliner (San Francisco, CA)
Assignee: Salesforce, Inc.
H04L12/1813H04L51/04H04L51/216
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,637,714
App. No.
17/086,287
Granted
Apr 25, 2023
Kind
B2
Abstract

Discovery of communication platform features or exposure of such features to the user may include generating embeddings for a variety of types of communication platform content and communications. These embeddings may be used to characterize and compare various communication platform features and ultimately expose these features to a user when the user may not have otherwise encountered them. The embeddings may additionally or alternatively be used to determine a degree of alignment.

Claims (84)

1. A method, implemented at least in part by a server computing device associated with a communication platform, comprising:

receiving, via the communication platform, communications associated with a first user, wherein the communication platform includes a plurality of channels in which different sets of users are authorized to access and post messages;

identifying, based at least in part on the communications, a representation of a set including at least a first channel of the plurality of channels or a second user with which the first user has interacted, via at least one channel of the plurality of channels, the representation comprising an identification of the first channel or the second user and a weight associated with the identification that indicates a pattern of interactions by the first user with the first channel or the second user;

identifying, based at least in part on a first embedding associated with the representation, a second channel of the plurality of channels or a third user;

determining that a likelihood of interaction by the first user with the second channel or the third user satisfies a target metric; and

based at least in part on the likelihood of interaction satisfying the target metric, causing a communication, associated with the first user and sent via the communication platform, to be associated with the second channel or the third user.

2. The method of claim 1 , further comprising at least one of:

causing the communication associated with the first user to be associated with the second channel based at least in part on a similarity between the first embedding and a second embedding associated with a data structure, or

causing the first user to be added to the second channel based at least in part on the similarity.

3. The method of claim 1 , wherein causing the communication associated with the first user to be associated with the second channel or the third user is based at least in part on a similarity between the first embedding and a second embedding that is associated with the communication.

4. The method of claim 3 , wherein the second embedding is based at least in part on at least one of a portion of a graph indicating a degree of interaction between each of the first channel, the second channel, the first user, and the second user.

5. The method of claim 2 , wherein:

receiving the communications is in response to the first user joining the first channel; and

the method further comprises:

in response to the first user joining the first channel, transmitting, to a computing device associated with the first user, a recommendation to join the second channel; and

causing the first user to be added to the second channel responsive to receiving an acceptance of the recommendation.

6. The method of claim 3 , wherein:

receiving the communications comprises receiving a first fragment of a draft message indicating one or more users identified as recipients;

the second embedding is based at least in part on a portion of the representation indicating a degree of interaction between the second user or the third user and at least one of channels or users;

a third embedding is based at least in part on a second portion of the representation indicating interaction of the one or more users with the at least one of the channels or the users; and

the method further comprises causing the communication to be associated with the second channel or the third user based at least in part on a second similarity between the third embedding and the second embedding.

7. The method of claim 6 , further comprising:

receiving a second fragment of the draft message comprising a text portion of the draft message;

determining a first semantic embedding based at least in part on the text portion, the first semantic embedding being in a different embedding space than the first embedding, the second embedding, and the third embedding; and

transmitting a recommendation to associate a fourth user with the draft message based at least in part on the first semantic embedding.

8. The method of claim 1 , further comprising generating a data structure comprising the first embedding that is based at least in part on the representation, wherein:

identifying the representation comprises generating a graph comprising a first node associated with the first channel, a second node associated with the first user, and an edge associating the weight, the first node, and the second node; and

generating the data structure comprises generating the first embedding based at least in part on the graph.

9. The method of claim 8 , wherein the weight is based at least in part on at least one of:

a first number of communications presented to the first user via the first channel;

a second number of communications transmitted by the first user via the first channel;

a third number of files opened by or transmitted by the first user via the first channel;

a fourth number of communications associated with the first channel and reacted to by the first user; or

a fifth number of users invited to the first channel by the first user.

10. A system comprising:

one or more processors; and

a memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform operations comprising:

receiving, via a communication platform, communications associated with a first user, wherein the communication platform includes a plurality of channels in which different sets of users are authorized to access and post messages;

identifying, based at least in part on the communications, a representation of a set including at least a first channel of the plurality of channels or a second user with which the first user has interacted, via at least one channel of the plurality of channels, the representation comprising an identification of the first channel or the second user and a weight associated with the identification that indicates a pattern of interactions by the first user with the first channel or the second user;

identifying, based at least in part on a first embedding associated with the representation, a second channel of the plurality of channels or a third user;

determining that a likelihood of interaction by the first user with the second channel or the third user satisfies a target metric; and

based at least in part on the likelihood of interaction satisfying the target metric, causing a communication, associated with the first user and sent via the communication platform to be associated with the second channel or the third user.

11. The system of claim 10 , wherein:

causing the communication associated with the first user to be associated with either the second channel or the third user comprises at least one of:

causing the communication associated with the first user to be associated with the second channel based at least in part on a first similarity between the first embedding and a second embedding of a data structure, or

causing the first user to be added to the second channel based at least in part on the first similarity; or

wherein causing the communication associated with the first user to be associated with the second channel or the third user is based at least in part on a second similarity between the first embedding and a third embedding that is associated with the communication.

12. The system of claim 11 , wherein the second embedding is based at least in part on a portion of a graph indicating at least one of a degree of interaction between each of the first channel, the second channel, the first user, and the second user.

13. The system of claim 10 , wherein:

receiving the communications is in response to the first user joining the first channel; and

the operations further comprise:

in response to the first user joining the first channel, transmitting, to a computing device associated with the first user, a recommendation to join the second channel, wherein the recommendation is based at least in part on a first similarity between the first embedding and a second embedding; and

causing the first user to be added to the second channel based at least in part on the first similarity responsive to receiving an acceptance of the recommendation.

14. The system of claim 11 , wherein:

receiving the communications comprises receiving a first fragment of a draft message indicating one or more users identified as recipients;

the second embedding is based at least in part on a portion of the representation indicating a degree of interaction between the second user or the third user and at least one of channels or users;

the third embedding is based at least in part on a second portion of the representation indicating interaction of the one or more users with the at least one of the channels or the users; and

the operations further comprise causing the communication to be associated with the second channel or the third user based at least in part on the second similarity between the third embedding and the second embedding.

15. The system of claim 14 , wherein the operations further comprise:

receiving a second fragment of the draft message comprising a text portion of the draft message;

determining a first semantic embedding based at least in part on the text portion, the first semantic embedding being in a different embedding space than the first embedding, the second embedding, and the third embedding; and

transmitting a recommendation to associate a fourth user with the draft message based at least in part on the first semantic embedding.

16. A non-transitory computer-readable medium storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, via a communication platform, communications associated with a first user, wherein the communication platform includes a plurality of channels in which different sets of users are authorized to access and post messages;

identifying, based at least in part on the communications, a representation of a set including at least a first channel of the plurality of channels or a second user with which the first user has interacted, via at least one channel of the plurality of channels, the representation comprising an identification of the first channel or the second user and a weight associated with the identification that indicates a pattern of interactions by the first user with the first channel or the second user;

identifying, based at least in part on a first embedding associated with the representation, a second channel of the plurality of channels or a third user;

determining that a likelihood of interaction by the first user with the second channel or the third user satisfies a target metric; and

based at least in part on the likelihood of interaction satisfying the target metric, causing a communication, associated with the first user and sent via the communication platform, to be associated with second channel or the third user.

17. The non-transitory computer-readable medium of claim 16 , wherein:

causing the communication associated with the first user to be associated with the second channel or the third user comprises at least one of:

causing the communication associated with the first user to be associated with the second channel based at least in part on a first similarity between the first embedding and a second embedding of a data structure, or

causing the first user to be added to the second channel based at least in part on the first similarity; or

wherein causing the communication associated with the first user to be associated with the second channel or the third user is based at least in part on a second similarity between the first embedding and a third embedding that is associated with the communication.

18. The non-transitory computer-readable medium of claim 17 , wherein the second embedding is based at least in part on a portion of a graph indicating at least one of a degree of interaction between each of the first channel, the second channel, the first user, and the second user.

19. The non-transitory computer-readable medium of claim 17 , wherein:

receiving the communications is responsive to the first user joining the first channel; and

the operations further comprise:

in response to the first user joining the first channel, transmitting, to a computing device associated with the first user, a recommendation to join the second channel, wherein the recommendation is based at least in part on the first similarity; and

the operations comprise causing the first user to be added to the second channel based at least in part on the first similarity responsive to receiving an acceptance of the recommendation.

20. The non-transitory computer-readable medium of claim 17 , wherein:

receiving the communications comprises receiving a first fragment of a draft message indicating one or more users identified as recipients;

the second embedding is based at least in part on a portion of the representation indicating a degree of interaction between the second user or the third user and at least one of channels or users;

the third embedding is based at least in part on a second portion of the representation indicating interaction of the one or more users with the at least one of the channels or the users; and

the operations further comprise causing the communication to be associated with the second user or the third user based at least in part on the second similarity between the third embedding and the second embedding.

Assignments (4)
MERGER Recorded Nov 21, 2022
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE.COM, INC.
Reel/Frame 061972/0569 →
CHANGE OF NAME Recorded Nov 21, 2022
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 061972/0769 →
MERGER AND CHANGE OF NAME Recorded Oct 1, 2021
From: SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057683/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2020
From: MAURER, AARON; DENG, ZHIFENG; OLINER, ADAM
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 054340/0095 →
Continuity (1)
Related Publication 20220141043A1 · May 5, 2022