# US 11,907,385 B2 · Process flow granular control and execution

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,385 B2
- Document ID: US11907385B2
- Status: Granted
- Kind: B2
- Application number: 16/948,462
- Filed: 2020-09-18
- Published: 2022-03-24
- Granted: 2024-02-20
- Earliest claimed: 2020-09-18
- Assignees: Salesforce, Inc.
- Applicants: salesforce.com, inc.
- Inventors: Yucheng Wang
- Web page: https://patentgrep.com/patent/US11907385B2

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/629: {to features or functions of an application}
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/04842: Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence)
- G06F 8/34: Graphical or visual programming
- G06F 16/21: Design, administration or maintenance of databases
- G06F 21/52: during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed are some implementations of systems, apparatus, methods and computer program products for executing process flows. A package including flow permission metadata indicating a set of flow permissions associated with a set of flows is obtained. Upon receiving a request to initiate execution of a flow in the set of flows, the flow permission metadata is accessed. The flow includes a plurality of flow elements, where each of the flow elements represents a corresponding set of computer-readable instructions. Based upon the set of flow permissions of the flow permission metadata, it is determined whether the user is permitted to execute the flow. Execution of the flow is initiated upon determining that the user is permitted to execute the flow. During execution of the flow, flow performance data such as an identification of paths of the flow that have been traversed may be obtained, where each of the paths corresponds to one or more of the flow elements. Metrics associated with the flow can be updated based, at least in part, on the flow performance data. An indication of the set of metrics can be provided for presentation via a display.

## Claims

### Claim 1

A system comprising:
a database system implemented using a server system, the database system configurable to cause:
obtaining a package, the package including flow permission metadata indicating a set of flow permissions and associating the set of flow permissions with a set of flows, the set of flow permissions indicating one or more of: one or more profile types permitted to execute the flows, one or more user types permitted to execute the flows, one or more user roles permitted to execute the flows, one or more organizations permitted to execute the flows, one or more organizational user groups permitted to execute the flows, one or more organizational departments permitted to execute the flows, or one or more specific users permitted to execute the flows;
updating the flow permission metadata according to user input received via a user interface, the user input configuring the set of flow permissions at least by limiting flow execution permission to users of a designated tenant of a multi-tenant database system and configuring the set of flows with one or more of: adding a flow to the set of flows, removing a flow from the set of flows, or modifying a flow of the set of flows, the designated tenant including an organization;
processing a request to execute one of the flows, the request being received from a user via a client device, the flow including a plurality of elements, each of the elements corresponding to a set of computer-readable instructions;
responsive to processing the request to execute the flow,
accessing the flow permission metadata;
determining that the user is permitted to execute the flow based, at least in part, on compliance with the set of flow permissions of the flow permission metadata; and
responsive to determining that the user is permitted to execute the flow, initiating execution of the flow.

### Claim 2 (depends on 1)

The system as recited in claim 1, the database system further configurable to cause:
obtaining the package by generating the package by a first server.

### Claim 3 (depends on 1)

The system as recited in claim 1, the package being obtained by a first server from a second server, the database system further configurable to cause:
processing the package; and
storing the flow permission metadata responsive to processing the package.

### Claim 4 (depends on 1)

The system as recited in claim 1, the database system further configurable to cause:
providing, for presentation via a display, a plurality of user-selectable permission options; and
responsive to processing an indication of a selection of one or more of the user-selectable permission options, generating or updating the flow permission metadata.

### Claim 5 (depends on 4)

The system as recited in claim 4, wherein generating or updating the flow permission metadata comprises:
updating the flows of the flow permission metadata or updating the set of flow permissions of the flow permission metadata.

### Claim 6 (depends on 1)

The system as recited in claim 1, the package comprising at least one of: a folder, directory, file, URL, or data structure.

### Claim 7 (depends on 1)

The system as recited in claim 1, the database system further configurable to cause:
determining that the user is permitted to execute the flow further based, at least in part, on a user profile of the user, the user profile indicating one or more of: a particular profile type of the user, a particular user type of the user, a particular user role of the user, a particular user group of which the user is a member, a particular organization of which the user is a member, a particular organizational department that includes the user, or an identity of the user.

### Claim 8

