IP Library Granted Patent US 11,561,936
Granted Patent B2
US 11,561,936 · App. 16/546,677 · Granted Jan 24, 2023

Building collaborative data processing flows

Inventors: Kongposh Sapru (Redwood City, CA); Joshua Goodman (Portland, OR); Alexander John Trzeciak (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F16/176G06F16/252G06Q30/016H04L67/131
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,561,936
App. No.
16/546,677
Granted
Jan 24, 2023
Kind
B2
Abstract

Methods, systems, and devices supporting managing a data processing flow are described. A device (e.g., an application server) may host a cloud-based collaboration application, such as an interactive document application. The device may receive an instance of a data processing flow for a flow application based on a first user input to the cloud-based collaboration application. The device may receive the instance of the data processing flow from a source device hosting the flow application. The device may embed the flow application in the cloud-based collaboration application. The device may then receive user inputs to the data processing flow from multiple users collaborating on the same flow in the cloud-based collaboration application. Based on the user inputs, the device may modify the instance of the data processing flow and transmit the modified instance back to the source device to synchronize the data processing flow in the flow application.

Claims (60)

1. A method for managing a data processing flow at an application server, comprising:

hosting, at the application server, a cloud-based collaboration application comprising at least a cloud-based collaborative document;

receiving, from a source device, an instance of the data processing flow for a flow application based at least in part on a first user input sent from a user device to the cloud-based collaboration application at the application server, wherein the instance of the data processing flow comprises a sequence of data processes comprising one or more elements representing one or more actions to execute using data and one or more connectors representing one or more paths for executing the one or more actions at runtime;

embedding the flow application in the cloud-based collaboration application based at least in part on receiving the instance of the data processing flow, wherein the embedding comprises embedding the data processing flow in the cloud-based collaborative document and sending the instance of the data processing flow to the user device for display in a user interface of the user device displaying the cloud-based collaborative document;

receiving, at the embedded flow application in the cloud-based collaboration application, a plurality of user inputs from a plurality of users operating a plurality of user devices in communication with the application server;

modifying the instance of the data processing flow based at least in part on the received plurality of user inputs; and

transmitting, to the source device, the modified instance of the data processing flow based at least in part on a second user input to the cloud-based collaboration application.

2. The method of claim 1 , further comprising:

receiving the first user input to the cloud-based collaboration application; and

transmitting, to the source device, a request for the instance of the data processing flow based at least in part on receiving the first user input, wherein receiving the instance of the data processing flow is based at least in part on transmitting the request.

3. The method of claim 2 , wherein:

the first user input comprises a first request to embed the instance of the data processing flow for the flow application in the cloud-based collaboration application; and

the instance of the data processing flow is created at the source device.

4. The method of claim 1 , further comprising:

receiving a third user input to the cloud-based collaboration application, the third user input comprising a request to create a new instance of a second data processing flow for the flow application; and

creating the new instance of the second data processing flow based at least in part on receiving the third user input and embedding the flow application in the cloud-based collaboration application.

5. The method of claim 1 , further comprising:

identifying an update to the data processing flow based at least in part on the received plurality of user inputs, wherein the instance of the data processing flow is modified based at least in part on the update to the data processing flow.

6. The method of claim 5 , further comprising:

transmitting, to at least a first user device and a second user device, the modified instance of the data processing flow for display.

7. The method of claim 5 , further comprising:

transmitting, to at least a first user device and a second user device, a link of the cloud-based collaboration application to access the modified instance of the data processing flow.

8. The method of claim 5 , wherein the modified instance of the data processing flow comprises a second sequence of data processes different from the sequence of data processes.

9. The method of claim 1 , further comprising:

identifying a comment associated with the data processing flow based at least in part on at least one of the received plurality of user inputs.

10. The method of claim 1 , further comprising:

transmitting, to at least a first user device and a second user device, the cloud-based collaboration application for display, wherein the plurality of user inputs is received from one or more of the first user device and the second user device.

11. The method of claim 1 , wherein the plurality of user inputs are associated with the data processing flow, further comprising:

receiving, from the source device, a second instance of a second data processing flow for the flow application based at least in part on a third user input to the cloud-based collaboration application; and

modifying the second instance of the second data processing flow based at least in part on the plurality of user inputs associated with the data processing flow and receiving the second instance of the second data processing flow.

12. A method for managing a data processing flow at a source device, comprising:

receiving, at the source device and from an application server, a request for a first instance of the data processing flow from a flow application hosted at the source device, wherein the first instance of the data processing flow comprises a first sequence of data processes comprising one or more elements representing one or more actions to execute using data and one or more connectors representing one or more paths for executing the one or more actions at runtime;

transmitting, from the source device and to the application server, the first instance of the data processing flow based at least in part on the request;

receiving, at the source device and from the application server, a second instance of the data processing flow, wherein the second instance of the data processing flow is based at least in part on the first instance of the data processing flow and a plurality of user inputs from a plurality of users operating a plurality of user devices in communication with the application server, and wherein the second instance of the data processing flow comprises a second sequence of data processes different from the first sequence of data processes; and

updating the data processing flow from the first instance to the second instance in the flow application hosted at the source device based at least in part on receiving the second instance from the application server.

13. The method of claim 12 , further comprising:

receiving, at the source device, an update to the data processing flow based at least in part on a user input to the flow application hosted at the source device; and

updating the data processing flow in the flow application hosted at the source device based at least in part on receiving the update.

14. The method of claim 12 , wherein receiving the second instance of the data processing flow is based at least in part on a user input to a cloud-based collaboration application hosted at the application server.

15. The method of claim 14 , wherein the cloud-based collaboration application comprises a cloud-based collaborative document.

16. An apparatus for managing a data processing flow at an application server, comprising:

a processor;

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

host, at the application server, a cloud-based collaboration application comprising at least a cloud-based collaborative document;

receive, from a source device, an instance of the data processing flow for a flow application based at least in part on a first user input sent from a user device to the cloud-based collaboration application at the application server, wherein the instance of the data processing flow comprises a sequence of data processes comprising one or more elements representing one or more actions to execute using data and one or more connectors representing one or more paths for executing the one or more actions at runtime;

embed the flow application in the cloud-based collaboration application based at least in part on receiving the instance of the data processing flow, wherein the embedding comprises embedding the data processing flow in the cloud-based collaborative document and sending the instance of the data processing flow to the user device for display in a user interface of the user device displaying the cloud-based collaborative document;

receive, at the embedded flow application in the cloud-based collaboration application, a plurality of user inputs from a plurality of users operating a plurality of user devices in communication with the application server;

modify the instance of the data processing flow based at least in part on the received plurality of user inputs; and

transmit, to the source device, the modified instance of the data processing flow based at least in part on a second user input to the cloud-based collaboration application.

17. The apparatus of claim 16 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive the first user input to the cloud-based collaboration application; and

transmit, to the source device, a request for the instance of the data processing flow based at least in part on receiving the first user input, wherein receiving the instance of the data processing flow is based at least in part on transmitting the request.

18. The apparatus of claim 17 , wherein:

the first user input comprises a first request to embed the instance of the data processing flow for the flow application in the cloud-based collaboration application; and

the instance of the data processing flow is created at the source device.

19. The method of claim 1 , wherein modifying the instance of the data processing flow comprises:

adding, modifying, or deleting an element of the instance of the data processing flow, adding, modifying, or deleting a connector of the instance of the data processing flow, or any combination thereof to obtain the modified instance of the data processing flow.

20. The method of claim 12 , wherein updating the data processing flow from the first instance to the second instance comprises:

adding, modifying, or deleting an element of the first instance of the data processing flow, adding, modifying, or deleting a connector of the first instance of the data processing flow, or any combination thereof to obtain the second instance of the data processing flow.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0427 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2019
From: SAPRU, KONGPOSH; GOODMAN, JOSHUA; TRZECIAK, ALEXANDER JOHN
To: SALESFORCE.COM, INC.
Reel/Frame 050117/0039 →