IP Library Granted Patent US 10,348,655
Granted Patent B1
US 10,348,655 · App. 16/206,542 · Granted Jul 9, 2019

Systems and methods for initiating external actions via a group-based communication system

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 10,348,655
App. No.
16/206,542
Granted
Jul 9, 2019
Kind
B1
Abstract

A group-based communication platform may be utilized to execute one or more processing actions via respective external application systems based on messages exchanged among client devices via the group-based communication platform. A particular processing action may be executed for a particular message by generating a container including contextual data and payload data, wherein the payload data comprises the message for which the processing action is to be performed. The container is provided to the external application system via a proxy endpoint, thereby causing the external application system to execute the processing action based on the data included within the container.

Claims (82)

1. A system configured for executing a processing action based on a message shared via a group-based communication platform within an external application system, wherein the group-based communication platform comprises:

one or more non-transitory memory storage repositories, wherein the one or more non-transitory memory storage repositories comprise a processing action table identifying one or more processing actions available for one or more messages; and

one or more processors, wherein the one or more processors are collectively configured to:

receive a selection of a message and a processing action for the message from a client device, wherein the processing action is selected from the processing action table;

generate a container comprising contextual data and payload data, wherein the contextual data identifies (1) the processing action selected from the processing action table to be performed by an external application system and (2) a client token identifying the client device requesting the processing action, and the payload data comprises the selected message, wherein the message is exchanged via the group-based communication platform;

provide the container to a proxy endpoint stored within the group-based communication platform and accessible to the external application system to enable the external application system to retrieve data within the container and to execute the identified processing action based at least in part on the payload data;

receive, a response from the external application system, wherein the response comprises the client token identifying the client device requesting the processing action and a dialog trigger identifying one or more interactive dialogs for presentation to the client device;

retrieve, from the one or more non-transitory memory storage repositories, the one or more interactive dialogs based at least in part on the dialog trigger;

based at least in part on the response, cause the client device to display the one or more interactive dialogs;

receive additional data from the client device via the one or more interactive dialogs; and

transmit the additional data to the proxy endpoint to be associated with the container to enable the external application system to utilize the additional data to execute the processing action.

2. The system of claim 1 , wherein the one or more processors are further configured to:

receive a confirmation response from the external application system indicating completion of the requested processing action; and

transmit a confirmation message to the requesting client device.

3. The system of claim 2 , wherein the confirmation message is transmitted to the client device as a message.

4. The system of claim 1 , wherein the message is shared between a plurality of client devices within a communication channel via the group-based communication platform, wherein the communication channel has an associated channel identifier and wherein the one or more processors are further configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on a channel identifier; and

wherein the selection of the processing action is based at least in part on the curated list of a plurality of processing actions.

5. The system of claim 1 , wherein the message is shared between a plurality of client devices within a communication channel via the group-based communication platform, wherein the communication channel is associated with a group identifier and wherein the one or more processors are further configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on the group identifier; and

wherein the selection of the processing action is based at least in part on the curated list of a plurality of processing actions.

6. The system of claim 1 , wherein the message is shared between a plurality of client devices within a communication channel via the group-based communication platform, wherein the communication channel has an associated channel identifier and wherein the one or more processors are further configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on characteristics associated with the message; and

wherein the selection of the processing action is based at least in part on the curated list of a plurality of processing actions.

7. The system of claim 6 , wherein the characteristics associated with a message identifies a sending user identifier of the message, and wherein the processing actions included within the curated list are selected based at least in part on the sending user identifier of the message.

8. The system of claim 1 , wherein the message comprises at least one of: a text-based message or a file object.

9. A computer program product for executing a processing action based on a message shared via a group-based communication platform within an external application system, the computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising an executable portion configured to:

generate a container comprising contextual data and payload data, wherein the contextual identifies (1) a processing action selected from a stored processing action table to be performed by an external application system and (2) a client token identifying a client device requesting the processing action, and the payload data comprises a message exchanged via the group-based communication platform;

provide the container to a proxy endpoint accessible to the external application system to enable the external application system to retrieve data within the container and to execute the identified processing action based at least in part on the payload data;

receive a response from the external application system, wherein the response comprises the client token identifying the client device requesting the processing action and a dialog trigger identifying one or more interactive dialogs for presentation to the client device;

retrieve the one or more interactive dialogs based at least in part on the dialog trigger;

based at least in part on the response, cause the client device to display the one or more interactive dialogs;

receive additional data from the client device via the interactive dialog; and

transmit the additional data to the proxy endpoint to be associated with the container to enable the external application system to utilize the additional data to execute the processing action.

10. The computer program product of claim 9 , further comprising an executable portion configured to:

receive a confirmation response from the external application system indicating completion of the requested processing action; and

transmit a confirmation message to the requesting client device.

11. The computer program product of claim 10 , wherein the confirmation message is transmitted to the client device as a message.

12. The computer program product of claim 9 , wherein the message is shared between a plurality of client devices within a communication channel via the group-based communication platform, wherein the communication channel has an associated channel identifier and wherein the computer program product further comprises an executable portion configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on a channel identifier; and

receive input from the client device selecting the processing action to be performed.