A computer program product comprising computer-readable program code capable of being executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code comprising computer-readable instructions configurable to cause:
obtaining a package, the package including flow permission metadata indicating a set of flow permissions and associating the set of flow permissions with a set of flows, the set of flow permissions indicating one or more of: one or more profile types permitted to execute the flows, one or more user types permitted to execute the flows, one or more user roles permitted to execute the flows, one or more organizations permitted to execute the flows, one or more organizational user groups permitted to execute the flows, one or more organizational departments permitted to execute the flows, or one or more specific users permitted to execute the flows;
updating the flow permission metadata according to user input received via a user interface, the user input configuring the set of flow permissions at least by limiting flow execution permission to users of a designated tenant of a multi-tenant database system and configuring the set of flows with one or more of: adding a flow to the set of flows, removing a flow from the set of flows, or modifying a flow of the set of flows, the designated tenant including an organization;
processing a request to execute one of the flows, the request being received from a user via a client device, the flow including a plurality of elements, each of the elements corresponding to a set of computer-readable instructions;
responsive to processing the request to execute the flow,
accessing the flow permission metadata;
determining that the user is permitted to execute the flow based, at least in part, on the set of flow permissions of the flow permission metadata; and
responsive to determining that the user is permitted to execute the flow, initiating execution of the flow.

### Claim 9 (depends on 8)

The computer program product as recited in claim 8, the computer-readable instructions further configurable to cause:
obtaining the package by generating the package by a first server.

### Claim 10 (depends on 8)

The computer program product as recited in claim 8, the package being obtained by a first server from a second server, the computer-readable instructions further configurable to cause:
processing the package; and
storing the flow permission metadata responsive to processing the package.

### Claim 11 (depends on 8)

The computer program product as recited in claim 8, the computer-readable instructions further configurable to cause:
providing, for presentation via a display, a plurality of user-selectable permission options; and
responsive to processing an indication of a selection of one or more of the user-selectable permission options, generating or updating the flow permission metadata.

### Claim 12 (depends on 11)

The computer program product as recited in claim 11, wherein generating or updating the flow permission metadata comprises:
updating the flows of the flow permission metadata or updating the set of flow permissions of the flow permission metadata.

### Claim 13 (depends on 8)

The computer program product as recited in claim 8, the package comprising at least one of: a folder, directory, file, URL, or data structure.

### Claim 14 (depends on 8)

The computer program product as recited in claim 8, the computer-readable instructions further configurable to cause:
determining that the user is permitted to execute the flow further based, at least in part, on a user profile of the user, the user profile indicating one or more of: a particular profile type of the user, a particular user type of the user, a particular user role of the user, a particular user group of which the user is a member, a particular organization of which the user is a member, a particular organizational department that includes the user, or an identity of the user.

### Claim 15

A method, comprising:
obtaining a package, the package including flow permission metadata indicating a set of flow permissions and associating the set of flow permissions with a set of flows, the set of flow permissions indicating one or more of: one or more profile types permitted to execute the flows, one or more user types permitted to execute the flows, one or more user roles permitted to execute the flows, one or more organizations permitted to execute the flows, one or more organizational user groups permitted to execute the flows, one or more organizational departments permitted to execute the flows, or one or more specific users permitted to execute the flows;
updating the flow permission metadata according to user input received via a user interface, the user input configuring the set of flow permissions at least by limiting flow execution permission to users of a designated tenant of a multi-tenant database system and configuring the set of flows with one or more of: adding a flow to the set of flows, removing a flow from the set of flows, or modifying a flow of the set of flows, the designated tenant including an organization;
processing a request to execute one of the flows, the request being received from a user via a client device, the flow including a plurality of elements, each of the elements corresponding to a set of computer-readable instructions;
responsive to processing the request to execute the flow,
accessing the flow permission metadata;
determining that the user is permitted to execute the flow based, at least in part, on the set of flow permissions of the flow permission metadata; and
responsive to determining that the user is permitted to execute the flow, initiating execution of the flow.

### Claim 16 (depends on 15)

The method as recited in claim 15, further comprising:
obtaining the package by generating the package by a first server.

### Claim 17 (depends on 15)

The method as recited in claim 15, the package being obtained by a first server from a second server, further comprising:
processing the package; and
storing the flow permission metadata responsive to processing the package.

### Claim 18 (depends on 15)

The method as recited in claim 15, further comprising:
providing, for presentation via a display, a plurality of user-selectable permission options; and
responsive to processing an indication of a selection of one or more of the user-selectable permission options, generating or updating the flow permission metadata.

### Claim 19 (depends on 18)

The method as recited in claim 18, wherein generating or updating the flow permission metadata comprises:
updating the flows of the flow permission metadata or updating the set of flow permissions of the flow permission metadata.

### Claim 20 (depends on 15)

The method as recited in claim 15, the package comprising at least one of: a folder, directory, file, URL, or data structure.
