IP Library Granted Patent US 11,652,858
Granted Patent B2
US 11,652,858 · App. 17/348,146 · Granted May 16, 2023

Integration of communication platform functionality with a third-party application

Inventors: Steven Walling (Portland, OR); Andrew Fong (Menlo Park, CA)
Assignee: Salesforce, Inc.
H04L65/403G06F3/0484H04L67/53
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,652,858
App. No.
17/348,146
Granted
May 16, 2023
Kind
B2
Abstract

Embedding functionality of a communication platform into a third-party application is described. The communication platform can receive, from the third-party application, a request to connect to the communication platform, wherein the third-party application and the communication platform are associated with a user account. In response to receiving the request, causing an embedded user interface associated with the communication platform to be presented via a user interface of the third-party application. In an example, data input in the embedded user interface can be presented via a group-based communication user interface of the communication platform.

Claims (56)

1. A method, implemented at least in part by one or more computing devices of a group-based communication platform, for embedding functionality of the group-based communication platform with a third-party application, the method comprising:

receiving, from the third-party application, a request to connect to the group-based communication platform, wherein the third-party application and the group-based communication platform are associated with a user account of a user that is participating in, or that is to participate in, an event hosted by the third-party application during an active session of the third-party application, wherein the event is a virtual meeting scheduled to be attended by the user and one or more other users of the group-based communication platform;

identifying a virtual space, of the group-based communication platform, that is to facilitate communication between the user and the one or more other users during the event based at least in part on a determination that one or more permissions associated with the group-based communication platform indicate that the user and the one or more other users are members of the virtual space and are thereby authorized to access the virtual space;

in response to receiving the request, causing an embedded user interface representing the virtual space of the group-based communication platform to be presented via a user interface of the third-party application during the event, wherein messages communicated via the virtual space of the group-based communication platform prior to a beginning of the event are accessible to the user and the one or more other users via the embedded user interface presented during the event;

receiving, from the third-party application, data input in the embedded user interface, the data including one or more messages exchanged with the user via the virtual space during the event and during the active session of the third-party application; and

in response to receiving the data, cause the data input in the embedded user interface to be presented via a group-based communication user interface of the group-based communication platform such that the one or messages exchanged via the virtual space presented within the embedded user interface during the event are accessible via the virtual space of the group-based communication platform after termination of the event.

2. The method of claim 1 , wherein the virtual space is associated with one or more users, wherein the one or more users are associated with the active session of the third-party application, and wherein causing the embedded user interface to be presented based at least in part on a second determination that the one or more users are associated with the virtual space and the active session.

3. The method of claim 1 , wherein one or more users associated with the active session of the third-party application are not associated with the group-based communication platform, and wherein the one or more users are permitted to view the embedded user interface.

4. The method of claim 3 , further comprising:

sending an invitation to join the group-based communication platform to a client of at least one user of the one or more users; and

in response to receiving an indication of an acceptance of the invitation, causing the at least one user to be associated with the group-based communication platform.

5. The method of claim 1 , wherein the data input via the embedded user interface is stored by the group-based communication platform after termination of the active session of the third-party application.

6. The method of claim 1 , further comprising:

in response to receiving the data, generating a new virtual space; and

causing the data input in the embedded user interface to be associated with the new virtual space.

7. The method of claim 1 , further comprising:

in response to receiving the request to connect to the group-based communication platform, determining, based at least in part on context data associated with the request, the virtual space;

causing a recommendation to associate the virtual space with the active session of the third-party application to be presented via the user interface of the third-party application; and

based at least in part on receiving an indication to associate the virtual space with the active session, causing the virtual space to be presented via the embedded user interface.

8. A system associated with a group-based communication platform comprising:

one or more processors; and

one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the system to perform operations comprising:

receiving, from a third-party application, a request to connect to the group-based communication platform, wherein the third-party application and the group-based communication platform are associated with a user account of a user that is participating in, or that is to participate in, an event hosted by the third-party application during an active session of the third-party application, wherein the event is a virtual meeting scheduled to be attended by the user and one or more other users of the group-based communication platform;

identifying a virtual space, of the group-based communication platform, that is to facilitate communication between the user and the one or more other users during the event based at least in part on a determination that one or more permissions associated with the group-based communication platform indicate that the user and the one or more other users are members of the virtual space and are thereby authorized to access the virtual space;

in response to receiving the request, causing an embedded user interface representing the virtual space of the group-based communication platform to be presented via a user interface of the third-party application during the event, wherein messages communicated via the virtual space of the group-based communication platform prior to a beginning of the event are accessible to the user and the one or more other users via the embedded user interface presented during the event;

