IP Library Granted Patent US 10,855,630
Granted Patent B2
US 10,855,630 · App. 16/419,715 · Granted Dec 1, 2020

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

Inventors: Salman Suhail (San Francisco, CA); Bruce Sullivan (San Francisco, CA); Patricia Ang (Oakland, CA); Hye Jung Choi (San Mateo, CA); Prajna Shetty (San Francisco, CA); Andrew Fong (Menlo Park, CA); Michael Deng (San Francisco, CA); Stephen Sowole (San Francisco, CA); Tolga Akin (San Francisco, CA); Pranay Agarwal (San Francisco, CA)
Assignee: Slack Technologies, Inc.
H04L51/04G06Q10/10H04L51/046H04L51/08H04L51/16H04L65/105H04L65/1063H04L65/1096H04L65/403H04L65/4007
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,855,630
App. No.
16/419,715
Granted
Dec 1, 2020
Kind
B2
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 (70)

1. A system configured for initiating a processing action within an external application system based at least in part on a file object shared via a group-based communication platform, 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 file objects; and

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

receive, from a client device, a selection of a file object and a processing action to be performed by an external application system for a selected file object, wherein a selected processing action is selected from the processing action table;

provide, to the external application system, payload data identifying the selected file object and contextual data identifying the selected processing action and identifying the client device, to execute the selected processing action based at least in part on the payload data;

based at least in part on the contextual data, cause the client device to display an interactive dialog;

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

provide the additional data to the external application system to be associated with the payload data to enable the external application system to utilize the additional data to execute the selected 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 selected processing action; and

transmit a confirmation message to the client device.

3. The system of claim 1 , wherein the file object 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

receive input from the client device selecting the processing action from the curated list of a plurality of processing actions.

4. The system of claim 1 , wherein the file object is associated with one or more characteristics identifying a file object type, and wherein the one or more processors are further configured to:

cause the client device to display a cured 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 file object type; and

receive input from the client device selecting the processing action from the curated list of a plurality of processing actions.

5. The system of claim 1 , wherein providing payload data and contextual data to the external application system comprises:

generating a container comprising the contextual data and the payload data; and

providing 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.

6. The system of claim 1 , wherein the contextual data identifying the client device is embodied as a client token.

7. The system of claim 1 , wherein causing the client device to display an interactive dialog comprises:

receiving a response from the external application system; and

causing the client device to display the interactive dialog comprising data received as a part of the response.

8. A computer program product for initiating a processing action within an external application system based at least in part on a file object shared via a group-based communication platform, 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:

store, within one or more non-transitory memory storage repositories, a processing action table identifying one or more processing actions available for one or more file objects;

receive, from a client device, a selection of a file object and a processing action to be performed by an external application system for a selected file object, wherein a selected processing action is selected from the processing action table;

provide, to the external application system, payload data identifying the selected file object and contextual data identifying the selected processing action and identifying the client device, to execute the selected processing action based at least in part on the payload data;

based at least in part on the contextual data, cause the client device to display an interactive dialog;

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

provide the additional data to the external application system to be associated with the payload data to enable the external application system to utilize the additional data to execute the selected processing action.

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

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

transmit a confirmation message to the client device.

10. The computer program product of claim 8 , wherein the file object 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 from the curated list of a plurality of processing actions.

11. The computer program product of claim 8 , wherein the file object is associated with one or more characteristics identifying a file object type, and wherein the computer program product further comprises an executable portion configured to:

cause the client device to display a cured 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 file object type; and

receive input from the client device selecting the processing action from the curated list of a plurality of processing actions.

12. The computer program product of claim 8 , wherein providing payload data and contextual data to the external application system comprises:

generating a container comprising the contextual data and the payload data; and

providing 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.

13. The computer program product of claim 8 , wherein the contextual data identifying the client device is embodied as a client token.

14. The computer program product of claim 8 , wherein causing the client device to display an interactive dialog comprises:

receiving a response from the external application system; and

causing the client device to display the interactive dialog comprising data received as a part of the response.

15. A computer-implemented method for initiating a processing action within an external application system based at least in part on a file object shared via a group-based communication platform, wherein the method comprises:

storing, within one or more non-transitory memory storage repositories, a processing action table identifying one or more processing actions available for one or more file objects;

receiving, via one or more processors and from a client device, a selection of a file object and a processing action to be performed by an external application system for a selected file object, wherein a selected processing action is selected from the processing action table;

providing, via the one or more processors to the external application system, payload data identifying the selected file object and contextual data identifying the selected processing action and identifying the client device, to execute the selected processing action based at least in part on the payload data;

based at least in part on the contextual data, causing, via the one or more processors, the client device to display an interactive dialog;

receiving, via the one or more processors, additional data from the client device via the interactive dialog; and

providing, via the one or more processors, the additional data to the external application system to be associated with the payload data to enable the external application system to utilize the additional data to execute the selected processing action.

16. The computer-implemented method of claim 15 , further comprising:

receiving a confirmation response from the external application system indicating completion of the selected processing action; and

transmitting a confirmation message to the client device.

17. The computer-implemented method of claim 15 , wherein the file object 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-implemented method further comprises:

causing 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

receiving input from the client device selecting the processing action from the curated list of a plurality of processing actions.

18. The computer-implemented method of claim 15 , wherein the file object is associated with one or more characteristics identifying a file object type, and wherein the computer-implemented method further comprises:

causing the client device to display a cured 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 file object type; and

receiving input from the client device selecting the processing action from the curated list of a plurality of processing actions.

19. The computer-implemented method of claim 18 , wherein providing payload data and contextual data to the external application system comprises:

generating a container comprising the contextual data and the payload data; and

providing 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.

20. The computer-implemented method of claim 15 , wherein the contextual data identifying the client device is embodied as a client token.

21. The computer-implemented method of claim 15 , wherein causing the client device to display an interactive dialog comprises:

receiving a response from the external application system; and

causing the client device to display the interactive dialog comprising data received as a part of the response.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2020
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 053819/0114 →
Continuity (4)
Continuation 16206542 · Nov 30, 2018
Continuation 16176883 · Oct 31, 2018
Provisional Application 62674491 · May 21, 2018
Related Publication 20190356615A1 · Nov 21, 2019