SYSTEMS AND METHODS FOR WORKFLOWS IN A TIERED SOFTWARE FRAMEWORK
A workflow builder includes a plurality of user interfaces (UIs) that allow a user to configure workflow-objects and build workflows therefrom. The plurality of UIs includes a first UI to configure workflow-objects and a second UI to build a workflow using the workflow-objects, the plurality of UIs being in a marketplace platform of a tiered software framework having a plurality of tiers with accounts in downstream tiers subscribed to different accounts in upstream tiers. Preconfigured workflow-objects are provided in the first UI as also an option to use custom scripts or preconfigured UI elements to configure the preconfigured workflow-objects into new workflow-objects. In the second UI, a layout comprising a visual mapping of interconnected workflow-objects is provided, along with a selection comprising the workflow-objects configured in the first UI. The configured workflow-objects and workflow are thereafter automatically pushed to a marketplace or to subscribed accounts.
1 . A method for building and executing workflows in a tiered software framework, the method comprising:
providing a first user interface in a first computing device to configure workflow-objects and a second user interface in the first computing device to build a workflow using the workflow-objects, wherein:
the first user interface and the second user interface are in a marketplace platform of a tiered software framework,
the tiered software framework includes a plurality of tiers with accounts in downstream tiers subscribed to different accounts in upstream tiers,
the first user interface and the second user interface are accessed by a user with access credentials associated with a first account, and
at least a portion of the tiered software framework executes in a second computing device remote from the first computing device;
providing preconfigured workflow-objects in the first user interface, wherein the preconfigured workflow-objects are relevant to a context of the tiered software framework;
providing an option in the first user interface to use at least one of: (i) custom scripts or (ii) preconfigured user interface elements, to configure the preconfigured workflow-objects into the workflow-objects;
providing, in the second user interface, a layout comprising a visual mapping of interconnected workflow-objects;
providing, in the second user interface, a selection comprising the workflow-objects configured in the first user interface;
receiving, at the second computing device, through the first user interface and the second user interface, configurations of the workflow-objects and the layout of the workflow;
converting, by an application programming interface (API), the configurations of the workflow-objects and the layout of the workflow into metadata;
responsive to storing the metadata by the API, retrieving, by a push module in the first account, settings stored in the first account, the settings including tier information, subscriber information, marketplace terms and subscription terms;
responsive to identifying the marketplace terms, automatically pushing, by the push module, at least one of the workflow-object or the workflow to a marketplace in the marketplace platform, wherein the workflow-object or the workflow is available to any account in any tier according to the marketplace terms; and
responsive to identifying that the first account belongs to one of the upstream tiers, and a second account from one of the downstream tiers is subscribed to the first account, automatically pushing, by the push module, at least one of the workflow-object or the workflow to the second account, wherein the workflow-object or the workflow is available to the second account according to subscription terms stored in the first account.
2 . The method of claim 1 , further comprising:
receiving instructions, by the API from an application in the marketplace platform, to execute the workflow;
responsive to receiving the instructions, retrieving, by the API, the metadata of the workflow;
responsive to identifying that a first portion of the workflow is unconfirmed and a second portion of the workflow is confirmed, provisioning a sandbox isolated from other concurrently executing workflows in the tiered software framework; and
executing the workflow-objects of the workflow according to the metadata, the executing comprising:
for each workflow-object in the workflow:
responsive to identifying the workflow-object as belonging to the first portion, executing the workflow-object in the sandbox according to the configurations;
receiving a response from the sandbox after executing the workflow-object, wherein the response indicates a status of executing the workflow-object as successful or unsuccessful;
responsive to identifying the status as successful, storing a result generated by executing the workflow-object for later retrieval;
responsive to identifying the workflow-object as belonging to the second portion, executing the workflow-object in production according to the configurations and storing the result generated by executing the workflow-object for later retrieval; and
identifying a next workflow-object in the workflow according to the metadata, until all the workflow-objects of the workflow complete execution.
3 . The method of claim 2 , wherein the sandbox comprises a restricted execution space with access to a limited set of calls to the API, and the production comprises an unrestricted execution space with access to more than the limited set of calls to the API.
4 . The method of claim 1 , wherein the selection further comprises at least one of the preconfigured workflow-objects, workflow-objects purchased from the marketplace, or workflow-objects shared from another account.
5 . The method of claim 1 , further comprising, responsive to identifying that the first account belongs to one of the downstream tiers, preventing pushing, by the push module, the workflow-object and the workflow to any other account.
6 . The method of claim 1 , wherein:
the tiered software framework includes a first tier, a second tier and a third tier, the first tier being upstream from the second tier and the third tier, and the third tier being downstream from the first tier and the second tier,
data access among the first tier, the second tier and the third tier is governed by data access policies, such that upstream data is not accessible by downstream tiers and downstream data is accessible by upstream tiers, and
the marketplace platform is provided in the second tier.
7 . The method of claim 1 , wherein the workflow-object comprises at least one of an action, a trigger, or a dependency.
8 . The method of claim 7 , wherein:
the configurations of the action comprise fields having field attributes, configurations of the trigger comprise filters having filter attributes, and
configurations of the dependency comprise relationships among the actions or between actions and triggers.
9 . Non-transitory computer-readable tangible media that includes instructions for execution, which when executed by a processor of a computing device, is operable to perform operations comprising:
providing a first user interface in a first computing device to configure workflow-objects and a second user interface in the first computing device to build a workflow using the workflow-objects, wherein:
the first user interface and the second user interface are in a marketplace platform of a tiered software framework,
the tiered software framework includes a plurality of tiers with accounts in downstream tiers subscribed to different accounts in upstream tiers,
the first user interface and the second user interface are accessed by a user with access credentials associated with a first account, and
at least a portion of the tiered software framework executes in a second computing device remote from the first computing device;
providing preconfigured workflow-objects in the first user interface, wherein the preconfigured workflow-objects are relevant to a context of the tiered software framework;
providing an option in the first user interface to use at least one of: (i) custom scripts or (ii) preconfigured user interface elements, to configure the preconfigured workflow-objects into the workflow-objects;
providing, in the second user interface, a layout comprising a visual mapping of interconnected workflow-objects;
providing, in the second user interface, a selection comprising the workflow-objects configured in the first user interface;
receiving, at the second computing device, through the first user interface and the second user interface, configurations of the workflow-objects and the layout of the workflow;
converting, by an application programming interface (API), the configurations of the workflow-objects and the layout of the workflow into metadata;
responsive to storing the metadata by the API, retrieving, by a push module in the first account, settings stored in the first account, the settings including tier information, subscriber information, marketplace terms and subscription terms;
responsive to identifying the marketplace terms, automatically pushing, by the push module, at least one of the workflow-object or the workflow to a marketplace in the marketplace platform, wherein the workflow-object or the workflow is available to any account in any tier according to the marketplace terms; and
responsive to identifying that the first account belongs to one of the upstream tiers, and a second account from one of the downstream tiers is subscribed to the first account, automatically pushing, by the push module, at least one of the workflow-object or the workflow to the second account, wherein the workflow-object or the workflow is available to the second account according to subscription terms stored in the first account.
10 . The non-transitory computer-readable tangible media of claim 9 , the operations further comprising:
receiving instructions, by the API from an application in the marketplace platform, to execute the workflow;
responsive to receiving the instructions, retrieving, by the API, the metadata of the workflow;
responsive to identifying that a first portion of the workflow is unconfirmed and a second portion of the workflow is confirmed, provisioning a sandbox isolated from other concurrently executing workflows in the tiered software framework; and
executing the workflow-objects of the workflow according to the metadata, the executing comprising:
for each workflow-object in the workflow:
responsive to identifying the workflow-object as belonging to the first portion, executing the workflow-object in the sandbox according to the configurations;
receiving a response from the sandbox after executing the workflow-object, wherein the response indicates a status of executing the workflow-object as successful or unsuccessful;
responsive to identifying the status as successful, storing a result generated by executing the workflow-object for later retrieval;
responsive to identifying the workflow-object as belonging to the second portion, executing the workflow-object in production according to the configurations and storing the result generated by executing the workflow-object for later retrieval; and
identifying a next workflow-object in the workflow according to the metadata, until all the workflow-objects of the workflow complete execution.
11 . The non-transitory computer-readable tangible media of claim 10 , wherein the sandbox comprises a restricted execution space with access to a limited set of calls to the API, and the production comprises an unrestricted execution space with access to more than the limited set of calls to the API.
12 . The non-transitory computer-readable tangible media of claim 9 , wherein the selection further comprises at least one of the preconfigured workflow-objects, workflow-objects purchased from the marketplace, or workflow-objects shared from another account.
13 . The non-transitory computer-readable tangible media of claim 9 , the operations further comprising, responsive to identifying that the first account belongs to one of the downstream tiers, preventing pushing, by the push module, the workflow-object and the workflow to any other account.
14 . The non-transitory computer-readable tangible media of claim 9 , wherein:
the tiered software framework includes a first tier, a second tier and a third tier, the first tier being upstream from the second tier and the third tier, and the third tier being downstream from the first tier and the second tier,
data access among the first tier, the second tier and the third tier is governed by data access policies, such that upstream data is not accessible by downstream tiers and downstream data is accessible by upstream tiers, and
the marketplace platform is provided in the second tier.
15 . An apparatus comprising:
a processing circuitry;
a memory storing data; and
a communication circuitry, wherein the processing circuitry executes instructions associated with the data, the processing circuitry is coupled to the communication circuitry and the memory, and the processing circuitry and the memory cooperate, such that the apparatus is configured for:
providing a first user interface in a first computing device to configure workflow-objects and a second user interface in the first computing device to build a workflow using the workflow-objects, wherein:
the first user interface and the second user interface are in a marketplace platform of a tiered software framework,
the tiered software framework includes a plurality of tiers with accounts in downstream tiers subscribed to different accounts in upstream tiers,
the first user interface and the second user interface are accessed by a user with access credentials associated with a first account, and
at least a portion of the tiered software framework executes in the apparatus remote from the first computing device;
providing preconfigured workflow-objects in the first user interface, wherein the preconfigured workflow-objects are relevant to a context of the tiered software framework;
providing an option in the first user interface to use at least one of: (i) custom scripts or (ii) preconfigured user interface elements, to configure the preconfigured workflow-objects into the workflow-objects;
providing, in the second user interface, a layout comprising a visual mapping of interconnected workflow-objects;
providing, in the second user interface, a selection comprising the workflow-objects configured in the first user interface;
receiving, at the apparatus, through the first user interface and the second user interface, configurations of the workflow-objects and the layout of the workflow;
converting, by an application programming interface (API), the configurations of the workflow-objects and the layout of the workflow into metadata;
responsive to storing the metadata by the API, retrieving, by a push module in the first account, settings stored in the first account, the settings including tier information, subscriber information, marketplace terms and subscription terms;
responsive to identifying the marketplace terms, automatically pushing, by the push module, at least one of the workflow-object or the workflow to a marketplace in the marketplace platform, wherein the workflow-object or the workflow is available to any account in any tier according to the marketplace terms; and
responsive to identifying that the first account belongs to one of the upstream tiers, and a second account from one of the downstream tiers is subscribed to the first account, automatically pushing, by the push module, at least one of the workflow-object or the workflow to the second account, wherein the workflow-object or the workflow is available to the second account according to subscription terms stored in the first account.
16 . The apparatus of claim 15 , further configured for:
receiving instructions, by the API from an application in the marketplace platform, to execute the workflow;
responsive to receiving the instructions, retrieving, by the API, the metadata of the workflow;
responsive to identifying that a first portion of the workflow is unconfirmed and a second portion of the workflow is confirmed, provisioning a sandbox isolated from other concurrently executing workflows in the tiered software framework; and
executing the workflow-objects of the workflow according to the metadata, the executing comprising:
for each workflow-object in the workflow:
responsive to identifying the workflow-object as belonging to the first portion, executing the workflow-object in the sandbox according to the configurations;
receiving a response from the sandbox after executing the workflow-object, wherein the response indicates a status of executing the workflow-object as successful or unsuccessful;
responsive to identifying the status as successful, storing a result generated by executing the workflow-object for later retrieval;
responsive to identifying the workflow-object as belonging to the second portion, executing the workflow-object in production according to the configurations and storing the result generated by executing the workflow-object for later retrieval; and
identifying a next workflow-object in the workflow according to the metadata, until all the workflow-objects of the workflow complete execution.
17 . The apparatus of claim 16 , wherein the sandbox comprises a restricted execution space with access to a limited set of calls to the API, and the production comprises an unrestricted execution space with access to more than the limited set of calls to the API.
18 . The apparatus of claim 15 , wherein the selection further comprises at least one of the preconfigured workflow-objects, workflow-objects purchased from the marketplace, or workflow-objects shared from another account.
19 . The apparatus of claim 15 , further configured for responsive to identifying that the first account belongs to one of the downstream tiers, preventing pushing, by the push module, the workflow-object and the workflow to any other account.
20 . The apparatus of claim 15 , wherein:
the tiered software framework includes a first tier, a second tier and a third tier, the first tier being upstream from the second tier and the third tier, and the third tier being downstream from the first tier and the second tier,
data access among the first tier, the second tier and the third tier is governed by data access policies, such that upstream data is not accessible by
downstream tiers and downstream data is accessible by upstream tiers, and the marketplace platform is provided in the second tier.