receiving, from the third-party application, data input in the embedded user interface, the data including one or more messages exchanged with the user via the virtual space during the event and during the active session of the third-party application; and

in response to receiving the data, cause the data input in the embedded user interface to be presented via a group-based communication user interface of the group-based communication platform such that the one or messages exchanged via the virtual space presented within the embedded user interface during the event are accessible via the virtual space of the group-based communication platform after termination of the event.

9. The system of claim 8 , wherein the virtual space is associated with one or more users, wherein the one or more users are associated with the active session of the third-party application, and wherein causing the embedded user interface to be presented based at least in part on a second determination that the one or more users are associated with the virtual space and the active session.

10. The system of claim 8 , wherein one or more users associated with the active session of the third-party application are not associated with the group-based communication platform, and wherein the one or more users are permitted to view the embedded user interface.

11. The system of claim 10 , the operations further comprising:

sending an invitation to join the group-based communication platform to a client of at least one user of the one or more users; and

in response to receiving an indication of an acceptance of the invitation, causing the at least one user to be associated with the group-based communication platform.

12. The system of claim 8 , wherein the data input via the embedded user interface is stored by the group-based communication platform after termination of the active session of the third-party application.

13. The system of claim 8 , the operations further comprising:

in response to receiving the data, generating a new virtual space; and

causing the data input in the embedded user interface to be associated with the new virtual space.

14. The system of claim 8 , the operations further comprising:

in response to receiving the request to connect to the group-based communication platform, determining, based at least in part on context data associated with the request, the virtual space;

causing a recommendation to associate the virtual space with the active session of the third-party application to be presented via the user interface of the third-party application; and

based at least in part on receiving an indication to associate the virtual space with the active session, causing the virtual space to be presented via the embedded user interface.

15. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, from a third-party application, a request to connect to a group-based communication platform, wherein the third-party application and the group-based communication platform are associated with a user account of a user that is participating in, or that is to participate in, an event hosted by the third-party application during an active session of the third-party application, wherein the event is a virtual meeting scheduled to be attended by the user and one or more other users of the group-based communication platform;

identifying a virtual space, of the group-based communication platform, that is to facilitate communication between the user and the one or more other users during the event based at least in part on a determination that one or more permissions associated with the group-based communication platform indicate that the user and the one or more other users are members of the virtual space and are thereby authorized to access the virtual space;

in response to receiving the request, causing an embedded user interface representing the virtual space of the group-based communication platform to be presented via a user interface of the third-party application during the event, wherein messages communicated via the virtual space of the group-based communication platform prior to a beginning of the event are accessible to the user and the one or more other users via the embedded user interface presented during the event;

receiving, from the third-party application, data input in the embedded user interface, the data including one or more messages exchanged with the user via the virtual space during the event and during the active session of the third-party application; and

in response to receiving the data, cause the data input in the embedded user interface to be presented via a group-based communication user interface of the group-based communication platform such that the one or messages exchanged via the virtual space presented within the embedded user interface during the event are accessible via the virtual space of the group-based communication platform after termination of the event.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the virtual space is associated with one or more users, wherein the one or more users are associated with the active session of the third-party application, and wherein causing the embedded user interface to be presented based at least in part on a second determination that the one or more users are associated with the virtual space and the active session.

17. The one or more non-transitory computer-readable media of claim 15 , wherein one or more users associated with the active session of the third-party application are not associated with the group-based communication platform, and wherein the one or more users are permitted to view the embedded user interface.

18. The one or more non-transitory computer-readable media of claim 17 , the operations further comprising:

sending an invitation to join the group-based communication platform to a client of at least one user of the one or more users; and

in response to receiving an indication of an acceptance of the invitation, causing the at least one user to be associated with the group-based communication platform.

19. The one or more non-transitory computer-readable media of claim 15 , wherein the data input via the embedded user interface is stored by the group-based communication platform after termination of the active session of the third-party application.

20. The one or more non-transitory computer-readable media of claim 15 , the operations further comprising:

in response to receiving the request to connect to the group-based communication platform, determining, based at least in part on context data associated with the request, the virtual space;

causing a recommendation to associate the virtual space with the active session of the third-party application to be presented via the user interface of the third-party application; and

based at least in part on receiving an indication to associate the virtual space with the active session, causing the virtual space to be presented via the embedded user interface.

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 Jun 15, 2021
From: WALLING, STEVEN; FONG, ANDREW
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 056550/0353 →