IP Library Granted Patent US 11,659,021
Granted Patent B2
US 11,659,021 · App. 17/582,486 · Granted May 23, 2023

Asynchronous distributed modular function calling

Inventors: Michael Brevoort (Littleton, CO); Stephen Wood (Mill Valley, CA); Allen James Ferrick (San Francisco, CA); Brad Harris (Castle Rock, CO); Leslie Newell (Aurora, CO); Melissa Khuat (San Francisco, CA)
Assignee: SlackTechnologies, LLC
H04L67/02H04L41/22H04L67/1044H04L67/133H04L67/306H04L67/60
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,659,021
App. No.
17/582,486
Granted
May 23, 2023
Kind
B2
Abstract

A computer-readable media, method, and system for calling a function within a group-based communication system. The function may be initiated according to a trigger condition and is associated with arguments and return values. To carry out the function, an HTTP request is generated and sent to an HTTP server, which sends an HTTP callback to a group-based communication system server. The HTTP callback may include return values indicative of either a successful completion of the function or an error.

Claims (37)

1. One or more non-transitory computer-readable media storing that store computer-executable instructions that, when executed by a processor, perform a method for providing reusable functions within a group-based communication system, the method comprising:

receiving, from a first user of a first organization, a first function definition for a first function, the first function definition comprising one or more trigger conditions for the first function;

receiving, from a second user of a second organization distinct from the first organization, a second function definition for a second function, the second function definition comprising one or more trigger conditions for the second function;

invoking the first function within an external application responsive to an API call from a group-based communication system application;

receiving a callback including one or more return values for the first function after execution of the first function based on an asynchronous request; and

responsive to receiving the one or more return values, invoking the second function with function parameters associated with the one or more return values.

2. The one or more non-transitory computer-readable media of claim 1 , wherein at least one of the first function and the second function performs a write to a group-based communication system table, and wherein the group-based communication system table is one of a plurality of tables associated with the group-based communication system application.

3. The one or more non-transitory computer-readable media of claim 2 , wherein each table of the plurality of tables associated with the group-based communication system application includes a respective plurality of data types for interaction with the reusable functions.

4. The one or more non-transitory computer-readable media of claim 3 , wherein the group-based communication system table stores a set of function related information including one or more arguments, the one or more return values, and event data associated with a triggering event.

5. The one or more non-transitory computer-readable media of claim 2 , further comprising triggering a validation function responsive to performing the write to the group-based communication system table.

6. The one or more non-transitory computer-readable media of claim 2 , wherein the first function is invoked with function parameters obtained by performing a read from the group-based communication system table.

7. The one or more non-transitory computer-readable media of claim 1 , retrieving a value from a persistence table based at least in part on one or more arguments for the first function collected during a triggering event associated with the one or more trigger conditions of the first function.

8. A method for providing reusable functions within a group-based communication system, the method comprising:

receiving, from a first user of a first organization, a first function definition for a first function, the first function definition comprising one or more trigger conditions for the first function;

receiving, from a second user of a second organization distinct from the first organization, a second function definition for a second function, the second function definition comprising one or more trigger conditions for the second function;

invoking the first function within an external application responsive to an API call from a group-based communication system application;

receiving a callback including one or more return values for the first function after execution of the first function based on an asynchronous request; and

responsive to receiving the one or more return values, invoking the second function with function parameters associated with the one or more return values.

9. The method of claim 8 , wherein at least one of the first function and the second function performs a write to a group-based communication system table, and wherein the group-based communication system table is one of a plurality of tables associated with the group-based communication system application.

10. The method of claim 9 , wherein each table of the plurality of tables associated with the group-based communication system application includes a respective plurality of data types for interaction with the reusable functions.

11. The method of claim 10 , wherein the group-based communication system table stores a set of function related information including one or more arguments, the one or more return values, and event data associated with a triggering event.

12. The method of claim 9 , further comprising triggering a validation function responsive to performing the write to the group-based communication system table.

13. The method of claim 9 , wherein the first function is invoked with function parameters obtained by performing a read from the group-based communication system table.

14. The method of claim 8 , retrieving a value from a persistence table based at least in part on one or more arguments for the first function collected during a triggering event associated with the one or more trigger conditions of the first function.

15. A system for providing functions within a group-based communication system, the system comprising:

a data store associated with the group-based communication system; and

at least one processor programmed to execute a method for providing reusable functions within the group-based communication system, the method comprising:

receiving, from a first user of a first organization, a first function definition for a first function, the first function definition comprising one or more trigger conditions for the first function;

receiving, from a second user of a second organization distinct from the first organization, a second function definition for a second function, the second function definition comprising one or more trigger conditions for the second function;

invoking the first function within an external application responsive to an API call from a group-based communication system application;

receiving a callback including one or more return values for the first function after execution of the first function based on an asynchronous request; and

responsive to receiving the one or more return values, invoking the second function with function parameters associated with the one or more return values.

16. The system of claim 15 , wherein at least one of the first function and the second function performs a write to a group-based communication system table, and wherein the group-based communication system table is one of a plurality of tables associated with the group-based communication system application.

17. The system of claim 16 , wherein each table of the plurality of tables associated with the group-based communication system application includes a respective plurality of data types for interaction with the reusable functions.

18. The system of claim 17 , wherein the group-based communication system table stores a set of function related information including one or more arguments, the one or more return values, and event data associated with a triggering event.

19. The system of claim 16 , further comprising triggering a validation function responsive to performing the write to the group-based communication system table.

20. The system of claim 16 , wherein the first function is invoked with function parameters obtained by performing a read from the group-based communication system table.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2022
From: BREVOORT, MICHAEL; WOOD, STEPHEN; FERRICK, ALLEN JAMES; HARRIS, BRAD; NEWELL, LESLIE; KHUAT, MELISSA
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 058743/0954 →
MERGER Recorded Jan 24, 2022
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 058744/0026 →
Continuity (2)
Continuation 17152464 · Jan 19, 2021
Related Publication 20220232061A1 · Jul 21, 2022