IP Library Granted Patent US 11,245,744
Granted Patent B1
US 11,245,744 · App. 17/152,464 · Granted Feb 8, 2022

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: Slack Technologies, LLC
H04L67/02H04L41/22H04L67/306H04L67/32
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,245,744
App. No.
17/152,464
Granted
Feb 8, 2022
Kind
B1
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 (41)

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

receiving one or more arguments for a first function in response to a first trigger for the first function;

responsive to the first trigger, generating an asynchronous request including an identifier for the first function and the one or more arguments for the first function,

wherein the first function is executed based at least in part on the asynchronous request;

receiving a callback including one or more return values for the first function;

in response to determining that the one or more return values for the first function indicate a successful completion of the first function, generating a success event in an event channel in the group-based communication system, wherein the success event is associated with a second trigger for triggering a subsequent second function; and

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

2. The computer-readable media of claim 1 , wherein receiving one or more arguments for the function comprises receiving a response from a user via an interactive user session, indicative of the one or more arguments for the function.

3. The computer-readable media of claim 1 , wherein the function is initiated automatically in response to the trigger and receiving one or more arguments for the function comprises receiving one or more predetermined default values for the one or more arguments.

4. The computer-readable media of claim 3 , wherein at least one trigger parameter of the trigger is defined by a user via a trigger configuration interface that is independent from an interface used to define the function.

5. The computer-readable media of claim 1 , wherein the trigger comprises a trigger event and at least one trigger condition, and wherein the function is initiated in response to determining that the at least one trigger condition is satisfied once the trigger event has occurred.

6. The computer-readable media of claim 1 , further comprising the step of updating a value within a persistence table based at least in part on the one or more arguments for the function.

7. The computer-readable media of claim 1 , wherein a function permission is required to execute the function, and wherein the function permission is defined by a user via a function permission configuration user interface.

8. A method for calling a function within a group-based communication system, the method comprising:

receiving one or more arguments for a first function in response to a first trigger for the first function;

responsive to the first trigger, generating an asynchronous request including an identifier for the first function and the one or more arguments for the first function;

wherein the first function is executed based at least in part on the asynchronous request;

receiving a callback including one or more return values for the first function;

in response to determining that the one or more return values for the first function indicate a successful completion of the first function, generating a success event in an event channel in the group-based communication system, wherein the success event is associated with a second trigger for triggering a subsequent second function; and

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

9. The method of claim 8 , wherein receiving one or more arguments for the function comprises receiving a response from a user, via an interactive user session, indicative of the one or more arguments for the function.

10. The method of claim 8 , wherein the function is initiated automatically in response to the trigger and receiving one or more arguments for the function comprises receiving one or more predetermined default values for the one or more arguments.

11. The method of claim 10 , wherein at least one trigger parameter of the trigger is defined by a user via a trigger configuration interface that is independent from an interface used to define the function.

12. The method of claim 8 , wherein the trigger comprises a trigger event and at least one trigger condition, and wherein the function is initiated in response to determining that the at least one trigger condition is satisfied once the trigger event has occurred.

13. The method of claim 8 , further comprising the step of updating a value within a persistence table based at least in part on the one or more arguments for the function.

14. The method of claim 8 , wherein a function permission is required to execute the function, and wherein the function permission is defined by a user via a function permission configuration user interface.

15. A function calling system for a group-based communication system, the system comprising:

a data store; and

a processor programmed to perform a method for calling a function within a group-based communication system, the method comprising:

receiving an indication, via an event channel in a group based communication system, in response to a trigger for the function;

receiving one or more arguments for a first function in response to a first trigger for the first function;

responsive to the first trigger, generating an asynchronous request including an identifier for the first function and the one or more arguments for the first function;

wherein the first function is executed based at least in part on the asynchronous request;

receiving a callback including one or more return values for the first function;

in response to determining that the one or more return values for the first function indicate a successful completion of the first function, generating a success event in an event channel in the group-based communication, wherein the success event is associated with a second trigger for triggering a subsequent second function; and

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

16. The system of claim 15 , wherein receiving one or more arguments for the function comprises receiving a response from a user, via an interactive user session, indicative of the one or more arguments for the function.

17. The system of claim 15 , wherein the function is initiated automatically in response to the trigger and receiving one or more arguments for the function comprises receiving one or more predetermined default values for the one or more arguments.

18. The system of claim 17 , wherein at least one trigger parameter of the trigger is defined by a user via a trigger configuration interface that is independent from an interface used to define the function.

19. The system of claim 15 , wherein the trigger comprises a trigger event and at least one trigger condition, and wherein the function is initiated in response to determining that the at least one trigger condition is satisfied once the trigger event has occurred.

20. The system of claim 15 , further comprising the step of updating a value within a persistence table based at least in part on the one or more arguments for the function.

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 Jan 19, 2021
From: BREVOORT, MICHAEL; WOOD, STEPHEN; FERRICK, ALLEN JAMES; HARRIS, BRAD; NEWELL, LESLIE; KHUAT, MELISSA
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 054957/0181 →
Cited By (5)
US 12,204,883 US 12,418,540 US 12,504,953 US 12,719,876 US 12,719,881