13. The computer program product of claim 9 , wherein the message is shared between a plurality of client devices within a communication channel via the group-based communication platform, wherein the communication channel is associated with a group identifier and wherein the computer program product further comprises an executable portion configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on the group identifier; and

receive input from the client device selecting the processing action to be performed.

14. The computer program product of claim 9 , wherein the message is associated with characteristics, and wherein the computer program product further comprises an executable portion configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on the characteristics associated with the message; and

receive input from the client device selecting the processing action to be performed.

15. The computer program product of claim 14 , wherein the characteristics associated with a message identifies a sending user identifier of the message, and wherein the processing actions included within the curated list are selected based at least in part on the sending user identifier of the message.

16. The computer program product of claim 9 , wherein the message comprises at least one of: a text-based message or a file object.

17. A system configured for executing a processing action based on a message shared via a channel of a plurality of channels within a group-based communication platform within an external application system, wherein the group-based communication platform comprises:

one or more non-transitory memory storage repositories, wherein the one or more non-transitory memory storage repositories comprise a plurality of processing action tables each identifying one or more processing actions available for one or more messages exchanged via a corresponding channel of the plurality of channels; and

one or more processors, wherein the one or more processors are collectively configured to:

receive a selection of a message exchanged within a particular channel and a processing action selected for the message from a processing action table corresponding to the particular channel from the client device, wherein the processing action is selected from the processing action table;

generate a container comprising contextual data and payload data, wherein the contextual data identifies the processing action to be performed by an external application system and a client token identifying the client device requesting the processing action, and the payload data comprises the selected message;

provide the container to a proxy endpoint stored within the group-based communication platform and accessible to the external application system to enable the external application system to retrieve data within the container and to execute the identified processing action based at least in part on the payload data;

receive, a response from the external application system, wherein the response comprises the client token identifying the client device requesting the processing action and a dialog trigger identifying one or more interactive dialogs for presentation to the client device;

based at least in part on the response, cause the client device to display the one or more interactive dialogs;

receive additional data from the client device via the one or more interactive dialogs; and

transmit the additional data to the proxy endpoint to be associated with the container to enable the external application system to utilize the additional data to execute the processing action.

18. The system of claim 17 , wherein the one or more processors are further configured to:

receive a confirmation response from the external application system indicating completion of the requested processing action; and

transmit a confirmation message to the requesting client device.

19. The system of claim 18 , wherein the confirmation message is transmitted to the client device as a message within the particular channel.

20. The system of claim 17 , wherein the particular channel is associated with a group identifier and wherein the one or more processors are further configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on the group identifier; and

wherein the selection of the processing action is based at least in part on the curated list of a plurality of processing actions.

21. The system of claim 1 , wherein the message comprises at least one of: a text-based message or a file object.

22. A computer program product for executing a processing action based on a message shared via a channel of a plurality of channels within a group-based communication platform within an external application system, the computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising an executable portion configured to:

generate a container comprising contextual data and payload data, wherein the contextual identifies (1) a processing action selected from a stored processing action table corresponding to a particular channel of a plurality of channels, wherein the stored processing action table is identified from a plurality of processing action tables, wherein the selected processing action is to be performed by an external application system and (2) a client token identifying a client device requesting the processing action, and the payload data comprises a message exchanged within the particular channel;

provide the container to a proxy endpoint accessible to the external application system to enable the external application system to retrieve data within the container and to execute the identified processing action based at least in part on the payload data;

receive a response from the external application system, wherein the response comprises the client token identifying the client device requesting the processing action and a dialog trigger identifying one or more interactive dialogs for presentation to the client device;

based at least in part on the response, cause the client device to display the one or more interactive dialogs;

receive additional data from the client device via the interactive dialog; and

transmit the additional data to the proxy endpoint to be associated with the container to enable the external application system to utilize the additional data to execute the processing action.

23. The computer program product of claim 21 , further comprising an executable portion configured to:

receive a confirmation response from the external application system indicating completion of the requested processing action; and

transmit a confirmation message to the requesting client device.

24. The computer program product of claim 23 , wherein the confirmation message is transmitted to the client device as a message within the particular channel.

25. The computer program product of claim 21 , wherein the particular channel is associated with a group identifier and wherein the computer program product further comprises an executable portion configured to:

cause the client device to display a curated list of a plurality of processing actions, wherein the processing actions included within the curated list are selected based at least in part on the group identifier; and

wherein the selection of the processing action is based at least in part on the curated list of a plurality of processing actions.

26. The computer program product of claim 21 , wherein the message comprises at least one of: a text-based message or a file object.

Assignments (6)
MERGER Recorded Jan 11, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE.COM, INC.
Reel/Frame 062354/0073 →
CHANGE OF NAME Recorded Jan 11, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062354/0100 →
MERGER AND CHANGE OF NAME Recorded Oct 1, 2021
From: SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057683/0001 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 49332/0349 Recorded Jul 19, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 057649/0882 →
PATENT SECURITY AGREEMENT Recorded May 30, 2019
From: SLACK TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049332/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2019
From: SUHAIL, SALMAN; SULLIVAN, BRUCE; ANG, PATRICIA; CHOI, HYE JUNG; SHETTY, PRAJNA; FONG, ANDREW; DENG, MICHAEL; SOWOLE, STEPHEN; AKIN, TOLGA; AGARWAL, PRANAY
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 048791/0636 →