Systems and methods for a data-driven workflow platform
The data-driven workflow platform addresses inefficiencies in enterprise data management by natively connecting to cloud repositories, enabling real-time data access and management without integration or transformation, thus enhancing efficiency and collaboration.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-12-15
- Publication Date
- 2026-04-10
AI Technical Summary
Existing enterprise data management systems require integration, transformation, and download of data from cloud repositories, leading to inefficiencies and increased complexity, cost, and risk.
A data-driven workflow platform that natively connects to cloud repositories, enabling the creation, customization, and management of cloud applications without data integration or transformation, using a no-code interface for data mining and automated workflows.
Improves efficiency by allowing real-time data access and management without data transfer, reducing complexity and cost while enhancing data utilization and collaboration across heterogeneous systems.
Smart Images

Figure 2026062712000001_ABST
Abstract
Description
Technical Field
[0001] Cross-reference This application claims the priority and benefit of U.S. Provisional Application No. 63 / 418,397, filed on October 21, 2022, U.S. Provisional Application No. 63 / 454,917, filed on March 27, 2023, and U.S. Application No. 18 / 340,510, filed on June 23, 2023, the entire contents of each of which are hereby incorporated by reference.
Background Art
[0002] Computing systems are widespread in modern business and are typically utilized as important operational resources. For example, many enterprises utilize so-called "Enterprise Resource Planning" (or ERP) systems to support various aspects such as financial management, human resources, and inventory management. Additionally, commonly used distributed computing business systems include systems called "Transportation Management Systems" (or TMS) that can be utilized for planning, monitoring, and optimizing logistics and transportation, and systems called "Risk Management Systems" (or RMS) that can be used to support compliance officers and the like regarding an enterprise's risk profile and compliance levels with applied rules and regulations. The global ERP software market alone is estimated to be on the order of $45 billion annually, and providers such as SAP (RTM), Oracle (RTM), and Workday (RTM) offer various solutions.
Summary of the Invention
[0003] Currently, applications handling large amounts of data (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, and workflow execution on local data. For example, moving data from one database, multiple databases, or other sources to an integrated repository requires ETL (Extract, Transform, Load) or ELT (Load and Transform in Data Warehouse) processes.
[0004] There is a need for a service management cloud that can natively connect to the cloud, create and run cloud applications based on real-time data in existing cloud-based repositories, and eliminate the need for integration, transformation, or download. This disclosure provides a system and method that enables users to create, customize, and manage applications for managing data flows and processes using distributed computing systems. In particular, the system and method herein can be used to optimize business processes that can manage and make available operations and processes without the transfer and / or replication of traditional enterprise data. This disclosure provides an integrated platform for users, organizations, or cloud service providers to access their cloud data and process cloud data for business applications that initiate and manage workflows (e.g., a cloud-native SaaS platform for no-code business applications with data-driven workflows). Efficiency is improved by natively connecting to the cloud without the need for data integration, transformation, or download. The platform may enable users to create, customize, and / or configure cloud applications through a no-code user interface that incorporates features such as data mining, configurable and automated workflows, and the discovery and creation of dynamic relationships.
[0005] In one embodiment, this specification describes a method for providing a data-driven workflow platform. This method includes 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 operably coupled to the data-driven workflow platform, and displaying an interactive flow on a graphical user interface (GUI) 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 actions triggered by trigger events of the selected data objects.
[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 granted permission to access, process, and edit the data objects stored in one or more data clouds. In some embodiments, mapping selected data objects to a data storage model involves defining relationships between the selected data objects and elements of the data storage model. In some cases, these relationships are defined by the user via a GUI. In some cases, the GUI allows the 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, these relationships are automatically generated by the data-driven workflow platform and displayed on the GUI as recommended relationships.
[0007] In some embodiments, mapping selected data objects to a data storage model involves identifying missing elements from the data storage model and prompting the user to identify another set of data objects for the missing elements. In some embodiments, the data storage model includes multiple data types, including at least one of task types, application types, and element data types. In some cases, mapping selected data objects to a data storage model involves mapping selected data objects to element data types.
[0008] 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. In some cases, the pre-built template flow is automatically determined based at least partially on selected data objects and the cloud application.
[0009] In some embodiments, rules are automatically generated based at least partially on one or more data fields added to the interactive flow. In some cases, rules are automatically generated using a model, which is developed using rules extracted from past actions and previously processed data. In some cases, rules are recommended to the user on a GUI, and at least one graphical element allows the user to approve, reject, or modify the rules.
[0010] In some embodiments, rules are manually defined by the user via a GUI. In some embodiments, rules include definitions of trigger events, which are time-based or related to changes in values or status of at least a subset of selected data objects. In some cases, rules further include definitions of conditions for performing actions. In some cases, rules further include definitions of actions. In some examples, actions are selected from a group consisting of adding watchers, updating fields, sending notifications, posting comments, assigning to users or groups, and creating records.
[0011] In some embodiments, the method further includes displaying selected data objects that fit the data storage model within a GUI portal. In some cases, the method further includes modifying the value of at least one 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. In some cases, the method further includes receiving instructions to perform an operation on at least one selected data object via the GUI and performing the operation on at least one selected data object in the data cloud configuration without using an extract-transform-load (ETL) data integration process. For example, the selected data object may include transactional or streaming data, and performing the operation may further include caching intermediate results by a data-driven workflow platform. In some embodiments, trigger events for the selected data object include changes to the selected data object stored in the data cloud configuration.
[0012] In another embodiment, the foregoing describes a system for providing a data-driven workflow platform. The system comprises: a first module configured to operably connect the data-driven workflow platform to one or more data clouds; a second module configured to map selected data objects to the data storage model of the data-driven workflow platform, wherein the selected data objects are stored in one or more data clouds; and a visualization module configured to display an interactive flow on a graphical user interface (GUI) for building a cloud application that utilizes or manages the selected data objects, wherein the interactive flow includes at least one graphical element corresponding to a rule for automating actions triggered by trigger events of the selected data objects.
[0013] In some embodiments, the first module manages one or more permissions granted to the data-driven workflow platform for accessing, processing, and editing data objects stored in one or more data clouds. In some embodiments, selected data objects are mapped to a 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 allows the user to define relationships between elements of the data storage model. In some cases, the second GUI allows the user to link one or more data fields of first selected elements of the data storage model to one or more data fields of second selected elements. In some cases, these 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 missing elements from the data storage model and prompt the user to identify a different set of data objects for the missing elements. In some embodiments, the data storage model includes multiple data types, including at least one of task types, application types, transaction data types, and element data types. In some cases, the second module is configured to further map selected data objects to transaction data types or element data types.
[0015] In some embodiments, an 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 partially on selected data objects and the cloud application. In some cases, rules are automatically generated based at least partially on one or more data fields added to the interactive flow. In some cases, rules are automatically generated using a model, which is developed using rules extracted from past actions and previously processed data. For example, the rules are recommended to the user on the GUI, and at least one graphical element allows the user to approve, reject, or modify the rules.
[0016] In some embodiments, rules are manually defined by the user via a GUI. In some embodiments, rules include definitions of trigger events, which are time-based or related to changes in values or status of at least a subset of selected data objects. In some cases, rules further include definitions of conditions for performing actions. In some cases, rules further include definitions of actions. In some cases, actions are selected from a group consisting of adding watchers, updating fields, sending notifications, posting comments, assigning to users or groups, and creating records.
[0017] In some embodiments, the visualization module is further configured to display selected data objects that fit the data storage model within a GUI portal. In some cases, the value of at least one of the selected data objects is modified via the GUI, and the 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 to perform operations on at least one of the selected data objects received via the GUI into database operations that can be executed 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 or streaming data, and the data-driven workflow platform is configured to cache intermediate results for performing the operations. In some embodiments, trigger events for the selected data objects include changes to the selected data objects stored in the data cloud configuration.
[0018] In some embodiments, the interactive flow is identified from a set of predefined workflows by a Large-Scale Language Model (LLM). In some cases, the interactive flow is identified at least partially based on the 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] Further aspects and advantages of the Disclosure will be readily apparent to those skilled in the art from the following detailed description. Only exemplary embodiments of the Disclosure are shown and described in the detailed description. As will be understood, other different embodiments of the Disclosure are possible, and some of its details can be modified in various express manner without departing from the Disclosure. Therefore, the drawings and descriptions are considered illustrative and not limiting.
[0020] Reference All publications, patents, and patent applications referenced herein are incorporated herein by reference to the same extent as any individual publication, patent, or patent application is specifically and individually indicated as being incorporated by reference. To the extent that any publication, patent, or patent application incorporated by reference conflicts with any disclosure contained herein, this Specified is intended to supersede and / or take precedence over such conflicting material. [Brief explanation of the drawing]
[0021] Novel features of this disclosure are described in detail in the appended claims. The features and advantages of this disclosure will be better understood by referring to the following detailed description illustrating exemplary embodiments and the appended drawings (also referred to herein as “Figure” and “FIG”).
[0022] [Figure 1] This example shows how to store enterprise data in a conventional database system. [Figure 2] Shows an example of a cloud-based repository provider. [Figure 3] Sketchily shows examples of cloud services and SaaS. [Figure 4] Shows various configurations in which a service management cloud system can be configured to have a direct interconnectivity between a user and a data cloud configuration. [Figure 5] Shows various configurations in which a service management cloud system can be configured to have a direct interconnectivity between a user and a data cloud configuration. [Figure 6] Shows various configurations in which a service management cloud system can be configured to have a direct interconnectivity between a user and a data cloud configuration. [Figure 7] Shows various configurations in which a service management cloud system can be configured to have a direct interconnectivity between a user and a data cloud configuration. [Figure 8] Sketchily shows a platform that provides an interface for viewing, accessing, and managing all protected process data within a data cloud. [Figure 9] Sketchily shows an example of a service management cloud system. [Figure 10] Shows the configuration of a service management cloud. [Figure 11] Shows the service management cloud session configuration. [Figure 12] Shows the service management cloud session configuration with a write-back function. [Figure 13] Shows access management, control, and collaboration within the platform. [Figure 14] Shows access management, control, and collaboration within the platform. [Figure 15] Shows access management, control, and collaboration within the platform. [Figure 16] Shows a platform with securely and efficiently managed access. [Figure 17] This example demonstrates how to configure connections to data sources within a data cloud and map source data to data elements within the platform. [Figure 18] This document provides examples of use cases for configuring and using variations of data-driven workflow platforms in advanced business processes with varying levels of automation. [Figure 19] This document provides examples of use cases for configuring and using variations of data-driven workflow platforms in advanced business processes with varying levels of automation. [Figure 20] This document provides examples of use cases for configuring and using variations of data-driven workflow platforms in advanced business processes with varying levels of automation. [Figure 21] This shows an example of a GUI for creating and / or editing automations. [Figure 22] This shows an example of a GUI for creating and / or editing automations. [Figure 23] This shows an example of a GUI for creating and / or editing automations. [Figure 24] This shows an example of a GUI for creating or adding relationships. [Figure 25] This shows an example of a GUI for creating or adding relationships. [Figure 26] This shows an example of a GUI for creating a workflow. [Figure 27] This shows an example of a GUI for creating a workflow. [Figure 28] This shows an example of a GUI for creating a workflow. [Figure 29] This shows an example of a GUI for creating a workflow. [Figure 30] This shows an example of a GUI for creating a workflow. [Figure 31] This example shows a GUI that displays the created workflow along with tracked progress and analysis. [Figure 32]This example shows a 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] This shows an example of a GUI for configuring or creating data mining. [Figure 40] This shows an example of a GUI for configuring or creating data mining. [Figure 41] This shows an example of a GUI for configuring or creating data mining. [Figure 42] This shows an example of a GUI for configuring or creating data mining. [Figure 43] This shows an example of a GUI for configuring or creating data mining. [Figure 44] This outlines the architecture for a data-driven workflow platform. [Figure 45] The following outlines some examples of AI-based application discovery capabilities according to several embodiments of this disclosure. [Figure 46] This shows an example of a GUI for an AI-based application discovery feature. [Figure 47] This shows an example of a GUI for an AI-based application discovery feature. [Figure 48] This shows an example of a GUI for an AI-based application discovery feature. [Figure 49] The following outlines some examples of AI generation workflow functionality according to several embodiments of this disclosure. [Figure 50] This shows an example of the GUI for the AI generation workflow function. [Figure 51] This shows an example of the GUI for the AI generation workflow function. [Figure 52] This shows an example of the GUI for the AI generation workflow function. [Figure 53] This shows an example of the GUI for the AI generation workflow function. [Figure 54] An example of a GUI for an automated flow is shown. [Figure 55] An example of a GUI for an automated flow is shown. [Figure 56] This shows an example of a GUI for an application marketplace. [Figure 57] This shows an example of a GUI for an application marketplace. [Figure 58] This example shows a GUI (e.g., Cloudlink Explorer) that allows users to find data within a data cloud (e.g., Snowflake). [Figure 59] This example shows a GUI (e.g., CloudLink Explorer) that allows users to find data within a data cloud (e.g., Snowflake). [Figure 60] This example shows a GUI for users to set logic rules (e.g., filter parameters and logic operators within records) to find data. [Figure 61] This shows an example GUI for users to configure machine learning-based anomaly detection and reporting rules. [Figure 62] This shows an example GUI for users to select a primary column to be used as a unique identifier for data. [Figure 63] This provides a non-specific example of a computing device, in this case a device having one or more processors, memory, storage, and network interfaces. [Figure 64]This provides a non-specific example of a web / mobile application delivery system, in this case a system that provides a browser-based and / or native mobile user interface. [Figure 65] This provides a non-limiting example of a cloud-based web / mobile application delivery system, in which the system features elastic load-balanced, auto-scaling web server and application server resources, as well as a synchronously replicated database. [Modes for carrying out the invention]
[0023] While various embodiments of the present invention are shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided for illustrative purposes only. Various modifications, alterations, and substitutions can be conceived by those skilled in the art without departing from the present invention. It should be understood that various alternatives to the embodiments of the present invention described herein may be adopted.
[0024] Specific definition Unless otherwise defined, all technical terms used herein have the same meaning as those generally understood by those skilled in the art in which the present invention pertains.
[0025] Throughout this specification, any reference to “several embodiments” or “one embodiment” means that a particular feature, structure, or characteristic described in relation to an embodiment is included in at least one embodiment. Therefore, while the phrases “in some embodiments” or “in one embodiment” may appear in various places throughout this specification, they do not necessarily all refer to the same embodiment. Furthermore, certain features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
[0026] As used herein, terms such as “component,” “system,” “interface,” and “unit” 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. Exemplary examples include an application running on a server, and the server itself may be a component. One or more components may reside within a process, and components may be localized on one computer and / or distributed across two or more computers.
[0027] Furthermore, these components can be executed from various computer-readable media containing various data structures. Components can communicate via local and / or remote processes, such as following signals with one or more data packets (e.g., data from one component interacting with other components via signals along with other systems, such as 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).
[0028] As another example, a component may be a device having a specific function provided by mechanical parts operated by an electrical or electronic circuit, the electrical or electronic circuit may be operated by a software or firmware application run by one or more processors, the one or more processors may reside inside or outside the device and may run at least part of the software or firmware application. As yet another example, a component may be a device that provides a specific functionality through an electronic component without mechanical parts, the electronic component may at least partially include one or more processors for running software and / or firmware that grants the functionality of the electronic component. In some cases, a component may emulate an electronic component, for example, through a virtual machine in a cloud computing system.
[0029] Whenever the terms “at least,” “greater than,” or “greater than or equal to” precede the first number in a set of two or more numbers, the terms “at least,” “greater than,” or “greater than or equal to” apply to each number in that set. 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” precede the first number in a set of two or more numbers, the terms “not greater than,” “less than,” or “less than or equal to” apply to each number in that set. For example, “3, 2, or 1 or less” is equivalent to “3 or less, 2 or less, or 1 or less.”
[0031] As used herein, a processor encompasses one or more processors, for example, a single processor, or multiple processors in a distributed processing system, for example. A controller or processor as described herein generally includes a tangible medium that stores instructions for carrying out process steps, and a 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, one or more processors may be programmable processors (e.g., a central processing unit (CPU) or microcontroller), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), and / or one or more advanced RISC machine (ARM) processors. In some cases, one or more processors may be operably coupled to a non-temporary computer-readable medium. The non-temporary computer-readable medium may store logic, code, and / or program instructions executable by one or more processor units for carrying out one or more steps. The non-temporary computer-readable medium may include one or more memory units (e.g., removable media or external storage devices such as SD cards or random access memory (RAM)). One or more methods or operations disclosed herein can be implemented, for example, in hardware components such as ASICs, dedicated computers, or general-purpose computers, or in combinations of hardware and software.
[0032] Furthermore, the term “exemplary” is used herein to mean that it is used as an example, case, or illustration. Any embodiment or design described herein as “exemplary” is not necessarily construed to be preferable or advantageous to other embodiments or designs. Rather, the use of the term “exemplary” is intended to present a concept in a concrete way. Where 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 it is clear from the context, “X adopts A or B” is intended to mean any of the natural inclusive permutations. In other words, if X adopts A, if X adopts B, or if X adopts both A and B, “X adopts A or B” applies to any of the aforementioned cases. Furthermore, the articles “a” and “an” as used in this application and the attached claims should generally be construed to mean “one or more” unless otherwise specified or it is clear from the context that they refer to a singular form.
[0033] Overview of Cloud Services Figure 1 illustrates an example of storing enterprise data in a conventional database system. As shown in this example, typically one or more users within an enterprise (2, 4, 6; 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 connected (66, 68, 70; 72, 74, 76) system (16 - e.g., an ERP system; 18 - e.g., a TMS system; 20 - e.g., an RMS system) for which such one or more users (2, 4, 6) have the credentials and privileges for access and use. Typically, each system (16, 18, 20) can be operationally coupled (78, 80, 82) to one or more database systems (22, 24, 26) configured to store relevant data and dynamically utilize such data to perform sorting, reporting, and / or calculations in response to requests coming through the interconnected systems (16, 18, 20). Enterprises using such configurations often have access to specific information technology resources to maintain, update, and address various aspects of their database / computing systems (22, 24, 26), and there are unique operational risks and inefficiencies for such enterprises, associated with the uniqueness and complexity of many ERP / database / computing configurations, as will be discussed in more detail below.
[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 expand their market share from traditional ERP / database / computing configurations (as shown in Figure 1) by providing systems that configure data cloud systems (34) for specific enterprises, built to inherently decouple enterprise data from core computing resources, which may reside in interconnected (96, via high-throughput connections, etc.) and scalable computing configurations (36) such as those offered by Amazon (RTM), Google (RTM), and Microsoft (RTM) under the trademark names Amazon Web Services (RTM), Google Cloud (RTM), and Azure (RTM).
[0035] As shown in Figure 2, one or more users within an enterprise (2, 4, 6; these users may be the same user operating through separate systems, or they may represent three different users operating through separate systems) can utilize one or more computing sessions (10, 12, 14) to operate one or more connected systems (16, 18, 20) that can be interconnected (84, 86, 88, 90, 92, 94) to a data cloud configuration (34). Many such systems (16, 18, 20), as shown in Figure 2, typically require maintaining a considerable level or amount of enterprise data using separate databases (28, 30, 32) that can be operated (e.g., via application programming interfaces (or "APIs"), batch tables, XML dispatch, and other traditional system integrations). Therefore, even if some enterprise data, such as report data and / or audit data, is stored in a data cloud (34) using operational computing provided by an interconnected (96) scalable computing configuration (36) and subsequently copied, the data and data processing typically remain distributed across other different systems (18, 20, 22), which also results in various drawbacks for such enterprises in terms of efficiency, complexity, cost, and risk management.
[0036] In recent years, cloud services and SaaS (Software-as-a-Service) have the potential to provide more scalable, functional, efficient, upgradeable, less isolated, and secure enterprise computing resources. Particularly in typical modern enterprise scenarios dealing with various issues such as supply chain challenges, the amount of information from heterogeneous systems that may need to be integrated and accepted, often manually, to make timely and informed business decisions can be extremely large. For example, as shown in Figure 3, a typical enterprise manufacturing complex technical products may not be surprised to find information from multiple traditionally integrated systems (16, 18, 20) and / or SaaS (38) systems (e.g., software for looking up approved purchase orders for key components of a product being manufactured, or for checking shipping / transportation status, operational risks, payment status, and relevant weather data) to determine whether a particular shipment will actually arrive at the appropriate manufacturing facility on time and to help ensure that manufactured goods are shipped in time for a particular holiday.
[0037] Perhaps more importantly, even in scenarios where a sufficient number of users / operators can participate in real-time discussions to address such complex and multifaceted issues, they may bring in data from heterogeneous systems that are likely unlinked, uncoordinated, and possibly not updated in real-time or near-real-time, and that have not yet been addressed by business process analysis to support decision-making based on numerous inputs. In other words, such a discussion would require 30 operators, each with their own unique perspective and data from heterogeneous systems (some of which may not even be within the enterprise firewall), each wanting to participate in a real-time discussion about the problems currently existing and potential solutions to address them. This specification describes systems and methods for operating, managing, and automating business processes configured to address these and other operational challenges in modern enterprises.
[0038] Referring to Figure 3, an enterprise configuration 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 allow users (8) to utilize SaaS configurations (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)). Such systems typically utilize interconnected (100) SaaS data systems (40), such as databases, which are specially configured to facilitate the operation of the SaaS configurations (38) by retrieving specific data from an interconnected data cloud configuration (34), such as through conventional system integration as described above, by referencing interconnected systems (16, 18, 20). Similar to the system configuration shown in Figure 2, even if some enterprise data is located 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), and in such cases, the enterprise suffers various drawbacks in terms of efficiency, complexity, cost, and risk management.
[0039] Service management cloud system (data-driven workflow platform) This 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 through no-code applications. The service management cloud system may be natively integrable into any data cloud and may enable configurable applications for workflows or processes without requiring 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 these terms are used interchangeably throughout this specification.
[0040] Figures 4 to 7 illustrate various configurations in which the service management cloud system (44) may be configured to have direct interconnectivity (104, 106) between users (8) and data cloud configurations (34). The service management cloud system (44) may be specifically configured to operate without requiring large-scale data migrations from the data cloud configurations (34) to other systems, while providing visibility and utility to users (8) through the service management cloud (44) to manage business activities and processes in an efficient and scalable manner, as will be described in more detail below. For example, as will be described in more detail below with reference to Figure 9, the service management cloud system (44) may be specifically configured to 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 located in the service management cloud system (44), as if it were located locally in the service management cloud system (44), not only providing efficient and globally controllable access to various interconnected systems and data using legally granted permissions, but also making the data available to the service management cloud system (44). In other words, for a given session, the service management cloud system (44) and interconnected resources (34, 36) may be configured so that the data in question is "functionally native" to the session of the service management cloud system (44). This state provides significant additional opportunities for enterprises to leverage data, while ensuring that the data continues to be updated in real time or near real time, and remains fully, or at least primarily, on the data cloud (34).
[0041] Referring to Figure 4, the enterprise data configuration is shown, where conventional connected business systems (16, 18, 20) as shown in Figure 2 remain in place (i.e., within the data cloud), and through sessions (10, 12, 14) with such systems (16, 18, 20) and their connected data (28, 30, 32, 34), one or more designated users (2, 4, 6) support conventional operations, and another service management cloud system (44) is configured to provide direct access to the interconnected (106) data cloud configuration (34) and the users of the service management cloud system (44) The user (8) can not only examine the information contained in the data cloud configuration (34) in the form of query responses, reports, and other view formats without migrating data from the data cloud configuration (34) to the user (8), but can also create, operate, and manage business processes by leveraging the interconnected combination of resources of the service management cloud system (44), the data cloud configuration (34), and associated scalable computing configurations (36) without migrating data from the data cloud configuration (34) to the user (8), as will be explained in more detail below, including with reference to Figure 9.
[0042] Figure 5 shows a simplified example where the integrated, traditional enterprise system (e.g., 16, 18, and 20 in Figure 4) is not present. Such a configuration may occur in a paradigm where such a traditional configuration has been migrated to a service management (44) and data cloud (34) configuration, or where traditional functionality has been omitted by the functionality available in the service management (44) and data cloud (34) configuration.
[0043] Figure 6 shows an embodiment in which three separate data cloud configurations (34, 52, 54) are interconnected (106, 110, 112) with 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 configurations demonstrate that, as will be further discussed with reference to Figure 9, a single user (8) can use a single instance of the service management cloud (44) to inspect and control data from various heterogeneous interconnected systems and perform computing operations, without relying to some extent on the data cloud configurations (34, 52, 54) to pull data from such systems to 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 an appropriate adapter is built instead, changes in the Data Manipulation Language ("DML") to tables, directory tables, external tables, or underlying tables within 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 instantiation of Snowflake data cloud configurations. Such streaming configurations may be used to provide a service management cloud (44) with access to data within one or more data cloud configurations (34, 52, 54), along with access to compute operations via one or more associated interconnected (96, 114, 116) scalable compute configurations (36, 48, 50).
[0044] Referring to Figure 7, one or more interconnected (120, 122, 124, 126, 128, 130) adapter (58, 60, 62) modules may be configured to support specific utility of the target data cloud configuration (34, 52, 54) by the service management cloud (44), for example, to support functionality related to making a scalable computing configuration (36, 48, 50) available to as many relevant compute resources as possible. The adapters may enable data hosted in the data cloud (e.g., Snowflake) to appear as if it were native within the service management cloud platform. For example, during the configuration and 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 the data in the data cloud or making any modifications to the data. Details of adapters, data type matching, assignments, and data mapping (connection settings to data sources) are described later in this specification.
[0045] As mentioned 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 urgent business challenges that may involve logistics, the enterprise may need to involve personnel and information from external logistics service providers. Such involvement may traditionally require email, teleconferencing, telephone, and many people. The main advantage of the service management cloud (44) configuration, which is the subject of this discussion, is the enhanced ability to involve people in collaborative processes at a specific controlled level of access, whether or not they are within the scope of a particular organization, department, or generalized security.
[0046] A service management cloud platform can enable process sharing. In addition to securely sharing data within the data cloud, participants or different entities involved in a workflow can share processes. For example, a supply chain team can work directly with partners on the same data within the same workflow via the platform herein. The platform can provide interfaces for viewing, accessing, and managing process data such as tasks, assignments, and reminders, all of which are protected within the data cloud. Referring to the configuration in Figure 8 (132), the service management cloud (44) can be configured to grant pre-established or in-app defined (134) login permissions (136) that can 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) can be configured to enable appropriate connectivity and access to information using the data cloud (34) and associated computing resources (e.g., 36 in Figure 4).
[0047] Furthermore, precise access and tracking by records, applications, organizations, roles, etc., can track and audit access to each specific aspect of enterprise data and systems (140). For example, reports, user interface dashboards, or notifications can be configured to allow administrators of a service management cloud (44) configuration to understand who has access to what across the entire system, conveniently updated in real time or near real time. Further aspects of access management, control, and collaboration are illustrated in Figures 13–15. Referring to Figure 13, a hierarchical configuration is shown (186), which can be used to assist administrators of a service management cloud (44) configuration in providing very specific access to aspects of the system, such as based on individual records (194), applications (192), organizations (190), or global (188), subject to appropriate restrictions, as described above. Thus, referring to Figure 14, for example, such a configuration (202) facilitates collaboration between one or more stakeholders, both within and outside a given organization. It is illustrated that a user ("John Smith" 204) has an internal role (212) within a given company organization that grants appropriate access (214) to the company's service management cloud (44). Using the access configurability described with reference to Figure 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) in that external partner organization or based on application-specific criteria (208). Figure 14 also shows that John Smith (204) may have limited access to a single record (210) within a third organization's service management cloud (44). Thus, John Smith (204) can collaborate conveniently and efficiently in real-time or near-real-time with people, processes, and data from three or more organizations via the cloud using the target configuration of the service management cloud, without having to log in and log out to multiple systems.
[0048] Figure 15 illustrates how such a service management cloud (44) configuration (216) allows users like John Smith (element 204 in Figure 6B) to easily switch and collaborate across organizations. In other words, "bringing someone from another organization to help with this urgent / specific problem" becomes highly efficient, secure, controlled, and can be automated in many ways, as will be further discussed below. Furthermore, the service management cloud (44) can be configured platform-independently so that it is accessible and available from any web interface, thereby enabling the right user to manage any platform from anywhere, supported by the superior computing power of a secure data center, such as a scalable computing configuration (36) operably coupled (96) to a data cloud (34) in the embodiment of Figure 4.
[0049] Referring to Figure 9, a robust, precise, and convenient paradigm for managing access allows operators not only to visualize data that is updated in real time or near real time, but also to leverage the data in new ways in many types of business processes with varying levels of automation. As shown in Figure 9, the data becomes functionally native for further utility when subject to appropriate access restrictions. As mentioned 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 data that is constantly updated in real time or near real time, with latency and access levels as if the data resided in a local computing operation, regardless of the fact that the data actually resides on a data cloud (34) and is supported by important scalable computing configurations (such as element 36 in Figure 4). The updated data is efficiently available and, subject to appropriate permissions, can be used for various in-session operations (146), such as creating reports or notifications, various types of calculations, audits, searches, analyses, sequential and / or logical uses, process automation, etc. (150). Furthermore, with appropriate permissions, the data may be written back so that any changes or new data are stored in the data cloud and can be used to update other interconnected systems and their databases (150).
[0050] Referring to Figure 10, an enlarged diagram of the service management cloud (44) configuration (152) is shown, and given functionally native access to the data, many operations can be efficiently performed using the service management cloud (44) again via web services in a platform-independent manner. For example, cloud applications ("apps") may be created to perform various operations repeatedly or once, such as functionally "displaying all current vendors in Japan" (154), "determining the number of assemblies in the finished goods inventory of factory #522" (156), "creating a report featuring a superset of SKUs expected to be received in December" (158), "returning the total monthly cost of goods sold from production line #12" (160), and "displaying all recent orders since January" (162).
[0051] With regard to the use of functionally native data 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) (for example, 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 data cloud (for example, element 34 in Figure 4, which may be desirable to allow the user to configure a particular session within the service management cloud (44) to prioritize local data closest to the user), and the location of the user's client device relative to a scalable computing configuration (for example, element 36 in Figure 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 the user in collaboration and other business operations.
[0052] Referring to Figure 11, the session configuration (164) of the service management cloud (44) is shown, and functionally native data (144) can be used for the automation of advanced business processes. For example, the service management cloud (44) can be configured to functionally and automatically perform processes that utilize available data, such as: "If any SKU contains metadata 'hazardous', flag the report and send the report to the regulatory department" (166); "If a shipment is delayed by more than 20 days in December, execute the corrective / exchange logic, notify the controller and legal departments, and email the corrective / exchange conditions to the legal department" (168); "If the purchase is made in China and the SKU is hardware, notify Chinese customs of the shipment details" (170); "If an authorized person in accounting has not signed the evaluation number, send the shipment details to accounting" (172); and "On the 1st 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 Figure 12, the session configuration (176) of the service management cloud (44) is shown, and real-time or near real-time access (138) to functionally native data (144) may be used for writeback purposes (150). For example, the service management cloud (44) may be configured to functionally write back to a data cloud (such as element 34 in Figure 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" "Several columns look identical" "Audit required" (178) "Update shipment ETA from January 1 to January 5" (180) "Correct data in a specific row / column of this particular table" "Replace "200, 100.55" with "200, 100.55"" (182) "Increase purchase quantity from 1500 to 2500" (184). Such writebacks can mean significant changes to operations, and the ability to efficiently and securely navigate through a single interface and instantly reflect data 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 run within the data cloud, source data may be updated, modified, and / or new data added to the data cloud (e.g., when an action is performed in an automated configuration that requests a data update). The service management cloud may provide alternative functionality to directly call APIs to cloud services (e.g., Salesforce) to perform actions (e.g., add a new data record to a new column or table in the data cloud) or update source data. The platform may perform writebacks to cloud services (e.g., Salesforce), direct writebacks to source systems (e.g., ERP, CRM, CMS, etc.), or a combination of both. In some cases, the platform may allow users to configure writeback preferences or permissions.For example, a user might enable writeback for both the cloud service and the connected source system. Alternatively, a user might enable writeback only for the cloud service.
[0054] Referring to Figure 16, as described above, making additional data available on a feature-native basis with platform-independent, secure, and efficiently managed access (138) can be achieved using the service management cloud (44) as follows (220): 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 name, handle, and / or description. 4. Map fields by matching table fields in the data cloud to record fields in the element. Referring to Figure 17, such steps are shown in the view of the session user interface of the service management cloud (44) (setting credentials 222, connecting to a table 224, associating element details 226, 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 Figure 18, environmental, social, and governance ("ESG") scoring and monitoring have become important priorities for many business organizations. Data can be available from many sources, in many forms, with varying levels of latency, certainty, and other critical factors, resulting in various complexities within such business organizations. Figure 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 located in a predetermined format in a table that can be accessed via the service management cloud (44), subject to appropriate permissions. To facilitate the efficient and automated use of relatively standardized and predictable data from various partners, an existing application can be created and configured to automatically generate (236) predetermined records or reports (232) based on connectivity (234) with the ESG data table. Furthermore, the service management cloud (44) can be configured to automatically flag vendors or partners whose ESG scores may fall below certain predetermined or customizable thresholds, and to automatically deliver such information via written reports sent by email or electronic notifications to the service management cloud (44) dashboard interface, smartphones, etc. (238).
[0057] Referring to Figure 19, an embodiment related to ESG analysis is shown in which the available data may not be homogeneous or standardized, but rather 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), the Service Management Cloud (44) operator may create a custom app that operates within the Service Management Cloud (44) using a highly simplified (Service Management Cloud's "no-code" and / or "drag-and-drop" configuration interface). Details of the user interface and system for workflow creation are described later herein. Referring again to Figure 19, users can use the app creation user interface (such as drag / drop functionality) to add sections (stages, summaries, critical details, solution code, etc.), add fields within each section, identify "required" fields as needed (fields such as date, value (such as quantity or cost), name (such as those related to the owner), etc.), and add interactions (such as conversations (such as multi-party chats), approvals, tasks, attachments, update components, etc.) (244). An app created to acquire and process data can create workflows and process automation configurations to automate ESG analysis and audit processes (perform quality assurance analysis of updated data, calculate average E, S, and G scores for each vendor for which data is available, send notifications to the ESG department (connected devices, data-driven workflow platform {such as via in-app notification centers or dashboards}, text messages, etc.), create a second notification related to any vendor whose E, S, or G score is below a given threshold, and send the second notification to the ESG department and risk management department (246).
[0058] Referring to Figure 20, the configuration of the target service management cloud (44) can be used to automate challenges in supply chain-related business processes. Certain buyers (such as large Fortune 500 enterprises) may require that all suppliers / partners precisely meet their delivery needs (i.e., orders are on time, without overages, shortages, or damage), and if not, they may be subject to a provisional penalty, which is payable and cannot be challenged unless challenged within a relatively short period. With many stakeholders involved from both inside and outside the specific supplier / partner organization (e.g., partner's manufacturing, shipping, and logistics personnel, vendor's logistics personnel, potential information available in the data cloud through external vendors such as PROJECT44 that can geo-track shipping containers, etc.), properly flagging and supporting potential penalty disputes can be extremely difficult (and in fact, as a result, many penalty disputes may not be challenged in a timely manner, resulting in significant operational costs for various stakeholders). In some embodiments, a custom app can be created to capture proposed buyer deductions or penalties (262), original order information (264), relevant shipping information (266), information from partners (268), final shipment / arrival and other milestone information (270), and automatically (272), efficiently create an information package to be used to support penalty disputes (274) with buyers, and automatically submit it 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 challenges, and with the vast amount of data that is continuously updated and aggregated using various instances of the service management cloud (44), neural network configurations can be created to help users and organizations address various business challenges based on correlations, labeled data, heuristics and algorithms, and reinforcement learning models based on business objectives. Furthermore, the service management cloud (44) system in question may be configured to automatically identify gaps in various datasets, tables, and / or documents and attempt to automatically fill such gaps. For example, in one embodiment, if an app or process is configured to use specific information from a “purchase order” document, such as in an automated business process configuration, and a given purchase order has all the necessary information but is missing the actual mailing address of a supplier, the system may be configured to identify the supplier based on a unique SKU or other field in the data and provide the actual mailing address of the supplier from other data linked to the supplier.
[0060] Data-driven automation As described above, the data-driven workflow platform described herein can 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 when data changes. In some cases, automation can be created by defining rules for automating actions triggered by trigger events of selected data objects. In some cases, the rules may include a definition of the trigger event, a definition of the conditions for performing the action, and a definition of the action itself.
[0061] Figures 21-23 show examples of GUIs for creating and / or editing automations. As shown in Figure 21, GUI 2100 may allow a user to create, modify, or edit an automation having multiple configurable fields. For example, the automation GUI 2100 may provide at least three fields, including trigger 2101, condition 2103, and action 2105, enabling a convenient configuration of a trigger-condition-action type automation.
[0062] In some embodiments, the automation may be data-driven. For example, each field (e.g., trigger 2101, condition 2103, and action 2105) may be configurable with an auto-populated value or data field. The auto-populated value or data field may be dynamically determined based on the connected data object 2107. For example, when configuring the automation object 2107, a dropdown menu 2201 with dynamically populated options (e.g., attachment added, time-based, approval updated) may be provided, as shown in Figure 22. Users may be allowed to assign triggers based on record creation, status updates, data changes, quantity changes, value changes, or various other types of trigger events. Users may select from an option list 2201 to configure trigger events. In some cases, the options provided in the dropdown menu 2201 may change dynamically depending on the connected data object. For example, the trigger options may indicate a data field (e.g., a column) whose change triggers an action. In another example, the trigger may include an action / operation (e.g., creation of a new record) performed in the connected cloud database.
[0063] In some cases, users may be allowed to define trigger conditions. These conditions can define specific values or states for triggering. For example, conditions could be a new stage, days until or past the deadline, an amount exceeding or falling below a threshold, etc. As shown in Figure 22, the GUI may allow users to set or define conditions via the conditions panel 2203. The conditions panel 2203 may provide auto-populated options to data fields such as the filter 2205. Users may select the column to apply the filter to from a list of options provided in the dropdown menu 2205. In some cases, the list of options may be automatically populated based on the connected data object. Users may be allowed to further define filter conditions (e.g., no value, greater than, equal to, less than, within range, greater than or equal to, less than or equal to, etc.) via the conditions panel 2203. For example, a user may define a threshold 2207 and a relationship (e.g., equal to) to apply the filter. In some cases, users can create compound conditions (e.g., condition groups) via operators (e.g., AND, OR) 2208 and combine multiple conditions (e.g., filters) 2209. GUI 2203 may also allow users to create compound conditions by adding conditions or condition groups 2211, for example. Condition groups can be added via any appropriate operator (e.g., AND). Trigger events and conditions can be translated into a query language (e.g., Structured Query Language (SQL)) compatible with database technologies supported by the connected data cloud. In some cases, triggers and trigger conditions may be implemented via the platform's data mining capabilities. For example, data mining capabilities can automatically detect changes in data defined by trigger events and conditions. Details of data mining capabilities are described below.
[0064] Figure 23 shows an example GUI for a user to create an action. Actions can relate to assigning an owner, escalating an alert, updating a selected data field, placing an order, and various other things. As shown in the example, a user can select an action from a dropdown menu 2302 that presents a list of action options. Action options can be determined dynamically based on the connected object. As shown in the example, actions can 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, etc. In some cases, an action may include directly adding or modifying data in the connected data cloud. For example, performing an action may involve directly calling an API on 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 updating a source data object (e.g., updating field 2303). Such automated writeback functionality, as described elsewhere in this specification, can be beneficial in reducing latency and improving efficiency without requiring transformations or data cleansing as required in 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 upon connected data cloud monitoring services (e.g., available API calls). Alternatively, an auto-populated list of options for defining actions and / or triggers may be provided dynamically based on selected data objects. The auto-populated list of 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 may be mapped to different types of data objects. In some cases, the list of action options may be provided dynamically based on historical actions related to users, organizations, industries, etc. For example, the action menu for a first user / industry may differ from the action menu presented to a second user / industry based on historical data related to that user / industry. In some cases, action options may be provided dynamically 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] Figures 54 and 55 show examples of the GUI for an automation flow. As described above, an automation flow is a no-code automation platform that provides access to system functions and control flows on data cloud data without requiring programming expertise. The system herein may provide variables available for each action within the automation flow. Users may identify variables outside of the automation (e.g., variables from previous steps in the automation process) and use functions presented via the GUI, such as “link” buttons and / or operators (e.g., the $ operator), to use the variables in one or more actions. Variables may come from original and / or intermediate data generated by any step in the automation process.
[0067] Figure 54 shows an example GUI that allows the use of operators (e.g., operator $) 5401 to create custom payloads in 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 dropdown menu 5403 may display options narrowed down to only valid options (data fields) to beneficially ensure that the automation can run successfully. As shown in the example, the user may select a reference value for a trigger record variable from the dropdown menu.
[0068] GUIs can also enable users to control the automation flow with advanced logic without requiring coding or programming skills. As shown in Figure 55, a GUI can enable users to access data in the data cloud to set or modify triggers 5501 to start the automation. The system can provide one or more advanced logic in a visual way. 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 can be provided as loops and branches on the GUI for users to control the automation flow. Users can use advanced logic of automation variables to control the automation flow by selecting dynamic variables, logical operators such as equal to or less / greater than, and another dynamic variable to compare with. Figure 55 shows an example of a GUI for controlling the automation flow using visual features such as loops 5503 and branches 5505. As shown in the exemplary flow, loop action 5503 in the automation can control the flow to search for all valid records and execute one subworkflow 5507 for each record found in the record search. Subsequently, the automated flow may use branch action 5505 to perform if statement logic checks to execute 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 scopes from the user. Intuitive functionality is provided, and related complex programming concepts can be automatically determined by the system. For example, the user can input such as browsing a data list and / or executing a subprocess for each data item in the list, and the types and variable scopes 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 described herein may provide smart automations or automated recommendations that leverage artificial intelligence (AI) technology. For example, an AI model may be trained using past actions, conditions, trigger data, and connected data objects. 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 allow for flexible rules for joining data elements. For example, a user may understand that certain elements, such as master data and transactional data, are related. A shipment is related to an arrival, an SKU is related to a Product Ownership (PO), and a computer is related to a vendor. If something happens upstream (e.g., an automation is triggered upstream), such upstream data can be used to identify the impact downstream, thus avoiding delays (e.g., days or weeks) in identifying the impact.
[0072] In some embodiments, relationships can be created by joining data models or elements of data models within the platform. As described above, a data-driven workflow platform may include adapters configured to connect to data objects in a cloud repository. The adapters may allow users to map fields between the platform's storage data model and table fields in the data cloud. The platform's storage data model may contain different types of datasets. In some cases, different types of data may include, for example, “elements,” “tasks,” and “applications.” The adapters may allow data hosted in a data cloud (e.g., Snowflake) to be displayed as native within the platform. For example, as shown in Figure 17, the adapter may provide a GUI that allows users 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 in data hosted in the data cloud. For example, when creating an ESG application, the adapter may connect to tables stored in the data cloud, and the platform may automatically identify elements such as suppliers, products, economy, environment, labor, and society related to the ESG application and display a GUI with autofill fields where the user can assign data types to the extracted elements. For example, a user might assign element 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 be able to apply modifications or changes to the data within the data cloud.
[0073] Relationships can be created between storage data models within the platform. The storage data models provided by the platform can dynamically map relationships within cloud data. For example, a relationship can be created between data of type “element” named “products,” which contains a complete list of all products that a customer manufactures or sells, and data of type “transaction” named “inventory position,” which shows how much of each product the customer owns.
[0074] In some cases, users may manually create relationships through a GUI provided by the platform. Figures 24 and 25 show examples of GUIs for creating or adding relationships. As shown in Figure 24, GUI 2400 may provide fields for the user to create a relationship (e.g., equals) by selecting one or more data fields 2403 of elements in a first data model or first data model 2401 and one or more data fields 2405 of elements in a second data model or second data model 2407. Options for field names may be automatically populated in the dropdown menu 2409 of the selected object. As shown in Figure 25, relationships 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. When object 2501 is selected, the relevant data fields 2503 may be provided in a dropdown menu for selection.
[0075] In some cases, relationships may be created automatically without user intervention. For example, a platform may analyze storage data models within the platform and automatically recommend creating relationships. For instance, a 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 recommendations to the user to set up recommended relationships. The user can choose to accept, reject, or modify the recommended relationships. In some cases, the platform may develop AI models to automatically identify relationships. Alternatively, relationships may be identified 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 can view relationships in real time, dynamically modify them at any time, and make decisions based on the multi-layered structure.
[0076] Creating No-Code Applications As mentioned above, a data-driven workflow platform provides a no-code configuration interface for creating cloud applications. This platform can enable users to create, customize, and / or configure cloud applications through a no-code user interface with built-in features such as configurable and automated workflows and dynamic relationship discovery and creation. In some cases, the platform may offer pre-built applications that users can further customize via a drag-and-drop GUI. For example, the platform may provide initial "pre-built" automations 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, including calculations, approvals, tasks, analyses, and automation.
[0078] The platform can automatically select from an AppSuite library, including logistics, merchandising, inventory management, risk management, procurement, finance, human resources, and business development, based on connected data objects. For example, based on insights extracted from cloud data (e.g., data mining), the platform can select an initial application / workflow from the AppSuite library.
[0079] In some cases, the platform may provide a GUI for users to configure or edit pre-built workflows. This makes it beneficial to create no-code cloud applications with pre-built automation capabilities. Figure 26 shows an example of a GUI 3200 for creating a workflow. The initial workflow may be created with pre-built automation 3203 in one or more locations. Users can modify the initial workflow using drag-and-drop functionality. For example, a user can add objects 3201 such as tasks, records, elements, transactions, approvals, and fields to the workflow at any desired location by dragging components from the "Objects" panel 3205 and dropping them into the workflow. Users can add further actions to selected objects by dragging elements (e.g., data mining, automation, calculation, relationship, assigned user, API, etc.) from the Actions panel 3207 to the objects in the workflow. In some cases, a user can add objects and / or actions by clicking a graphical element 3203 in the workflow (e.g., a plus icon or object icon for adding objects) to launch a menu for selecting the objects and / or actions to add. In some cases, users may choose to delete or modify actions (e.g., automation) or objects provided in the initial workflow by interacting with graphical elements corresponding to those actions or objects.
[0080] Figures 27-30 show another example of a GUI for creating a workflow. As shown in Figure 27, the GUI may display a workflow having one or more stages 2710, 2720, 2730, 2740, 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 Figure 27, the initial stage 2710 may be 100% automated. The initial stage may include multiple actions 2719-1, 2719-2, 2719-3, 2719-4. In some cases, actions may include logic 2711, 2713, 2715, 2717 and objects 2712, 2714, 2716, 2718. Logic and objects may define "who" (logic) and "what" (object) does. Logic includes, for example, automation, request approval, user input, calculation, relationships, and data mining. Objects are, for example, records, fields, tables, summaries, and various other objects / elements provided by the system. In some cases, the user may modify the workflow by dragging elements from a panel (left panel) and dropping them into the workflow. The panel may provide, for example, shapes 2761 (for example, a square shape may be used to represent an action, and a diamond shape may be used to represent a decision), 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] Figure 28 shows an example GUI displaying the workflow for the second stage 2720. Similarly, the workflow for the second stage may include one or more actions 2721, 2722, each action may include logic 2723 and objects 2724. In some cases, an initial workflow for a stage may be recommended by the system and displayed in the GUI, after which the user may choose to approve, modify, or reject any component of the workflow. In some cases, the user may be able to zoom in / zoom out from any stage to view the entire process 2801. The GUI may also display a preview 2803 of the next stage. Figure 29 shows an example GUI displaying the workflow for the third stage 2730. In this example, the workflow may be 50% automated, as one action involves a human analyst and the other involves automation. Figure 30 shows an example GUI displaying the workflow for the fourth stage 2740.
[0082] Figure 31 shows an example GUI that displays the created workflow along with its tracked progress. As shown in Figures 31 and 32, once the workflow is deployed and running, details such as data analysis, calculations, actions, and progress are displayed to the user on the GUI.
[0083] Usage example As described above, the platform can automatically select an initial workflow from a library of applications, including logistics, merchandising, inventory management, risk management, procurement, finance, human resources, and business development, based on connected data objects. For example, based on insights extracted from cloud data (e.g., data mining), the platform can select an initial application / workflow from the library of applications. An application suite can contain multiple workflows. Figures 33-38 show examples of logistics application suites. As these examples show, a logistics application suite can contain multiple workflows. A workflow can 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 variance gaps. Data connected to the workflow (e.g., lanes, shipments, partners, sites) can be mined to identify when actual lead times are within defined acceptable levels and when actions are automated to adjust lead times. As shown in Figure 35, a temperature alert workflow may be implemented to reduce the amount of expired products by proactively managing temperature conditions during transit. Data is mined to identify temperature issues with goods in transit. Actions are automated between the logistics team and the carrier to address alerts. A customer issue workflow, as shown in Figure 36, may 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 on the port. Actions between the logistics department and the broker are automated. A delayed shipment workflow, as shown in Figure 37, may be created to improve OTIF by proactively identifying delayed shipments. Data is mined to identify when the estimated arrival time of a shipment is later than the promised delivery date. Actions are automated to identify, expedite, and mitigate delays by identifying alternative sources of supply.The expedited request workflow, as shown in Figure 38, is designed to provide complete transparency and accountability regarding who approved the costs of the expedited request and is centrally managed on a single platform. 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 along with AI-based recommendations. For example, the platform may develop an AI model to generate predictions about when to initiate an action (e.g., its position in the workflow), what actions 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 this data may be used as training data to develop 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 appropriate artificial intelligence techniques to generate workflows, identify automations, dynamically associate those identifications, transform data models (e.g., normalize original data in the cloud to fit storage data models within the platform), and / or perform other functions as described elsewhere in this specification. 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 analyses as described above, and performing various other functions as described elsewhere in this specification. Machine learning algorithms may include, for example, neural networks. Examples of neural networks include deep neural networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs). Machine learning algorithms may include one or more of the following: support vector machines (SVMs), naive Bayes classification, linear regression models, quantile regression models, logistic regression models, random forests, isolation forest (iForest) models, neural networks, CNNs, RNNs, gradient boost classifiers or suppressors, or other supervised or unsupervised machine learning algorithms (e.g., generative adversarial networks (GANs), Cycle-GAN, etc.). In some cases, models trained by machine learning algorithms may be pre-trained and implemented on a provided system, and pre-trained models may undergo continuous training or refinement with custom data, which may include continuous tuning of the predictive model or components of the predictive model (e.g., classifiers) to adapt to changes over time in the implementation environment or the application in which they are used (e.g., changes in user data, insight data, model performance, third-party data, etc.).
[0086] Data mining Data-driven workflows can provide data mining capabilities that enable the extraction of insights from data within a data cloud. In some cases, the platform's data mining capabilities can be used to trigger insight generation and / or automatically identify data events (e.g., data changes, data additions / deletions, data anomalies, or other data analysis provided by the cloud provider) directly from data within the data cloud. The platform may provide a GUI for users to conveniently configure or set up data mining for selected data. Data mining capabilities can seamlessly integrate with other features, such as automation. For example, data mining configurations or data mining results can be used as triggers and conditions for automation to initiate or trigger actions.
[0087] Data mining capabilities allow users to create data mining to automatically initiate workflows. In some cases, GUI capabilities allow users to locate data within the data cloud (e.g., users are not always aware of their own data in the data cloud). GUI capabilities also allow users to configure data flows to combine, cleanse, filter, and expand data. Figures 58 and 59 show examples of GUIs (e.g., CloudLink Explorer) that enable users to locate data within the data cloud (e.g., Snowflake). As described above, the systems herein can access the data schemas of all customer data within the connected data lake / cloud. The data schema (logic data structure) or table shape (e.g., multidimensional data model, dimension table, etc.) can be based on the configuration of the data cloud. As shown in the example, CloudLink Explorer makes API calls to data providers (e.g., Snowflake, Azure, etc.) to retrieve metadata about databases, schemas, and data tables within the data lake. In some embodiments, the platform may automatically provide initial workflows based on the 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 the AppSuite library, such as the Marketplace described below, 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 AppSuite library. 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 in this document.
[0088] Upon receiving metadata, the system may convert it into a searchable and viewable graphical view via a GUI. As shown in Figure 58, a graphical view 5803, 5805 of a data schema / table associated with a user (e.g., a data lake associated with a user account) may be displayed in the GUI. The user may visualize the data schema / table 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 the data 5801. As shown in Figure 59, a preview of the data schema 5901 may be displayed in the GUI.
[0089] In some embodiments, the GUI provided by the system may allow the user to set logic rules or run models trained with machine learning algorithms on the data to find the data. For example, the user may set logic rules to find the data to start a workflow. Figure 60 shows an example GUI for the user to set logic rules (e.g., filter parameters or logical operators within records) to find the data. Figure 61 shows an example GUI for the user to set machine learning-based anomaly detection and reporting rules. For example, the user may set rules to prepare the data, select numerical columns, select data / time columns, select window intervals, review the results, and schedule data mining processes via the GUI.
[0090] In some embodiments, the system may be able to save the state of the data it finds, so that the user is not 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, if the system does not track that a data column has already triggered a workflow, a process that runs every hour may trigger the same workflow multiple times. This feature can reduce unnecessary notifications to the user, as the user may not be notified multiple times when data is found until the data no longer passes a logic check. The systems herein may use the primary key of a data table as 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 a user to select a primary column to use as a unique identifier for data. 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 setting up 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 set the execution schedule for the data mining process (for example, the schedule for how often the data mining process runs and the conditions under which it runs).
[0092] Figures 39 to 43 show examples of GUIs for configuring or creating data mining. In some cases, the user may configure or set the data to be mined (e.g., a table) and one or more parameters for performing data mining on the data. Figures 39 to 42 show examples of GUI 3900 for creating objects (e.g., a table) for data mining. As shown in Figure 39, the user may drag an element 3903 from the object pane and drop a selected element (e.g., a lane 3901). For example, the user may click the element icon in the left pane and select an object (e.g., a lane) from the drop-down menu. The table 3905 of the selected element is automatically populated in the GUI. The user may choose to filter the selected object 3901, for example by clicking the "filter" icon 3907, after which a filter pane 3909 may pop up with several configurable fields for the user to set the filter. For example, the user may set values, filter combinations, filter states, etc., to set the filter applied to object 3901. When a filter is applied, table 3905 is automatically updated, and information about filter 4001 may also be displayed along with the objects, as shown in Figure 40.
[0093] The user may be prompted to drag and drop another object (e.g., shipment 4003). Similarly, the user may be prompted to set a filter to apply to a second object 4003 4005. Once the second object and second filter are set, the user may be prompted to set or view a relationship between the two objects. For example, clicking the relationship icon 4007 may cause the relationship pane to pop up, allowing the user to define a relationship between the two objects as described elsewhere in this specification. Once the relationship and / or filter are configured, the table may be automatically updated.
[0094] As shown in Figure 41, the GUI may provide the user with options for aggregating column 4101 in the output table. For example, the user may choose to select columns for aggregation and / or define filters, as shown in Figure 42. GUI 4201 may allow the user to select columns to include in the output table and define how the selected columns should be aggregated. The user may also be allowed to create a new column 4203 in the output table via the GUI.
[0095] The GUI may further allow the user to configure the actions performed on the created table. For example, as shown in Figure 41, the GUI may display a message 4103 prompting the user to select an action to apply to the table. The user may then configure the automation action by clicking the automation icon 4105 and selecting from the action options in the drop-down menu (e.g., create a record, send a notification).
[0096] Once a table is created and saved (for example, the 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 Figure 43 may prompt the user to set one or more parameters for scheduling how often and / or for how long data mining is performed and / or for filtering the table 4301. As shown in the example, clicking the schedule button 4303 may display options 4307 for setting how often and / or for how long data mining is performed. The user may select from frequency options such as hourly, daily, or weekly, and / or set a start time via the GUI. The user may also be allowed to set filters to apply to data mining via the GUI 4309 by clicking the filter button 4305.
[0097] Cloud-native architecture In one embodiment, the disclosure provides a system for providing a data-driven workflow platform. The system comprises a first module configured to operably combine the data-driven workflow platform with one or more data clouds; a second module configured to map selected data objects to the data storage model of the data-driven workflow platform, wherein the selected data objects are stored in one or more data clouds; and a visualization module configured to display an interactive flow on a graphical user interface (GUI) 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 actions triggered by trigger events of the selected data objects.
[0098] In some embodiments, the first module is configured to translate instructions to perform an operation on at least one selected data object received via a GUI into a database operation executable in the data cloud configuration. The database operation is performed 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 performing the operation.
[0099] Figure 44 schematically illustrates the architecture of a data-driven workflow platform. This architecture can be a hierarchical architecture including a data structure and storage layer, a service / platform logic layer, and a visualization / API layer. The hierarchical 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 provider, etc.) and then stream the data and / or insights to the user 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 enterprise SaaS solutions. For example, the platform may cache intermediate results generated during workflow actions for a predetermined time (e.g., 15 seconds, 20 seconds, 30 seconds, etc.).
[0100] The platform can configure monitoring processes to be notified when data changes in source datasets within the data cloud, via cloud links connected to notification services in the platform logic layer and monitoring services in the data structure and storage layers. Monitoring functions can be used to trigger actions in automation functions within the platform. Query execution takes place at the service layer. For example, queries may be processed using "virtual warehouses," each of which is a massively parallel computing cluster consisting of multiple compute nodes from a cloud provider.
[0101] AI-based application detection In some embodiments, the platform may analyze available datasets and leverage artificial intelligence (AI) technology to recommend one or more predefined applications. This allows users to utilize the recommended applications with their own data.
[0102] Figure 45 schematically illustrates examples of AI-based application discovery capabilities according to several embodiments of this disclosure. System 4503 may have access to the data schema of all customer data in the connected data lake 4505. The data schema (logic data structure) or table shape (e.g., multidimensional data model, dimension table, 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 in this specification. For example, an adapter in system 4503 may enable data hosted in a data cloud (e.g., Snowflake) to appear as if it were native within the system. For example, during configuration or integration between the 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 the user's data table schema in data lake 4505. The request may be generated based on input received via GUI 4501, such as business process name, description, or other input information.
[0103] System 4503 may include a number of predefined applications organized or managed in an application library (e.g., an application marketplace) that platform users or customers can install within their organizations. For example, System 4503 may include a library of predefined application suites, such as logistics, merchandising, inventory management, risk management, procurement, finance, human resources, and business development, as described elsewhere in this specification.
[0104] Figures 56 and 57 show examples of GUIs for application marketplaces. In some cases, system 4503 can publish complex workflows to the marketplace, allowing users (e.g., customers) to deploy selected workflows from the marketplace to their own environments. As shown in Figure 56, workflows can be built and maintained (e.g., updated) by the system administrator. In some cases, the system administrator (e.g., a process expert) can build and update workflows and deploy the updated workflows to customers, who can then start using the workflows in-house without having to build the relevant data tables, automations, approval processes, or surveys.
[0105] Workflows can be organized by category (e.g., enterprise technology, supply chain, enterprise service management, etc.) for customers to select and deploy in their own environment. In some cases, customers / users may search for workflows by category and / or application (e.g., IT operations, vacation, HR, basic incidents, delivery, etc.). As shown in Figure 57, customers / users may view detailed information about their selected workflow or application (e.g., IT operations) via a GUI. For example, the GUI may display example uses for the IT operations application, typical variables that the application can track, and potential industry sectors for the application.
[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 schema of the data lake) required to run the applications. The system may train the LLM on the shape of the data tables in a customer's data lake. The LLM may be personalized or customized using user data. For 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 run them. For example, the LLM may be trained to identify one or more workflows from a library of predefined workflows based at least partially on the shape of the data tables associated with the user. The system may be instructed to look for data tables that have a similar shape and functionality to the predefined workflows. For 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 a predefined application that can work with the data in the data lake. For example, during the inference / prediction phase, the LLM could be deployed to take a data schema (e.g., the shape of the data tables) taken as input from the data lake associated with the user account and output the result of mapping the data tables. The LLM returns the data table mapping to the system, which is used to create the predefined application.
[0108] If a match is found in a predefined application, the LLM returns the data table mapping to the system, and the system 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 a business workflow that is possible outside of the predefined application.
[0109] As mentioned above, input to a trained LLM can include the form of a data table or schema (e.g., table fields, views, etc.). The following is an example of 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] The following is an example of the model's 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] Figures 46-48 show examples of GUIs for AI-based application discovery functionality. As shown in Figure 46, the user can provide input through the application discovery functionality within the GUI, such as by selecting a cloud link. The system can then automatically collect data schemas from the selected data lake and identify a list of available predefined workflows or business workflows that have the data necessary to run the application. Figure 47 shows an example of a predefined application identified by the system as a model output.
[0112] As shown in Figure 48, users can choose from several predefined applications to create their own. For example, to create an app, a user may be prompted to enter data in fields such as "Name," "Namespace," "Handle," "Description," and "Category."
[0113] AI generation workflow In some embodiments, workflows may be generated by an AI model. For example, in an AI-based application discovery function, if the LLM cannot map customer data to a predefined application, the system may use AI to generate a business workflow. The AI workflow module herein may include a trained model that takes a description of a business process (e.g., provided by the customer via a GUI for creating business processes) as input and outputs a workflow. This model may be trained using machine learning algorithms as described elsewhere herein.
[0114] Figure 49 schematically illustrates examples of AI-generated workflow functionality according to several embodiments of this disclosure. System 4903 may receive inputs from GUI 4901, such as a business workflow name, description, or other input information. System 4903 may be the same as a data-driven workflow platform or service management cloud system as described elsewhere in this specification.
[0115] System 4903 can train an LLM to create workflows. In some cases, an LLM may be trained by i) the system instructing the LLM to assume the purpose for which it will create a business workflow, ii) instructing the LLM to break down a business process into one or more stages, iii) instructing the LLM to create one or more steps in each stage of the process, and iv) requiring the LLM to identify relevant data when tracking each step of the business process.
[0116] After the LLM has been trained 4905, system 4903 may provide the LLM with additional context from the user (received via GUI 4901) regarding the name of the business process, a description of the process, and how the business process is defined.
[0117] The LLM can be trained to output business workflow data. In some cases, the LLM's output may include a list of instructions that system 4903 uses to create business workflows on behalf of the customer.
[0118] AI-generated workflow functionality can sometimes automatically generate business processes for users / customers. For example, the system might: i) receive a command to create a new business workflow, ii) break down the business process into named stages, iii) create named steps in each stage, and iv) for each step, create the necessary data fields to track the business process, returning only a JSON object. The following is an example of the 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] Input to the trained LLM may be based on user input. For example, user input may include a business process name: <HR Onboarding>, a business process description: <Execute the employee onboarding process>, and additional business process context: <Include social security number, date of birth, and T-shirt size so that a commemorative item can be sent when they join the company>.
[0120] As mentioned above, the model's output may include instructions for the system to create a business workflow. The following is an example of a 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] Figures 50 to 53 show examples of GUIs for the AI generation workflow function. Figure 50 shows an example of input provided via the GUI. As shown in this example, the user may provide a description of the business process to initiate the generation of the business process. As shown in Figure 51, the system may automatically collect data related to the user and the business process, such as through the AI-based application detection function described above. As shown in Figure 52, the LLM may output one or more stages for the business process, for example, start, pre-onboarding, and onboarding. As shown in Figure 53, the LLM may output one or more steps or actions for each stage. When the GUI executes the instruction list output by the LLM, it may display graphical elements representing one or more stages and one or more steps for each stage.
[0122] In some embodiments, various functional 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 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 the user through one or more user interfaces or graphical user interfaces (GUIs), which may include, but are not limited to, web-based GUIs, client-side GUIs, or any other GUIs described above. For example, a user may access coding tasks via 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 or may not be a touchscreen. The display may be an 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) that is 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 terminology, the term “comprising” in the claims relating to this disclosure shall allow for the inclusion of any additional elements, regardless of whether a given number of elements are enumerated in the claims or whether the addition of a function can be considered to transform the nature of the elements defined in the claims. Unless otherwise specifically defined herein, all technical and scientific terms used herein shall be given meanings that are as broadly and generally understood as possible, while maintaining the validity of the claims.
[0124] Computing systems Referring to Figure 63, a block diagram is shown illustrating an exemplary machine including a computer system 6300 (e.g., a processing system or computing system) capable of executing an instruction set for causing a device to process or execute one or more embodiments and / or methodologies for static code scheduling of the present disclosure. The components in Figure 63 are merely examples and do not limit the scope or functionality of any hardware, software, embedded logic component, or combination of two or more such components that perform a particular embodiment.
[0125] The computer system 6300 may include one or more processors 6301, memory 6303, and storage 6308 that communicate with each other and with other components via the bus 6340. The bus 6340 may also connect a display 6332, one or more input devices 6333 (e.g., 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 via one or more interfaces or adapters. For example, various tangible storage media 6336 may interface with the bus 6340 via a storage media interface 6326. The computer system 6300 may have any suitable physical form, including, but is not limited to, one or more integrated circuits (ICs), printed circuit boards (PCBs), mobile handheld devices (such as mobile phones or PDAs), laptop or notebook computers, distributed computer systems, computing grids, or servers.
[0126] The computer system 6300 includes one or more processors 6301 (e.g., a central processing unit (CPU), a general-purpose graphics processing unit (GPGPU), or a quantum processing unit (QPU)) that perform functions. The processors 6301 optionally include cache memory units 6302 for temporarily and locally storing instructions, data, or computer addresses. The processors 6301 are configured to assist in the execution of computer-readable instructions. The computer system 6300 may provide the functionality of the components depicted in Figure 63 as a result of the processors 6301 executing non-transient 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 media may store software that performs a particular embodiment, and the processors 6301 may execute the software. Memory 6303 may read software from one or more other computer-readable media (such as mass storage devices 6335, 6336, etc.) or from one or more other sources via a suitable interface such as network interface 120. The software may cause processor 6301 to execute one or more processes or one or more steps of one or more processes described or illustrated herein. Executing such processes or steps may include defining data structures stored in memory 6303 and modifying the data structures as directed by the software.
[0127] Memory 6303 may include, but is not limited to, various components (e.g., machine-readable media), including 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. ROM 6305 may function to communicate data and instructions unidirectionally to processor(s) 6301, and RAM 6304 may function to communicate data and instructions bidirectionally to processor(s) 6301. ROM 6305 and RAM 6304 may include any suitable tangible computer-readable media described below. For example, a basic input / output system 6306 (BIOS) containing basic routines useful for transferring information between elements within the computer system 6300, such as during startup, may be stored in memory 6303.
[0128] The fixed storage 6308 is optionally connected bidirectionally to the processor(s) 6301 via the storage control unit 6307. The fixed storage 6308 provides additional data storage capacity and may include any suitable tangible computer-readable media described herein. The storage 6308 may be used to store the operating system 6309, executable files(s) 6310, data 6311, applications 6312 (application programs), etc. The storage 6308 may also include optical disc drives, solid-state memory devices (e.g., flash-based systems), or any combination of the above. The information in the storage 6308 may, where appropriate, be incorporated as virtual memory in memory 6303.
[0129] In one example, a storage device(s) 6335 may be detachably interfaced with a computer system 6300 via a storage device interface 6325 (for example, via an external port connector (not shown)). In particular, the storage device(s) 6335 and associated machine-readable media may provide non-volatile and / or volatile storage for machine-readable instructions, data structures, program modules, and / or other data for the computer system 6300. In one example, software may reside entirely or partially within the machine-readable media of the storage device(s) 6335. In another example, software may reside entirely or partially within a processor(s) 6301.
[0130] Bus 6340 connects a wide variety of subsystems. Here, a reference to a bus may, where appropriate, encompass one or more digital signal lines that perform a common function. Bus 6340 can be any of various types of bus structures, including but not limited to memory buses, memory controllers, peripheral buses, local buses, and any combination thereof, using any of the various bus architectures. Examples of such architectures include, but are not limited to, Industry Standard Architecture (ISA) buses, Extended ISA (EISA) buses, Microchannel Architecture (MCA) buses, Video Electronics Standards Association Local Bus (VLB), Peripheral Component Interconnect (PCI) buses, PCI-Express (PCI-X) buses, Accelerated Graphics Port (AGP) buses, Hypertransport (HTX) buses, Serial Advanced Technology Attachment (SATA) buses, and any combination thereof.
[0131] The computer system 6300 may also include an input device 6333. In one example, a user of the computer system 6300 may input commands and / or other information to the computer system 6300 via an input device 6333. Examples of input devices 6333 include, but are not limited to, alphanumeric input devices (e.g., keyboards), pointing devices (e.g., mice or touchpads), touchpads, touchscreens, multitouchscreens, joysticks, styluses, gamepads, voice input devices (e.g., microphones, voice response systems, etc.), optical scanners, video or still image capture devices (e.g., cameras), and any combination thereof. In some embodiments, the input device may be Kinect, Leap Motion, etc. Input device(s) 6333 may interface to bus 6340 via any of the various input interfaces 6323 (e.g., input interface 6323), including but not limited to serial, parallel, game port, USB, FIREWIRE®, THUNDERBOLT®, or any combination thereof.
[0132] In certain 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, and cloud computing systems. Communication with computer system 6300 may be transmitted via network interface 6320. For example, network interface 6320 may receive incoming communications (such as requests or responses from other devices) from network 6330 in the form of one or more packets (such as Internet Protocol (IP) packets), and computer system 6300 may store the incoming communications in memory 6303 for processing. Similarly, computer system 6300 may store outgoing communications (such as requests or responses to other devices) in memory 6303 in the form of one or more packets 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, network interface cards, modems, and any combination thereof. Examples of network 6330 or network segment 6330 include, but are not limited to, distributed computing systems, cloud computing systems, wide area networks (WANs) (e.g., the Internet, enterprise networks), local area networks (LANs) (e.g., networks related to offices, buildings, campuses, or other relatively small geographical spaces), telephone networks, direct connections between two computing devices, peer-to-peer networks, and any combination thereof. Networks such as network 6330 may employ wired communication modes and / or wireless communication modes. In general, any network topology may be used.
[0134] Information and data can be displayed via the display 6332. Examples of the display 6332 include, but are not limited to, liquid crystal displays (LCDs), thin-film transistor liquid crystal displays (TFT-LCDs), organic liquid crystal displays (OLEDs) such as passive-matrix OLEDs (PMOLEDs) or active-matrix OLEDs (AMOLEDs), plasma displays, and any combination thereof. The display 6332 can interface with other devices via the bus 6340, such as processors 6301, memory 6303, and fixed storage 6308, as well as input devices 6333. The display 6332 is connected to the bus 6340 via a video interface 6322, and data transfer between the display 6332 and the 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, but are not limited to, the HTC Vive, Oculus Rift, Samsung Gear VR, Microsoft HoloLens, Razer OSVR, FOVE VR, Zeiss VR One, Avegant Glyph, and Freefly VR headsets. In yet another embodiment, 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 output interfaces 6324. Examples of output interfaces 6324 include, but are not limited to, serial ports, parallel connections, USB ports, FIREWIRE® ports, THUNDERBOLT® ports, and any combination thereof.
[0136] In addition, or as an alternative, the computer system 6300 may provide functionality as a result of logic that is hardwired or otherwise embodied in circuitry, which may operate in place of or 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 include logic, and references to logic may include software. Furthermore, references to computer-readable media may, where appropriate, include circuitry (such as an IC) that houses the software for execution, circuitry that embodies the logic for execution, or both. This disclosure encompasses any appropriate combination of hardware, software, or both.
[0137] Those skilled in the art will understand that the various exemplary logic blocks, modules, circuits, and algorithmic steps described in relation to the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To illustrate this interchangeability between hardware and software, various exemplary components, blocks, modules, circuits, and steps have been outlined above in terms of their functionality.
[0138] Various exemplary logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or run on general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a combination of multiple microprocessors, a combination of one or more microprocessors combined with a DSP core, or any other combination of such configurations.
[0139] Steps of methods or algorithms described in relation to embodiments disclosed herein may be embodied directly in hardware, in software modules executed by one or more processors, or in a combination of the two. The software modules may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to a processor so that the processor can read information from and write information to the storage medium. Alternatively, the storage medium may be integrated with the processor. The processor and storage medium may reside in an ASIC. The ASIC may reside in a user terminal. Alternatively, the processor and storage medium may reside as discrete components in a user terminal.
[0140] Suitable computing devices, as described herein, include, in non-limiting examples, 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 selected televisions, video players, and digital music players with optional computer network connectivity are also suitable for use in 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. The operating system is software, for example, including programs and data, that manages the device's hardware and provides services for running applications. Those skilled in the art will recognize that suitable server operating systems include, in non-limiting examples, FreeBSD, OpenBSD, NetBSD®, Linux®, Apple® Mac OS X Server®, Oracle® Solaris®, Windows Server®, and Novell® NetWare®. Those skilled in the art will also recognize that suitable personal computer operating systems include, in non-limiting examples, UNIX®-based operating systems such as Microsoft® Windows®, Apple® Mac OS X®, UNIX®, and GNU / Linux®. In some embodiments, the operating system is provided by cloud computing. Those skilled in the art will recognize that suitable mobile smartphone operating systems include, but are not limited to, Nokia® Symbian® OS, Apple® iOS®, Research In Motion® BlackBerry OS®, Google® Android®, Microsoft® Windows Phone® OS, Microsoft® Windows Mobile® OS, Linux®, and Palm® WebOS®.Furthermore, a person skilled in the art would recognize that suitable media streaming device operating systems include, but are not limited to, Apple TV®, Roku®, Boxee®, Google TV®, Google Chromecast®, Amazon Fire®, and Samsung® HomeSync®. Similarly, a person skilled in the art would recognize that suitable video game console operating systems include, but are not limited to, Sony® PS3®, Sony® PS4®, Microsoft® Xbox 360®, Microsoft Xbox One, Nintendo® Wii®, Nintendo® Wii U®, and Ouya®.
[0142] Non-temporary computer-readable storage medium In some embodiments, the platforms, systems, media, and methods disclosed herein include one or more non-temporary computer-readable storage media encoded with a program containing instructions executable by the operating system of a networked computing device, which is optional. In further embodiments, the computer-readable storage media is a tangible component of the computing device. In yet another embodiment, the computer-readable storage media is optionally removable from the computing device. In some embodiments, the computer-readable storage media includes, in non-limiting examples, 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, etc. In some cases, the program and instructions are encoded permanently, substantially permanently, semi-permanently, or non-temporarily on the medium.
[0143] Computer program In some embodiments, the platforms, systems, media, and methods disclosed herein include at least one computer program or use thereof. A computer program includes a sequence of instructions executable by one or more processors of a computing device's CPU, written to perform a specified task. Computer-readable instructions may be implemented as program modules such as functions, objects, application programming interfaces (APIs), and computing data structures, which perform a particular task or implement a particular abstract data type. In light of the disclosures provided herein, a person skilled in the art will recognize that a computer program may be written in various versions of various languages.
[0144] The functionality of computer-readable instructions can 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 plugins, extensions, add-ins, or add-ons, or a combination thereof.
[0145] Web application In some embodiments, the computer program includes a web application. Those skilled in the art will recognize, in light of the disclosures provided herein, that in various embodiments, the web application utilizes one or more software frameworks and one or more database systems. In some embodiments, the web application is built 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, in non-limiting examples, relational database systems, non-relational database systems, object-oriented database systems, associative database systems, XML database systems, and document-oriented database systems. In further embodiments, suitable relational database systems include, in non-limiting examples, Microsoft® SQL Server, MySQL®, and Oracle®. Furthermore, those skilled in the art will recognize that, in various embodiments, the web application is written in one or more versions of one or more languages. The 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 a combination thereof. In some embodiments, the web application is written to some extent in a markup language such as Hypertext Markup Language (HTML), Extensible Hypertext Markup Language (XHTML), or Extensible Markup Language (XML). In some embodiments, the web application is written to some extent in a presentation-defining language such as Cascading Style Sheets (CSS). In some embodiments, the web application is written to some extent 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 to some extent 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 to some extent in a database query language such as Structured Query Language (SQL). In some embodiments, the web application integrates with 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, but not limited to, Adobe® Flash®, HTML 5, Apple® QuickTime®, Microsoft® Silverlight®, Java®, and Unity®.
[0146] Referring to Figure 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, .NET server, and PHP server) and one or more web servers 6430 (such as Apache, IIS, GWS). The web server(s) optionally expose one or more web services via an application programming interface (API) 6440. Over a network such as the Internet, the system provides a browser-based and / or mobile-native user interface.
[0147] Referring to Figure 65, in a particular embodiment, the application provisioning system alternatively has a distributed cloud-based architecture 6500 comprising elastically load-balanced and auto-scalable web server resources 6510 and application server resources 6520, as well as a synchronously replicated database 6530.
[0148] Mobile application In some embodiments, the computer program includes a mobile application provided to a mobile computing device. In some embodiments, the mobile application is provided to the mobile computing device during manufacturing. In other embodiments, the mobile application is provided to the mobile computing device via a computer network described herein.
[0149] In light of the disclosures provided herein, mobile applications are created using hardware, languages, and development environments known to those skilled in the art, and by techniques known to those skilled in the art. Those skilled in the art will recognize that mobile applications are written in several languages. Suitable programming languages include, but are not limited to, C, C++, C#, Objective-C, Java®, JavaScript, Pascal, Object Pascal, Python®, Ruby, VB.NET, WML, and XHTML / HTML with or without CSS, or a combination thereof.
[0150] Suitable mobile application development environments are available from several sources. Commercial 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 also 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, iPhone® and iPad® (iOS) SDKs, 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 distributing mobile applications, including, but are not limited to, 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 application In some embodiments, a computer program includes a standalone application, which is a program that runs as an independent computer process, not as an add-on to an existing process (e.g., not as a plug-in). Those skilled in the art will recognize that standalone applications are often compiled. A compiler is a computer program that translates source code written in a programming language into binary object code, such as assembly language or machine code. Suitable compiled programming languages, in non-limiting examples, include C, C++, Objective-C, COBOL, Delphi, Eiffel, Java®, Lisp, Python®, Visual Basic, VB .NET, or combinations thereof. Compilation is often performed, at least partially, 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, a computer program includes web browser plugins (e.g., extensions). In computing, a plugin is one or more software components that add specific functionality to a larger software application. Software application manufacturers support plugins to allow third-party developers to create features that extend the application, making it easy to add new features and reducing the size of the application. When plugins are supported, the functionality of the software application can be customized. For example, plugins are commonly used in web browsers to play videos, generate interactive features, scan for viruses, and display specific file types. Those skilled in the art will be familiar with several web browser plugins, including Adobe® Flash® Player, Microsoft® Silverlight®, and Apple® QuickTime®. In some embodiments, a toolbar includes one or more web browser extensions, add-ins, or add-ons. In some embodiments, a toolbar includes one or more explorer bars, toolbands, or deskbands.
[0154] In light of the disclosures provided herein, those skilled in the art will recognize that, as a non-limiting example, several plugin frameworks are available that enable the development of plugins in a variety of programming languages, including 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 a networked computing device to retrieve, present, and traverse information resources on the World Wide Web. Suitable web browsers, in non-exclusive examples, include Microsoft® Internet Explorer®, Mozilla® Firefox®, Google® Chrome, Apple® Safari®, Opera Software® Opera®, and KDE Konqueror. In some embodiments, a 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, in non-exclusive examples, handheld computers, tablet computers, netbooks, subnotebook computers, smartphones, music players, personal digital assistants (PDAs), and handheld video game systems. Suitable mobile web browsers include, but are not limited to, the Google® Android® browser, the 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, servers, and / or database modules, or uses thereof. Considering the disclosures provided herein, software modules are created using machines, software, and languages known to those skilled in the art, by techniques known to those skilled in the art. Software modules disclosed herein are implemented in numerous ways. In various embodiments, a software module includes files, code sections, programming objects, programming structures, distributed computing resources, cloud computing resources, or a combination thereof. Further various embodiments include 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, in non-limiting examples, web applications, mobile applications, standalone applications, and distributed computing applications or cloud computing applications. In some embodiments, a software module resides within a single computer program or application. In other embodiments, a software module resides within multiple computer programs or applications. In some embodiments, a software module is hosted on a single machine. In other embodiments, a software module is hosted on multiple machines. In further embodiments, the software module is hosted on a distributed computing platform, such as a cloud computing platform. In some embodiments, the software module is hosted on one or more machines in a single location. In other embodiments, the software module is 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 disclosures provided herein, those skilled in the art will recognize that many databases are suitable for storing and retrieving local data or information on the systems herein. The databases herein may be accessed, maintained, or controlled by a data-driven workflow platform. In some cases, the database may differ from a cloud-based repository associated with the platform's customers. The database may be local to the data-driven workflow platform or may be remotely accessed by the data-driven workflow platform.
[0158] In various embodiments, suitable databases include, in non-limiting examples, relational databases, non-relational databases, object-oriented databases, object databases, entity-relational 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 used in a non-limiting sense. They are provided to illustrate broader applicable aspects of the present disclosure. Various modifications can be made to the described disclosure and equivalents can be substituted without departing from the true spirit and scope of the present disclosure. Furthermore, many modifications can be made to adapt specific circumstances, materials, substance compositions, processes, process acts or steps to the purpose, spirit or scope of the present disclosure. Furthermore, as will be understood by those skilled in the art, each of the individual modifications described and illustrated herein has separate components and features that can be readily separated from or readily combined with features of any of several other embodiments without departing from the scope or spirit of the present disclosure. All such modifications are intended to fall within the scope of the claims relating to the present 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 only as examples. The present invention is not intended to be limited by any particular example provided herein. While the present invention has been described with reference to the preceding specification, the descriptions and illustrations of embodiments herein are not intended to be constrained. Those skilled in the art will be able to conceive of numerous variations, alterations, and substitutions without departing from the present invention. Furthermore, it should be understood that all aspects of the present invention are not limited to any particular description, configuration, or relative proportion described herein, which depend on various conditions and variables. It should be understood that various alternatives to the embodiments of the present invention described herein may be employed when carrying out the present invention. Therefore, the present invention is intended to encompass such alternatives, alterations, variations, or equivalents. The following claims define the scope of the present invention, and methods and structures within the scope of these claims and their equivalents are intended to be covered thereby.
Claims
1. A method for providing a data-driven workflow platform, Mapping selected data objects to the data storage model of the data-driven workflow platform, wherein the selected data objects are stored in a data cloud configuration operablely coupled to the data-driven workflow platform; Displaying a flow on a graphical user interface (GUI) for building a cloud application that utilizes or manages the selected data objects, wherein the flow includes at least one graphical element corresponding to a rule for automating actions triggered by trigger events of the selected data objects. A method that includes this.
2. The method according to claim 1, wherein the data cloud configuration comprises one or more data clouds for storing data objects, and the data-driven workflow platform is granted permission to access, process, and edit the data objects stored in the one or more data clouds.
3. The method according to claim 1, wherein mapping the selected data objects to the data storage model includes defining the relationships between the selected data objects and the elements of the data storage model.
4. The method according to claim 3, wherein the relationship is defined by the user via the GUI.
5. The method according to claim 4, wherein the GUI enables the user to link one or more data fields of the selected data object to one or more data fields or elements of the data storage model.
6. The method according to claim 3, wherein the relationship is automatically generated by the data-driven workflow platform and displayed on the GUI as a recommended relationship.
7. The method according to claim 1, wherein mapping the selected data objects to the data storage model includes identifying missing elements from the data storage model and prompting the user to identify another set of data objects for the missing elements.
8. The method according to claim 1, wherein the data storage model includes a plurality of data types, each including at least one of task types, application types, and element data types.
9. The method according to claim 8, wherein mapping the selected data objects to the data storage model includes mapping the selected data objects to element data types.
10. The method according to 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.
11. The method according to claim 10, wherein the flow includes a pre-built template flow that prompts the user to add, remove, or modify one or more components.
12. The method according to claim 11, wherein the pre-built template flow is automatically determined based at least in part on the selected data objects and the cloud application.
13. The method according to claim 1, wherein the rule is automatically generated based at least in part on one or more data fields added to the flow.
14. The method according to claim 13, wherein the rules are automatically generated using a model, and the model is developed using rules extracted from past actions and previously processed data.
15. The method according to claim 14, wherein the model is trained using a machine learning algorithm.
16. The method according to claim 14, wherein the rule is recommended to the user on the GUI, and the at least one graphical element allows the user to approve, reject, or modify the rule.
17. The method according to claim 1, wherein the rule is manually defined by the user via the GUI.
18. The method according to claim 1, wherein the rule includes a definition of the trigger event, the trigger event is time-based or related to a change in the value or status of at least a subset of the selected data objects.
19. The method according to claim 18, wherein the rule further includes a definition of the conditions for performing the action.
20. The method according to claim 18, wherein the rule further includes a definition of the action.
21. The method according to claim 20, 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.
22. The method according to claim 1, further comprising displaying the selected data objects that conform to the data storage model within the GUI portal.
23. The method according to claim 22, further comprising modifying the value of at least one 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 an API connection.
24. The method of claim 22, further comprising receiving an instruction to perform an operation on at least one of the selected data objects via the GUI, and performing an 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.
25. The method according to claim 24, 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.
26. The method according to claim 1, wherein the trigger event of the selected data object includes a change to the selected data object stored in the data cloud configuration.
27. The method according to claim 1, wherein the flow is identified from a plurality of predefined workflows by a Large-Scale Language Model (LLM).
28. The method according to claim 27, wherein the flow is identified at least in part based on the data schema of the selected data object stored in the data cloud configuration.
29. The method according to claim 27, wherein the output of the LLM includes a list of instructions for creating the flow.
30. The method according to claim 1, wherein the data schema of the selected data object stored in the data cloud configuration is converted into a graphical representation and displayed on the GUI.
31. The method according to claim 1, wherein the GUI allows the user to modify the flow by using graphical elements corresponding to pre-logic including loop logic or if statement logic.
32. The method according to claim 1, wherein the selected data objects are detected by setting logic rules or machine learning-based rules on the data objects stored in the data cloud configuration.
33. The method according to claim 32, wherein the logic rule or the machine learning-based rule is configured via a GUI.
34. A system for providing a data-driven workflow platform, A first module configured to enable the data-driven workflow platform to operate on one or more data clouds, A second module configured to map selected data objects to the data storage model of the data-driven workflow platform, wherein the selected data objects are stored in one or more data clouds, A visualization module configured to display a flow for building a cloud application that utilizes or manages the selected data objects on a graphical user interface (GUI), wherein the flow includes at least one graphical element corresponding to a rule for automating actions triggered by trigger events of the selected data objects, A system equipped with these features.
35. The system according to claim 34, wherein the first module manages one or more permissions granted to the data-driven workflow platform for accessing, processing, and editing data objects stored in one or more data clouds.
36. The system according to claim 34, wherein the 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.
37. The system according to claim 34, wherein 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.
38. The system according to claim 35, wherein 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.
39. The system according to claim 37, wherein the relationships are automatically generated by the data-driven workflow platform and displayed on the second GUI as recommended relationships.
40. The system according to claim 34, wherein the second module is configured to further identify missing elements from the data storage model and prompt the user to identify another set of data objects for the missing elements.
41. The system according to claim 34, wherein the data storage model includes a plurality of data types, including at least one of task type, application type, transaction data type, and element data type.
42. The system according to claim 41, wherein the second module is configured to further map the selected data objects to transaction data types or element data types.
43. The system according to claim 34, wherein 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.
44. The system according to claim 43, wherein the interactive flow includes a pre-built template flow that prompts the user to add, remove, or modify one or more components.
45. The system according to claim 44, wherein the pre-built template flow is automatically determined based at least in part on the selected data objects and the cloud application.
46. The system according to claim 34, wherein the rule is automatically generated based at least in part on one or more data fields added to the interactive flow.
47. The system according to claim 46, wherein the rules are automatically generated using a model, and the model is developed using rules extracted from past actions and previously processed data.
48. The system according to claim 47, wherein the rule is recommended to the user on the GUI, and the at least one graphical element allows the user to approve, reject, or modify the rule.
49. The system according to claim 34, wherein the rules are manually defined by the user via the GUI.
50. The system according to claim 34, wherein the rule includes a definition of the trigger event, the trigger event being time-based or relating to a change in the value or status of at least a subset of the selected data objects.
51. The system according to claim 50, wherein the rule further includes a definition of the conditions for performing the action.
52. The system according to claim 50, wherein the rule further includes a definition of the action.
53. The system according to claim 52, 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.
54. The system according to claim 34, wherein the visualization module is further configured to display the selected data objects that conform to the data storage model within the GUI portal.
55. The system according to claim 54, wherein at least one value of the selected data object is modified via the GUI, and the corresponding value of the selected data object in the data cloud configuration is automatically updated via the first module.
56. The system according to claim 34, wherein the first module is configured to translate instructions for performing an operation on at least one of the selected data objects received via the GUI into database operations that can be executed in the data cloud configuration.
57. The system according to claim 56, wherein 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.
58. The system according to claim 57, wherein the selected data object includes transactional data or streaming data, and the data-driven workflow platform is configured to cache intermediate results for performing the operation.
59. The system according to claim 34, wherein the trigger event of the selected data object includes a modification of the selected data object stored in the data cloud configuration.
60. The system according to claim 34, wherein the data schema of the selected data object stored in the data cloud configuration is converted into a graphical representation and displayed on the GUI.
61. The system according to claim 34, wherein the GUI allows the user to modify the flow by using graphical elements corresponding to pre-logic including loop logic or if statement logic.
62. The system according to claim 34, wherein the selected data objects are detected by setting logic rules or machine learning-based rules on data objects stored in one or more data clouds.
63. The system according to claim 62, wherein the logic rule or the machine learning-based rule is configured via a GUI.