IP Library Granted Patent US 11,455,166
Granted Patent B2
US 11,455,166 · App. 17/186,854 · Granted Sep 27, 2022

Hosting event-based applications

Inventors: Michael Brevoort (Littleton, CO); Angela Kirchhof (Denver, CO); Helen Wei Zeng (San Francisco, CA); Curtis Neil Allen, Jr. (Denver, CO); Stephen Wood (Mill Valley, CA)
Assignee: Slack Technologies, LLC
G06F8/70G06F8/60G06F9/542H04L51/046
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,455,166
App. No.
17/186,854
Granted
Sep 27, 2022
Kind
B2
Abstract

Media, methods, and systems are disclosed for hosting an event-based application. Application instructions corresponding to processing steps to be performed in response to particular events are received from a development environment. The events are associated with a group-based communication channel. An application comprising computer-executable instructions is generated based on the application instructions and metadata associated with the events. In response to detecting one or more of the events, execution of the computer-executable instructions is triggered. A response is received corresponding to output from applying the processing steps to the events. A message is posted into the respective communication channel corresponding to the response.

Claims (50)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method for hosting an application in connection with a group-based communication system, the method comprising:

receiving, from a development environment, application instructions and application configuration parameters associated with the application corresponding to processing steps to be performed in response to at least one group-based communication system event,

wherein the at least one group-based communication system event is associated with a group-based communication system channel of the group-based communication system;

building an application container based on the application instructions and the application configuration parameters;

deploying the application container into a third-party cloud computing environment that is distinct from the group-based communication system; and

in response to detecting the at least one group-based communication system event in the group-based communication system channel of the group-based communication system:

transmitting, from the group-based communication system and to the application container deployed into the third-party cloud computing environment, an indication comprising the at least one group-based communication system event and metadata associated with the at least one group-based communication system event;

based on the indication, triggering execution by the third-party cloud computing environment of the application instructions, thereby generating an execution result responsive to at least one group-based communication system event;

receiving, by the group-based communication system and from the application container deployed into the third-party cloud computing environment, the execution result; and

posting, in the group-based communication system channel, a message based on the execution result.

2. The one or more non-transitory computer-readable media of claim 1 , wherein a video conference session is initiated based on the execution result.

3. The one or more non-transitory computer-readable media of claim 1 , wherein the message is posted in a different group-based communication system channel.

4. The one or more non-transitory computer-readable media of claim 1 , wherein the application container is deployed responsive to a determination that a deploying user of the group-based communication system has authorization to deploy cloud-based applications.

5. The one or more non-transitory computer-readable media of claim 1 , wherein execution of the application instructions in response to the at least one group-based communication system event further comprises:

storing data, via a persistence application programming interface, in a data persistence service accessible to the third-party cloud computing environment.

6. The one or more non-transitory computer-readable media of claim 5 , wherein storing data in a data persistence service comprises storing data into predefined portions of a data persistence table and causing further events to be generated in the group-based communication system channel of the group-based communication system.

7. The one or more non-transitory computer-readable media of claim 1 , wherein an administrative interface associated with the application defines application programming interface access permissions based on an associated network destination.

8. A method for hosting an application in connection with a group-based communication system, the method comprising:

receiving, from a development environment, application instructions and application configuration parameters associated with the application corresponding to processing steps to be performed in response to at least one group-based communication system event,

wherein the at least one group-based communication system event is associated with a group-based communication system channel of the group-based communication system;

building an application container based on the application instructions and the application configuration parameters;

deploying the application container into a third-party cloud computing environment that is distinct from the group-based communication system; and

in response to detecting the at least one group-based communication system event in the group-based communication system channel of the group-based communication system:

transmitting, from the group-based communication system and to the application container deployed into the third-party cloud computing environment, an indication comprising the at least one group-based communication system event and metadata associated with the at least one group-based communication system event;

triggering execution by the third-party cloud computing environment of the application instructions based on the indication to generate an execution result responsive to at least one group-based communication system event;

receiving, by the group-based communication system and from the application container deployed into the third-party cloud computing environment, the execution result; and

posting, in the group-based communication system channel, a message based on the execution result.

9. The method of claim 8 , wherein a video conference session is initiated based on the execution result.

10. The method of claim 8 , wherein the message is posted in a different group-based communication system channel.

11. The method of claim 8 , wherein the application container is deployed responsive to a determination that a deploying user of the group-based communication system has authorization to deploy cloud-based applications.

12. The method of claim 8 , wherein execution of the application instructions in response to the at least one group-based communication system event further comprises:

storing data, via a persistence application programming interface, in a data persistence service accessible to the third-party cloud computing environment.

13. The method of claim 8 , wherein storing data in a data persistence service comprises storing data into predefined portions of a data persistence table and causing further events to be generated in the group-based communication system channel of the group-based communication system.

14. The method of claim 13 , wherein an administrative interface associated with the application defines application programming interface access permissions based on an associated network destination.

15. A system comprising at least one processor and at least one non-transitory memory storing computer executable instructions that when executed by the at least one processor cause the system to carry out actions comprising:

receiving, from a development environment, application instructions and application configuration parameters associated with an application corresponding to processing steps to be performed in response to at least one group-based communication system event,

wherein the at least one group-based communication system event is associated with a group-based communication system channel of a group-based communication system;

building an application container based on the application instructions and the application configuration parameters;

deploying the application container into a third-party cloud computing environment that is distinct from the group-based communication system; and

in response to detecting the at least one group-based communication system event in the group-based communication system channel of the group-based communication system:

transmitting, from the group-based communication system and to the application container deployed into the third-party cloud computing environment, an indication comprising the at least one group-based communication system event and metadata associated with the at least one group-based communication system event;

triggering execution by the third-party cloud computing environment of the application instructions based on the indication to generate an execution result responsive to at least one group-based communication system event;

receiving, by the group-based communication system and from the application container deployed into the third-party cloud computing environment, the execution result; and

posting, in the group-based communication system channel, a message based on the execution result.

16. The system of claim 15 , wherein a video conference session is initiated based on the execution result.

17. The system of claim 15 , wherein the message is posted in a different group-based communication system channel.

18. The system of claim 15 , wherein the application container is deployed responsive to a determination that a deploying user of the group-based communication system has authorization to deploy cloud-based applications.

19. The system of claim 15 , wherein execution of the application instructions in response to the at least one group-based communication system event further comprises:

storing data, via a persistence application programming interface, in a data persistence service accessible to the third-party cloud computing environment.

20. The system of claim 19 , wherein storing data in a data persistence service comprises storing data into predefined portions of a data persistence table and causing further events to be generated in the group-based communication system channel of the group-based communication system.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2021
From: BREVOORT, MICHAEL; KIRCHHOF, ANGELA; ZENG, HELEN WEI; ALLEN, CURTIS NEIL, JR.; WOOD, STEPHEN
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 055429/0025 →
Continuity (1)
Related Publication 20220276859A1 · Sep 1, 2022
Cited By (3)
US 12,204,883 US 12,719,876 US 12,719,881