SYSTEM AND METHOD FOR A DATA-DRIVEN WORKFLOW PLATFORM - Patent application
The data-driven workflow platform addresses inefficiencies in data management by natively connecting to cloud repositories, enabling real-time data processing and management without integration or transformation, thus improving enterprise data utilization and collaboration.
Patent Information
- Application Number
- JP2025517237
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2023-06-23
- Filing Date
- 2023-10-20
- Publication Date
- 2026-01-13
- Estimated Expiration
- 2043-10-20
AI Technical Summary
Current data-intensive applications require integration, transformation, and downloads of data from cloud repositories, leading to inefficiencies and operational challenges in managing and utilizing enterprise data.
A data-driven workflow platform that natively connects to cloud repositories, enabling users to create, customize, and manage applications without data integration or transformation, using a no-code interface for data mining and automated workflows.
Improves efficiency by allowing real-time data processing and management of enterprise data directly from cloud repositories, reducing the need for ETL processes and enhancing data utilization and collaboration across multiple systems.
Smart Images

Figure 0007797748000001 
Figure 0007797748000002 
Figure 0007797748000003
Abstract
Description
[Technical Field]
[0001] cross reference This application claims priority to and the benefit of U.S. Provisional Application No. 63 / 418,397, filed October 21, 2022, U.S. Provisional Application No. 63 / 454,917, filed March 27, 2023, and U.S. Application No. 18 / 340,510, filed June 23, 2023, each of which is incorporated by reference in its entirety. [Background technology]
[0002] Computing systems are pervasive in modern businesses and typically serve as critical operational resources. For example, many enterprises utilize so-called "Enterprise Resource Planning" (or ERP) systems to support various aspects of their business, such as financial management, human resources, and inventory management. Other commonly used distributed computing business systems include "Transportation Management Systems" (or TMS), which can be used to plan, monitor, and optimize logistics and transportation, and "Risk Management Systems" (or RMS), which can assist compliance officers with an enterprise's risk profile and level of adherence to applicable rules and regulations. The global ERP software market alone is estimated at $45 billion annually, with various solutions offered by providers such as SAP (RTM), Oracle (RTM), and Workday (RTM). Summary of the Invention
[0003] Currently, data-intensive applications (such as ERP software, ERP applications, and RMS applications) may need to copy or download data from the cloud for integration with cloud lakes or data warehouses, business intelligence analysis, calculations, or to run workflows on local data. For example, an ETL (extract, transform, and load) or ELT (load and transform in a data warehouse) process is required to move data from one database, multiple databases, or other sources into a unified repository.
[0004] There is a need for a service management cloud that can natively connect to the cloud and create and run cloud applications based on real-time data in existing cloud-based repositories without the need for integration, transformation, or downloads. The present disclosure provides systems and methods that enable users to create, customize, and manage applications for managing data flows and processes using distributed computing systems. In particular, the systems and methods herein may be used for business process optimization, allowing users to manage and utilize operations and processes without transferring and / or duplicating traditional enterprise data. The present disclosure provides an integrated platform (e.g., a cloud-native SaaS platform for no-code business applications with data-driven workflows) for users, organizations, or cloud service providers to access their cloud data and process it for business applications that initiate and manage workflows. Efficiency is improved by natively connecting to the cloud without the need for data integration, transformation, or downloads. The platform may enable users to create, customize, and / or configure cloud applications through a no-code user interface that incorporates capabilities such as data mining, configurable and automated workflows, and dynamic relationship discovery and creation.
[0005] In one aspect, described herein is a method for providing a data-driven workflow platform, the method including mapping selected data objects to a data storage model of the data-driven workflow platform, storing the selected data objects in a data cloud configuration operatively coupled to the data-driven workflow platform, and displaying on a graphical user interface (GUI) an interactive flow for building a cloud application that utilizes or manages the selected data objects, the interactive flow including at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data object.
[0006] In some embodiments, the data cloud configuration comprises one or more data clouds that store data objects, and the data-driven workflow platform is authorized to access, process, and edit the data objects stored in the one or more data clouds. In some embodiments, mapping the selected data objects to the data storage model includes defining relationships between the selected data objects and elements of the data storage model. In some cases, the relationships are defined by a user via a GUI. In some cases, the GUI allows a user to link one or more data fields of the selected data objects to one or more data fields or elements of the data storage model. In some cases, the relationships are automatically generated by the data-driven workflow platform and displayed on the GUI as recommended relationships.
[0007] In some embodiments, mapping the selected data objects to the data storage model includes identifying elements missing from the data storage model and prompting a user to identify another set of data objects for the missing elements. In some embodiments, the data storage model includes a plurality of data types including at least one of a task type, an application type, and an element data type. In some cases, mapping the selected data objects to the data storage model includes mapping the selected data objects to an element data type.
[0008] In some embodiments, the interactive flow allows a user to add, remove, or modify one or more components of the cloud application by dragging and dropping one or more graphical elements into the interactive flow. In some cases, the interactive flow includes a pre-built template flow that prompts the user to add, remove, or modify one or more components. In some cases, the pre-built template flow is automatically determined based at least in part on the selected data object and cloud application.
[0009] In some embodiments, rules are automatically generated based at least in part on one or more data fields added to the interactive flow. In some cases, rules are automatically generated using models, which are developed using rules extracted from past actions and previously processed data. In some cases, rules are recommended to a user on a GUI, with at least one graphical element allowing the user to accept, reject, or modify the rule.
[0010] In some embodiments, the rules are manually defined by a user via a GUI. In some embodiments, the rules include a definition of a trigger event, where the trigger event is time-based or related to a change in value or a change in status of at least a selected subset of data objects. In some cases, the rules further include a definition of a condition for performing an action. In some cases, the rules further include a definition of an action. In some examples, the action is selected from the group consisting of adding a watcher, updating a field, sending a notification, posting a comment, assigning to a user or group, and creating a record.
[0011] In some embodiments, the method further includes displaying selected data objects conforming to the data storage model within a portal of the GUI. In some cases, the method further includes modifying at least one value of the selected data objects via the GUI and automatically updating the value of the corresponding selected data object in the data cloud configuration via the API connection. In some cases, the method further includes receiving instructions to perform an operation on at least one of the selected data objects via the GUI and performing the operation on at least one of the selected data objects in the data cloud configuration without using an extract-transform-load (ETL) data integration process. For example, the selected data object includes transactional data or streaming data, and performing the operation further includes caching intermediate results by the data-driven workflow platform. In some embodiments, the trigger event for the selected data object includes a change to the selected data object stored in the data cloud configuration.
[0012] In another aspect, described herein is a system for providing a data-driven workflow platform, the system comprising: a first module configured to operatively couple the data-driven workflow platform to one or more data clouds; a second module configured to map selected data objects to a data storage model of the data-driven workflow platform, the selected data objects stored in the one or more data clouds; and a visualization module configured to display on a graphical user interface (GUI) an interactive flow for building a cloud application that utilizes or manages the selected data objects, the interactive flow including at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data object.
[0013] In some embodiments, the first module manages one or more permissions granted to the data-driven workflow platform to access, process, and edit data objects stored in one or more data clouds. In some embodiments, selected data objects are mapped to the data storage model by defining connections between the selected data objects and elements of the data storage model. In some embodiments, the visualization module is further configured to display a second GUI that enables a user to define relationships between elements of the data storage model. In some embodiments, the second GUI enables a user to link one or more data fields of a first selected element of the data storage model to one or more data fields of a second selected element. In some embodiments, the relationships are automatically generated by the data-driven workflow platform and displayed on the second GUI as recommended relationships.
[0014] In some embodiments, the second module is configured to further identify elements missing from the data storage model and prompt the user to identify another set of data objects for the missing elements. In some embodiments, the data storage model includes a plurality of data types including at least one of a task type, an application type, a transaction data type, and an element data type. In some cases, the second module is configured to further map the selected data object to a transaction data type or an element data type.
[0015] In some embodiments, the interactive flow allows a user to add, remove, or modify one or more components of a cloud application by dragging and dropping one or more graphical elements into the interactive flow. In some cases, the interactive flow includes a pre-built template flow that prompts the user to add, remove, or modify one or more components. For example, the pre-built template flow is automatically determined based at least in part on the selected data objects and cloud application. In some cases, rules are automatically generated based at least in part on one or more data fields added to the interactive flow. In some cases, rules are automatically generated using a model, where the model is developed using rules extracted from past actions and previously processed data. For example, rules are recommended to the user on a GUI, and at least one graphical element allows the user to approve, reject, or modify the rule.
[0016] In some embodiments, the rules are manually defined by a user via a GUI. In some embodiments, the rules include a definition of a trigger event, which is time-based or related to a change in value or status of at least a selected subset of data objects. In some embodiments, the rules further include a definition of a condition for performing an action. In some embodiments, the rules further include a definition of an action. In some embodiments, the action is selected from the group consisting of adding a watcher, updating a field, sending a notification, posting a comment, assigning to a user or group, and creating a record.
[0017] In some embodiments, the visualization module is further configured to display selected data objects conforming to the data storage model within a portal of the GUI. In some cases, at least one value of the selected data objects is modified via the GUI, and a value of the corresponding selected data object in the data cloud configuration is automatically updated via the first module. In some embodiments, the first module is configured to translate instructions for performing operations on at least one of the selected data objects received via the GUI into database operations executable within the data cloud configuration. In some cases, the database operations are performed on the selected data objects in the data cloud configuration without using an extract-transform-load (ETL) data integration process. In some cases, the selected data objects include transactional data or streaming data, and the data-driven workflow platform is configured to cache intermediate results for executing the operations. In some embodiments, the trigger event for the selected data object includes a change to the selected data object stored in the data cloud configuration.
[0018] In some embodiments, the interactive flow is identified from a plurality of predefined workflows by a large-scale language model (LLM). In some cases, the interactive flow is identified based at least in part on a data schema of selected data objects stored in a data cloud configuration. In some cases, the output of the LLM includes a list of instructions for creating the interactive flow.
[0019]
[0013] Further aspects and advantages of the present disclosure will become readily apparent to those skilled in the art from the following detailed description, in which only exemplary embodiments of the present disclosure have been shown and described. As will be realized, the present disclosure is capable of other and different embodiments, and its several details are capable of modifications in various obvious aspects, all without departing from the present disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature and not as restrictive.
[0020] Incorporation by Reference All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference. To the extent that a publication, patent, or patent application incorporated by reference conflicts with the disclosure contained herein, the present specification is intended to supersede and / or take precedence over such conflicting material. [Brief explanation of the drawings]
[0021] The novel features of the present disclosure are set forth with particularity in the appended claims. The features and advantages of the present disclosure will be better understood by reference to the following detailed description illustrating exemplary embodiments and the accompanying drawings (also referred to herein as "Figures" and "FIGs").
[0022] [Figure 1] 1 shows an example of storing enterprise data in a conventional database system. [Figure 2] 1 shows an example of a cloud-based repository provider. [Figure 3] Schematic examples of cloud services and SaaS are shown. [Figure 4] 1 illustrates various configurations in which a service management cloud system may be configured with direct interconnectivity between users and data cloud configurations. [Figure 5] 1 illustrates various configurations in which a service management cloud system may be configured with direct interconnectivity between users and data cloud configurations. [Figure 6] 1 illustrates various configurations in which a service management cloud system may be configured with direct interconnectivity between users and data cloud configurations. [Figure 7] 1 illustrates various configurations in which a service management cloud system may be configured with direct interconnectivity between users and data cloud configurations. [Figure 8] 1 illustrates a schematic representation of a platform that provides an interface for viewing, accessing, and managing all secured process data within a data cloud. [Figure 9] 1 illustrates a schematic diagram of an example service management cloud system. [Figure 10] The configuration of the service management cloud is shown. [Figure 11] 1 illustrates a service management cloud session configuration. [Figure 12] 1 illustrates a service management cloud session configuration with write-back capabilities. [Figure 13] Demonstrates access management, control, and collaboration within the platform. [Figure 14] Demonstrates access management, control, and collaboration within the platform. [Figure 15] Demonstrates access management, control, and collaboration within the platform. [Figure 16] A platform with secure and efficiently managed access is presented. [Figure 17] An example of setting up a connection to a data source in the Data Cloud and mapping the source data to data elements in the platform is provided. [Figure 18] We present example use cases for configuring and using variations of our data-driven workflow platform in advanced business processes with varying levels of automation. [Figure 19] We present example use cases for configuring and using variations of our data-driven workflow platform in advanced business processes with varying levels of automation. [Figure 20] We present example use cases for configuring and using variations of our data-driven workflow platform in advanced business processes with varying levels of automation. [Figure 21] An example GUI for creating and / or editing automations is shown. [Figure 22] An example GUI for creating and / or editing automations is shown. [Figure 23] An example GUI for creating and / or editing automations is shown. [Figure 24] 1 shows an example of a GUI for creating or adding a relationship. [Figure 25] 1 shows an example of a GUI for creating or adding a relationship. [Figure 26] An example of a GUI for creating a workflow is shown below. [Figure 27] An example of a GUI for creating a workflow is shown below. [Figure 28] An example of a GUI for creating a workflow is shown below. [Figure 29] An example of a GUI for creating a workflow is shown below. [Figure 30] An example of a GUI for creating a workflow is shown below. [Figure 31] 1 shows an example GUI that displays the created workflow along with tracked progress and analysis. [Figure 32]1 shows an example GUI that displays the created workflow along with tracked progress and analysis. [Figure 33] An example of a logistics application suite is shown. [Figure 34] An example of a logistics application suite is shown. [Figure 35] An example of a logistics application suite is shown. [Figure 36] An example of a logistics application suite is shown. [Figure 37] An example of a logistics application suite is shown. [Figure 38] An example of a logistics application suite is shown. [Figure 39] An example of a GUI for configuring or creating data mining is shown. [Figure 40] An example of a GUI for configuring or creating data mining is shown. [Figure 41] An example of a GUI for configuring or creating data mining is shown. [Figure 42] An example of a GUI for configuring or creating data mining is shown. [Figure 43] An example of a GUI for configuring or creating data mining is shown. [Figure 44] 1 illustrates an architecture for a data-driven workflow platform. [Figure 45] 1 illustrates a schematic diagram of an example of an AI-based application discovery function according to some embodiments of the present disclosure. [Figure 46] An example GUI for AI-based application discovery is shown. [Figure 47] An example GUI for AI-based application discovery is shown. [Figure 48] An example GUI for AI-based application discovery is shown. [Figure 49] 1 illustrates a schematic diagram of an example of an AI-generated workflow function, according to some embodiments of the present disclosure. [Figure 50] An example of the GUI for the AI-generated workflow function is shown below. [Figure 51] An example of the GUI for the AI-generated workflow function is shown below. [Figure 52] An example of the GUI for the AI-generated workflow function is shown below. [Figure 53] An example of the GUI for the AI-generated workflow function is shown below. [Figure 54] 1 shows an example GUI for an automation flow. [Figure 55] 1 shows an example GUI for an automation flow. [Figure 56] 1 shows an example GUI for an application marketplace. [Figure 57] 1 shows an example GUI for an application marketplace. [Figure 58] We show an example of a GUI (e.g., Cloudlink Explorer) that allows users to find data in a data cloud (e.g., Snowflake). [Figure 59] 1 shows an example of a GUI (e.g., CLOUDLINK EXPLORER) that allows a user to find data within a data cloud (e.g., SNOWFLAKE). [Figure 60] 1 shows an example GUI for a user to set logic rules (e.g., filter parameters and logic operators within records) to find data. [Figure 61] 1 shows an example GUI for users to configure machine learning-based anomaly detection and reporting rules. [Figure 62] 1 shows an example GUI that allows a user to select a primary column to be used as a unique identifier for the data. [Figure 63] A non-limiting example of a computing device is shown, in this case a device having one or more processors, memory, storage, and network interfaces. [Figure 64]A non-limiting example of a web / mobile application delivery system is shown, in this case a system that provides a browser-based and / or native mobile user interface. [Figure 65] A non-limiting example of a cloud-based web / mobile application delivery system is shown, in this case with elastically load-balanced and auto-scaled web server and application server resources and a synchronously replicated database. DETAILED DESCRIPTION OF THE INVENTION
[0023] While various embodiments of the present invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. Various variations, changes, and substitutions may occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein may be employed.
[0024] Specific Definitions Unless otherwise defined, all technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.
[0025] References throughout this specification to "some embodiments" or "one embodiment" mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment. Thus, the appearances of the phrase "some embodiments" or "one embodiment" in various places throughout this specification do not necessarily all refer to the same embodiment. Furthermore, particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0026] As used herein, the terms "component," "system," "interface," "unit," etc. are intended to refer to computer-related entities, hardware, software (e.g., running), and / or firmware. For example, a component may be a processor, a process running on a processor, an object, an executable file, a program, a storage device, and / or a computer. By way of illustration, an application running on a server and the server may be a component. One or more components may reside within a process, and a component may be localized on one computer and / or distributed between two or more computers.
[0027] Additionally, these components may execute from various computer-readable media having various data structures stored thereon. Components may communicate via local and / or remote processes, such as pursuant to signals comprising one or more data packets (e.g., data from one component interacting with other components via signals within a local system, within a distributed system, and / or over a network, such as the Internet, a local area network, or a wide area network, with other systems).
[0028] As another example, a component may be a device having a particular function provided by mechanical parts operated by electrical or electronic circuitry, where the electrical or electronic circuitry may be operated by software or firmware applications executed by one or more processors, where the one or more processors may be internal or external to the device and may execute at least a portion of the software or firmware applications. As yet another example, a component may be a device that provides particular functionality through electronic components without mechanical parts, where the electronic components may include one or more processors therein for executing, at least in part, software and / or firmware that imparts the functionality of the electronic component. In some cases, a component may emulate an electronic component via a virtual machine, for example, in a cloud computing system.
[0029] Whenever the terms "at least," "greater than," or "greater than or equal to" appear before the first number in a series of two or more numbers, the terms "at least," "greater than," or "greater than or equal to" apply to each number in the series. For example, "1, 2, or 3 or more" is equivalent to "1 or more, 2 or more, or 3 or more."
[0030] Whenever the terms "not greater than," "less than," or "less than or equal to" appear before the first number in a series of two or more numbers, the terms "not greater than," "less than," or "less than or equal to" apply to each number in the series. For example, "less than or equal to 3, 2, or 1" is equivalent to "less than or equal to 3, 2, or 1."
[0031] As used herein, a processor encompasses one or more processors, e.g., a single processor, or multiple processors, e.g., in a distributed processing system. A controller or processor as described herein generally includes a tangible medium storing instructions for performing process steps, and the processor may comprise, for example, one or more of a central processing unit, programmable array logic, gate array logic, or field programmable gate array. In some cases, the one or more processors may be a programmable processor (e.g., a central processing unit (CPU) or microcontroller), a digital signal processor (DSP), a field programmable gate array (FPGA), and / or one or more advanced RISC machine (ARM) processors. In some cases, the one or more processors may be operably coupled to a non-transitory computer-readable medium. The non-transitory computer-readable medium may store logic, code, and / or program instructions executable by one or more processor units to perform one or more steps. The non-transitory computer-readable medium may include one or more memory units (e.g., removable media or external storage devices such as an SD card or random access memory (RAM)). One or more of the methods or operations disclosed herein may be implemented in hardware components, such as, for example, an ASIC, a special purpose computer, or a general purpose computer, or a combination of hardware and software.
[0032] Furthermore, the word "exemplary" is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete manner. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless otherwise specified or clear from the context, "X employs A or B" is intended to mean any of the natural inclusive permutations. That is, if X employs A, if X employs B, or if X employs both A and B, then "X employs A or B" applies to any of the foregoing. Furthermore, the articles "a" and "an," as used in this application and the appended claims, should generally be construed to mean "one or more" unless otherwise specified or clear from the context to refer to the singular form.
[0033] Cloud Service Overview FIG. 1 illustrates an example of storing enterprise data in a conventional database system. As shown in this example, typically, one or more users (2, 4, 6) within an enterprise (such users may be the same user operating through separate systems or may represent three different users operating through separate systems) establish separate user sessions (10, 12, 14) with each of the connected (66, 68, 70; 72, 74, 76) systems (16—e.g., an ERP system; 18—e.g., a TMS system; 20—e.g., an RMS system) to which such one or more users (2, 4, 6) have access and utilization credentials and permissions. Typically, each system (16, 18, 20) may be operatively coupled (78, 80, 82) to one or more database systems (22, 24, 26) configured to store relevant data and utilize such data for sorting, reporting, and / or calculations, e.g., dynamically in response to requests coming through the interconnected systems (16, 18, 20). Enterprises using such configurations often have specific information technology resources available to maintain, update, and address various aspects of their database / computing systems (22, 24, 26), and as explained in more detail below, there are inherent operational risks and inefficiencies for such enterprises associated with the uniqueness and complexity of many ERP / database / computing configurations.
[0034] Next-generation configurations are evolving, with enterprise data becoming more decoupled from computing resources. As shown in Figure 2, cloud-based repository providers (e.g., Snowflake (RTM)) continue to gain market share from traditional ERP / database / compute configurations (such as those shown in Figure 1) by offering systems and data cloud systems (34) configured for specific enterprises that are built to inherently separate enterprise data from core computing resources, which may reside in interconnected (e.g., via high-throughput connections) scalable computing configurations (36), such as those offered by Amazon (RTM), Google (RTM), and Microsoft (RTM) under the trademarks Amazon Web Services (RTM), Google Cloud (RTM), and Azure (RTM).
[0035] As shown in Figure 2, one or more users (2, 4, 6) within an enterprise (which may be the same user operating through separate systems or may represent three different users operating separate systems) may utilize one or more computing sessions (10, 12, 14) to operate one or more connected systems (16, 18, 20), which may be interconnected (84, 86, 88, 90, 92, 94) into a data cloud configuration (34). Many such systems (16, 18, 20) as shown in Figure 2 typically require maintaining a significant level or amount of enterprise data using separate databases (28, 30, 32) that can be manipulated (e.g., via traditional system integration such as application programming interfaces (or "APIs"), batch tables, XML dispatch, etc.). Thus, even if some of the enterprise data, such as reporting data and / or audit data, is stored and then copied to a data cloud (34) using operational computing provided by an interconnected (96) scalable computing configuration (36), the data and data processing typically remains distributed across other different systems (18, 20, 22), again resulting in various efficiency, complexity, cost, and risk management drawbacks for such enterprises.
[0036] In recent years, cloud services and software-as-a-service (SaaS) have the potential to provide more scalable, functional, efficient, upgradeable, less isolated, and more secure enterprise computing resources. Particularly in typical modern enterprise scenarios grappling with various problems, such as supply chain challenges, the number of pieces of information from potentially disparate systems that must be integrated and accepted, often manually, to make timely and informed business decisions can be overwhelming. For example, as shown in Figure 3, in a typical enterprise manufacturing complex technology products, it may not be uncommon to pull information from multiple traditionally integrated (16, 18, 20) and / or SaaS (38) systems (e.g., software to examine approved purchase orders for key components of manufactured goods, as well as shipping / transportation status, operational risk, payment status, and relevant weather data) to understand whether a particular shipment will actually arrive at the appropriate manufacturing facility on time and help ensure manufactured goods are shipped in time for a particular holiday.
[0037] Perhaps more importantly, even in a scenario where a sufficient number of users / operators could participate in a real-time discussion to address such compound, complex problems, they would likely bring data from disparate systems that is not linked, not coordinated, perhaps not updated in real-time or near-real-time, and not yet addressed by business process analytics to support decision-making based on many inputs. In other words, such a discussion would require 30 operators, each with their own perspective and data from disparate systems (some of which may not be within the enterprise firewall), each wanting to participate in a real-time discussion about the problems that currently exist and potential solutions to address them. Described herein are systems and methods for operating, managing, and automating business processes that are configured to address these and other operational challenges in the modern enterprise.
[0038] Referring to Figure 3, an enterprise architecture similar to that shown in Figure 2 is shown with the addition of one or more so-called "Software as a Service" (or "SaaS") systems (38) configured to enable users (8) to utilize SaaS architectures (38), such as customer relationship management (CRM), enterprise resource planning (ERP), content management systems (CMS), project management software, sales, marketing, or e-commerce software (e.g., Salesforce (RTM), Adobe Creative Cloud (RTM), ServiceNow (RTM), etc.). Such systems typically utilize interconnected (100) SaaS data systems (40), such as databases, specifically configured to facilitate the operation of the SaaS architectures (38) by drawing specific data from the interconnected data cloud architectures (34), such as through traditional system integration as described above with reference to the interconnected systems (16, 18, 20). Similar to the system configuration shown in FIG. 2, even if some of the enterprise data is placed in a data cloud (34) with operational computing provided by a scalable computing configuration (36), some data remains distributed across other heterogeneous systems (28, 30, 32, 40), again resulting in various efficiency, complexity, cost, and risk management drawbacks for such an enterprise.
[0039] Service management cloud system (data-driven workflow platform) The present disclosure provides an improved service management cloud system or cloud-native SaaS platform for no-code applications with data-driven workflows that utilize cloud data. The service management cloud system described herein can provide configurable, automated data-driven workflows via no-code applications. The service management cloud system may natively integrate with any data cloud, enabling configurable applications for workflows or processes without the need for ETL (extract, transform, load) or ELT (load and transform in a data warehouse). The terms "service management cloud" or "cloud-native SaaS platform" may also be referred to as "data-driven workflow platform," and are used interchangeably throughout this specification.
[0040] 4-7 illustrate various configurations in which a service management cloud system (44) can be configured to have direct interconnectivity (104, 106) between users (8) and the data cloud structure (34). As described in further detail below, the service management cloud system (44) can be specifically configured to operate without requiring mass data migration from the data cloud structure (34) to other systems while providing visibility and utility to users (8) through the service management cloud (44) for managing business activities and processes in an efficient and scalable manner. For example, as described in further detail below with reference to FIG. 9, the service management cloud system (44) can be specifically configured to not only provide efficient, globally controllable access to various interconnected systems and data using properly granted permissions, but also connect these data and systems so that the data is available to the service management cloud system (44) with the same efficiency and latency as if the data were locally present in the service management cloud system (44). In other words, for a given session, the service management cloud system (44) and the interconnected resources (34, 36) may be configured such that the data in question is "functionally native" to the session in the service management cloud system (44). This provides significant additional opportunities for enterprise data utilization, while ensuring that the data continues to be updated in real-time, near-real-time, etc., and resides entirely, or at least primarily, on the data cloud (34).
[0041] Referring to FIG. 4, an enterprise data architecture is shown in which traditional connected business systems (16, 18, 20) such as those shown in FIG. 2 remain in place (i.e., in a data cloud) and support the traditional operations of one or more given users (2, 4, 6) through sessions (10, 12, 14) with such systems (16, 18, 20) and their connected data (28, 30, 32, 34), and a separate service management cloud system (44) is configured to provide direct access to the interconnected (106) data cloud architecture (34), allowing users of the service management cloud system (44) to access the data cloud architecture (34). Not only can the user (8) examine information contained in the data cloud configuration (34) in the form of views, such as responses to queries, reports, etc., without migrating data from the data cloud configuration (34) to the user (8), but the user (8) can also create, operate, and manage business processes by utilizing the interconnected combination of resources of the service management cloud system (44), the data cloud configuration (34), and the associated scalable computing configuration (36) without migrating data from the data cloud configuration (34) to the user (8), as described in more detail below, such as with reference to FIG. 9.
[0042] For simplicity, Figure 5 shows a variation in which there are no integrated traditional enterprise systems (e.g., 16, 18, 20 in Figure 4). Such a configuration may occur in paradigms where such traditional configurations have been migrated to a service management (44) and data cloud (34) configuration, or where traditional functionality has been omitted due to functionality available in the service management (44) and data cloud (34) configuration.
[0043] FIG. 6 illustrates an embodiment in which three separate data cloud configurations (34, 52, 54) are interconnected (106, 110, 112) between a service management cloud system (44) and three separate interconnected (96, 114, 116) scalable computing configurations (36, 48, 50), which may be maintained by different and / or separate providers (e.g., Amazon Web Services (RTM), Google Cloud (RTM), and / or Azure (RTM)). Such a configuration, as further described below with reference to FIG. 9, illustrates that a single user (8) can utilize a single instantiation of the service management cloud (44) to inspect and control data from and perform computing operations on a variety of heterogeneous interconnected systems, again without relying heavily on the data cloud configurations (34, 52, 54) to pull data from such systems toward the user (8). For example, in embodiments where a particular data cloud configuration features remote compute management capabilities such as those offered by Snowflake (RTM) under the trademark name “Streams” (RTM), or where appropriate adapters have been built on its behalf, data manipulation language (“DML”) changes to tables, directory tables, external tables, or underlying tables in one or more views (including secure views) may be recorded against a given source object, thereby enabling traceable remote operations or forms of remote operation of instantiations of a Snowflake data cloud configuration. Such streaming configurations may be utilized to provide a service management cloud (44) with access to data in one or more data cloud configurations (34, 52, 54), along with access to computing operations via one or more associated interconnected (96, 114, 116) scalable computing configurations (36, 48, 50).
[0044] Referring to FIG. 7 , one or more interconnected (120, 122, 124, 126, 128, 130) adapter (58, 60, 62) modules may be configured to support specific utilization of the target data cloud configuration (34, 52, 54) by the service management cloud (44), such as functionality related to utilizing the scalable computing configuration (36, 48, 50) for as much relevant computing as possible. The adapters may enable data hosted in a data cloud (e.g., Snowflake) to appear native within the service management cloud platform. For example, during configuration or integration of target data between the data cloud (e.g., Snowflake) and the service management cloud, the adapters can set up mappings and data type matching without changing or modifying the data in the data cloud. Details of adapters, data type matching, assignments, and data mapping (connection configuration to data sources) are described later in this specification.
[0045] As noted above, many multifaceted modern business challenges may require personnel, information, and expertise not only from various people and sources within a particular organization, but also from other (i.e., external) organizations. For example, a typical enterprise may contract various aspects of its logistics operations. To understand and address specific, pressing business challenges that may involve logistics, the enterprise may need to engage the personnel and information of external logistics service providers. Such engagement may traditionally require email, conference calls, telephone calls, and numerous people. A key benefit of the subject service management cloud (44) configuration is its enhanced ability to involve people in collaborative processes with specific, controlled access levels, whether within a specific organization, department, or generalized security.
[0046] The service management cloud platform may enable process sharing. In addition to securely sharing data within the data cloud, participants or different entities involved in a workflow may share processes. For example, a supply chain team can work and collaborate directly with partners on the same data within the same workflow through the platform herein. The platform may provide an interface for viewing, accessing, and managing process data, such as tasks, assignments, and reminders, all of which are secured within the data cloud. Referring to configuration (132) in FIG. 8 , the service management cloud (44) may be configured to allow pre-established or in-app defined (134) login permissions (136) that may provide specific access roles or levels (e.g., full global access, organization-only, application-only, or even limited to a single record). The service management cloud (44) may be configured to enable appropriate connectivity and access to information using the data cloud (34) and associated computing resources (e.g., 36 in FIG. 4).
[0047] Additionally, access to each specific aspect of the enterprise data and systems may be tracked and audited (140) with precise access and tracking by record, application, organization, role, etc. For example, reports, user interface dashboards, or notifications may be configured to allow administrators of the service management cloud (44) configuration to understand who has access to what across the entire system, conveniently with real-time or near-real-time updates. Referring to Figures 13-15, further aspects of access management, control, and collaboration are illustrated. Referring to Figure 13, a hierarchical configuration (186) is illustrated, which, as discussed above, may be utilized to assist administrators of the service management cloud (44) configuration in providing very specific access to aspects of the system, such as based on individual records (194), applications (192), organization-based (190), or globally (188), subject to appropriate restrictions. Thus, referring to Figure 14, for example, such a configuration (202) facilitates collaboration within and outside a given organization by one or many parties. A user ("John Smith" 204) is shown as having an internal role (212) within a given company organization that gives him appropriate access (214) to that company's service management cloud (44). Using access configurability as described with reference to FIG. 8, John Smith (204) may also be granted individual and specific access to external resources in a partner organization's service management cloud (44) based on his role (206) at that external partner organization or based on app-specific criteria (208). FIG. 14 also shows that John Smith (204) may have limited access to a single record (210) in a third organization's service management cloud (44). Thus, John Smith (204) may collaborate securely, in real time or near real time, conveniently, and efficiently with people, processes, and data from three or more organizations via the cloud using targeted configuration of the service management cloud, without the need to log in and out of multiple systems.
[0048] FIG. 15 shows that using such a service management cloud (44) configuration (216), a user such as John Smith (element 204 in FIG. 6B) can easily switch between organizations to collaborate. In other words, "bringing in someone from another organization to help with this urgent / specific problem" becomes highly efficient, secure, and controlled, and can be automated in many ways, as explained further below. Furthermore, the service management cloud (44) can be configured to be platform-independent so that it can be accessed and utilized from any web interface, thereby allowing appropriate users to manage any platform from anywhere, typically backed by the superior computing power of a secure data center, such as the scalable computing configuration (36) operably coupled (96) to the data cloud (34) in the embodiment of FIG. 4.
[0049] Referring to FIG. 9, a robust, accurate, and convenient paradigm for managing access not only allows operators to visualize data updated in real time or near real time, but also allows them to leverage the data in new ways across many types of business processes with various levels of automation. As shown in FIG. 9, data can become functionally native for further utility, subject to appropriate access restrictions. As noted above, the concept of functionally native refers to the fact that a service management cloud (44) can be configured to present a given user with access to constantly updated data in real time or near real time, with a level of latency and access that is similar to if the data resided in a local computing operation, despite the fact that the data typically actually resides on a data cloud (34) and is supported by significant scalable computing configurations (such as element 36 in FIG. 4). The updated data is efficiently available and, subject to appropriate permissions, can be used for various in-session operations (146), such as generating reports or notifications, various types of calculations, auditing, searching, analysis, sequential and / or logical utilization, process automation, etc. (150). Additionally, subject to appropriate permissions, data may be written back (150) so that changes or new data are stored in the data cloud and may be used to update other interconnected systems and their databases.
[0050] 10, an expanded illustration of the service management cloud 44 configuration 152 is shown, which illustrates that, given functionally native access to data, many operations can be efficiently performed using the service management cloud 44 in a platform-independent manner, again via web services. For example, a cloud application ("app") may be created to perform various recurring or one-time operations, such as functionally "display all current vendors in Japan" (154), "determine the number of assemblies in finished goods inventory at factory #522" (156), "create a report featuring a superset of SKUs expected to be received in December" (158), "return the total monthly cost of goods sold from manufacturing line #12" (160), and "display all recent purchase orders since January" (162).
[0051] With respect to utilization of data made functionally native during a given session on the service management cloud (44), the system may be configured to deliver data to a given user's session based on factors such as the platform the user is using to access the service management cloud (44) (e.g., a smartphone-based platform may not have the capacity to throughput or receive as much data as a robust desktop workstation), the quality of the connection between the user's client device and the service management cloud (44), the bandwidth or latency of the connection between the user's client device and the service management cloud (44), and / or the location of the user's client device relative to the data cloud (e.g., element 34 of FIG. 4; it may be desirable to allow the user to configure a particular session within the service management cloud (44) to prioritize data local to the user), and the location of the user's client device relative to the scalable computing configuration (e.g., element 36 of FIG. 4). In other words, the service management cloud (44) can be configured to automatically adjust the delivery of data to a user's session based on various factors, improving utility and generally supporting users in collaboration and other business operations.
[0052] Referring to Figure 11, the Service Management Cloud (44) session configuration (164) illustrates how the functionally native data (144) can be utilized for advanced business process automation. For example, the Service Management Cloud (44) can be configured to functionally and automatically execute processes that utilize available data, such as "If any SKU contains metadata 'risk,' flag a report and send the report to the regulatory department" (166), "If shipments are delayed for more than 20 days in December, execute remediation / replacement logic, notify the controller and legal department, and email the remediation / replacement terms to legal department" (168), "If purchases are made in China and the SKU is hardware, communicate the shipping details to Chinese customs" (170), "If an authorized person in accounting has not signed the rating number, send the shipping details to accounting" (172), and "On the first of each month, search for all available information on reputation data for all vendors and send it to the ESG department" (174).
[0053] Referring to FIG. 12, a service management cloud (44) session configuration (176) is shown, which allows real-time or near-real-time access (138) to functionally native data (144) for write-back purposes (150). For example, the service management cloud (44) may be configured to functionally write back to a data cloud (such as element 34 of FIG. 4), which, as described above, may be used to update other interconnected systems in the following example scenarios: "Include new metadata comments associated with this table": "Data may be corrupted," "Some columns appear identical," "Audit required" (178), "Update shipment ETA from January 1 to January 5" (180), "Modify data in specific row / column of this specific table," "Replace '2oo, 100.55' with '200, 100.55'" (182), "Increase purchase quantity from 1500 to 2500" (184). Such write-backs can represent significant changes in operations, and the ability to efficiently and securely navigate through one interface and have data instantly reflected to other users represents another important paradigm shift. Because the service management cloud connects directly to data stored in the data cloud provider and workloads or queries are executed within the data cloud, source data may be updated or modified within the data cloud and / or new data may be added to the data cloud (e.g., when an action is taken in an automation configuration that requests a data update). The service management cloud may offer alternative capabilities to directly invoke APIs into a cloud service (e.g., Salesforce) to perform an action (e.g., add a new data record to a new column or table in the data cloud) or update source data. The platform may write back to the cloud service (e.g., Salesforce), write back directly to the source system (e.g., ERP, CRM, CMS, etc.), or a combination of both. In some cases, the platform may allow users to set write-back preferences or permissions.For example, a user may enable write-back for both the cloud service and the connected source system, or the user may enable write-back for only the cloud service.
[0054] Referring to FIG. 16, as described above, making additional data available on a function-native basis with platform-independent, secure, and efficient managed access (138) can be accomplished (220) using the service management cloud (44) as follows: 1. Log in using credentials and connect to the data cloud; 2. Select the appropriate table to connect to; 3. Add details to the new element, such as a name, handle, and / or description; and 4. Map fields by matching table fields in the data cloud to record fields in the element. Referring to FIG. 17, these steps are illustrated in a view of the session user interface of the service management cloud (44) (setting credentials 222, connecting to tables 224, associating element details 226, and configuring field mappings 228).
[0055] Referring to Figures 18-20, several use cases are shown for configuring and using variations of the service management cloud (44) in advanced business processes with various levels of automation.
[0056] Referring to FIG. 18, environmental, social, and governance ("ESG") scoring and monitoring has become a key priority in many business organizations. Data is available from many sources, in many forms, and with varying levels of latency, certainty, and other important factors, resulting in varying degrees of complexity within such organizations. FIG. 18 illustrates a scenario in which an organization requires all partners to provide ESG-related data in a predetermined format, in a predetermined table, and in a predetermined location, so that it can be made available, subject to appropriate permissions, using a service management cloud (44). Thus, the ESG data is arranged in a predetermined format in tables that can be accessed via the service management cloud (44), subject to appropriate permissions. To facilitate efficient and automated use of relatively standardized and predictable data from various partners, existing apps can be created and configured to automatically create (236) predetermined records or reports (232) based on connectivity (234) with ESG data tables. Additionally, the service management cloud (44) may be configured to automatically flag vendors or partners with ESG scores that may be below certain predetermined or customizable thresholds and automatically deliver such information via written report documents emailed or electronic notifications to the service management cloud's (44) dashboard interface, smartphone, etc. (238).
[0057] Referring to Figure 19, an embodiment related to ESG analysis is shown where available data may not be homogenous or standardized, but rather may be made available through the service management cloud (44) in a heterogeneous form (240). In such cases, rather than using or modifying one of several pre-built apps available in the service management cloud (44), an operator of the service management cloud (44) may create custom apps that run within the service management cloud (44) using the sophisticated and simplified "no-code" and / or "drag-and-drop" configuration interface of the service management cloud. Details of the user interface and system for workflow creation are described later in this specification. Referring again to FIG. 19, a user can use the app creation user interface (e.g., drag / drop functionality) to add sections (e.g., stages, summary, key details, resolution code), add fields within each section, identify "required" fields as needed (e.g., fields with dates, values (e.g., quantity or cost), names (e.g., related to the owner)), and add interactions (e.g., conversations (e.g., multi-party chat), approvals, tasks, attachments, update components, etc.) (244). In apps created to retrieve and process data, workflows and process automation configurations can be created to automate ESG analysis and audit processes (e.g., perform quality assurance analysis of the updated data, calculate average E, S, and G scores for each vendor for which data is available, send notifications to the ESG department (e.g., via a connected device, a data-driven workflow platform (e.g., via an in-app notification center or dashboard), or text message), create a second notification related to any vendors whose E, S, or G scores are below a predetermined threshold, and send the second notification to the ESG and risk management departments (246).
[0058] Referring to FIG. 20, a target service management cloud (44) configuration may be used to automate supply chain-related business process challenges. A particular buyer (e.g., a large Fortune 500 enterprise) may require all suppliers / partners to precisely meet their delivery needs (i.e., orders are timely, free of overages, shortages, damage, etc.), or face a penalty fine that is payable and cannot be contested unless contested within a relatively short period of time, following a provisional penalty. With many parties involved from both within and outside the particular supplier / partner organization (e.g., partner manufacturing, shipping, and logistics personnel, vendor logistics personnel, potential information available in a data cloud through an external vendor such as PROJECT44 that may geo-track shipping containers, etc.), properly flagging and supporting potential penalty disputes can be extremely challenging (and, indeed, as a result, many penalty disputes may not be contested in a timely manner, resulting in significant operational costs for the various parties). In some embodiments, a custom app can be created to capture the proposed buyer deduction or penalty (262), original order information (264), related shipping information (266), information from partners (268), final shipment / arrival and other milestone information (270), and automatically (272) create an information package that is utilized to support the penalty dispute (274) with the buyer efficiently and automatically submitted to the buyer's dispute resolution portal via a workflow automatically generated from the service management cloud.
[0059] With additional data and experience to automatically solve various business problems, and the vast amount of data that continues to be updated and aggregated using various instances of the service management cloud (44), neural network configurations can be created to assist users and organizations in addressing various business problems based on correlations, labeled data, heuristics and algorithms, and reinforcement learning models based on business goals. Furthermore, a target service management cloud (44) system can be configured to automatically identify gaps in various datasets, tables, and / or documents and automatically attempt to fill such gaps. For example, in one embodiment, an app or process, such as a business process automation configuration, can be configured to utilize specific information from a "purchase order" document. If a given purchase order has all the necessary information but is missing the supplier's actual mailing address, the system can be configured to identify the supplier based on a unique SKU or other field in the data and provide the supplier's actual mailing address from other data linked to the supplier.
[0060] Data-Driven Automation As described above, the data-driven workflow platform herein may enable no-code automation of processes at various levels. In some embodiments, the platform provides a graphical user interface (GUI) that allows users to configure, create, and manage automations, thereby initiating workflows upon changes in data. In some cases, automations may be created by defining rules to automate actions triggered by trigger events on selected data objects. In some cases, rules may include a definition of a trigger event, a definition of a condition for performing an action, and a definition of the action.
[0061] 21-23 show example GUIs for creating and / or editing automations. As shown in FIG. 21, GUI 2100 may allow a user to create, modify, or edit automations having multiple configurable fields. For example, automation GUI 2100 may provide at least three fields, including trigger 2101, condition 2103, and action 2105, that allow for convenient configuration of trigger-condition-action type automations.
[0062] In some embodiments, automation may be data-driven. For example, each field (e.g., trigger 2101, condition 2103, and action 2105) may be configurable with a value or data field that is auto-populated. The auto-populated value or data field may be dynamically determined based on the connected data object 2017. For example, when configuring an automation object 2107, a drop-down menu 2201 with dynamically populated options (e.g., attachment added, time-based, approval updated) may be provided, as shown in FIG. 22 . A user may be allowed to assign a trigger based on record creation, status update, data change, quantity change, value change, or various other types of trigger events. A user may select from the option list 2201 to set the trigger event. In some cases, the options provided in the drop-down menu 2201 may dynamically change depending on the connected data object. For example, a trigger option may indicate a data field (e.g., a column) whose change triggers an action. In another example, a trigger may include an action / operation (e.g., creating a new record) to be performed in a connected cloud database.
[0063] In some cases, a user may be permitted to define conditions for a trigger. The conditions may define specific values or states for the condition for the trigger. For example, the conditions may be a new stage, days until or past the deadline, an amount above or below a threshold, etc. As shown in FIG. 22 , the GUI may allow a user to set or define conditions via a condition panel 2203. The condition panel 2203 may provide pre-populated options for data fields, such as a filter 2205. The user may select a column to apply the filter to from a list of options provided in a drop-down menu 2205. In some cases, the list of options may be automatically populated based on the connected data object. The user may be permitted to further define the filter conditions (e.g., no value, greater than, equal to, less than, within, greater than or equal to, less than or equal to, etc.) via the condition panel 2203. For example, the user may define a threshold 2207 and a relationship (e.g., equal to) to apply the filter. In some cases, a user may create complex conditions (e.g., condition groups) and combine multiple conditions (e.g., filters) 2209 via operators (e.g., AND, OR) 2208. The GUI 2203 may also enable a user to create complex conditions, such as by adding conditions or condition groups 2211. Condition groups may be added via any suitable operator (e.g., AND). The trigger events and conditions may be converted into a query language (e.g., Structured Query Language (SQL)) compatible with the database technology supported by the connected data cloud. In some cases, triggers and trigger conditions may be implemented via the platform's data mining functionality. For example, the data mining functionality may automatically detect changes in data defined by the trigger events and conditions. The data mining functionality is described in more detail later in this specification.
[0064] FIG. 23 shows an example GUI for a user to create an action. Actions may relate to assigning an owner, escalating an alert, updating a selected data field, placing an order, and a variety of other things. As shown in the example, a user may select an action from a drop-down menu 2302 that presents a list of action options. The action options may be dynamically determined based on the connected object. As shown in the example, actions may include, but are not limited to, adding a watcher, creating an outbound API, creating a record, posting a comment, sending a notification, updating a field, assigning to a user, assigning to a group, and the like. In some cases, actions may involve directly adding or modifying data in a connected data cloud. For example, executing an action may make a direct API call to a cloud service (e.g., Salesforce) to perform an action (e.g., adding a new data record to a new column or table in the data cloud) or to update the source data object (e.g., updating field 2303). Such automatic write-back functionality, as described elsewhere herein, may beneficially reduce latency and improve efficiency without requiring transformations or data cleansing, as required by traditional ETL.
[0065] In some cases, the list of options for defining triggers and / or actions may be fixed across different connected data objects. For example, trigger options and / or actions may be pre-built based on industry knowledge and expertise. For example, trigger options and / or actions may be built on top of the connected data cloud monitoring service (e.g., available API calls). Alternatively, a list of pre-populated options for defining actions and / or triggers may be dynamically provided based on the selected data object. The list of pre-populated options may be determined based on predetermined rules, industry knowledge and expertise, and / or data patterns extracted from historical data. For example, different action options are mapped to different types of data objects. In some cases, the list of action options may be dynamically provided depending on past actions associated with a user, organization, industry, etc. For example, an action menu for a first user / industry may differ from the action menu presented to a second user / industry based on historical data associated with the user / industry. In some cases, action options may be dynamically provided based on time. For example, different menus or options may be provided based on different times of the year (e.g., different months, different seasons, etc.).
[0066] 54 and 55 show examples of an automation flow GUI. As described above, automation flow is a no-code automation platform that provides access to system functions and control flow on data cloud data without requiring programming expertise. The system herein may provide variables available for each action within the automation flow. A user may use features presented via the GUI, such as a "Link" button and / or operators (e.g., $ operator), to identify variables outside of the automation (e.g., variables from a previous step in the automation process) and use the variables in one or more actions. Variables may be from original data and / or intermediate data generated by any step in the automation process.
[0067] Figure 54 shows an example GUI that allows using operators (e.g., operator $) 5401 to create custom payloads in an API integration. The API may allow sending custom messages to external APIs, such as the Slack API, based on dynamic variables from the automation. The GUI may also allow selecting link values from the automation. For example, a drop-down menu 5403 may display options narrowed down to only valid options (data fields) to beneficially ensure the automation can run successfully. As shown in the example, a user may select a reference value for a trigger record variable from the drop-down menu.
[0068] The GUI may also allow users to control the flow of automations through advanced logic without requiring coding or programming skills. As shown in FIG. 55, the GUI may allow users to access data in the data cloud to set or modify triggers 5501 to start automations. The system may provide one or more advanced logics in a visual manner. The advanced logic provided by the system can be operated intuitively without requiring coding skills. For example, logic such as loops and if-statement logic may be provided as loops and branches in the GUI for users to control the automation flow. Users may use the advanced logic of automation variables to control the automation flow by selecting dynamic variables, logical operators such as equal or less than / greater than, and another dynamic variable to compare against. FIG. 55 shows an example GUI for controlling automation flow using visual features such as loops 5503 and branches 5505. As shown in the example flow, a loop action 5503 in the automation may control the flow to search for all valid records and execute sub-workflows 5507 one by one for each record found in the record search. The automation flow may then use branch action 5505 to perform if statement logic checks to perform other actions based on the checks found in branch path 5509.
[0069] The GUI provided by the system can make data utilization in automation more user-friendly by hiding complex programming concepts such as types and variable scope from the user. Intuitive functionality is provided, and related complex programming concepts can be automatically determined by the system. For example, a user can enter input such as browsing a list of data and / or executing a subprocess on each data item in the list, and the type and variable scope are automatically determined by the system based on the user input.
[0070] In some embodiments, in addition to a GUI for creating or defining automations, the data-driven workflow platform herein may provide smart automations or automation recommendations that utilize artificial intelligence (AI) techniques. For example, past actions, conditions, trigger data, and connected data objects may be used to train an AI model. Once training is complete, the AI model may be able to automatically determine trigger conditions (e.g., condition values) and / or recommended actions for the user.
[0071] Dynamic Relationships and Data Models The data-driven workflow platform described herein may enable users to create dynamic relationships within data. Such dynamic relationship capabilities beneficially enable flexible rules for linking data elements. For example, a user may understand that certain elements, such as master data and transactional data, are related. Shipments are related to ports of entry, SKUs are related to POs, and computers are related to vendors. When something happens upstream (e.g., when automation is triggered upstream), such upstream data can be used to identify downstream impacts, thereby avoiding delays (e.g., days or weeks) for identifying the impact.
[0072] In some embodiments, relationships may be created by connecting data models or elements of data models within the platform. As described above, a data-driven workflow platform may include an adapter configured to connect to data objects in a cloud repository. The adapter may allow a user to map fields between the platform's storage data model and table fields of a data cloud. The platform's storage data model may comprise different types of data sets. In some cases, the different types of data may include, for example, "elements," "tasks," "applications," etc. The adapter may allow data hosted in a data cloud (e.g., Snowflake) to be viewed natively within the platform. For example, as shown in FIG. 17, the adapter may provide a GUI that allows a user to configure mapping and data type matching. For example, a user may assign data types (e.g., transaction, element, application, etc.) to data fields or tables of data hosted in the data cloud. For example, when creating an ESG application, the adapter connects to tables stored in the data cloud, and the platform may automatically identify elements such as suppliers, products, economics, environment, labor, and society that are relevant to the ESG application and display a GUI with auto-populated fields that allow the user to assign data types to the extracted elements. For example, a user may assign element types of data types to suppliers and products (e.g., master data / static data), or to economic, environmental, labor, and / or social (e.g., transactional data / streaming data). Such operations may not apply corrections or changes to data within the data cloud.
[0073] Relationships may be created between storage data models within the platform. The storage data models provided by the platform may dynamically map relationships within the cloud data. For example, a relationship may be created between "element" type data named "products" that contains a complete list of all products a customer manufactures or sells, and "transaction" type data named "inventory position" that indicates how much of each product the customer has.
[0074] In some cases, a user may manually create a relationship through a GUI provided by the platform. FIGS. 24 and 25 show example GUIs for creating or adding a relationship. As shown in FIG. 24, GUI 2400 may provide fields for a user to create a relationship (e.g., equals) by selecting one or more data fields 2403 of an element in a first data model or first data model 2401 and one or more data fields 2405 of an element in a second data model or second data model 2407. Field name options may automatically populate a drop-down menu 2409 for the selected object. As shown in FIG. 25, a relationship can be created between two objects of various data types as defined within the platform. For example, object 2501 may be an application type, an element type, or a transaction type. Selecting object 2501 may provide related data fields 2503 in a drop-down menu for selection.
[0075] In some cases, relationships may be created automatically without user intervention. For example, the platform may analyze storage data models within the platform and recommend automatically creating relationships. For example, the platform may automatically identify that a data model "Inventory" with a column named "sku" should be related to a data model "Products" with a column named "sku". The platform may create a recommendation to the user to establish the recommended relationship. The user may choose to accept, reject, or modify the recommended relationship. In some cases, the platform may develop an AI model to automatically identify relationships. Alternatively, the platform may identify relationships based on predetermined rules (e.g., building relationships based on common identifiers, expertise, or other criteria). The platform may also allow users to manage and share all relationships created for one or more applications. Users may view relationships in real time, dynamically modify relationships at any time, and make decisions based on multi-tiered structures.
[0076] Creating no-code applications As described above, data-driven workflow platforms provide a no-code configuration interface for creating cloud applications. The platform may enable users to create, customize, and / or configure cloud applications through a no-code user interface with built-in capabilities such as configurable and automated workflows and dynamic relationship discovery and creation. In some cases, the platform may provide pre-built applications so that users can further customize the pre-built applications through a “drag-and-drop” GUI. For example, the platform may provide initial “pre-built” automation for an “app suite” (e.g., inventory management or merchandising). In some cases, these initial automations may be generated based on industry knowledge and expertise.
[0077] The platform may automatically provide an initial workflow based on connected data objects. In some cases, the platform may automatically initiate a workflow based on connected data objects, enabling secure collaboration with third parties. The workflow may be highly configurable with calculations, approvals, tasks, analytics, automation, etc.
[0078] Based on the connected data objects, the platform may automatically select from a library of apps including logistics, merchandising, inventory management, risk management, procurement, finance, human resources, business development, etc. For example, based on insights extracted from cloud data (e.g., data mining), the platform may select an initial application / workflow from the library of apps.
[0079] In some cases, the platform may provide a GUI for users to configure or edit pre-built workflows. This beneficially enables no-code creation of cloud applications with pre-built automation capabilities. FIG. 26 shows an example of a GUI 3200 for creating a workflow. An initial workflow may be created with pre-built automations 3203 in one or more locations. A user may modify the initial workflow through drag-and-drop functionality. For example, a user may add objects 3201, such as tasks, records, elements, transactions, approvals, and fields, to a workflow in any desired location by dragging components from the “Objects” panel 3205 and dropping them into the workflow. A user may add additional actions to a selected object by dragging elements (e.g., data mining, automation, calculations, relationships, assigned users, APIs, etc.) from the Actions panel 3207 onto the object in the workflow. In some cases, a user may add objects and / or actions by clicking a graphical element 3203 in the workflow (e.g., a plus icon or object icon for adding an object) to invoke a menu for selecting the object and / or action to be added. In some cases, the user may choose to remove or modify an action (e.g., automation) or object provided in the initial workflow by interacting with a graphical element corresponding to the action or object.
[0080] 27-30 show another example of a GUI for creating a workflow. As shown in FIG. 27, the GUI may display a workflow having one or more stages 2710, 2720, 2730, 2740, and 2750. The GUI may display general information related to each stage, such as the number of actions included in each stage and the percentage of automation 2751. Different stages may have different automation rates. In the example shown in FIG. 27, the initial stage 2710 may be 100% automated. The initial stage may include multiple actions 2719-1, 2719-2, 2719-3, and 2719-4. In some cases, the actions may include logic 2711, 2713, 2715, and 2717 and objects 2712, 2714, 2716, and 2718. The logic and objects may define "who" (logic) does "what" (objects). Logic may be, for example, automation, request approval, user input, calculations, relationships, data mining, etc. Objects may be, for example, records, fields, tables, summaries, or various other objects / elements provided by the system. In some cases, a user may modify a workflow by dragging elements from a panel (left panel) and dropping them into the workflow. The panel may provide, for example, shapes 2761 (e.g., square shapes may be used to represent actions, and diamond shapes may be used to represent decisions), logic options 2763, and a list of objects 2765. The GUI may also display information related to the entire process, such as the percentage of automation in the entire process / workflow and the total number of actions 3201.
[0081] FIG. 28 shows an example GUI displaying the workflow of the second stage 2720. Similarly, the workflow of the second stage can include one or more actions 2721, 2722, each of which can include logic 2723 and objects 2724. In some cases, an initial workflow for the stage is recommended by the system and displayed in the GUI, after which the user can choose to approve, modify, or reject any component of the workflow. In some cases, the user may be able to zoom in and out from any stage to see the entire process 2801. The GUI may also display a preview 2803 of the next stage. FIG. 29 shows an example GUI displaying the workflow of the third stage 2730. In this example, the workflow may be 50% automated because one action involves a human analyst and the other action involves automation. FIG. 30 shows an example GUI displaying the workflow of the fourth stage 2740.
[0082] Figure 31 is an example of a GUI that displays the created workflow along with its tracked progress. As shown in Figures 31 and 32, once the workflow is deployed and executed, the GUI displays details about data analysis, calculations, actions, progress, etc. to the user.
[0083] Usage example As described above, the platform may automatically select an initial workflow from a library of apps, including logistics, merchandising, inventory management, risk management, procurement, finance, human resources, business development, etc., based on connected data objects. For example, based on insights extracted from cloud data (e.g., data mining), the platform may select an initial application / workflow from the app library. An app may include multiple workflows. Figures 33-38 show examples of logistics application suites. As shown in these examples, a logistics application suite may include multiple workflows. The workflows may include data mining to identify dynamic relationships between objects and automation (e.g., trigger conditions and actions). For example, as shown in Figure 34, a lead time optimization workflow may be provided that reduces excess inventory by proactively addressing lane variability gaps. Data connected to the workflow (e.g., lanes, shipments, partners, sites) may be mined to identify when actual lead times are within defined tolerance levels and actions may be automated to adjust the lead times. A temperature alert workflow, as shown in Figure 35, can be provided to reduce the amount of expired product by proactively managing temperature conditions during transport. Data is mined to identify temperature issues with goods during transport. Actions are automated between the logistics team and the carrier to address the alert. A customer issue workflow, as shown in Figure 36, can be created to reduce customs delays by proactively managing issues. Data is mined to alert the logistics department to potential issues based on port congestion, strikes, and other impacts to the port. Actions are automated between the logistics department and the broker. A late shipment workflow, as shown in Figure 37, can be created to improve OTIF by proactively identifying late shipments. Data is mined to identify when a shipment's estimated arrival time is later than the promised delivery date. Actions are automated to identify and expedite alternate supply sources and mitigate delays.An expedited request workflow, as shown in Figure 38, is created and centralized in one platform to provide full transparency and accountability of who approves the cost of an expedited request. Actions are automated to notify carriers, logistics departments, and others of the approval.
[0084] AI-based recommendations In some embodiments, the initial workflow may be provided with AI-based recommendations. For example, the platform may develop an AI model to generate predictions regarding when to initiate an action (e.g., location within the workflow), what action to take, or other features within the initial workflow. The AI model may be trained and developed using training datasets collected within the platform. For example, past action patterns may be extracted from action data or process data defined within the platform, and the data may be utilized as training data for developing the AI model. In some cases, data fields involved in the workflow may also be predicted by the AI model.
[0085] The provided system may use any suitable artificial intelligence techniques to generate workflows, identify automations, dynamically associate identifications, perform data model transformations (e.g., normalizing original data in the cloud to conform to a storage data model in the platform), and / or perform other functions as described elsewhere herein. Artificial intelligence, including machine learning algorithms, may be used to train predictive models for predicting recommendations (e.g., automations, workflows, etc.), extracting data relationships, normalizing data, performing impact analysis as described above, and performing various other functions as described elsewhere herein. The machine learning algorithm may be, for example, a neural network. Examples of neural networks include deep neural networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs). The machine learning algorithm may include one or more of a support vector machine (SVM), a naive Bayes classification, a linear regression model, a quantile regression model, a logistic regression model, a random forest, an isolation forest (iForest) model, a neural network, a CNN, an RNN, a gradient boosted classifier or suppressor, or another supervised or unsupervised machine learning algorithm (e.g., a generative adversarial network (GAN), Cycle-GAN, etc.). In some cases, models trained by machine learning algorithms may be pre-trained and implemented on a provided system, and the pre-trained models may undergo continuous training or refinement using custom data, which may include continuous adjustment of the predictive model or components of the predictive model (e.g., a classifier) to adapt to changes in the implementation environment or usage application over time (e.g., changes in user data, insight data, model performance, third-party data, etc.).
[0086] Data Mining The data-driven workflow may provide data mining functionality that enables insights to be extracted from data in the data cloud. In some cases, the platform's data mining functionality may be utilized to trigger insight generation directly from data in the data cloud and / or automatically identify data events (e.g., data changes, data addition / deletion, data anomalies, or other data analysis provided by the cloud provider). The platform may provide a GUI for users to conveniently configure or set up data mining of selected data. The data mining functionality may seamlessly integrate with other functionality, such as automation. For example, data mining configurations or data mining results may be used as automation triggers and conditions to initiate automation or trigger actions.
[0087] The data mining feature allows users to create data mining queries to automatically initiate workflows. In some cases, the GUI feature allows users to find data in the data cloud (e.g., users do not always know what data is in the data cloud). The GUI feature also allows users to configure data flows to join, cleanse, filter, and enhance data. Figures 58 and 59 show an example GUI (e.g., CloudLink Explorer) that allows users to find data in a data cloud (e.g., Snowflake). As described above, the system herein may access the data schema of all customer data in the connected data lake / cloud. The data schema (logical data structure) or table shape (e.g., multidimensional data model, dimension tables, etc.) may be based on the configuration of the data cloud. As shown in the example, CloudLink Explorer makes API calls to the data provider (e.g., Snowflake, Azure, etc.) to obtain metadata about databases, schemas, and data tables in the data lake. In some embodiments, the platform may automatically provide an initial workflow based on crawled metadata or cloud data objects. In some cases, the platform may automatically initiate workflows based on connected data objects, enabling secure collaboration with third parties. The platform may automatically select from a library of apps, such as a marketplace described later herein, based on crawled cloud data objects and / or metadata. For example, based on insights extracted from cloud data (e.g., data mining), the platform may select an initial application / workflow from the library of apps. The initial workflow is presented to the user as a recommendation, and the user may further configure or edit the initial workflow as described elsewhere herein.
[0088] Upon receiving the metadata, the system may convert the metadata into a graphical view that is searchable and viewable via a GUI. As shown in FIG. 58, a graphical view 5803, 5805 of the data schema / tables associated with the user (e.g., the data lake associated with the user account) may be displayed in the GUI. The user may visualize the data schema / tables in the underlying data lake in various formats 5803, 5805 (e.g., table format, graphical representation, etc.). The GUI may also allow the user to search and / or sort 5801 the data. As shown in FIG. 59, a preview of the data schema 5901 may be displayed in the GUI.
[0089] In some embodiments, a GUI provided by the system may allow a user to set logic rules or run models trained with machine learning algorithms on data to find data. For example, a user may set logic rules to find data to initiate a workflow. FIG. 60 shows an example GUI for a user to set logic rules (e.g., filter parameters and logical operators within records) to find data. FIG. 61 shows an example GUI for a user to set machine learning-based anomaly detection and reporting rules. For example, a user may set rules to prepare data, select numeric columns, select data / time columns, select a window interval, review results, and schedule data mining operations via the GUI.
[0090] In some embodiments, the system can save the state of found data so that the user may not be notified multiple times when data is found. For example, the system may use a data ID (e.g., a unique identifier) to track each time a row of data starts a workflow, making subsequent data searches idempotent. For example, a process that runs hourly could trigger the same workflow multiple times if the system did not track that a data column had already triggered a workflow. This feature can reduce unnecessary notifications to the user because the user may not be notified multiple times when data is found until the data no longer passes a logic check. The system herein may use the primary key of the data table for the data ID. In some cases, the system may allow the user to configure or control the data ID via a GUI. Figure 62 shows an example GUI for the user to select the primary column to use as the data's unique identifier. In some cases, the system may also allow the user to perform idempotent data searches on transactional data that does not have an ID by default.
[0091] After configuring the data mining process, the user can configure automation to create new workflows using the discovered data. As shown in the GUI above, the user can configure an execution schedule for the data mining process (e.g., a schedule for how often the data mining process should be executed and the conditions under which the data mining process should be executed).
[0092] 39-43 show an example of a GUI for configuring or creating data mining. In some cases, a user may configure or set data to be mined (e.g., a table) and one or more parameters for performing data mining on the data. FIGS. 39-42 show an example of a GUI 3900 for creating an object (e.g., a table) for data mining. As shown in FIG. 39, a user may drag an element 3903 from the object pane and drop a selected element (e.g., a lane 3901). For example, a user may click the element icon in the left pane and select an object (e.g., a lane) from a drop-down menu. A table 3905 of the selected element is automatically populated in the GUI. A user may choose to filter the selected object 3901, such as by clicking the “Filter” icon 3907, after which a filter pane 3909 may pop up with multiple configurable fields for the user to configure the filter. For example, a user may set values, combine filters, set filter states, etc. to configure a filter to be applied to the object 3901. Once a filter is applied, table 3905 is automatically updated and information about the filter 4001 may also be displayed with the object, as shown in FIG.
[0093] The user may be prompted to drag and drop another object (e.g., shipment 4003). Similarly, the user may be prompted 4005 to set a filter to be applied to the second object 4003. Once the second object and second filter are set, the user may be prompted to set a relationship or view the relationship between the two objects. For example, clicking on the relationship icon 4007 may pop up a relationship pane, allowing the user to define the relationship between the two objects, as described elsewhere herein. Once the relationship and / or filter is configured, the table may be automatically updated.
[0094] As shown in Figure 41, the GUI may provide options for the user to aggregate columns 4101 in the output table. For example, the user may select columns for aggregation and / or define filters, as shown in Figure 42. The GUI 4201 may allow the user to select columns to include in the output table and define how the selected columns are aggregated. The user may also be allowed to create new columns 4203 in the output table via the GUI.
[0095] The GUI may further allow a user to set an action to be performed on the created table. For example, as shown in FIG. 41, the GUI may display message 4103 prompting the user to select an action to be applied to the table. The user may click automation icon 4105 and select from action options in a drop-down menu (e.g., create a record, send a notification) to set the automation's action.
[0096] Once the table is created and saved (e.g., data can be written directly back to the data cloud), the user may set one or more parameters for performing data mining. For example, the GUI shown in FIG. 43 may prompt the user to schedule the frequency and / or time for performing data mining and / or set one or more parameters for filtering the table 4301. As shown in the example, clicking the schedule button 4303 may display options 4307 for setting the frequency and / or time for performing data mining. Via the GUI, the user may select from frequency options such as hourly, daily, weekly, etc., and / or set a start time. The user may also be allowed to set a filter to apply to the data mining via GUI 4309 by clicking the filter button 4305.
[0097] Cloud-native architecture In one aspect, the present disclosure provides a system for providing a data-driven workflow platform, the system comprising: a first module configured to operatively couple the data-driven workflow platform to one or more data clouds; a second module configured to map selected data objects to a data storage model of the data-driven workflow platform, where the selected data objects are stored in the one or more data clouds; and a visualization module configured to display, on a graphical user interface (GUI), an interactive flow for building a cloud application that utilizes or manages the selected data objects. In some cases, the interactive flow includes at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data object.
[0098] In some embodiments, the first module is configured to translate instructions received via the GUI to perform operations on at least one selected data object into database operations executable in the data cloud configuration. The database operations are executed on the selected data object in the data cloud configuration without using an extract-transform-load (ETL) data integration process. In some cases, the selected data object includes transactional data or streaming data. In some cases, the data-driven workflow platform is configured to cache intermediate results for executing the operations.
[0099] Figure 44 schematically illustrates the architecture of a data-driven workflow platform. This architecture may be a tiered architecture including a data structure and storage layer, a service / platform logic layer, and a visualization / API layer. The tiered architecture allows users to access and use data stored in any data cloud without having to move the data to a central location. The data-driven workflow platform may execute workloads (e.g., queries) within a data cloud provider (e.g., AWS S3, Snowflake, Databricks, external data providers, etc.) and then stream data and / or insights to users via a user experience interface (UI) provided by a visualization module. In some cases, the platform may employ buffering techniques to enable live streaming or updates from the data cloud to the enterprise SaaS solution. For example, the platform may cache intermediate results generated during workflow actions for a predetermined period of time (e.g., 15 seconds, 20 seconds, 30 seconds, etc.).
[0100] The platform may configure a monitoring process to be notified when data changes in source datasets in the data cloud via a cloud link connected to a notification service in the platform logic layer and a monitoring service in the data structure and storage layer. The monitoring functionality may be used to trigger actions in automation functionality within the platform. Query execution occurs in the services layer. For example, queries may be processed using "virtual warehouses," where each virtual warehouse is a massively parallel processing computing cluster composed of multiple computing nodes from a cloud provider.
[0101] AI-based application discovery In some embodiments, the platform may analyze available datasets and utilize artificial intelligence (AI) techniques to recommend one or more predefined applications, allowing users to utilize the recommended applications using their data.
[0102] FIG. 45 schematically illustrates an example of an AI-based application discovery function according to some embodiments of the present disclosure. System 4503 may access the data schema of all customer data in connected data lake 4505. The data schema (logical data structure) or table shape (e.g., multidimensional data model, dimension tables, etc.) may be based on the configuration of the data cloud. System 4503 may be the same as a data-driven workflow platform or service management cloud system as described elsewhere herein. For example, an adapter in system 4503 may enable data hosted in a data cloud (e.g., Snowflake) to appear as native within the system. For example, during configuration or integration between a data cloud (e.g., Snowflake) and the system for the target data, the adapter may set up mapping and data type matching without changing the data or applying any modifications to the data in the data cloud. For example, system 4505 may send a request to access a user's data table schema in data lake 4505. The request may be generated based on input received via GUI 4501, such as a business process name, description, or other input information.
[0103] System 4503 may include multiple predefined applications organized or managed in an application library (e.g., an application marketplace) that users or customers of the platform can install within their organizations. For example, system 4503 may include a library of predefined application suites including logistics, merchandising, inventory control, risk management, procurement, finance, human resources, business development, etc., as described elsewhere herein.
[0104] 56 and 57 show example GUIs for an application marketplace. In some cases, the system 4503 can publish complex workflows to the marketplace and enable users (e.g., customers) to deploy selected workflows from the marketplace into their own environments. As shown in FIG. 56, workflows can be built and maintained (e.g., updated) by administrators of the system. In some cases, administrators of the system (e.g., process experts) can build and update workflows and deploy the updated workflows to customers, who can initiate the workflows in-house without having to build any associated data tables, automations, approval processes, or surveys.
[0105] Workflows may be organized by category (e.g., enterprise technology, supply chain, enterprise service management, etc.) for customers to select and deploy in their environments. In some cases, customers / users may search for workflows by category and / or app (e.g., IT operations, vacation, human resources, basic incidents, delivery, etc.). As shown in FIG. 57, customers / users may view detailed information about a selected workflow or application (e.g., IT operations) via the GUI. For example, the GUI may display examples of uses for the IT operations app, typical variables that can be tracked by the app, and potential industry verticals for the app.
[0106] The system may train a large-scale language model (LLM) 4507 on the availability of predefined applications and the shape of the data tables (i.e., the data lake schema) required to run the applications. The system may train the LLM on the shape of the data tables in the customer's data lake. The LLM may be personalized or customized using user data. As an example, a user may provide a list of data tables. The system may identify a list of available predefined workflows or business workflows that have the data required to operate them. For example, the LLM may be trained to identify one or more workflows from a library of predefined workflows based at least in part on the shape of the data tables associated with the user. The system may be instructed to look for data tables with similar shape and functionality as the predefined workflows. As an example, the system may return a JSON array of business process objects with the following keys: Predefined workflow ID (string) Table mapping Predefined table ID (string) Table field name (string) Predefined table field name (string)
[0107] After training the LLM, the system requests the LLM to find predefined applications that can operate on the data in the data lake. For example, during the inference / prediction phase, the LLM can be deployed to take as input the data schema (e.g., the shape of the data tables) retrieved from the data lake associated with the user account and output the data table mapping results. The LLM returns the data table mapping to the system, which uses it to create the predefined applications.
[0108] If a match is found in a predefined application, the LLM returns the data table mapping to the system, which then creates the application on behalf of the customer. If no match is found, the system switches to a generative approach and asks the LLM to generate possible business workflows outside of the predefined application.
[0109] As mentioned above, the input to a trained LLM may include the shape of the data table or schema (e.g., table fields, views, etc.). The following is an example of an input to a trained LLM: User Data Table: <[{“name”:“USERS”, “databaseName”:“financials”, “schemaName”:“internal”}, {“name”:“SHIPMENTS”, “databaseName”:“financials”, “schemaName”:“internal”}, {“name”:“PRODUCTS”, “databaseName”:“financials”, “schemaName”:“internal”
[0110] Below is an example of the model output: “data”:{“aiCloudLinkAppDiscoveryCompletionExecute”:{“apps”:[{“name”:“Manage Products”, “description”:“Create,update,and delete product information”, “tables”:[“PRODUCTS”, “PRODUCT_LISTING”]}, {“name”:“Manage Shipments”, “description”:“Create,update,and delete shipment information”, “tables”:[“SHIPMENTS”, “SHIPMENT_TRANSACTION”]}, {“name”:“Manage Users”, “description”:“Create,update,and delete user information”, “tables”:[“USERS”]}, {“name”:“Manage Warehouses”, “description”:“View and manage warehouse usage and metering information”, “tables”:[“WAREHOUSE_METERING_HISTORY”, “WAREHOUSE_LOAD_HISTORY”, “WAREHOUSE_EVENTS_HISTORY”]}, {“name”:“Manage Contracts”, “description”:“View and manage contract information”, “tables”:[“CONTRACT_ITEMS”]}, {“name”:“View Usage Metrics”, “description”:“View usage metrics for various services”, “tables”:[“METERING_DAILY_HISTORY”, “MONETIZED_USAGE_DAILY”, “STAGE_STORAGE_USAGE_HISTORY”, “STORAGE_USAGE”, “USAGE_IN_CURRENCY_DAILY”]}]}}
[0111] 46-48 show example GUIs for the AI-based application discovery feature. As shown in FIG. 46, a user may provide input through the app discovery feature in the GUI, such as by selecting a cloud link. The system may then automatically collect data schemas within the selected data lake and identify a list of available predefined or business workflows that have the data necessary to run the application. FIG. 47 shows an example of a predefined application identified by the system as a model output.
[0112] A user may select from multiple predefined applications to create an application, as shown in Figure 48. For example, a user may be prompted to enter data fields such as "Name," "Namespace," "Handle," "Description," and "Category" to create an app.
[0113] AI-generated workflow In some embodiments, the workflow may be generated by an AI model. For example, in an AI-based application discovery function, if the LLM is unable to map customer data to a predefined application, the system may use AI to generate a business workflow. An AI workflow module herein may include a trained model that takes as input a description of a business process (e.g., provided by a customer via a GUI for creating a business process) and outputs a workflow. This model may be trained using a machine learning algorithm, as described elsewhere herein.
[0114] 49 schematically illustrates an example of an AI-generated workflow function according to some embodiments of the present disclosure. System 4903 may receive input such as a business workflow name, description, or other input information from GUI 4901. System 4903 may be the same as a data-driven workflow platform or service management cloud system as described elsewhere herein.
[0115] The system 4903 may train the LLM to create a workflow. In some cases, the LLM may be trained by: i) the system instructing the LLM to envision an objective to create a business workflow, ii) instructing the LLM to decompose the business process into one or more stages, iii) instructing the LLM to create one or more steps for each stage in the process, and iv) requesting the LLM to identify relevant data in tracking each step of the business process.
[0116] After the LLM is trained 4905, the system 4903 may provide the LLM with the name of the business process, a description of the process, and additional context from the user (received via GUI 4901) regarding how the business process is defined.
[0117] The LLM can be trained to output business workflow data. In some cases, the output of the LLM can include a list of instructions that the system 4903 uses to create a business workflow on behalf of the customer.
[0118] AI-generated workflow functionality may be able to automatically generate business processes for users / customers. For example, the system i) receives an instruction to create a new business workflow, ii) breaks down the business process into named stages, iii) creates named steps for each stage, and iv) for each step, creates the data fields necessary to track the business process, and returns only a json object. Below is an example format: Stages: name:stage name Steps: ·description:step description dataFields: name:Field Name ·fieldType:Only pick one of the following field types:BOOLEAN|TEXT|NUMBER|DECIMAL|DATE|DATETIME
[0119] Inputs to the trained LLM may be based on user input. For example, user input may include Business Process Name: <HR Onboarding>, Business Process Description: <Performs employee onboarding process>, Additional Business Process Context: <Includes social security number, date of birth, and t-shirt size so that a gift can be sent when they join the company>.
[0120] As mentioned above, the output of the model may include instructions for the system to create a business workflow. Below is an example workflow: “data”:{“aiFlowInstructionsCompletionExecute”:{“stages”:[ {“name”:“Pre-Onboarding”, “steps”:[{“description”:“Receive new employee information”, “dataFields”:[{“name”:“First Name”, “fieldType”:“TEXT”},{“name”:“Last Name”, “fieldType”:“TEXT”}, {“name”:“Email”,“fieldType”:“TEXT”}, {“name”:“Phone Number”,“fieldType”:“TEXT”}, {“name”:“Address”,“fieldType”:“TEXT”}, {“name”:“Social Security Number”,“fieldType”:“TEXT”}, {“name”:“Birthday”,“fieldType”:“DATE”}, {“name”:“T-Shirt Size”,“fieldType”:“TEXT”}]}]}, {“name”:“Onboarding”,“steps”:[{“description”:“Send welcome email to new employee”, “dataFields”:[{“name”:“Email Sent”,“fieldType”:“BOOLEAN”}]},{“description”:“Schedule orientation meeting”,“dataFields”: [{“name”:“Meeting Scheduled”,“fieldType”:“BOOLEAN”}, {“name”:“Meeting Date”,“fieldType”:“DATETIME”}]},{“description”:“Assign company equipment”,“dataFields”:[{“name”:“Equipment Assigned”,“fieldType”:“BOOLEAN”},{“name”:“Equipment Type”,“fieldType”:“TEXT”}, {name”:“Equipment Serial Number”,“fieldType”:“TEXT”}]},{“description”:“Complete paperwork”,“dataFields”:[{“name”:“Paperwork Completed”,“fieldType”:“BOOLEAN”}, {name”:“Paperwork Type”,“fieldType”:“TEXT.”}]}]}]}}
[0121] 50-53 show an example GUI for the AI-generated workflow functionality. FIG. 50 shows an example of input provided via the GUI. As shown in this example, a user may provide a description of a business process to initiate business process generation. As shown in FIG. 51, the system may automatically collect data related to the user and the business process, such as through the AI-based application discovery functionality described above. As shown in FIG. 52, the LLM may output one or more stages for the business process, e.g., initiation, pre-onboarding, and onboarding. The LLM may output one or more steps or actions for each stage, as shown in FIG. 53. Upon executing the instruction list output by the LLM, the GUI may display graphical elements representing one or more stages and one or more steps in each stage.
[0122] In some embodiments, various functions and visual features may be provided virtually without the need to install, configure, or manage any software. The data-driven workflow platform system may be implemented on a cloud platform system (e.g., including a server or serverless) that communicates with one or more user systems / devices over a network. The cloud platform system may be configured to provide the aforementioned functionality to users through one or more user interfaces or graphical user interfaces (GUIs), which may include, but are not limited to, a web-based GUI, a client-side GUI, or any other GUI described above. For example, a user may access a coding assignment through a web-based GUI or within a web browser. In some cases, the graphical user interface (GUI) or user interface may be provided on a display. The display may be a touchscreen or non-touchscreen. The display may be a light-emitting diode (LED) screen, an organic light-emitting diode (OLED) screen, a liquid crystal display (LCD) screen, a plasma screen, or other type of screen. The display may be configured to display a user interface (UI) or graphical user interface (GUI) rendered via an application (e.g., via an application programming interface (API) running on the user's device or system, or in the cloud).
[0123] Without using such exclusive language, the term "comprising" in the claims relating to this disclosure shall be deemed to permit the inclusion of any additional elements, regardless of whether a given number of elements are recited in the claim or whether the addition of functionality can be considered to change the nature of the element defined in the claim. Unless otherwise defined herein, all technical and scientific terms used herein shall be given the broadest possible commonly understood meaning while maintaining the validity of the claims.
[0124] Computing Systems Referring to Figure 63, a block diagram illustrating an exemplary machine including a computer system 6300 (e.g., a processing system or computing system) capable of executing a set of instructions to cause a device to process or perform any one or more of the aspects and / or methodologies for static code scheduling of the present disclosure is shown. The components of Figure 63 are merely examples and are not intended to limit the scope of use or functionality of any hardware, software, embedded logic component, or combination of two or more such components, that implement a particular embodiment.
[0125] The computer system 6300 may include one or more processors 6301, memory 6303, and storage 6308, which communicate with each other and with other components via a bus 6340. The bus 6340 may also couple a display 6332, one or more input devices 6333 (which may include, for example, a keypad, keyboard, mouse, stylus, etc.), one or more output devices 6334, one or more storage devices 6335, and various tangible storage media 6336. All of these elements may interface with the bus 6340 directly or through one or more interfaces or adapters. For example, the various tangible storage media 6336 may interface with the bus 6340 through a storage media interface 6326. The computer system 6300 may have any suitable physical form, including, but not limited to, one or more integrated circuits (ICs), a printed circuit board (PCB), a mobile handheld device (such as a cell phone or PDA), a laptop or notebook computer, a distributed computer system, a computing grid, or a server.
[0126] Computer system 6300 includes one or more processor(s) 6301 (e.g., a central processing unit (CPU), a general-purpose graphics processing unit (GPGPU), or a quantum processing unit (QPU)) that perform functions. Processor(s) 6301 optionally include a cache memory unit 6302 for temporarily storing instructions, data, or computer addresses locally. Processor(s) 6301 are configured to assist in the execution of computer-readable instructions. Computer system 6300 may provide the functionality of the components depicted in FIG. 63 as a result of processor(s) 6301 executing non-transitory processor-executable instructions embodied in one or more tangible computer-readable storage media, such as memory 6303, storage 6308, storage device 6335, and / or storage medium 6336. The computer-readable medium may store software that performs particular embodiments, and processor(s) 6301 may execute the software. Memory 6303 may read software from one or more other computer-readable media (such as mass storage device(s) 6335, 6336), or from one or more other sources via an appropriate interface, such as network interface 120. The software may cause processor(s) 6301 to perform one or more processes or one or more steps of one or more processes described or illustrated herein. Performing such processes or steps may include defining data structures stored in memory 6303 and modifying the data structures as directed by the software.
[0127] The memory 6303 may include various components (e.g., machine-readable media), including, but not limited to, random access memory components (e.g., RAM 6304) (e.g., static RAM (SRAM), dynamic RAM (DRAM), ferroelectric random access memory (FRAM), phase change random access memory (PRAM), etc.), read-only memory components (e.g., ROM 105), and any combination thereof. The ROM 6305 may function to communicate data and instructions unidirectionally to the processor(s) 6301, and the RAM 6304 may function to communicate data and instructions bidirectionally with the processor(s) 6301. The ROM 6305 and RAM 6304 may include any suitable tangible computer-readable media, as described below. In one example, a basic input / output system 6306 (BIOS), containing the basic routines that help to transfer information between elements within the computer system 6300, such as during start-up, may be stored in the memory 6303.
[0128] Persistent storage 6308 is optionally connected bidirectionally to processor(s) 6301 via storage control unit 6307. Persistent storage 6308 provides additional data storage capacity and may include any suitable tangible computer-readable media described herein. Storage 6308 may be used to store operating system 6309, executable(s) 6310, data 6311, applications 6312 (application programs), etc. Storage 6308 may also include an optical disk drive, a solid-state memory device (e.g., a flash-based system), or any combination of the above. Information in storage 6308 may be incorporated as virtual memory in memory 6303, where appropriate.
[0129] In one example, storage device(s) 6335 may be removably interfaced with computer system 6300 (e.g., via an external port connector (not shown)) via storage device interface 6325. In particular, storage device(s) 6335 and associated machine-readable media may provide non-volatile and / or volatile storage of machine-readable instructions, data structures, program modules, and / or other data for computer system 6300. In one example, software may reside, completely or partially, within the machine-readable media of storage device(s) 6335. In another example, software may reside, completely or partially, within processor(s) 6301.
[0130] The bus 6340 connects a wide variety of subsystems. Here, reference to a bus may, where appropriate, encompass one or more digital signal lines that perform a common function. The bus 6340 may be any of various types of bus structures, including, but not limited to, a memory bus, a memory controller, a peripheral bus, a local bus, and any combination thereof, using any of a variety of bus architectures. By way of example and not limitation, such architectures include an Industry Standard Architecture (ISA) bus, an Enhanced ISA (EISA) bus, a MicroChannel Architecture (MCA) bus, a Video Electronics Standards Association local bus (VLB), a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, an Accelerated Graphics Port (AGP) bus, a HyperTransport (HTX) bus, a Serial Advanced Technology Attachment (SATA) bus, and any combination thereof.
[0131] The computer system 6300 may also include input devices 6333. In one example, a user of the computer system 6300 may input commands and / or other information into the computer system 6300 via the input device(s) 6333. Examples of the input device(s) 6333 include, but are not limited to, an alphanumeric input device (e.g., a keyboard), a pointing device (e.g., a mouse or touchpad), a touchpad, a touchscreen, a multi-touch screen, a joystick, a stylus, a gamepad, an audio input device (e.g., a microphone, a voice response system, etc.), an optical scanner, a video or still image capture device (e.g., a camera), and any combination thereof. In some embodiments, the input device is a Kinect, Leap Motion, etc. Input device(s) 6333 may be interfaced to bus 6340 via any of a variety of input interfaces 6323 (e.g., input interface 6323), including, but not limited to, serial, parallel, game port, USB, FIREWIRE®, THUNDERBOLT®, or any combination of the above.
[0132] In particular embodiments, when computer system 6300 is connected to network 6330, computer system 6300 may communicate with other devices connected to network 6330, specifically mobile devices and enterprise systems, distributed computing systems, cloud storage systems, cloud computing systems, etc. Communications to and from computer system 6300 may be transmitted through network interface 6320. For example, network interface 6320 may receive incoming communications (such as requests or responses from other devices) in the form of one or more packets (such as Internet Protocol (IP) packets) from network 6330, and computer system 6300 may store the incoming communications in memory 6303 for processing. Computer system 6300 may similarly store outgoing communications (such as requests or responses to other devices) in the form of one or more packets in memory 6303 and communicate them from network interface 6320 to network 6330. Processor(s) 6301 may access these communication packets stored in memory 6303 for processing.
[0133] Examples of network interface 6320 include, but are not limited to, a network interface card, a modem, and any combination thereof. Examples of network 6330 or network segment 6330 include, but are not limited to, a distributed computing system, a cloud computing system, a wide area network (WAN) (e.g., the Internet, an enterprise network), a local area network (LAN) (e.g., a network associated with an office, building, campus, or other relatively small geographic space), a telephone network, a direct connection between two computing devices, a peer-to-peer network, and any combination thereof. A network such as network 6330 may employ a wired communication mode and / or a wireless communication mode. In general, any network topology may be used.
[0134] Information and data can be displayed via display 6332. Examples of display 6332 include, but are not limited to, a liquid crystal display (LCD), a thin film transistor liquid crystal display (TFT-LCD), an organic liquid crystal display (OLED) such as a passive matrix OLED (PMOLED) or an active matrix OLED (AMOLED) display, a plasma display, and any combination thereof. Display 6332 can interface with other devices, such as processor(s) 6301, memory 6303, and persistent storage 6308, as well as input device(s) 6333, via bus 6340. Display 6332 is connected to bus 6340 via video interface 6322, and the transfer of data between display 6332 and bus 6340 can be controlled via graphics control 6321. In some embodiments, the display is a video projector. In some embodiments, the display is a head-mounted display (HMD), such as a VR headset. In further embodiments, suitable VR headsets include, by way of non-limiting example, HTC Vive, Oculus Rift, Samsung Gear VR, Microsoft HoloLens, Razer OSVR, FOVE VR, Zeiss VR One, Avegant Glyph, Freefly VR headsets, etc. In still further embodiments, the display is a combination of devices as disclosed herein.
[0135] In addition to the display 6332, the computer system 6300 may include one or more other peripheral output devices 6334, including, but not limited to, audio speakers, printers, storage devices, and any combination thereof. Such peripheral output devices may be connected to the bus 6340 via an output interface 6324. Examples of the output interface 6324 include, but are not limited to, a serial port, a parallel connection, a USB port, a FIREWIRE® port, a THUNDERBOLT® port, and any combination thereof.
[0136] Additionally or alternatively, computer system 6300 may provide functionality as a result of logic embodied in hardwired or otherwise circuitry, which may operate in place of or in conjunction with software to perform one or more processes or one or more steps of one or more processes described or illustrated herein. References to software in this disclosure may encompass logic, and references to logic may encompass software. Furthermore, references to computer-readable media may encompass, where appropriate, circuitry (such as an IC) that stores software for execution, circuitry that embodies logic for execution, or both. The present disclosure encompasses any appropriate combination of hardware, software, or both.
[0137] Those skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality.
[0138] The various illustrative logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a combination of multiple microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such configuration.
[0139] The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by one or more processors, or in a combination of the two. The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.
[0140] In accordance with the description herein, suitable computing devices include, by way of non-limiting example, cloud computing platforms, distributed computing platforms, server clusters, server computers, desktop computers, laptop computers, notebook computers, subnotebook computers, netbook computers, netpad computers, set-top computers, media streaming devices, handheld computers, Internet appliances, mobile smartphones, tablet computers, personal digital assistants, video game consoles, and vehicles. Those skilled in the art will also recognize that select televisions, video players, and digital music players with optional computer network connectivity are suitable for use with the systems described herein. Suitable tablet computers in various embodiments include those having booklet, slate, and convertible configurations known to those skilled in the art.
[0141] In some embodiments, a computing device includes an operating system configured to execute executable instructions. An operating system is software, including, for example, programs and data, that manages the device's hardware and provides services for the execution of applications. Those skilled in the art will recognize that suitable server operating systems include, by way of non-limiting example, FreeBSD, OpenBSD, NetBSD®, Linux®, Apple® Mac OS X Server®, Oracle® Solaris®, Windows Server®, and Novell® NetWare®. Those skilled in the art will recognize that suitable personal computer operating systems include, by way of non-limiting example, Microsoft® Windows®, Apple® Mac OS X®, UNIX®, and UNIX-like operating systems such as GNU / Linux®. In some embodiments, the operating system is provided by cloud computing. Those skilled in the art will also recognize that suitable mobile smartphone operating systems include, by way of non-limiting example, Nokia® Symbian® OS, Apple® iOS®, Research In Motion® BlackBerry OS®, Google® Android®, Microsoft® Windows Phone® OS, Microsoft® Windows Mobile® OS, Linux®, and Palm® WebOS®.Those skilled in the art will also recognize that suitable media streaming device operating systems include, by way of non-limiting example, Apple TV®, Roku®, Boxee®, Google TV®, Google Chromecast®, Amazon Fire®, and Samsung® HomeSync®, and that suitable video game console operating systems include, by way of non-limiting example, Sony® PS3®, Sony® PS4®, Microsoft® Xbox 360®, Microsoft Xbox One, Nintendo® Wii®, Nintendo® Wii U®, and Ouya®.
[0142] Non-transitory computer-readable storage medium In some embodiments, the platforms, systems, media, and methods disclosed herein include one or more non-transitory computer-readable storage media encoded with a program including instructions executable by an operating system of a networked computing device. In further embodiments, the computer-readable storage medium is a tangible component of the computing device. In still further embodiments, the computer-readable storage medium is optionally removable from the computing device. In some embodiments, the computer-readable storage medium includes, by way of non-limiting example, CD-ROMs, DVDs, flash memory devices, solid-state memory, magnetic disk drives, magnetic tape drives, optical disk drives, distributed computing systems including cloud computing systems and services, and the like. In some cases, the programs and instructions are encoded on the medium permanently, substantially permanently, semi-permanently, or non-transitoryly.
[0143] computer program In some embodiments, the platforms, systems, media, and methods disclosed herein include at least one computer program, or the use thereof. A computer program includes a sequence of instructions executable by one or more processor(s) of a computing device's CPU, written to perform specified tasks. Computer-readable instructions may be implemented as program modules, such as functions, objects, application programming interfaces (APIs), computing data structures, etc., that perform particular tasks or implement particular abstract data types. In light of the disclosure provided herein, those skilled in the art will recognize that computer programs can be written in a variety of languages and versions.
[0144] The functionality of the computer-readable instructions may be combined or distributed as desired in various environments. In some embodiments, a computer program includes one instruction sequence. In some embodiments, a computer program includes multiple instruction sequences. In some embodiments, a computer program is provided from one location. In other embodiments, a computer program is provided from multiple locations. In various embodiments, a computer program includes one or more software modules. In various embodiments, a computer program includes, in part or in whole, one or more web applications, one or more mobile applications, one or more standalone applications, one or more web browser plug-ins, extensions, add-ins, or add-ons, or any combination thereof.
[0145] Web Applications In some embodiments, the computer program comprises a web application. In light of the disclosure provided herein, those skilled in the art will recognize that in various embodiments, a web application utilizes one or more software frameworks and one or more database systems. In some embodiments, the web application is created on a software framework such as Microsoft® .NET or Ruby on Rails (RoR). In some embodiments, the web application utilizes one or more database systems, including, by way of non-limiting example, a relational database system, a non-relational database system, an object-oriented database system, an associative database system, an XML database system, and a document-oriented database system. In further embodiments, suitable relational database systems include, by way of non-limiting example, Microsoft® SQL Server, mySQL™, and Oracle®. Those skilled in the art will also recognize that in various embodiments, a web application is written in one or more versions of one or more languages. A web application may be written in one or more markup languages, presentation definition languages, client-side scripting languages, server-side coding languages, database query languages, or combinations thereof. In some embodiments, a web application is written in part in a markup language such as Hypertext Markup Language (HTML), Extensible Hypertext Markup Language (XHTML), or Extensible Markup Language (XML). In some embodiments, a web application is written in part in a presentation definition language such as Cascading Style Sheets (CSS). In some embodiments, a web application is written in part in a client-side scripting language such as Asynchronous JavaScript and XML (AJAX), Flash® ActionScript, JavaScript, or Silverlight®.In some embodiments, the web application is written in part in a server-side coding language such as Active Server Pages (ASP), ColdFusion®, Perl, Java™, JavaServer Pages (JSP), Hypertext Preprocessor (PHP), Python™, Ruby, Tcl, Smalltalk, WebDNA®, or Groovy. In some embodiments, the web application is written in part in a database query language such as Structured Query Language (SQL). In some embodiments, the web application integrates an enterprise server product such as IBM® Lotus Domino®. In some embodiments, the web application includes a media player element. In various further embodiments, the media player element utilizes one or more of many suitable multimedia technologies, including, by way of non-limiting example, Adobe® Flash®, HTML 5, Apple® QuickTime®, Microsoft® Silverlight®, Java™, and Unity®.
[0146] Referring to FIG. 64 , in a particular embodiment, the application provisioning system comprises one or more databases 6400 accessed by a relational database management system (RDBMS) 6410. Suitable RDBMSs include Firebird, MySQL®, PostgreSQL, SQLite, Oracle Database, Microsoft SQL Server, IBM DB2, IBM Informix, SAP Sybase, Teradata, etc. In this embodiment, the application provisioning system further comprises one or more application servers 6420 (such as a Java server, a .NET server, and a PHP server) and one or more web servers 6430 (such as Apache, IIS, GWS, etc.). The web server(s) optionally expose one or more web services via application programming interfaces (APIs) 6440. Over a network such as the Internet, the system provides a browser-based and / or mobile-native user interface.
[0147] Referring to FIG. 65, in a particular embodiment, the application provisioning system alternatively has a distributed, cloud-based architecture 6500, comprising elastically load-balanced and auto-scaled web server resources 6510 and application server resources 6520, and a synchronously replicated database 6530.
[0148] Mobile Applications In some embodiments, the computer program comprises a mobile application provided to the mobile computing device. In some embodiments, the mobile application is provided to the mobile computing device at the time of manufacture. In other embodiments, the mobile application is provided to the mobile computing device over a computer network as described herein.
[0149] Given the disclosure provided herein, mobile applications are created using hardware, languages, and development environments known to those skilled in the art and with techniques known to those skilled in the art. Those skilled in the art will recognize that mobile applications may be written in a number of languages. Suitable programming languages include, by way of non-limiting example, C, C++, C#, Objective-C, Java™, JavaScript, Pascal, Object Pascal, Python™, Ruby, VB.NET, WML, and XHTML / HTML with or without CSS, or combinations thereof.
[0150] Suitable mobile application development environments are available from several sources. Commercially available development environments include, but are not limited to, Airplay SDK, alcheMo, Appcelerator®, Celsius, Bedrock, Flash Lite, .NET Compact Framework, Rhomobile, and WorkLight Mobile Platform. Other development environments are available free of charge, but are not limited to, Lazarus, MobiFlex, MoSync, and Phonegap. Mobile device manufacturers also distribute software developer kits, but are not limited to, the iPhone® and iPad® (iOS) SDK, Android™ SDK, BlackBerry® SDK, BREW SDK, Palm® OS SDK, Symbian SDK, webOS SDK, and Windows® Mobile SDK.
[0151] Those skilled in the art will recognize that several commercial forums are available for the distribution of mobile applications, including, by way of non-limiting example, the Apple® App Store, Google® Play, Chrome WebStore, BlackBerry® App World, App Store for Palm devices, App Catalog for Mobile, Windows® Marketplace for Mobile, Ovi Store for Nokia®, Samsung® Apps, and Nintendo® DSi Shop.
[0152] Standalone Applications In some embodiments, a computer program includes a standalone application, which is a program that runs as an independent computer process rather than as an add-on to an existing process (e.g., not a plug-in). Those skilled in the art will recognize that standalone applications are often compiled. A compiler is a computer program that converts source code written in a programming language into binary object code, such as assembly language or machine code. Suitable compiled programming languages include, by way of non-limiting example, C, C++, Objective-C, COBOL, Delphi, Eiffel, Java™, Lisp, Python™, Visual Basic, VB .NET, or combinations thereof. Compilation is often performed, at least in part, to create an executable program. In some embodiments, a computer program includes one or more executable compiled applications.
[0153] Web browser plugin In some embodiments, the computer program includes a web browser plug-in (e.g., an extension, etc.). In computing, a plug-in is one or more software components that add specific functionality to a larger software application. Software application manufacturers support plug-ins to allow third-party developers to create extensions to the application, easily add new functionality, and reduce the application's size. Plug-ins allow customization of the software application's functionality. For example, plug-ins are commonly used in web browsers to play video, generate interactive features, scan for viruses, and display specific file types. Those skilled in the art will be familiar with some web browser plug-ins, including Adobe® Flash® Player, Microsoft® Silverlight®, and Apple® QuickTime®. In some embodiments, the toolbar includes one or more web browser extensions, add-ins, or add-ons. In some embodiments, the toolbar includes one or more explorer bars, tool bands, or desk bands.
[0154] Given the disclosure provided herein, one of ordinary skill in the art will recognize that several plug-in frameworks are available that allow for the development of plug-ins in a variety of programming languages, including, by way of non-limiting example, C++, Delphi, Java™, PHP, Python™, and VB .NET, or combinations thereof.
[0155] A web browser (also called an Internet browser) is a software application designed for use on network-connected computing devices to retrieve, present, and traverse information resources on the World Wide Web. Suitable web browsers include, by way of non-limiting example, Microsoft® Internet Explorer®, Mozilla® Firefox®, Google® Chrome, Apple® Safari®, Opera Software® Opera®, and KDE Konqueror. In some embodiments, the web browser is a mobile web browser. Mobile web browsers (also called microbrowsers, minibrowsers, or wireless browsers) are designed for use on mobile computing devices, including, by way of non-limiting example, handheld computers, tablet computers, netbook computers, subnotebook computers, smartphones, music players, personal digital assistants (PDAs), and handheld video game systems. Suitable mobile web browsers include, by way of non-limiting example, Google® Android® browser, RIM BlackBerry® browser, Apple® Safari®, Palm® Blazer, Palm® WebOS® browser, Mozilla® Firefox® for mobile, Microsoft® Internet Explorer® mobile, Amazon® Kindle® Basic Web, Nokia® browser, Opera Software® Opera® mobile, and Sony® PSP™ browser.
[0156] Software Module In some embodiments, the platforms, systems, media, and methods disclosed herein include software, server, and / or database modules, or the use thereof. In view of the disclosure provided herein, software modules are created by techniques known to those of skill in the art and using machines, software, and languages known to those of skill in the art. The software modules disclosed herein are implemented in numerous ways. In various embodiments, a software module comprises a file, a code section, a programming object, a programming structure, a distributed computing resource, a cloud computing resource, or a combination thereof. Further, in various embodiments, a software module comprises multiple files, multiple code sections, multiple programming objects, multiple programming structures, multiple distributed computing resources, multiple cloud computing resources, or a combination thereof. In various embodiments, one or more software modules include, by way of non-limiting examples, a web application, a mobile application, a standalone application, and a distributed or cloud computing application. In some embodiments, a software module is within one computer program or application. In other embodiments, a software module is within multiple computer programs or applications. In some embodiments, a software module is hosted on one machine. In other embodiments, a software module is hosted on multiple machines. In further embodiments, the software modules are hosted on a distributed computing platform, such as a cloud computing platform. In some embodiments, the software modules are hosted on one or more machines in a single location. In other embodiments, the software modules are hosted on one or more machines in multiple locations.
[0157] Database In some embodiments, the platforms, systems, media, and methods disclosed herein include one or more databases, or the use thereof. Given the disclosure provided herein, one skilled in the art will recognize that many databases are suitable for storing and retrieving data or information local to the systems herein. The databases herein may be accessed, maintained, or controlled by the data-driven workflow platform. In some cases, the databases may be different from cloud-based repositories associated with platform customers. The databases may be local to the data-driven workflow platform or may be accessed remotely by the data-driven workflow platform.
[0158] In various embodiments, suitable databases include, by way of non-limiting example, relational databases, non-relational databases, object-oriented databases, object databases, entity-relationship model databases, associative databases, XML databases, document-oriented databases, and graph databases. Further non-limiting examples include SQL, PostgreSQL, MySQL, Oracle, DB2, Sybase, and MongoDB. In some embodiments, the database is internet-based. In further embodiments, the database is web-based. In even further embodiments, the database is cloud computing-based. In certain embodiments, the database is a distributed database. In other embodiments, the database is based on one or more local computer storage devices.
[0159] Various embodiments of the present disclosure are described herein. These examples are referenced in a non-limiting sense. They are provided to illustrate more broadly applicable aspects of the present disclosure. Various changes may be made in the described disclosure, and equivalents may be substituted, without departing from the true spirit and scope of the present disclosure. In addition, many modifications may be made to adapt a particular situation, material, composition of matter, process, process act(s), or step(s) to the purpose(s), spirit, or scope of the present disclosure. Moreover, as will be understood by those skilled in the art, each of the individual variations described and illustrated herein has individual components and features that may be readily separated from, or combined with, the features of any of the other embodiments without departing from the scope or spirit of the present disclosure. All such modifications are intended to be within the scope of the claims associated with this disclosure.
[0160] While preferred embodiments of the present invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. It is not intended that the present invention be limited by the specific examples provided herein. While the present invention has been described with reference to the foregoing specification, the descriptions and illustrations of the embodiments herein are not intended to be construed in a limiting sense. Numerous variations, changes, and substitutions will occur to those skilled in the art without departing from the invention. Furthermore, it should be understood that all aspects of the present invention are not limited to the specific depictions, configurations, or relative proportions set forth herein, which depend upon a variety of conditions and variables. It should be understood that various alternatives to the embodiments of the present invention described herein may be employed in practicing the invention. It is therefore contemplated that the present invention shall encompass all such alternatives, modifications, variations, or equivalents. The following claims define the scope of the invention, and it is intended that methods and structures within the scope of these claims and their equivalents be covered thereby.
Claims
1. 1. A method for providing a data-driven workflow platform, comprising: mapping one or more data fields of a selected data object to one or more elements of a data storage model of the data-driven workflow platform, the selected data object being stored in a data cloud configuration separate from and operatively coupled to the data-driven workflow platform, the mapping including defining a relationship between the selected data object and the one or more elements of the data storage model; displaying, on a graphical user interface (GUI) of the data-driven workflow platform, a flow for building a cloud application that utilizes or manages the selected data object, the flow allowing a user to add, delete, or modify one or more components of the cloud application, the flow including at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data object; executing the cloud application constructed using the flow displayed on the GUI of the data-driven workflow platform to automatically detect the trigger event of the selected data objects in the data cloud configuration and automatically perform the action on at least one of the selected data objects without extracting or loading the selected data objects from the data cloud configuration and without moving the selected data objects to the data-driven workflow platform; A method comprising:
2. 2. The method of claim 1, wherein the data cloud configuration comprises one or more data clouds that store data objects, and the data-driven workflow platform is authorized to access, process, and edit the data objects stored in the one or more data clouds.
3. The method described in claim 2, wherein the one or more data clouds store the data objects using one or more different schemas.
4. The method of claim 1 , wherein the relationships are defined by a user via the GUI.
5. The method described in claim 1, wherein the relationships are automatically generated by the data-driven workflow platform and displayed on the GUI as recommended relationships.
6. The method of claim 1, wherein mapping the selected data objects to the data storage model includes identifying elements missing from the data storage model and prompting a user to identify another set of data objects for the missing elements.
7. The method of claim 1, wherein the data storage model includes a plurality of data types including at least one of a task type, an application type, and an element data type.
8. The method described in claim 7, wherein mapping the selected data object to the data storage model includes mapping the selected data object to an element data type.
9. The method of claim 1, wherein the flow allows a user to add, remove, or modify one or more components of the cloud application by dragging and dropping one or more graphical elements into the flow.
10. The method of claim 9, wherein the flow includes a pre-built template flow that prompts the user to add, remove, or modify the one or more components.
11. The method of claim 10, wherein the pre-built template flow is automatically determined based at least in part on the selected data object and the cloud application.
12. The method of claim 1, wherein the rules are automatically generated based at least in part on one or more data fields added to the flow.
13. The method described in claim 12, wherein the rules are automatically generated using a model, the model being developed using rules extracted from past actions and previously processed data.
14. The method of claim 13, wherein the model is trained using a machine learning algorithm.
15. The method described in claim 13, wherein the rule is recommended to a user on the GUI, and the at least one graphical element enables the user to approve, reject, or modify the rule.
16. The method of claim 1, wherein the rules are manually defined by a user via the GUI.
17. The method of claim 1, wherein the rule includes a definition of the trigger event, and the trigger event is time-based or related to a change in value or status of at least a subset of the selected data objects.
18. The method of claim 17, wherein the rule further includes a definition of a condition for performing the action.
19. The method of claim 17, wherein the rule further includes a definition of the action.
20. The method of claim 19, wherein the action is selected from the group consisting of adding a watcher, updating a field, sending a notification, posting a comment, assigning to a user or group, and creating a record.
21. The method of claim 1, further comprising displaying the selected data objects that conform to the data storage model within a portal of the GUI.
22. The method of claim 21, further comprising modifying at least one value of the selected data object via the GUI and automatically updating the value of the corresponding selected data object in the data cloud configuration via an API connection.
23. The method of claim 21, further comprising receiving an instruction to perform an operation on at least one of the selected data objects via the GUI, and performing the operation on the at least one of the selected data objects in the data cloud configuration without using an extract-transform-load (ETL) or extract-load-transform (ELT) data integration process.
24. The method of claim 23, wherein the selected data object includes transactional data or streaming data, and performing the operation further includes caching intermediate results by the data-driven workflow platform.
25. The method of claim 1, wherein the trigger event for the selected data object includes a change to the selected data object stored in the data cloud configuration.
26. The method of claim 1, wherein the flow is identified from a plurality of predefined workflows by a large-scale language model (LLM).
27. The method of claim 26, wherein the flow is identified based at least in part on a data schema of the selected data object stored in the data cloud configuration.
28. The method of claim 26, wherein the output of the LLM includes a list of instructions for creating the flow.
29. A system for providing a data-driven workflow platform, said system comprising: at least one processor; and instructions executable to cause said at least one processor to perform operations, said operations comprising: operatively coupling the data-driven workflow platform to one or more data clouds separate from the data-driven workflow platform; mapping one or more data fields of selected data objects to one or more elements of a data storage model of the data-driven workflow platform, the selected data objects being stored in the one or more data clouds, the mapping including defining a relationship between the selected data objects and the one or more elements of the data storage model; displaying, on a graphical user interface (GUI) of the data-driven workflow platform, a flow for building a cloud application that utilizes or manages the selected data object, the flow allowing a user to add, delete, or modify one or more components of the cloud application, the flow including at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data object; executing the cloud application constructed using the flow displayed on the GUI of the data-driven workflow platform to automatically detect the trigger event of the selected data objects in the data cloud configuration and automatically perform the action on at least one of the selected data objects without extracting or loading the selected data objects from the data cloud configuration and without moving the selected data objects to the data-driven workflow platform; A system including:
Citation Information
Patent Citations
A system and method for intelligently mapping source elements to target elements in a cloud-based integrated service.
JP2018517953A
Graphical user interfaces for defining complex data objects
US20200371679A1