Systems and methods for data-driven workflow platforms
By natively connecting to cloud data through a data-driven workflow platform, the problem of low efficiency in data integration and transformation in existing technologies is solved, enabling efficient data management and business process optimization, and enhancing real-time data access and automated collaboration.
Patent Information
- Application Number
- CN202380085277.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-23
- Filing Date
- 2023-10-20
- Publication Date
- 2026-02-27
- Estimated Expiration
- 2043-10-20
AI Technical Summary
Existing data-intensive applications require integration with the cloud, transformation, or download of data for business intelligence analysis, leading to inefficiency and increased complexity.
This provides a data-driven workflow platform that natively connects to cloud data through a no-code user interface, allowing applications to be created and managed directly in the cloud, optimizing data flow and processes without the need for ETL or ELT processes.
It improves data processing efficiency, reduces integration and transformation steps, enables real-time data access and management, and enhances the automation and collaboration capabilities of business processes.
Smart Images

Figure CN120344945B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and the benefit of U.S. Provisional Application No. 63 / 418,397, filed October 21, 2022, U.S. Provisional Application No. 63 / 454,917, filed March 27, 2023, and U.S. Application No. 18 / 340,510, filed June 23, 2023, each of which is incorporated by reference herein in its entirety. BACKGROUND
[0003] Computing systems are ubiquitous in modern businesses and are typically used as a critical operational resource. For example, many enterprises utilize so-called “enterprise resource planning” (or “ERP”) systems to help with various aspects of financial management, human resources, inventory management, and the like. Other commonly used distributed computing business systems include systems known as “transportation management systems” (or “TMS”), which can be used to plan, monitor, and optimize logistics and transportation, and systems known as “risk management systems” (or “RMS”), which can be used to help compliance officers and others understand the risk posture of an enterprise and the extent to which applicable rules and regulations are being followed. It is estimated that the global ERP software market is in the range of $45 billion per year, with providers such as SAP (RTM), Oracle (RTM), Workday (RTM), and the like providing various solutions. SUMMARY
[0004] Current data-intensive applications (e.g., ERP software, ERP applications, RMS applications, and the like) can require integration with a cloud lake or data warehouse, copying or downloading data from the cloud to perform business intelligence analysis, compute, and execute workflows on local data. For example, ETL (extract, transform, load) or ELT (load and transform in a data warehouse) processes are needed to move data from one database, multiple databases, or other sources to a unified repository.
[0005] There is a need for a service management cloud that can natively connect to the cloud, thereby allowing cloud applications to be created and executed on real-time data in existing cloud-based repositories without the need for integration, transformation, or download. The present disclosure provides systems and methods that allow users to create, customize, and manage applications for managing data flows and processes with distributed computing systems. In particular, the systems and methods herein can be used for business process optimization, where operations and processes can be managed and used without traditional repositioning and / or replication of enterprise data. The present disclosure provides a unified platform (e.g., a cloud-native SaaS platform for no-code business applications with data-driven workflows) for users, organizations, or cloud service providers to access their cloud data, process cloud data for business applications that are launched and managed by natively connecting to the cloud without the need for integration, transformation, or download of data, thereby improving efficiency. The platform herein can allow users to create, customize, and / or configure cloud applications through a no-code user interface with built-in features such as data mining, configurable and automated workflows, and dynamic relationship discovery and creation.
[0006] In one aspect, a method for providing a data-driven workflow platform is described herein. The method includes mapping selected data objects to a data storage model of the data-driven workflow platform, where the selected data objects are stored in a data cloud configuration operably coupled with the data-driven workflow platform; and displaying, on a graphical user interface (GUI), an interaction flow for building a cloud application with or managing the selected data objects, where the interaction flow includes at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data objects.
[0007] In some embodiments, the data cloud configuration includes one or more data clouds storing the data objects, and where the data-driven workflow platform is granted permission to access, process, and edit the data objects stored on the one or more data clouds. In some embodiments, mapping the selected data objects to the data storage model includes defining a relationship between the selected data objects and elements of the data storage model. In some cases, the relationship is defined by a user through the GUI. In some cases, the GUI permits 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, the relationship is automatically generated by the data-driven workflow platform and displayed on the GUI as a recommended relationship.
[0008] In some embodiments, 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. In some embodiments, the data storage model includes multiple types of data including at least one of task type, application type, and element data type. In some cases, mapping the selected data objects to the data storage model includes mapping the selected data objects to the element data type.
[0009] In some embodiments, the interaction flow permits the user to add, remove, or modify one or more components of the cloud application by dragging and dropping one or more graphical elements to the interaction flow. In some cases, the interaction flow includes a pre-built template flow that prompts the user to add, remove, or modify one or more components. In some cases, the pre-built template flow is automatically determined based at least in part on the selected data objects and the cloud application.
[0010] In some embodiments, the rules are automatically generated based at least in part on one or more data fields added to the interaction flow. In some cases, the rules are automatically generated using a model, and wherein the model is developed using rules extracted from past actions and previously processed data. In some cases, the rules are recommended to the user on the GUI, and wherein the at least one graphical element permits the user to accept, reject, or modify the rules.
[0011] In some embodiments, the rules are manually defined by the user through the GUI. In some embodiments, the rules include a definition of a triggering event, and wherein the triggering event is based on time, or is associated with a change in value or a change in status of at least a subset of the selected data objects. In some cases, the rules further include a definition of a condition for performing an action. In some cases, the rules further include a definition of an action. In some examples, the action is selected from adding an observer, updating a field, sending a notification, publishing a comment, assigning to a user or group, and creating a record.
[0012] In some embodiments, the method further includes displaying the selected data objects conforming to the data storage model within a portal of the GUI. In some cases, the method further includes modifying a value of at least one of the selected data objects through the GUI and automatically updating the value of the corresponding selected data object in the data cloud configuration through the API connection. In some cases, the method further includes receiving an instruction through the GUI for performing an operation on at least one of the selected data objects and performing the operation on the at least one of the selected data objects in the data cloud configuration without using an extract, transform, and load (ETL) data integration process. For example, the selected data objects include transactional data or streaming data, and wherein performing the operation further includes caching intermediate results through a data-driven workflow platform. In some embodiments, the trigger event of the selected data objects includes a change in the selected data objects stored in the data cloud configuration.
[0013] In another aspect, described herein is a system for providing a data-driven workflow platform. The system includes: a first module configured to operably couple the data-driven workflow platform to one or more data clouds; a second module configured to map selected data objects to a data storage model of the data-driven workflow platform, wherein the selected data objects are stored on the one or more data clouds; and a visualization module configured to display, on a graphical user interface (GUI), an interactive flow for building a cloud application with or managing the selected data objects, wherein the interactive flow includes at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data objects.
[0014] In some embodiments, the first module manages one or more permissions granted to the data-driven workflow platform for accessing, processing, and editing the data objects stored on the one or more data clouds. In some embodiments, the selected data objects are mapped to the data storage model by defining connections between elements of the selected data objects and the data storage model. In some embodiments, the visualization module is further configured to display a second GUI that allows a user to define relationships between elements of the data storage model. In some cases, the second GUI permits the 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 of the data storage model. In some cases, the relationships are automatically generated by the data-driven workflow platform and displayed on the second GUI as recommended relationships.
[0015] In some embodiments, 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. In some embodiments, the data storage model includes multiple types of data including at least one of task type, application type, transaction data type, and element data type. In some cases, the second module is configured to further map the selected data objects to the transaction data type or the element data type.
[0016] In some embodiments, the interaction flow permits the user to add, remove, or modify one or more components of the cloud application by dragging and dropping one or more graphical elements to the interaction flow. In some cases, the interaction flow includes a pre-built template flow that prompts the user to add, remove, or modify one or more components. For example, the pre-built template flow is automatically determined based at least in part on the selected data objects and the cloud application. In some cases, a rule is automatically generated based at least in part on one or more data fields added to the interaction flow. In some cases, the rule is automatically generated using a model, and wherein the model is developed using rules extracted from past actions and previously processed data. For example, the rule is recommended to the user on the GUI, and wherein at least one graphical element allows the user to accept, reject, or modify the rule.
[0017] In some embodiments, the rule is manually defined by the user through the GUI. In some embodiments, the rule includes a definition of a triggering event, and wherein the triggering event is based on time, or is associated with a change in value or a change in status of at least a subset of the selected data objects. In some cases, the rule further includes a definition of a condition for performing an action. In some cases, the rule further includes a definition of an action. In some cases, the action is selected from adding an observer, updating a field, sending a notification, publishing a comment, assigning to a user or group, and creating a record.
[0018] In some embodiments, the visualization module is further configured to display selected data objects conforming to the data storage model within a portal of the GUI. In some cases, values of at least one of the selected data objects are modified through the GUI and values of the corresponding selected data objects in the data cloud configuration are automatically updated by the first module. In some embodiments, the first module is configured to convert instructions for performing operations on at least one of the selected data objects received through the GUI into database operations executable in the data cloud configuration. In some cases, the database operations are performed on the selected data objects in the data cloud configuration without using extract, transform, and load (ETL) data integration processes. In some cases, the selected data objects include transactional data or streaming data, and wherein the data-driven workflow platform is configured to cache intermediate results for performing the operations. In some embodiments, the trigger events of the selected data objects include changes to the selected data objects stored in the data cloud configuration.
[0019] In some embodiments, the interaction flow is identified from a plurality of pre-defined workflows by a large language model (LLM). In some cases, the interaction flow is identified based at least in part on data patterns of selected data objects stored in the data cloud configuration. In some cases, the output of the LLM includes a list of instructions for creating the interaction flow.
[0020] Additional aspects and advantages of the disclosure will become apparent to those skilled in the art upon consideration of the following detailed description, which is only illustrative of specific embodiments of the disclosure. As will be realized, the disclosure is capable of other and different embodiments, and its several details are capable of modifications in various apparent respects, all without departing from the disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.
[0021] INCORPORATION BY REFERENCE
[0022] All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference. To the extent there is a contradiction between the disclosure herein and the disclosure contained in a publication, patent, or patent application incorporated by reference, the disclosure herein controls. BRIEF DESCRIPTION OF DRAWINGS
[0023] The novel features of the disclosure are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present disclosure will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the disclosure are utilized, and the accompanying drawings (also “figure” and “figures” herein), of which:
[0024] FIG. 1 An example of storing enterprise data in a traditional database system is shown.
[0025] FIG. 2 An example of a cloud-based repository provider is shown.
[0026] FIG. 3 An example of a cloud service and SaaS is shown schematically.
[0027] FIG. 4-FIG. 7 Various configurations in which a service management cloud system can be configured to have direct interconnectivity between users and data cloud configurations are illustrated.
[0028] FIG. 8 A platform providing an interface for viewing, accessing, and managing all process data protected within a data cloud is shown schematically.
[0029] FIG. 9 An example of a service management cloud system is shown schematically.
[0030] FIG. 10 A service management cloud configuration is illustrated.
[0031] FIG. 11 A service management cloud session configuration is illustrated.
[0032] FIG. 12 A service management cloud session configuration with write-back capability is illustrated.
[0033] FIG. 13-FIG. 15 Access management, control, and collaboration within a platform are illustrated.
[0034] FIG. 16 A platform with secure and efficient management of access is illustrated.
[0035] FIG. 17 An example of establishing a connection with a data source in a data cloud and mapping source data to data elements in a platform is illustrated.
[0036] FIG. 18-FIG. 20 An example of use cases for configuring and using data-driven workflow platform variants in complex business processes with varying levels of automation is shown.
[0037] FIG. 21-FIG. 23 An example of a GUI for creating and / or editing automation is shown.
[0038] FIG. 24 And FIG. 25 An example of a GUI for creating or adding relationships is shown.
[0039] FIG. 26-FIG. 30 An example of a GUI for creating workflows is shown.
[0040] FIG. 31 and FIG. 32 An example of a GUI showing created workflows with tracking progress and analytics is shown.
[0041] FIG. 33-FIG. 38 An example of a logistics application suite is shown.
[0042] FIG. 39-FIG. 43 An example of a GUI for configuring or creating data mining is shown.
[0043] FIG. 44 An architecture of a data-driven workflow platform is schematically illustrated.
[0044] FIG. 45 An example of an AI-based application discovery feature is schematically shown in accordance with some embodiments of the present disclosure.
[0045] FIG. 46-FIG. 48 An example of a GUI of an AI-based application discovery feature is shown.
[0046] FIG. 49 An example of an AI-generated workflow feature is schematically shown in accordance with some embodiments of the present disclosure.
[0047] FIG. 50-FIG. 53 An example of a GUI of an AI-generated workflow feature is shown.
[0048] FIG. 54 and FIG. 55 An example of a GUI of an automated flow is shown.
[0049] FIG. 56 and FIG. 57 An example of a GUI of an application marketplace is shown.
[0050] FIG. 58 and FIG. 59 An example of a GUI (e.g., CloudLink Explorer) that allows a user to find data in a data cloud (e.g., Snowflake) is shown.
[0051] FIG. 60 An example of a GUI for a user to set logical rules (e.g., filter parameters and logical operators in a record) to find data is shown.
[0052] FIG. 61 An example of a GUI for a user to set machine learning-based anomaly detection and reporting rules is shown.
[0053] FIG. 62 An example of a GUI for a user to select a primary column to be used as a unique identifier for data is shown.
[0054] FIG. 63 A non-limiting example of a computing device is shown; in this case, the computing device is a device having one or more processors, memory, storage, and a network interface.
[0055] FIG. 64 A non-limiting example of a web / mobile application providing system is shown; in this case, the web / mobile application providing system is a system providing browser-based and / or native mobile user interfaces.
[0056] FIG. 65 A non-limiting example of a cloud-based web / mobile application providing system is shown; in this case, the cloud-based web / mobile application providing system is a system comprising elastically load-balanced, auto-scaling web server and application server resources and synchronously replicated databases. DETAILED DESCRIPTION
[0057] While various embodiments of the application have been shown and described herein, it will be apparent to those skilled in the art that many variations, changes, and substitutions can be made thereto without departing from the application. It should be understood that various alternatives to the embodiments of the application described herein can be employed in practicing the application.
[0058] CERTAIN DEFINITIONS
[0059] Unless otherwise defined, all technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs.
[0060] References throughout this specification to “some embodiments” or “an embodiment” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, appearances of the phrase “in some embodiments” or “in an embodiment” are not necessarily all referring to the same embodiment. Furthermore, the particular
[0061] As used herein, the terms “component,” “system,” “interface,” “unit,” and the like are intended to refer to a computer-related entity, either hardware, software (e.g., in execution), and / or firmware. For example, a component can be a process running on a processor, an object, an executable, a program, storage in a
[0062] Moreover, these components can execute from various computer readable media having various data structures stored thereon. The components can communicate via local and / or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and / or across a network, such as, the Internet, a local area network, a wide area network, or similar type of network with other systems via the signal).
[0063] As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry; the electric or electronic circuitry can be operated by a software application or a firmware application executing on one or more
[0064] Whenever the term "at least," "greater than," or "greater than or equal to" precedes the first numerical value in a series of two or more numerical values, the term "at least," "greater than," or "greater than or equal to" applies to each of the numerical values in that series of numerical values. For example, greater than or equal to 1, 2, or 3 is equivalent to greater than or equal to 1, greater than or equal to 2, or greater than or equal to 3.
[0065] Whenever the term "no more than," "less than," or "less than or equal to" precedes the first numerical value in a series of two or more numerical values, the term "no more than," "less than," or "less than or equal to" applies to each of the numerical values in that series of numerical values. For example, less than or equal to 3, 2, or 1 is equivalent to less than or equal to 3, less than or equal to 2, or less than or equal to 1.
[0066] For example, as used herein, a processor includes one or more processors, such as a single processor, or multiple processors of a distributed processing system. The controllers or processors described herein generally include a tangible medium to store instructions for implementing steps of a process, and for example, the processor can include one or more of a central processing unit, programmable array logic, gate array logic, or field programmable gate array. In some cases, the one or more processors can be a programmable processor (e.g., a central processing unit (CPU) or microcontroller), a digital signal processor (DSP), a field programmable gate array (FPGA), and / or one or more advanced RISC machine (ARM) processors. In some cases, the one or more processors can be operatively coupled to a non-transitory computer readable medium. The non-transitory computer readable medium can store logic, code, and / or program instructions executable by the one or more processor units to perform one or more steps. The non-transitory computer readable medium can include one or more memory units (e.g., removable media or external storage devices such as an SD card or random access memory (RAM)). One or more methods or operations disclosed herein can be implemented in a hardware component or a combination of hardware and software, such as, for example, an ASIC, a special-purpose computer, or a general-purpose computer.
[0067] Further, the word "exemplary" is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, the exemplary word is used herein to present concepts in a concrete manner. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless specified otherwise, or clear from context, "X employs A or B" is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then "X employs A or B" is satisfied under any of the foregoing instances. Moreover, articles "a" and "an" as used in this application and the appended claims should generally be construed to mean "one or more" unless specified otherwise or clear from context to be directed to a singular form. Thus, use of the articles in this application and the following claims is not limiting.
[0068] OVERVIEW OF CLOUD SERVICES
[0069] FIG. 1An example of storing enterprise data in a traditional database system is illustrated. As this example shows, typically, one or more users within the enterprise (2, 4, 6; these users may be the same user operating through a separate system, or may represent three different users operating on separate systems) will establish separate user sessions (10, 12, 14) with each connected (66, 68, 70; 72, 74, 76) system (e.g., 16-ERP system; e.g., 18-TMS system; e.g., 20-RMS system), with the one or more users (2, 4, 6) having the credentials and permissions for access and use. Typically, each system (16, 18, 20) can be operatively coupled (78, 80, 82) to one or more database systems (22, 24, 26), which are configured to store relevant data and utilize such data for sorting, report generation, and / or calculations, such as dynamically processing requests issued through interconnected systems (16, 18, 20). Enterprises using this configuration typically possess specific IT resources available for maintaining, updating, and resolving various aspects of the database / computing system (22, 24, 26). Such enterprises also face inherent operational risks and inefficiencies, which are related to the proprietary and secretive nature of many ERP / database / computing configurations, as will be discussed in further detail below.
[0070] Next-generation configurations have emerged, in which enterprise data and computing resources are becoming increasingly separated. For example... FIG. 2 As shown, cloud-based repository providers (e.g., Snowflake (RTM)) continue to leverage traditional ERP / database / computing configurations (such as...) by providing systems... FIG. 1 (as shown) to gain market share, in which data cloud systems configured for specific enterprises (34) are built to essentially separate the enterprise’s data from core computing resources that can reside in mutually coupled (96, such as through high-throughput connections) scalable computing configurations (36) (such as scalable computing configurations available from Amazon (RTM), Google (RTM) and Microsoft (RTM) under the trade names Amazon Web Services (RTM), Google Cloud (RTM) and Azure (RTM).
[0071] like FIG. 2As shown, one or more users (2, 4, 6) within the enterprise (such users can be the same user operating through separate systems, or can represent three different users operating 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 coupled (84, 86, 88; 90, 92, 94) to the data cloud configuration (34) to one another. Many such systems, such as FIG. 2 As shown in the systems (16, 18, 20) in the middle, a significant level or amount of enterprise data (such as through traditional system integration, such as application programming interfaces (or "APIs"), batch tables, XML feeds, etc.) will typically still need to be maintained using separate databases (28, 30, 32) in order to be operable, and so even though some data of the enterprise (such as reporting and / or audit data) can be stored in the data cloud (34), then replicated from the data cloud (34) and provided operational computing by the scalable computing configuration (36) coupled (96) to one another, data and data processing is typically still distributed across other different systems (18, 20, 22), which again presents various efficiency, complexity, expense, and risk management drawbacks to such enterprises.
[0072] More recently, cloud services and SaaS (software as a service) can provide more scalable, functional, efficient, upgradable, and less siloed enterprise computing resources while still maintaining security. In particular, in the context of a typical modern enterprise dealing with various issues (such as supply chain challenges), the number of different pieces of information from different systems can be very large, which are often manually integrated and processed to make timely and informed business decisions. For example, as shown FIG. 3 As shown, it can not be uncommon for a typical enterprise manufacturing complex technical products to attempt to extract information from multiple traditional integrated systems (16, 18, 20) and / or SaaS (38) systems (e.g., software to check approved purchase orders for key components of goods to be manufactured, and software to check shipping / transportation status, operational risks, payment status, and related weather data) to understand whether a particular shipment will indeed arrive on time at the appropriate manufacturing facility to help the manufactured goods be shipped in time for a particular holiday.
[0073] Perhaps more importantly, even in scenarios where enough users / operators are able to participate in real-time discussions to resolve such complex and compounded problems, they can bring data from different systems that are not linked, not coordinated, can not be real-time or near real-time updated, and have not been helped by business process analysis to make decisions based on many inputs. In other words, such a discussion can require 30 operators, each with their own perspective and data from different systems (some of which can not be inside the enterprise firewall), each wanting to join a real-time discussion about the current problem and potential solutions. This paper describes systems and methods for business process operation, management, and automation that are configured to cope with these and other operational challenges in modern enterprises.
[0074] Reference is made to FIG. 3 , which shows an enterprise configuration similar to that shown in FIG. 2 , where one or more so-called “Software as a Service” (or “SaaS”) systems (38) have been added, configured to allow users (8) to participate in 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), etc.). Such systems typically utilize SaaS data systems (40) (such as databases) that are mutually coupled (100) and are specifically configured to facilitate operation of the SaaS configurations (38) by extracting certain data from the mutually coupled data cloud configuration (34), such as by traditional system integration as discussed above with respect to the interconnected systems (16, 18, 20). As with the system configuration shown in FIG. 2 , even though some of the enterprise’s data will be on the data cloud (34) and operation computing will be provided by the scalable computing configuration (36), there will still be some data distributed on other different systems (28, 30, 32, 40), again giving such an enterprise various efficiency, complexity, cost, and risk management drawbacks.
[0075] SERVICE MANAGEMENT CLOUD SYSTEM (DATA-DRIVEN WORKFLOW PLATFORM)
[0076] The present disclosure provides an improved service management cloud system or cloud-native SaaS platform for no-code applications with data-driven workflows that leverage cloud data. The service management cloud system as described herein can provide configurable and automated data-driven workflows through no-code applications. The service management cloud system can be natively integrated to any data cloud and can allow configurable applications for workflows or processes without the need for ETL (extract, transform, load) or ELT (load and transform in data warehouse). The term “service management cloud” or “cloud-native SaaS platform” can also be referred to as “data-driven workflow platform” and they are used interchangeably throughout the specification.
[0077] FIG. 4-FIG. 7 various configurations in which the service management cloud system (44) can be configured to have direct interconnectivity (104, 106) between users (8) and data cloud configurations (34) are illustrated. The service management cloud system (44) can be specifically configured to operate without the need to migrate large amounts of data from the data cloud configurations (34) to other systems, while also providing visibility and utility for users (8) through the service management cloud (44) in order to manage business activities and processes in an efficient and scalable manner, as described in further detail below. As described in further detail below with reference to FIG. 9 As described in further detail below, for example, the service management cloud system (44) can be specifically configured to not only provide efficient and globally controllable access to various interconnected systems and data through the use of appropriately granted privileges, but also to connect these data and systems such that the data is available to the service management cloud system (44) with similar efficiency and latency as it would if the data were local to the service management cloud system (44). In other words, during a given session, the service management cloud system (44) and the inter-coupled resources (34, 36) can be configured to make the target data “function-native” to the subject service management cloud system (44) session - and this situation presents important additional opportunities for enterprises to leverage the data, while also ensuring that the data continues to update (such as in real-time or near real-time) and continues to reside fully or at least primarily on the data cloud (34).
[0078] With reference to FIG. 4 , an enterprise data configuration is illustrated in which traditional connected business systems (16, 18, 20), such as FIG. 2The system shown is kept in place (i.e., within the data cloud) to assist one or more given users (2, 4, 6) in traditional operations through sessions (10, 12, 14) with such systems (16, 18, 20) and their connected data (28, 30, 32; 34), and wherein a separate service management cloud system (44) is configured to provide direct access to the mutually coupled (106) data cloud configuration (34), so that users (8) of the service management cloud system (44) can not only examine the information contained on the data cloud configuration (34) in the form of views, reports, etc. returned by queries without migrating data from the data cloud configuration (34) to users (8), but also wherein users (8) can create, operate, and manage business processes by utilizing the combined interconnect resources of the service management cloud system (44), the data cloud configuration (34), and the associated scalable computing configuration (36) without migrating data from the data cloud configuration (34) to users (8), as described below, such as references. FIG. 9 Further discussion is needed.
[0079] For the sake of simplicity, FIG. 5 The illustration depicts a traditional enterprise system that lacks integration (e.g., FIG. 4 Variations of 16, 18, 20). Such configurations may appear in paradigms where the legacy configuration has been migrated to the service management (44) and data cloud (34) configurations, or where the legacy functionality has been replaced by the available functionality of the service management (44) and data cloud (34) configurations.
[0080] FIG. 6 An embodiment is illustrated in which three separate data cloud configurations (34, 52, 54) are shown interconnected (106, 110, 112) between a service management cloud system (44) and three separate interconnected (96, 114, 116) scalable computing configurations (36, 48, 50), which may be maintained by different and / or differentiated providers (e.g., Amazon Web Services (RTM), Google Cloud (RTM), and / or Azure (RTM)). This configuration illustrates how a single user (8) can utilize a single instance of the service management cloud (44) to inspect and control data from various different interconnected systems and perform computational operations on that data, as referenced below. FIG. 9Further described, again without being overly dependent on pulling data from such systems to the user (8), this is in part dependent on the data cloud configuration (34, 52, 54). For example, in embodiments where a particular data cloud configuration has remote compute management features (such as those provided by Snowflake (RTM) under the trade name “Streams” (RTM)) or where a suitable adapter has been built at its location, data manipulation language (“DML”) changes made to tables, catalog tables, external tables, or underlying tables in one or more views (including secure views) can be tracked for a given source object record, thereby allowing trackable remote operations or remote manipulations to be made to the Snowflake data cloud configuration instance. Such streaming configurations can be used to provide access to the data within one or more data cloud configurations (34, 52, 54) to the service management cloud (44), as well as access to their compute manipulations by the scalable compute configurations (36, 48, 50) of one or more related interconnections (96, 114, 116).
[0081] With reference to FIG. 7 The one or more interconnection (120, 122, 124; 126, 128, 130) adapter (58, 60, 62) modules can be configured to assist the service management cloud (44) in particular uses of the subject data cloud configuration (34, 52, 54), such as assisting in functions related to leveraging as many associated computations as possible with the scalable compute configurations (36, 48, 50). The adapters can make data hosted in a data cloud (e.g., Snowflake) appear to be native data within the service management cloud platform. For example, during configuration or integration for target data between a data cloud (e.g., Snowflake) and the service management cloud, the adapters can set up mappings and data type matching without the need to alter the data or impose any type of modification to the data within the data cloud. Details regarding adapters, data type matching, provisioning, and data mapping (setting up connections with data sources) are described later herein.
[0082] As described above, in many modern business challenges of a multi-factor nature, not only is personnel, information, and expertise from various people and sources within a particular organization needed, but also from various people and sources within other (i.e., external) organizations. For example, a typical enterprise can contract out various aspects of its logistics operations. To understand and address a particular urgent business challenge that can involve logistics, the enterprise can need to bring in personnel and information from an external logistics service provider. Traditionally, such involvement can require email, teleconferencing, phone calls, and many people. A key benefit of the subject service management cloud (44) configuration is the enhanced ability to bring people into a collaborative process with particular and controlled levels of access, whether they are within a particular organization, department, or broad-based security department.
[0083] The service management cloud platform can allow process sharing. In addition to securely sharing data within the data cloud, participants or different entities involved in a workflow can also share processes. For example, a supply chain team can collaborate with a partner on the same data within the same workflow (handling the same data directly with the partner) through the platform herein. The platform can provide an interface for viewing, accessing, and managing process data such as tasks, assignments, reminders, all of which are protected within the data cloud. Referring to FIG. 8 The service management cloud (44) can be configured to allow pre-established or in-application defined login permissions (134) that can provide specific access roles or levels (e.g., full global access, organization only, application only, or even limited to a single record) (136), in accordance with the configuration (132). The service management cloud (44) can be configured to allow appropriate connection and access to information using the data cloud (34) and associated computing resources (such as 36 in FIG. 4
[0084] Further, with precise access and tracking by record, application, organization, role, etc., access to every specific aspect of the enterprise data and systems can be tracked and audited (140). For example, reports, user interface dashboards, or notifications can be set up to allow administrators configured by the service management cloud (44) to conveniently understand who is accessing what throughout the system, with real-time or near real-time updates. Referring to FIG. 13-FIG. 15 , additional aspects of access management, control, and collaboration are illustrated. Referring to FIG. 13 , a hierarchy configuration (186) is illustrated, which can be used to help administrators configured by the service management cloud (44) provide very specific access to various aspects of the system, such as on a single record (194), application (192), organization basis (190), or globally (188), but subject to appropriate limitations, as discussed above. Thus, for example, referring to FIG. 14 With this configuration (202), collaboration by one or more parties within and outside of a given organization is facilitated. A user (“John Smith” 204) is illustrated as having an internal role (212) in a given company organization and having appropriate access (214) to the service management cloud (44) of that company. Using the access configurability discussed with reference to FIG. 8 John Smith (204) can also be granted separate and different access to external resources of the service management cloud (44) of a partner organization, such as based on his role (206) in that external partner organization, or on an application-specific basis (208). FIG. 14 The illustration also shows that John Smith (204) can have limited access to a single record (210) within a third organization's service management cloud (44). Therefore, John Smith (204) can use the theme configuration of the service management cloud to easily and efficiently collaborate with people, processes, and data from three or more organizations securely and in real-time or near real-time through the cloud without having to log in and out of multiple systems.
[0085] FIG. 15 The diagram illustrates how this service manages the cloud (44) configuration (216), allowing users (such as John Smith) to configure it. FIG. 6 Element 204 of B can be easily switched between organizations for collaboration. In other words, "bringing someone from another organization to help solve this urgent / specific problem" becomes highly efficient, secure, and controllable, and can be automated in many ways, as further described below. Furthermore, the service management cloud (44) can be configured to be platform-independent, making it accessible and usable from any web interface, thus allowing appropriate users to manage any platform from anywhere, typically from a secure data center (such as...). FIG. 4 The powerful computing capabilities of the scalable computing configuration (36) that can be operatively coupled (96) to the data cloud (34) in the embodiment are supported.
[0086] refer to FIG. 9 Leveraging a powerful, precise, and convenient paradigm for managing access, operators can not only visualize real-time or near real-time updated data, but also utilize that data in new ways across a wide variety of business processes with varying degrees of automation. For example... FIG. 9 As shown, under appropriate access restrictions, data becomes feature-native data for further use. As stated above, the concept of feature-native refers to the fact that the service management cloud (44) can be configured to present a given user with access to continuously updated data in real-time or near real-time, with latency and access levels as if the data resided in its local computing operations, even though the data typically actually resides on the data cloud (34) and is powered by significant scalable computing configurations (such as...). FIG. 4 Element 36) is supported. With appropriate permissions, it can be used for various in-session operations (146) with efficient availability of updated data, such as creating reports or notifications, various types of calculations, auditing, searching, analysis, sequential and / or logical exploitation, process automation, etc. (150). Furthermore, with appropriate permissions, data can be written back (150), so that changed or new data is stored on the data cloud and can be used to update other interconnected systems and their databases.
[0087] refer to FIG. 10, showing an expanded illustrative view of the configuration (152) of the service management cloud (44), where many operations can be efficiently accomplished using the service management cloud (44) on a platform-independent basis through web services given functional native access to data. For example, cloud applications ("Apps") can be created to perform various operations repeatedly or one-time, such as the following operations that can be performed functionally: "Show all current suppliers in Japan" (154); "Determine the number of assemblies in finished goods inventory for factory #522" (156); "Prepare a report that introduces the SKU superset to be received in December" (158); "Return the total monthly sales cost from production line #12" (160); and "Show all delayed purchase orders since January" (162).
[0088] With respect to the utilization of data that has been natively functional during a given session on the service management cloud (44), the system can be configured to deliver data into a given user's session based on the following factors: the platform that the user is using to access the service management cloud (44) (e.g., a smart phone-based platform can not have the throughput or ability to receive as much data as a powerful desktop workstation); the quality of the connection between the user's client device and the service management cloud (44); the bandwidth or latency of the connection between the user's client device and the service management cloud (44); and / or the location of the user's client device relative to the data cloud (e.g., such as element 34 of FIG. 4 It can be desirable to allow the user to configure his or her particular session in the service management cloud (44) to prioritize data that is closest to the user's local data) and the location of the scalable computing configuration (such as element 36 of FIG. 4 In other words, the service management cloud (44) can be configured to automatically adjust the delivery of data into a user's session based on various factors to enhance utility and generally support the user in collaborative and other business operations.
[0089] Reference is made to FIG. 11, illustrating service management cloud (44) session configuration (164) where functional native data (144) can be used for complex business process automation. For example, service management cloud (44) can be configured to functionally automatically run processes that utilize available data, such as: "if any SKU contains metadata 'hazardous', flag in report and send report to regulatory department" (166); "if any shipment appears to be delayed more than 20 days during December, execute remediation / replacement logic, notify control officer and legal department, and send remediation / replacement terms to legal department via email" (168); "if purchase is made in China, and if SKU is hardware, contact Chinese customs and provide shipment manifest" (170); "if valuation figure has not been signed by authorized personnel of accounting department, send shipment manifest to accounting department" (172); "on first day of each month, search all available information for data related to all supplier reputations, send to ESG department" (174).
[0090] Referring to FIG. 12 , illustrating service management cloud (44) session configuration (176) where real-time or near real-time access (138) to functional native data (144) can be used for write-back purposes (150). For example, service management cloud (44) can be configured to functionally write back data to a cloud (such as a data cloud (46)) in real-time or near real-time, such as: "if any SKU contains metadata 'hazardous', flag in data cloud and send report to regulatory department" (178); "if any shipment appears to be delayed more than 20 days during December, execute remediation / replacement logic, notify control officer and legal department, and send remediation / replacement terms to legal department via email" (180); "if purchase is made in China, and if SKU is hardware, contact Chinese customs and provide shipment manifest" (182); "if valuation figure has not been signed by authorized personnel of accounting department, send shipment manifest to accounting department" (184); "on first day of each month, search all available information for data related to all supplier reputations, send to ESG department" (186). FIG. 4of other inter-coupled systems as described above in the following example scenarios: "Include new metadata annotation associated with this table: 'Data can be corrupted; several columns look identical; needs auditing'" (178); "Update ETA (estimated time of arrival) for shipments from January 1st to January 5th" (180); "Fix data in this particular row / column of this particular table: replace '2oo, 100.55' with '200, 100.55'" (182); "Increase purchase quantity from 1,500 to 2,500" (184). Such write-backs can represent significant changes in operations and are able to be efficiently and securely navigated through one interface and immediately populate data to other users, presenting another key paradigm shift. As the service management cloud is directly connected to data stored on a data cloud provider and workloads or queries are run in the data cloud, source data can be updated, modified in the data cloud and / or new data can be added to the data cloud (e.g., when an action requesting to update data is performed in an automated setup). The service management cloud can provide the alternative ability to call APIs directly to a cloud service (e.g., Salesforce) to perform actions (e.g., add new data records in a new column or table in the data cloud) or update source data. The platform can be able to write back to a cloud service (e.g., Salesforce), directly to a source system (e.g., ERP, CRM, CMS, etc.), or a combination of both. In some cases, the platform can allow a user to set a preference or permission for write-back. For example, a user can set write-back to be enabled for both a cloud service and a connected source system. Alternatively, a user can set write-back to be enabled for only a cloud service.
[0091] Referring to FIG. 16 As described above, on a platform-independent basis, with securely and efficiently managed access (138), the service management cloud (44) can be used to make additional data available on a functionally native basis, as illustrated in (220): 1. Log in using credentials to connect to a data cloud; 2. Select the relevant table to connect to; 3. Add details in a new element, such as name, handle, and / or description; 4. Map fields by matching table fields in the data cloud with record fields in the element. Referring to FIG. 17 This step is illustrated in the view of the service management cloud (44) session user interface (set credentials 222; connect to table 224; associate element details 226; configure field mapping 228).
[0092] Referring to FIG. 18-FIG. 20 Several use cases for configuring and using service management cloud (44) variants in complex business processes with different levels of automation are illustrated.
[0093] Referring to FIG. 18Environmental, Social, and Governance (“ESG”) scoring and its monitoring have become a key priority for many business organizations. Data can be used in many forms from many sources, with various levels of latency, certainty, and other key factors, resulting in various complexities within such business organizations. FIG. 18 Figure illustrates a scenario in which an organization requires all of its partners to provide ESG-related data in a prescribed format, in prescribed tables, at prescribed locations, so that the data can be made available using the service management cloud (44) with appropriate permissions. Thus, ESG data has been placed in tables in a prescribed format, which can be accessed (230) through the service management cloud (44) with appropriate permissions; to facilitate efficient and automated use of relatively standardized and predictable data from various partners, pre-existing applications can be created and configured to automatically (236) produce prescribed records or reports (232) based on connectivity (234) to the ESG data tables. Further, the service management cloud (44) can be configured to automatically flag suppliers or partners whose ESG scores can be below certain predetermined or customizable thresholds, and to automatically deliver such information, such as through written report documents sent by email or electronic notifications (238) sent to service management cloud (44) dashboard interfaces, smartphones, etc.
[0094] Reference is made to FIG. 19 Figure illustrates embodiments related to ESG analysis in which the available data can not be homogenous or standardized, but rather provided in non-homogenous form through the service management cloud (44) (240). In this case, an operator of the service management cloud (44) can create a custom application to operate within the service management cloud (44) using complex and simplified (the service management cloud’s “no-code” and / or “drag-and-drop” configuration interfaces) rather than using or modifying one of several pre-created applications available on the service management cloud (44). Details of the user interface and system related to workflow creation are described later herein. Again, reference is made to FIG. 19With the application, users can create user interfaces (such as drag / drop features) to add chapters (such as phases, abstract, key details, solution code), add fields within each chapter and appropriately identify “required” fields (such as fields for dates, values (such as quantities or costs), names (such as related to owners), and add interactions (such as conversations (i.e., multi-party chats); approvals; tasks; attachments; update components) (244); by creating applications for capturing and processing data, workflows or process automation configurations can be created to automate ESG analysis and audit processes (such as: perform quality assurance analysis on updated data; calculate average E, S, and G scores for each supplier (if data is available); send notifications to ESG departments (such as through connected devices, data-driven workflow platforms {such as through in-application notification centers or dashboards}, SMS); create second notifications related to any suppliers with E, S, or G scores below specified thresholds and send second notifications to ESG and risk management departments (246).
[0095] Referring to FIG. 20 Business process challenges related to supply chains can be automated using the configuration of the subject service management cloud (44). A particular buyer (such as a large Fortune 500 entity) can require that all suppliers / partners accurately meet their delivery requirements (i.e., orders on time, not over, not under, not damaged, etc.), or they will be subject to a fine that should be paid and without dispute, unless there is a dispute within a relatively short window of time after the penalty is issued. Due to the many operators involved (e.g., partner manufacturing, shipping, logistics personnel; supplier logistics personnel; potential information provided in the data cloud through external suppliers (such as Project 44, which can geographically track shipping containers, etc.)) both within and outside of a particular supplier / partner organization, it can be very challenging to properly flag and support potential penalty disputes (and in fact, as a result, many disputes can not be able to be timely brought at all, resulting in significant operational costs to the various parties involved). In some embodiments, a custom application can be created to introduce any proposed buyer deductions or penalties (262), original order information (264), related shipping information (266), information from partners (268), final goods / arrival and other milestone information (270), and automatically (272) and efficiently create an information package for supporting a penalty dispute with the buyer (274), and the information package can be automatically submitted to the buyer’s dispute resolution portal through a service management cloud-generated workflow.
[0096] Using the additional data and experience in solving various business challenges automatically, and using the large amount of data that continues to be updated and aggregated using various instances of the service management cloud (44), a neural network configuration can be created to help users and organizations solve various business challenges based on relevance, labeled data, heuristics and algorithms, and reinforcement learning models based on business goals. In addition, the subject service management cloud (44) system can be configured to automatically identify gaps in various data sets, tables, and / or documents and seek to automatically fill in such gaps. For example, in one embodiment, in a configuration in which an application or process is configured to utilize certain information from a “purchase order” document (such as in a business process automation configuration) and in which a given purchase order has all of the required information but is missing the actual mailing address of the supplier, the system can 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.
[0097] DATA-DRIVEN AUTOMATION
[0098] As described above, the data-driven workflow platform herein can allow for no-code automation of processes at various levels. In some embodiments, the platform can provide a graphical user interface (GUI) that allows users to configure, create, and manage automations that initiate workflows when data changes. In some cases, an automation can be created by defining a rule that automates an action triggered by a selected data object’s trigger event. In some cases, the rule can include a definition of the trigger event, a definition of a condition for performing the action, and a definition of the action.
[0099] FIG. 21-FIG. 23 An example of a GUI for creating and / or editing an automation is shown. As shown, the GUI 2100 can allow a user to create, modify, or edit an automation with multiple configurable fields. For example, the automation GUI 2100 can provide at least three fields including a trigger 2101, a condition 2103, and an action 2105, allowing for convenient configuration of a trigger-condition-action type of automation. FIG. 21
[0100] In some embodiments, the automation can be data-driven. For example, each field (e.g., trigger 2101, condition 2103, and action 2105) can be configured with auto-populated values or data fields. The auto-populated values or data fields can be determined dynamically based on the connected data objects 2017. For example, in setting up an automation object 2107, a drop-down menu 2201 with dynamic population options (e.g., add attachment, based on time, update approval) can be provided, as shown in FIG. 22 As shown. Users can 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 can select from option list 2201 to set trigger events. In some cases, the options provided in drop-down menu 2201 can be dynamically changed based on the connected data object. For example, trigger options can indicate a data field (e.g., a column) on which a change can trigger an action. In another example, a trigger can include an action / operation performed in the connected cloud database (e.g., creating a new record).
[0101] In some cases, users may be allowed to define trigger conditions. Conditions can define specific values or states for the trigger. For example, conditions could be a new phase, the number of days before or after the due date, or the number of days exceeding or falling below a threshold. FIG. 22 As shown, the GUI can also allow users to set or define conditions via the Conditions panel 2203. The Conditions panel 2203 provides data fields with auto-fill options, such as filter conditions 2205. Users can select the column to which filtering is applied from the list of options provided in the drop-down menu 2205. In some cases, the option list can be automatically populated based on the connected data objects. Users can be allowed to further define the filtering conditions (e.g., no value, greater than, equal to, less than, between, greater than or equal to, less than or equal to, etc.) via the Conditions panel 2203. For example, users can define thresholds 2207 and relationships (e.g., equal to) to apply filtering. In some cases, users can create compound conditions (e.g., condition groups) to combine multiple conditions (e.g., filter conditions) 2209 using operators (e.g., AND, OR) 2208. The GUI 2203 can also allow users to create complex conditions, such as by adding conditions or condition groups 2211. Condition groups can be added using any suitable operation (e.g., AND). The triggering events and conditions can then 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 triggering conditions can be implemented using the platform's data mining features. For example, data mining capabilities can automatically detect changes in data defined by triggering events and conditions. Details regarding data mining features are described later in this article.
[0102] FIG. 23An example of a GUI for user creation of actions is shown. Actions can relate to assigning owners, escalating alerts, updating selected data fields, placing orders, and other various actions. As shown in the example, a user can select an action from a drop down menu 2302 that presents a list of action options. Action options can be dynamically determined based on the connected object. As shown in the example, actions can include, but are not limited to, adding observers, creating output APIs, creating records, publishing comments, sending notifications, updating fields, assigning to users, assigning to groups, etc. In some cases, actions can involve directly adding or modifying data in the connected data cloud. For example, execution of an action can directly call an API to a cloud service (e.g., Salesforce) to perform an action (e.g., add a new data record in a new column or table in the data cloud) or update a source data object (e.g., update field 2303). Such automatic write-back capabilities as described elsewhere herein can beneficially allow for reduced latency and increased efficiency without the transformations or data clean-up required by traditional ETL.
[0103] In some cases, the list of options for defining triggers and / or actions can be fixed across different connected data objects. For example, trigger options and / or actions can be pre-built based on industry knowledge and expertise. For example, trigger options and / or actions can be built based on connected data cloud monitoring services (e.g., available API calls). Alternatively, an automatically populated list of options for defining actions and / or triggers can be dynamically provided based on the selected data object. The automatically populated list of options can be determined based on predetermined rules, industry knowledge and expertise, and / or data patterns extracted from past data. For example, different action options can be mapped to different types of data objects. In some cases, a list of action options can be dynamically provided according to past behavior associated with a user, organization, industry, etc. For example, a first user / industry’s action menu can be different from a second user / industry’s action menu presented based on past data associated with that user / industry. In some cases, action options can be dynamically provided based on time. For example, different menus or options can be provided based on different times of the year (e.g., different months, different seasons, etc.).
[0104] FIG. 54 and FIG. 55An example of a GUI for an automated flow is shown. As mentioned above, an automated flow is a no-code automation platform that allows access to system functions and control flow on data cloud data without requiring programming expertise. The system described in this paper can provide available variables for each action in the automated flow. Users can use functions presented through the GUI (such as 'link' buttons and / or operators (e.g., the $ operator)) to identify variables outside the automation (e.g., variables from a previous step in the automated process) and use these variables in one or more actions. Variables can come from raw data and / or intermediate data generated by any step of the automated process.
[0105] FIG. 54 An example of a GUI is shown that allows the creation of custom payloads in API integration using operators (e.g., the $ operator) 5401. The API can allow sending custom messages to external APIs (such as the Slack API) based on dynamic variables from automations. The GUI can also allow selection of linked values from automations. For example, a dropdown menu 5403 can display filtered options (only valid options (data fields)) to help ensure that automations can run successfully. As shown in the example, a user can select a reference value from the dropdown menu to trigger the logging variable.
[0106] A GUI can also allow users to control automated flows through high-level logic without requiring coding or programming skills. For example... FIG. 55 As shown, the GUI allows users to access data in the data cloud to set or change trigger 5501 to initiate automation. The system can provide one or more high-level logics in a visual manner. The high-level logic provided by the system is intuitive and requires no coding skills. For example, logic such as loops and if statement logic can be provided as loops and branches on the GUI so that users can control the flow of automation. Users can use high-level logic on automation variables to control the flow of automation by selecting dynamic variables, logical operators (such as equal to or less than / greater than), and another dynamic variable to compare. FIG. 55 An example of a GUI for controlling an automated flow using visual features such as loop 5503 and branch 5505 is shown. As shown in the exemplary flow, the loop action 5503 in the automation can control the flow to search for all valid records and run sub-workflows 5507 one by one on each record found in the record search. The automation flow can then use the branch action 5505 to perform if statement logic checks to perform other actions based on the checks found in the path 5509 of the branch.
[0107] The GUI provided by the system can hide complex programming concepts (such as types and variable scopes) from the user to make it more convenient for the user to utilize data in automations. Intuitive functionality can be provided and the system can automatically determine the associated complex programming concepts. For example, a user can provide input such as referencing a list of data and / or running a sub-process for each piece of data in the list, while the types and variable scopes are automatically determined by the system based on the user input.
[0108] In some embodiments, in addition to the GUI for creating or defining automations, the data-driven workflow platform herein can also provide intelligent automations or automation suggestions using artificial intelligence (AI) techniques. For example, an AI model can be trained using past actions, conditions, and trigger data, as well as connected data objects. Once trained, the AI model can be able to automatically determine trigger conditions (e.g., condition values) and / or actions to provide suggestions to the user.
[0109] DYNAMIC RELATIONSHIPS AND DATA MODELS
[0110] The data-driven workflow platform described herein can allow users to create dynamic relationships within data. This dynamic relationship capability beneficially allows flexible rules to connect data elements together. For example, a user can understand that certain elements (such as master data and transaction data) are related: goods to entry port, SKU to PO, computer to vendor. When something happens upstream (e.g., an upstream trigger automation), this upstream data can be used to identify the downstream impact, thereby avoiding delays (e.g., days or weeks) in identifying the impact.
[0111] In some embodiments, relationships can be created by connecting data models or elements of data models within the platform. As described above, the data-driven workflow platform can include adapters configured to connect to data objects in a cloud repository. The adapters can allow users to map fields between the storage data models in the platform and table fields in the data cloud. The storage data models in the platform can include different types of data sets. In some cases, for example, the different types of data can include such as “elements,” “tasks,” “applications,” etc. The adapters can make data hosted in the data cloud (e.g., Snowflake) appear like native data inside the platform. For example, as described above, the data-driven workflow platform can include a data model for “elements.” The data model for elements can include a table field for “element name” and a table field for “element type.” The data model for elements can be connected to a data object in the data cloud (e.g., Snowflake) that includes a table field for “element name” and a table field for “element type.” The adapter for the data model for elements can map the table field for “element name” in the data model for elements to the table field for “element name” in the data object in the data cloud, and map the table field for “element type” in the data model for elements to the table field for “element type” in the data object in the data cloud. FIG. 17As shown, the adapter can provide a GUI that allows users to set mappings and data type matching. For example, users can assign data types (e.g., transaction, element, application, etc.) to data fields or tables of data hosted in the data cloud. For instance, to create an ESG application, the adapter can connect to a table stored in the data cloud, and the platform can automatically identify elements relevant to the ESG application, such as vendors, products, economy, environment, labor, society, etc., and display a GUI with auto-populated fields, allowing users to assign data types to the extracted elements. For example, users can assign data type element types to vendors and products (e.g., master data / static data), or assign element types to economy, environment, labor, and / or society (e.g., transaction data / streaming data). This operation can be performed without applying any modifications or changes to the data in the data cloud.
[0112] 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 "Element" type data named "Product" (which contains a complete list of all products manufactured or sold by the customer) and "Transaction" type data named "Inventory Location" (indicating the quantity of each product on hand for the customer).
[0113] In some cases, users can manually create relationships through the GUI provided by the platform. FIG. 24 and FIG. 25 An example GUI for creating or adding relationships is shown. FIG. 24 As shown, the GUI 2400 can provide users with fields to create relationships (e.g., equality) by selecting one or more data fields 2403 of a first data model or element 2401 of the first data model and selecting one or more data fields 2405 of a second data model or element 2407 of the second data model. Field name options can be automatically populated in a dropdown menu 2409 of the selected object. FIG. 25 As shown, relationships can be created between two objects of various data types defined within the platform. For example, object 2501 can be an application type, an element type, or a transaction type. After selecting object 2501, the associated data field 2503 can be provided for selection in the drop-down menu.
[0114] In some cases, relationships can be automatically created without user intervention. For example, the platform can analyze stored data models within the platform and can suggest automatically creating relationships. For example, the platform can automatically identify that a data model “inventory” with a column named “sku” should be related to a “product” data model with a column named “sku.” The platform can generate a suggestion to the user to set up the recommended relationship. The user can choose to accept, reject, or modify the recommended relationship. In some cases, the platform can develop an AI model for automatically identifying relationships. Alternatively, relationships can be identified based on predetermined rules (e.g., build relationships based on common identifiers, expert knowledge, or other criteria). The platform can also permit users to manage and share all relationships created for one or more applications. Users can view relationships in real-time, dynamically modify relationships at any point in time, and make decisions based on multi-layered organizations.
[0115] NO-CODE APPLICATION CREATION
[0116] As described above, a data-driven workflow platform provides a no-code configuration interface for creating cloud applications. The platform can allow 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 can provide pre-built applications so that users can further customize the pre-built applications through a “drag-and-drop” GUI. For example, the platform can provide initial “pre-built” automations for “application suites” (e.g., inventory management or merchandise sales). In some cases, these initial automations can be generated based on industry knowledge and expertise.
[0117] The platform can automatically provide initial workflows based on connected data objects. In some cases, the platform can automatically launch workflows based on connected data objects and can allow secure collaboration with third parties. Workflows can be highly configurable through computation, approval, tasks, analytics, automation, etc.
[0118] The platform can automatically select from an application suite library based on connected data objects, including logistics, merchandise sales, inventory management, risk management, procurement, finance, HR, business development, etc. For example, based on insights extracted from cloud data (e.g., data mining), the platform can select initial applications / workflows from the application suite library.
[0119] In some cases, the platform can provide a GUI for users to configure or edit pre-built workflows. This advantageously allows for no-code creation of cloud applications using pre-built automations. FIG. 26An example of a GUI 3200 for creating workflows is shown. An initial workflow can be created using pre-built automations 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, fields) to the workflow at any desired location by dragging a component from the Objects panel 3205 and placing it into the workflow. Users can be allowed to further add actions to selected objects by dragging elements (e.g., data mining, automation, calculations, relationships, assigning users, APIs, etc.) from the Actions panel 3207 to objects in the workflow. In some cases, users can add objects and / or actions by clicking on graphical elements 3203 in the workflow (e.g., a plus sign icon or object icon for adding objects) to activate a menu for selecting the objects and / or actions to add. In some cases, users can choose to delete or modify actions (e.g., automations) or objects provided in the initial workflow by interacting with graphical elements corresponding to actions or objects.
[0120] FIG. 27-FIG. 30 Another example of a GUI for creating workflows is shown. FIG. 27 As shown, the GUI can display workflows with one or more stages 2710, 2720, 2730, 2740, and 2750. The GUI can display general information associated with each stage, such as the number of actions contained in each stage and the percentage of automation 2751. Different stages can have different percentages of automation. (See diagram 2751 for details.) FIG. 27 As shown, the startup phase 2710 can be 100% automated. The startup phase can include multiple actions 2719-1, 2719-2, 2719-3, and 2719-4. In some cases, actions can include logic 2711, 2713, 2715, 2717 and objects 2712, 2714, 2716, and 2718. Logic and objects can define "who" (logic) does "what" (object). Logic can be, for example, automation, request approval, user input, calculation, relations, data mining, etc. Objects can be, for example, records, fields, tables, summaries, and various other objects / elements provided by the system. In some cases, users can modify the workflow by dragging elements from the panel (left panel) and placing them into the workflow. This panel can provide, for example, shapes 2761 (e.g., a square shape can be used to represent an action, and a diamond shape can be used to represent a decision), logic options 2763, and an object list 2765. The GUI can 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).
[0121] FIG. 28An example of a GUI showing a workflow for the second stage 2720 is shown. Similarly, the second stage workflow can include one or more actions 2721, 2722, and each action can include logic 2723 and objects 2724. In some cases, the system can recommend an initial workflow for the stage and display it on the GUI, and then the user can choose to accept, modify, or reject any component of the workflow. In some cases, the user can be permitted to zoom in / out from any stage to view the complete process 2801. The GUI can also display a preview 2803 of the next stage. FIG. 29 An example of a GUI showing a workflow for the third stage 2730 is shown. In this example, the workflow can be 50% automated, as one action includes a human analyst and the other action includes automation. FIG. 30 An example of a GUI showing a workflow for the fourth stage 2740 is shown.
[0122] FIG. 31 An example of a GUI showing a created workflow with tracking progress is shown. As FIG. 31 and FIG. 32 shown, once the workflow is deployed and executed, details about the data analysis, computations, actions, progress, etc. can be displayed to the user on the GUI.
[0123] EXAMPLES OF USE CASES
[0124] As described above, the platform can automatically select an initial workflow from a library of application suites based on the connected data objects, including logistics, merchandise sales, inventory management, risk management, procurement, finance, HR, business development, etc. For example, based on insights extracted from the cloud data (e.g., data mining), the platform can select an initial application / workflow from the library of application suites. The application suite can include multiple workflows. FIG. 33-FIG. 38 An example of a logistics application suite is shown. As shown in the example, the logistics application suite can include multiple workflows. The workflows can include data mining to identify dynamic relationships between objects, as well as automation (e.g., trigger conditions and actions). For example, as FIG. 34 shown, a lead time optimization workflow can be provided, thereby reducing excess inventory by proactively addressing channel variance gaps. Data connected to the workflow (e.g., channels, goods, partners, sites) can be mined to identify when actual lead times are within a defined tolerance level, and actions are automated to adjust the lead times. As FIG. 35 shown, a temperature alert workflow can be provided to reduce the amount of expired products by proactively managing temperature conditions during shipping. Data is mined to identify temperature issues with goods in transit. Actions between the logistics team and carriers are automated to address the alert issues. A GUI can be created as FIG. 36The illustrated customer issue workflow to reduce customs delays by proactively managing issues. Data is mined to alert on potential issues based on port congestion, strikes, and other impacts to the port. Actions between logistics and brokers are automated. Alerts can be created like FIG. 37 The illustrated delayed cargo workflow to improve OTIF by proactively identifying delayed cargo. Data is mined to identify when cargo expected arrival times are greater than promised delivery dates. Actions to identify alternative sources, expedite, and mitigate delays are automated. Alerts can be created like FIG. 38 The illustrated expedite request workflow to provide full transparency and accountability of the cost of who authorized the expedite request is managed and centralized in one platform. Actions are automated to notify carriers, logistics, and others of the approval.
[0125] AI-BASED SUGGESTIONS
[0126] In some embodiments, AI-based suggestions can be provided to initial workflows. For example, the platform can develop AI models to generate predictions about when to initiate actions (e.g., locations in the workflow), what actions to take, or other features in the initial workflow. The AI models can be trained and developed using training data sets collected within the platform. For example, past patterns of actions can be extracted from action or process data defined within the platform, and this data can be used as training data to develop the AI models. In some cases, the AI models can also predict data fields involved in the workflow.
[0127] The provided system can employ any suitable artificial intelligence techniques to generate workflows, identify automations, dynamic correlation identification, data model conversion (e.g., normalizing raw data in the cloud to conform to a stored data model in the platform), and / or perform other functions described elsewhere herein. Artificial intelligence, including machine learning algorithms, can be used to train predictive models for predicting suggestions (e.g., automations, workflows, etc.), extracting data relationships, normalizing data, performing impact analysis as described above, and various other functions described elsewhere herein. For example, the machine learning algorithm can be a neural network. Examples of neural networks include deep neural networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs). The machine learning algorithm can include one or more of a support vector machine (SVM), a Naive Bayes classifier, a linear regression model, a quantile regression model, a logistic regression model, a random forest, an isolation forest (iForest) model, a neural network, a CNN, an RNN, a gradient boosting classifier or suppressor, or another supervised or unsupervised machine learning algorithm (e.g., a generative adversarial network (GAN), a Cycle-GAN, etc.). In some cases, the models trained by the machine learning algorithm can be pre-trained and implemented on the provided system, and the pre-trained models can be continually trained or refined with custom data, which can involve continually adjusting the predictive model or components of the predictive model (e.g., classifiers) to adapt to changes in the implementation environment or application of use over time (e.g., changes in user data, insight data, model performance, third-party data, etc.).
[0128] DATA MINING
[0129] Data-driven workflows can provide data mining capabilities, allowing insights to be extracted from data in the data cloud. In some cases, the data mining features of the platform can be used to trigger insight generation directly from data within the data cloud, and / or to automatically identify data events (e.g., data changes, addition / deletion of data, data anomalies, or other data analysis provided by the cloud provider). The platform can provide a GUI for users to configure or set up data mining of selected data in a convenient manner. The data mining features can be seamlessly integrated with other functions, such as automations. For example, data mining configurations or data mining results can be used as triggers and conditions for automations to initiate automations or trigger actions.
[0130] The data mining features can allow users to create data mining to automatically start workflows. In some cases, the GUI features can allow users to find data in the data cloud (e.g., users do not always know their data in the data cloud). The GUI features can also allow users to set up their data streams to connect, clean, filter, and enhance their data. FIG. 58 and FIG. 59An example of a GUI (e.g., CloudLink Explorer) is shown that allows a user to find data in a data cloud (e.g., Snowflake). As described above, the system herein can access data schema for all customers’ data in a connected data lake / cloud. The shape of the data schema (logical data structure) or table (e.g., multidimensional data model, dimension table, etc.) can be based on the data cloud configuration. As shown in the example, the CloudLink Explorer makes API calls to the data provider (e.g., Snowflake, Azure, etc.) to get metadata about the databases, schemas, and data tables in the data lake. In some embodiments, the platform can automatically provide an initial workflow based on the fetched metadata or cloud data objects. In some cases, the platform can automatically launch a workflow based on the connected data objects and can allow for secure collaboration with third parties. The platform can automatically select from an application suite library (such as a marketplace described later herein) based on the fetched cloud data objects and / or metadata. For example, based on insights extracted from the cloud data (e.g., data mining), the platform can select an initial application / workflow from the application suite library. The initial workflow can be presented to the user as a suggestion, and the user can further configure or edit the initial workflow, as described elsewhere herein.
[0131] Upon receiving the metadata, the system can convert the metadata into a graphical view that can be searched and browsed through a GUI. As shown, a graphical view 5803, 5805 of the data schema / table associated with the user (e.g., data lake associated with the user account) can be displayed on the GUI. The user can visualize their data schema / table in the underlying data lake in various formats 5803, 5805 (e.g., table format, graphical representation, etc.). The GUI can also permit the user to search and / or sort 5801 the data. As shown, a preview of the data schema 5901 can be displayed on the GUI. FIG. 58 FIG. 59
[0132] In some embodiments, the GUI provided by the system can allow the user to set logical rules or models trained on machine learning algorithm runs to find data. For example, the user can set logical rules to find data for starting a workflow. FIG. 60 An example of a GUI for a user to set logical rules (e.g., filter parameters in records and logical operators) to find data is shown. FIG. 61 An example of a GUI for a user to set machine learning-based anomaly detection and reporting rules is shown. For example, the user can set rules for preparing data, select numeric columns, select data / time columns, select windowing intervals, check results, and schedule and data mining processes through the GUI.
[0133] In some embodiments, the system can store the state of found data so that users are not repeatedly notified when data is found. For example, the system can use a data identifier (e.g., a unique identifier) to track each time a row of data begins a workflow, making subsequent data queries idempotent. For instance, if the system does not track that a row of data has triggered a workflow, the same workflow might be triggered multiple times per hour. This feature beneficially reduces unnecessary notifications to users, so that users are not repeatedly notified when data is found until the data no longer passes logical checks. The system described herein can use the primary key of a data table as the data identifier. In some cases, the system may allow users to configure or control the data identifier via a GUI. FIG. 62 An example of a GUI is shown for users to select the primary column to use as a unique identifier for their data. In some cases, the system may also allow users to perform idempotent data queries on transactional data that does not have an identifier by default.
[0134] After setting up the data mining process, users can configure automation to create new workflows using the found data. As shown in the GUI above, users can schedule the execution of the data mining process (e.g., scheduling the frequency of the data mining process or the conditions used to run the data mining process).
[0135] FIG. 39-FIG. 43 An example of a GUI for configuring or creating data mining is shown. In some cases, users can configure or set the data to be mined (e.g., a table) along with one or more parameters to run data mining on the data. FIG. 39-FIG. 42 An example of the GUI 3900 for creating objects (e.g., tables) for data mining is shown. FIG. 39 As shown, users can drag element 3903 from the object pane and drop the selected element (e.g., channel 3901). For example, users can click the element icon in the left pane and select an object (e.g., channel) from the drop-down menu. The table 3905 of the selected elements can be automatically populated on the GUI. Users can filter the selected object 3901, such as by clicking the "Filter Conditions" icon 3907, and then the filter pane 3909 will pop up with multiple configurable fields for users to set filter conditions. For example, users can set values, combine filter conditions, set filter states, etc., to set the filter conditions to be applied to object 3901. Once the filter conditions are applied, table 3905 can be automatically updated, and information about the filter condition 4001 can also be displayed along with the object, such as... FIG. 40 As shown.
[0136] The user can be prompted to drag and drop another object, such as goods 4003. Similarly, the user can be prompted (4005) to set filters to apply to the second object 4003. Once the second object and the second filter are set, the user can be prompted to set a relationship or view the relationship between the two objects. For example, clicking the relationship icon (4007) can pop up a relationship pane and allow the user to define the relationship between the two objects, as described elsewhere in this document. This table can be automatically updated as relationships and / or filters are configured.
[0137] like FIG. 41 As shown, the GUI provides users with options for column 4101 in the aggregated output table. For example, users can select the columns to be aggregated and / or define filter conditions, such as... FIG. 42 As shown. GUI 4201 allows users to select the columns to be included in the output table and define how the selected columns are aggregated. It also allows users to create new columns 4203 in the output table via the GUI.
[0138] The GUI also allows users to set actions to be performed on the tables they create. For example, ... FIG. 41 As shown, the GUI can display message 4103, prompting the user to select the action to apply to the table. The user can click the automation icon 4105 and select from the action options (e.g., create record, send notification) in the drop-down menu to set the automation action.
[0139] Once the table is created and saved (for example, the data can be written back directly to the data cloud), users can set one or more parameters to run data mining. For example, FIG. 43 The GUI shown can prompt the user (4301) to set one or more parameters to schedule the frequency and / or time of data mining operations and / or one or more parameters for filtering tables. As shown in the example, after clicking the schedule button (4303), options (4307) for setting the frequency and / or time of data mining operations can be displayed. The user can select from frequency options (such as hourly, daily, weekly) and / or set the start time via the GUI. The user can also be allowed to set filter conditions via the GUI (4309), which can be applied to the data mining operations by clicking the filter conditions button (4305).
[0140] CLOUD-NATIVE ARCHITECTURE
[0141] In one aspect, the present disclosure provides a system for providing a data-driven workflow platform. The system includes a first module configured to operably couple the data-driven workflow platform to one or more data clouds, a second module configured to map selected data objects to a data storage model of the data-driven workflow platform, wherein the selected data objects are stored on the one or more data clouds, and a visualization module configured to display, on a graphical user interface (GUI), an interaction flow for building a cloud application with or managing the selected data objects. In some cases, the interaction flow includes at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data objects.
[0142] In some embodiments, the first module is configured to convert an instruction for performing an operation on at least one of the selected data objects received through the GUI to a database operation executable in the data cloud configuration. The database operation is performed on the selected data objects in the data cloud configuration without using an extract, transform, and load (ETL) data integration process. In some cases, the selected data objects include transactional data or streaming data. In some cases, the data-driven workflow platform is configured to cache intermediate results for performing the action.
[0143] FIG. 44 An architecture of the data-driven workflow platform is schematically illustrated. The architecture can be a layered architecture that includes a data structure and storage layer, a service / platform logic layer, and a visualization / API layer. The layered architecture can allow 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 can execute workloads (e.g., queries) within a data cloud provider (e.g., AWS S3, Snowflake, Databricks, external data providers, etc.) and then stream data and / or insights back to users through a user experience interface (UI) provided by the visualization module. In some cases, the platform can employ a buffering technique to allow real-time streaming or updating from the data cloud to the enterprise SaaS solution. For example, the platform can cache intermediate results generated during workflow actions for a predetermined period of time (e.g., 15 seconds, 20 seconds, 30 seconds, etc.).
[0144] The platform can set up a monitoring process through a cloud link that connects to a notification service in the platform logic layer and a monitoring service in the data structure and storage layer, in order to receive a notification when data in a source dataset in the data cloud changes. The monitoring feature can be used to trigger actions in automated functions within the platform. Query execution takes place in the service layer. For example, queries can be processed using "virtual warehouses," where each virtual warehouse is a compute cluster for large-scale parallel processing composed of multiple compute nodes from a cloud provider.
[0145] AI-BASED APPLICATION DISCOVERY
[0146] In some embodiments, the platform can analyze available datasets and leverage artificial intelligence (AI) techniques to recommend one or more pre-defined applications. This beneficially allows users to leverage recommended applications with their data.
[0147] FIG. 45 An example of an AI-based application discovery feature according to some embodiments of the present disclosure is schematically illustrated. The system 4503 can access data patterns for all customers' data in the connected data lake 4505. The shape of the data patterns (logical data structures) or tables (e.g., multidimensional data models, dimensional tables, etc.) can be based on the data cloud configuration. The system 4503 can be the same as the data-driven workflow platform or service management cloud system described elsewhere herein. For example, an adapter of the system 4503 can make data hosted in the data cloud (e.g., Snowflake) appear like native data inside the system. For example, during configuration or integration for target data between the data cloud (e.g., Snowflake) and the system, the adapter can set up mapping and data type matching without the need to change the data or impose any type of modification to the data within the data cloud. For example, the system 4505 can send a request for accessing a user data table pattern in the data lake 4505. The request can be generated based on inputs received through the GUI 4501, such as a business process name, description, or other input information.
[0148] The system 4503 can include a plurality of pre-defined applications that are organized or managed in an application library (e.g., an application marketplace) that users or customers of the platform can install into their organizations. For example, the system 4503 can include a library of pre-defined application suites that include logistics, merchandise sales, inventory management, risk management, procurement, finance, HR, business development, etc., as described elsewhere herein.
[0149] FIG. 56 and FIG. 57Examples of GUIs for an application marketplace are shown. In some cases, the system 4503 can publish complex workflows into a marketplace that can allow users (e.g., customers) to deploy workflows selected from the marketplace in their environments. As FIG. 56 shown, workflows can be built and maintained (e.g., updated) by an administrator of the system. In some cases, a system administrator (e.g., a process specialist) can build and update workflows and deploy the updated workflows to customers, and the customers can start the workflows in their companies without having to build the related data tables, automations, approval processes, or surveys.
[0150] Workflows can be organized by category (e.g., enterprise technology, supply chain, enterprise service management, etc.) for customers to select and deploy to their own company environments. In some cases, customers / users can search for workflows by category and / or application (e.g., IT operations, leave, HR, basic events, delivery, etc.). As FIG. 57 shown, customers / users can view detailed information about a selected workflow or application (e.g., IT operations) through a GUI. For example, the GUI can show an example of the application being used by the IT operations application, typical variables that the application can track, and potential industry areas for the application.
[0151] The system can train a large language model (LLM) 4507 according to the availability of pre-defined applications and the shape of the data tables (i.e., data lake schema) needed to implement the applications. The system trains the LLM according to the shape of the data tables of the customer’s data lake. The LLM can be personalized or customized using user data. For example, the user can provide a list of data tables. The system can identify a list of available pre-defined workflows or business workflows and provide the required data for them. For example, the LLM can be trained to identify one or more workflows from a library of pre-defined workflows based at least in part on the shape of the data tables associated with the user. The system can be instructed to find data tables that have similar shape and functionality to the pre-defined workflows. For example, the system can return a JSON array of business process objects with the following keys:
[0152] -predefinedWorkflowId(String)
[0153] -table-mapping:
[0154] -predefinedTableId(String)
[0155] -tableFieldName(String)
[0156] -predefinedTableFieldName(String)
[0157] After training the LLM, the system requests the LLM to find a pre-defined application that can be driven with data in the data lake. For example, during the inference / prediction phase, the LLM can be deployed to take as input the data schema (e.g., shape of data tables) obtained from the data lake associated with a user account and output a data table mapping result. The LLM returns the data table mapping to the system for creating a pre-defined application.
[0158] If a match to a pre-defined application is found, the LLM returns the data table mapping to the system and the system creates the application on behalf of the customer. If there is no match, the system switches to the generation method and asks the LLM to generate a possible business workflow outside of the pre-defined applications.
[0159] As mentioned above, the input to the trained LLM can include the shape of a data table or schema (e.g., table fields, views, etc.). The following is an example of the input to the trained LLM:
[0160] User data table:
[0161] <[{"name":"USERS",
[0162] "databaseName":"financials",
[0163] "schemaName":"internal"},
[0164] {"name":"SHIPMENTS",
[0165] "databaseName":"financials",
[0166] "schemaName":"internal"},
[0167] {"name":"PRODUCTS",
[0168] "databaseName":"financials",
[0169] "schemaName":"internal"
[0170] The following is an example of the output of this model:
[0171] "data":{"aiCloudLinkAppDiscoveryCompletionExecute":{"apps":[{"name":"Manage Products",
[0172] "description":"Create,update,and delete product information",
[0173] "tables":["PRODUCTS",
[0174] "PRODUCT_LISTING"]},
[0175] {"name":"Manage Shipments",
[0176] "description":"Create,update,and delete shipment information",
[0177] "tables":["SHIPMENTS",
[0178] "SHIPMENT_TRANSACTION"]},
[0179] {"name":"Manage Users",
[0180] "description":"Create,update,and delete user information",
[0181] "tables":["USERS"]},
[0182] {"name":"Manage Warehouses",
[0183] "description":"View and manage warehouse usage and meteringinformation",
[0184] "tables":["WAREHOUSE_METERING_HISTORY",
[0185] "WAREHOUSE_LOAD_HISTORY",
[0186] "WAREHOUSE_EVENTS_HISTORY"]},
[0187] {"name":"Manage Contracts",
[0188] "description":"View and manage contract information",
[0189] "tables":["CONTRACT_ITEMS"]},
[0190] {"name":"View Usage Metrics",
[0191] "description":"View usage metrics for various services",
[0192] "tables":["METERING_DAILY_HISTORY",
[0193] "MONETIZED_USAGE_DAILY",
[0194] "STAGE_STORAGE_USAGE_HISTORY",
[0195] "STORAGE_USAGE",
[0196] "USAGE_IN_CURRENCY_DAILY"]}]}}
[0197] FIG. 46-FIG. 48 An example of a GUI showing AI-based application discovery features is shown. As shown, a 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 patterns in the selected data lake and identify a list of available pre-defined workflows or business workflows that have the required data to drive an application. FIG. 46 An example of a pre-defined application identified by the system as a model output is illustrated. FIG. 47 As shown, a user can select from a plurality of pre-defined applications to create an application. For example, a user can be prompted to provide input in data fields such as name, namespace, handle, description, category, and the like to create an application.
[0198] FIG. 48
[0199] AI-GENERATED WORKFLOWS
[0200] In some embodiments, workflows can be generated by AI models. For example, in an AI-based application discovery feature, if the LLM is unable to map a customer’s data to a pre-defined application, the system can use AI to generate a business workflow. The AI workflow module herein can include a trained model that takes as input a description of a business process (e.g., provided by a customer through a GUI for creating a business process) and outputs a workflow. The model can be trained using machine learning algorithms described elsewhere herein.
[0201] FIG. 49 An example of an AI-generated workflow feature is schematically illustrated in accordance with some embodiments of the present disclosure. The system 4903 can receive input from a GUI 4901, such as a business workflow name, description, or other input information. The system 4903 can be the same as the data-driven workflow platform or service management cloud system described elsewhere herein.
[0202] The system 4903 can train the LLM to create a workflow. In some cases, the LLM can be trained by i) instructing the LLM to undertake its purpose for creating a business workflow by the system, 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 for each stage in the process, and iv) requesting the LLM to identify data related to tracking each step of the business process.
[0203] After the LLM is trained 4905, the system 4903 can provide the LLM with the name of the business process, a description of the process, and any additional context from the user about how they would like to define their business process (received through the GUI 4901).
[0204] The LLM can be trained to output business workflow data. In some cases, the output of the LLM can include a list of instructions for the system 4903 to create a business workflow on behalf of the customer.
[0205] The AI-generated workflow feature can be able to automatically generate a business process for a user / customer. For example, the system can i) receive instructions for creating a new business workflow, ii) break down the business process into named stages, iii) create named steps for reaching the stages, and iv) create data fields needed for tracking the business process for each step, returning only a json object. An example of the format is as follows:
[0206] - Stage:
[0207] - Name: Stage Name
[0208] - Step:
[0209] - Description: Step Description
[0210] - Data fields:
[0211] - Name: Field name
[0212] - Field type: Select only one of the following field types: BOOLEAN | TEXT | NUMBER | DECIMAL | DATE | DATETIME
[0213] The input to the trained LLM can be based on user input. For example, the user input can include a business process name: <HR Onboarding>, a business process description: <Run employee onboarding process>, and additional business process context: <Make sure to include tracking of social security number, birthdate, and t-shirt size so that we can send them a swag item when they join the company>.
[0214] As described above, the output of the model can include instructions for the system to create a business workflow. The following is an example of a workflow:
[0215]
[0216]
[0217] FIG. 50-FIG. 53 An example of a GUI showing AI-generated workflow features is shown. FIG. 50 An example of input provided through the GUI is shown. As shown in the example, a user can provide a description of a business process to start the business process generation. As shown in FIG. 51 the system can automatically collect data associated with the user and the business process, such as through the AI-based application discovery features described above. As shown in FIG. 52 the LLM can output one or more stages of the business process, such as onboarding, pre-onboarding, and onboarding. As shown in FIG. 53 the LLM can output one or more steps or actions for each stage. After executing the list of instructions output by the LLM, the GUI can display graphical elements representing the one or more stages and one or more steps for each stage.
[0218] In some embodiments, various functionalities and visual features can be provided virtually without the need to install, configure, or manage any software. The data-driven workflow platform system can be implemented on a cloud platform system (e.g., including a server or serverless) in communication with one or more user systems / devices over a network. The cloud platform system can be configured to provide the above-mentioned functionalities to a user through one or more user interfaces or graphical user interfaces (GUIs), which can include, but are not limited to, a web-based GUI, a client-side GUI, or any other GUI as described above. For example, a user can access a coding challenge through a web-based GUI or within a web browser. In some cases, a graphical user interface (GUI) or user interface can be provided on a display. The display can or can not be a touchscreen. The display can be a light-emitting diode (LED) screen, an organic light-emitting diode (OLED) screen, a liquid crystal display (LCD) screen, a plasma screen, or any other type of screen. The display can be configured to show a user interface (UI) or graphical user interface (GUI) presented through an application (e.g., through an application programming interface (API) executing on a user device or user system or on the cloud).
[0219] Without the use of such exclusive terminology, the term “comprising” in a claim associated with this disclosure should allow for the inclusion of any additional element (element) - whether such element (element) is listed in the given number of claims or not, or whether the addition of such element (element) can be regarded as altering the nature of the subject matter recited in such claim. Unless specifically defined herein, all technical and scientific terms used herein are to be given as broad a meaning as is possible given the overall scope of the claims.
[0220] COMPUTING SYSTEM
[0221] With reference to FIG. 63 shows a block diagram that illustrates an example machine comprising a computer system 6300 (e.g., a processing or computing system), within which a set of instructions can be executed to cause a device to perform or execute any one or more of the aspects and / or methodologies of static code scheduling of the present disclosure. FIG. 63 The components of the example machine in FIG. 6 are only examples and are not intended to limit the scope of use or functionality of any hardware, software, embedded logic components, or combinations of two or more such components in implementing particular embodiments.
[0222] The computer system 6300 can include one or more processors 6301, a memory 6303, and a storage 6308, which communicate with each other by way of a bus 6340. The bus 6340 can also link the computer system 6300 with one or more input devices 6333 (which can include, e.g., a keypad, a keyboard, a mouse, a stylus, etc.), one or more output devices 6334, one or more storage devices 6335, and various tangible storage media 6336. All of these elements can communicate with one another and with other components through the bus 6340, either directly or via one or more interfaces or adapters. For example, the various tangible storage media 6336 can communicate with the bus 6340 by way of a storage media interface 6326. The computer system 6300 can have any suitable physical form, including, but not limited to, one or more integrated circuits (ICs), printed circuit boards (PCBs), mobile hand-held devices (such as mobile telephones or PDAs), laptop or notebook computers, distributed computer systems, computer grids, or servers.
[0223] The computer system 6300 includes one or more processors 6301 (e.g., central processing units (CPUs), general purpose graphics processing units (GPGPUs), or quantum processing units (QPUs)) that execute functions. The processor 6301 optionally includes a cache memory 6302 for temporary local storage of instructions, data, or computer addresses. The processor 6301 is configured to assist in the execution of computer-readable instructions. The computer system 6300 can provide the functionality of the components depicted in the middle due to the processor 6301 executing non-transitory, processor-executable instructions embodied in one or more tangible computer-readable storage media, such as the memory 6303, the storage 6308, the storage devices 6335, and / or the storage media 6336. The computer-readable media can store software that implements a particular embodiment, and the processor 6301 can execute the software. The memory 6303 can read the software from one or more other computer-readable media (such as the mass storage devices 6335, 6336) or from one or more other sources by way of a suitable interface (such as the network interface 120). The software can cause the processor 6301 to perform one or more processes described or illustrated herein, or one or more steps of one or more processes. Executing this software can include defining data structures stored in the memory 6303 and modifying the data structures as instructed by the software. FIG. 63 The computer system 6300 includes one or more processors 6301 (e.g., central processing units (CPUs), general purpose graphics processing units (GPGPUs), or quantum processing units (QPUs)) that execute functions. The processor 6301 optionally includes a cache memory 6302 for temporary local storage of instructions, data, or computer addresses. The processor 6301 is configured to assist in the execution of computer-readable instructions. The computer system 6300 can provide the functionality of the components depicted in the middle due to the processor 6301 executing non-transitory, processor-executable instructions embodied in one or more tangible computer-readable storage media, such as the memory 6303, the storage 6308, the storage devices 6335, and / or the storage media 6336. The computer-readable media can store software that implements a particular embodiment, and the processor 6301 can execute the software. The memory 6303 can read the software from one or more other computer-readable media (such as the mass storage devices 6335, 6336) or from one or more other sources by way of a suitable interface (such as the network interface 120). The software can cause the processor 6301 to perform one or more processes described or illustrated herein, or one or more steps of one or more processes. Executing this software can include defining data structures stored in the memory 6303 and modifying the data structures as instructed by the software.
[0224] Memory 6303 can include various components (e.g., machine-readable media) including, but not limited to, a random access memory component (e.g., RAM 6304) (e.g., static RAM (SRAM), dynamic RAM (DRAM), ferroelectric random access memory (FRAM), phase- change random access memory (PRAM), etc.), a read-only memory component (e.g., ROM 105), and any combination thereof. ROM 6305 can be used to uni-directionally communicate data and instructions to processor 6301, while RAM 6304 can be used to bi-directionally communicate data and instructions to processor 6301. ROM 6305 and RAM 6304 can include any suitable tangible computer-readable medium described below. In one example, a basic input / output system 6306 (BIOS), including basic routines that help to transfer information between elements within computer system 6300, such as during startup, can be stored in memory 6303.
[0225] Fixed storage 6308 is optionally bi-directionally connected to processor 6301 through storage control unit 6307. Fixed storage 6308 provides additional data storage capacity and can also include any suitable tangible computer-readable medium described herein. Storage 6308 can be used to store operating system 6309, executable files 6310, data 6311, applications 6312 (application programs), etc. Storage 6308 can also include an optical disc drive, a solid-state memory device (e.g., a flash-based system), or a combination of any of the above. Information in storage 6308 can be incorporated into memory 6303 as virtual memory, where appropriate.
[0226] In one example, storage device 6335 can be removably connected to computer system 6300 via storage device interface 6325 (e.g., via an external port connector (not shown)). In particular, storage device 6335 and associated machine- readable medium can provide non-volatile and / or volatile storage of machine-readable instructions, data structures, program modules, and / or other data for computer system 6300. In one example, software can reside, completely or partially, within machine-readable medium on storage device 6335. In another example, software can reside, completely or partially, within processor 6301.
[0227] Bus 6340 connects the various subsystems. Reference to a bus, in this context means a set of one or more digital signal lines serving a common function. Bus 6340 can be any of several types of bus structures including, but not limited to, a memory bus, a memory controller, a peripheral bus, a local bus, and any combination thereof, using any of a variety of bus architectures including, but not limited to, Industrial Standard Architecture (ISA), Enhanced ISA (EISA), Micro Channel Architecture (MCA), Video Electronics Standards Association Local (VLB), Peripheral Component Interconnect (PCI), PCI-X, Accelerated Graphics Port (AGP), HyperTransport (HTX), Serial Advanced Technology Attachment (SATA), and any combination thereof.
[0228] Computer system 6300 can also include input device 6333. In one example, a user of computer system 6300 can enter commands and / or other information into computer system 6300 through input device 6333. Examples of input device 6333 include, but are not limited to, an alpha-numeric input device (e.g., a keyboard), a pointing device (e.g., a mouse or touchpad), a touchpad, a touch screen, a multi-touch screen, a joystick, a stylus, a gamepad, an audio input device (e.g., a microphone, a voice response system, etc.), an optical scanner, a video or still image capture device (e.g., a camera), and any combination thereof. In some embodiments, input device is a Kinect, a Leap Motion, etc. Input device 6333 can be connected to bus 6340 via any of a variety of input interfaces 6323 (e.g., input interface 6323), including, but not limited to, serial, parallel, game port, USB, FIREWIRE, THUNDERBOLT, or any combination thereof.
[0229] In particular embodiments, when computer system 6300 is connected to network 6330, computer system 6300 can communicate with other devices (in particular, mobile devices and enterprise systems, distributed computing systems, cloud storage systems, cloud computing systems, etc.) that are connected to network 6330. Communications to and from computer system 6300 can be sent through network interface 6320. For example, network interface 6320 can receive incoming communications (such as requests or responses from other devices) in the form of one or more packets, such as Internet Protocol (IP) packets, from network 6330, and computer system 6300 can store the incoming communications in memory 6303 for processing. Computer system 6300 can similarly store outgoing communications (such as requests or responses to other devices) in the form of one or more packets in memory 6303 and communicate the outgoing communications from network interface 6320 to network 6330. Processor(s) 6301 can access these communications packets stored in memory 6303 for processing.
[0230] Examples of network interface 6320 include, without limitation, network interface cards, modems, and any combination thereof. Examples of network 6330 or network segment 6330 include, without limitation, a distributed computing system, a cloud computing system, a wide-area network (WAN) (e.g., the Internet, an enterprise network), a local-area network (LAN) (e.g., a network associated with an office, a building, a campus, or other relatively small geographic space), a telephone network, a direct connection between two computing devices, a peer-to-peer network, and any combination thereof. A network such as network 6330 can employ communication modes that are both wired and / or wireless. In general, any network topology can be used.
[0231] Information and data can be displayed through the display 6332. Examples of the display 6332 include, without limitation, a liquid crystal display (LCD), a thin-film transistor liquid crystal display (TFT-LCD), an organic liquid crystal display (OLED) such as a passive-matrix OLED (PMOLED) or an active-matrix OLED (AMOLED) display, a plasma display, and any combinations thereof. The display 6332 can be connected through the bus 6340 to the processor 6301, the memory 6303, and the fixed storage 6308, as well as other devices such as the input device 6333. The display 6332 is linked to the bus 6340 through the video interface 6322, and data transfer between the display 6332 and the bus 6340 can be controlled by the graphics control 6321. In some embodiments, the display is a video projector. In some embodiments, the display is a head-mounted display (HMD), such as a VR headset. In further embodiments, suitable VR headsets include, by way of non-limiting examples, the HTC Vive, the Oculus Rift, the Samsung Gear VR, the Microsoft HoloLens, the Razer OSVR, the FOVE VR, the Zeiss VR One, the Avegant Glyph, the Freefly VR headset, and the like. In still further embodiments, the display is a combination of devices such as those disclosed herein.
[0232] In addition to the display 6332, the computer system 6300 can include one or more other peripheral output devices 6334, including, without limitation, audio speakers, printers, storage devices, and any combinations thereof. Such peripheral output devices can be connected to the bus 6340 through the output interface 6324. Examples of the output interface 6324 include, without limitation, a serial port, a parallel connection, a USB port, a FIREWIRE port, a THUNDERBOLT port, and any combinations thereof.
[0233] Additionally or alternatively, the computer system 6300 can provide functionality as a result of logic hardwired into the circuitry or otherwise embodied in the circuitry, which can operate in place of or in conjunction with software to perform one or more processes or one or more steps of a process described or illustrated herein. Reference to software in the present disclosure can encompass logic hardwired into the circuitry or otherwise embodied in the circuitry, and reference to a computer-readable medium can encompass the circuitry itself, where appropriate. Further, where appropriate, reference to a computer-readable medium can encompass one or both of a storage device storing software and circuitry that acts to interpret and execute the software stored on the storage device. The present disclosure encompasses any suitable combination of hardware, software, or both.
[0234] Those skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality.
[0235] The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein can be implemented or performed with a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor can be a microprocessor, but in the alternative, the processor can be any conventional processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0236] The steps of a method or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by one or more processors, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The processor and the storage medium can reside in an ASIC. The ASIC can reside in a user terminal. In the alternative, the processor and the storage medium can reside as discrete components in a user terminal.
[0237] In light of the description herein, suitable computing devices include, by way of 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 smart phones, tablet computers, personal digital assistants, video game consoles, and vehicles, as selected by one of skill. Those of skill will also recognize that selected televisions, video players, and digital music players having optional computer network connections are suitable for use in the systems described herein. In various embodiments, suitable tablet computers include those having booklet, tablet, and convertible configurations, as known to those of skill.
[0238] In some embodiments, a computing device includes an operating system configured to perform executable instructions. For example, an operating system is software that includes programs and data that manages the device’s hardware and provides services for executing applications. Those skilled in the art will recognize, as non-limiting examples, suitable server operating systems include FreeBSD, OpenBSD, NetBSD®, Linux, Linux, Mac OS X Windows and Those skilled in the art will recognize, as non-limiting examples, suitable personal computer operating systems include Mac OS and UNIX-like operating systems such as In some embodiments, the operating system is provided by cloud computing. Those skilled in the art will also recognize, as non-limiting examples, suitable mobile smart phone operating systems include OS, Research In Windows Windows and Those skilled in the art will also recognize, as non-limiting examples, suitable media streaming device operating systems include Apple Google Amazon and Those skilled in the art will also recognize, as non-limiting examples, suitable video game console operating systems include Microsoft Xbox One, and NON-TRANSITORY COMPUTER-READABLE STORAGE MEDIUM
[0239] In some embodiments, the platforms, systems, media, and methods disclosed herein include one or more non-transitory computer-readable storage media encoded with a program that includes instructions executable by an operating system of an optionally networked computing device. In further embodiments, the computer-readable storage media is a tangible component of the computing device. In still further embodiments, the computer-readable storage media is optionally removable from the computing device. In some embodiments, the computer-readable storage media includes, by way of non-limiting example, CD-ROM, DVD, flash memory device, solid-state memory, disk drive, tape drive, optical drive, distributed computing system (including cloud computing systems and services), and the like. In some cases, the program and instructions are encoded on the media permanently, essentially permanently, semi-permanently, or non-transitorily.
[0240] COMPUTER PROGRAM
[0241] 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 CPU of a computing device, written to perform a specified task. Computer readable instructions can be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), computing data structures, and the like, that perform particular tasks or implement particular abstract data types. In light of the disclosure provided herein, those of skill in the art will recognize that a computer program can be written in various versions of various languages.
[0242] The functionality of computer readable instructions can be combined or distributed as desired in various environments. In some embodiments, the computer program includes one sequence of instructions. In some embodiments, the computer program includes multiple sequences of instructions. In some embodiments, the computer program is provided from one location. In other embodiments, the computer program is provided from multiple locations. In various embodiments, the computer program includes one or more software modules. In various embodiments, the computer program includes, in part or in whole, one or more web applications, one or more mobile applications, one or more standalone applications, one or more web browser plug-ins, extensions, add-ins, or add-ons, or combinations thereof.
[0243] WEB APPLICATION
[0244] In some embodiments, the computer program includes a web application. In light of the disclosure provided herein, those of skill in the art will recognize 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 hosted on a server computer and accessed through a web browser of a client computing device. In other embodiments, the web application is hosted on a server computer and accessed through a mobile application of a client computing device. In still other embodiments, the web application is hosted on a server computer and accessed through a standalone application of a client computing device. created on a software framework such as Microsoft®.NET or Ruby on Rails (RoR). In some embodiments, the web application utilizes one or more database systems including, by way of non-limiting examples, a relational database system, a non-relational database system, an object-oriented database system, a associative database system, an XML database system, and a document-oriented database system. In further embodiments, suitable relational database systems include, by way of non-limiting examples, SQL Server, mySQL TM and Those skilled in the art will also recognize that, in various embodiments, the web application is written in one or more versions of one or more languages. The web application can be written in one or more markup languages, presentation definition languages, client-side scripting languages, server-side coding languages, database query languages, or combinations thereof. In some embodiments, 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 definition 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), ActionScript, JavaScript, or ) In some embodiments, the web application is written, to some extent, in a server-side coding language such as Active Server Pages (ASP), Perl, Java TM , Java Server Pages (JSP), Hypertext Preprocessor (PHP), Python TM , Ruby, Tcl, Smalltalk, , 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 an enterprise server product such as Lotus In some embodiments, the web application includes a media player element. In various further embodiments, the media player element utilizes one or more of a number of suitable multimedia technologies including, by way of non-limiting examples, HTML 5, Java TM and
[0245] Referring FIG. 64 In particular embodiments, the application-providing system includes 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, and the like. In this embodiment, the application-providing system also includes one or more application servers 6420 (such as Java servers,.NET servers, PHP servers, and the like) and one or more web servers 6430 (such as Apache, IIS, GWS, and the like). The web servers optionally expose one or more web services through an app application programming interface (API) 6440. Through a network (such as the Internet), the system provides browser-based and / or mobile-native user interfaces.
[0246] Referring FIG. 65 In particular embodiments, the application-providing system can alternatively have a distributed, cloud-based architecture 6500 and include elastically-scaled, auto- scaling web server resources 6510 and application server resources 6520 and synchronously-replicated databases 6530.
[0247] MOBILE APPLICATION
[0248] 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 at the time of manufacture. In other embodiments, the mobile application is provided to the mobile computing device over a computer network as described herein.
[0249] In view of the disclosure provided herein, the mobile application is created using techniques known to those of skill in the art using hardware, languages, and development environments known to the art. Those of skill in the art will recognize that the mobile application is written in several languages. As non-limiting examples, suitable programming languages include C, C++, C#, Objective-C, Java TM , JavaScript, Pascal, Object Pascal, Python TM , Ruby, VB.NET, WML, and XHTML / HTML with or without CSS, or combinations thereof.
[0250] Suitable mobile application development environments are available from a number of sources. As non-limiting examples, commercial development environments include Airplay SDK, alcheMo, Celsius, Bedrock, Flash Lite,.NET Compact Framework, Rhomobile, and WorkLight Mobile Platform. Other development environments are available for free, including, by way of non-limiting example, Lazarus, MobiFlex, MoSync, and Phonegap. In addition, mobile device manufacturers distribute software development kits, including, by way of non-limiting example, iPhone and iPad (iOS) SDK, Android TM SDK, SDK, BREW SDK, OSSDK, Symbian SDK, webOS SDK, and Mobile SDK.
[0251] Those skilled in the art will recognize that there are several commercial forums available for distributing mobile applications, including, by way of non-limiting example, App Store, Play, Chrome WebStore, App World, App Store for Palm devices, App Catalog for webOS, Windows Marketplace for Mobile, Marketplace, Ovi Store for devices, BlackBerry App World, Apps, and DSi Shop.
[0252] STANDALONE APPLICATION
[0253] In some embodiments, a computer program includes a standalone application, which is a program that is run as an independent computer process, rather than an add-on to an existing process, e.g., a plug-in. Those skilled in the art will recognize that standalone applications are typically compiled. A compiler is a computer program that transforms source code written in a programming language into binary object code, such as assembly language or machine code, by way of non-limiting example. Suitable compiled programming languages include C, C++, Objective-C, COBOL, Delphi, Eiffel, Java TM , Lisp, Python TM , Visual Basic, and VB.NET, or combinations thereof. Compilation is typically performed at least in part to create an executable program. In some embodiments, a computer program includes one or more executable compiled applications.
[0254] WEB BROWSER PLUGIN
[0255] In some embodiments, the computer program includes a web browser plug-in (e.g., extension, etc.). In computing, a plug-in is one or more software components that add specific functionality to a larger software application. Manufacturers of software applications support plug-ins to enable third-party developers to create the ability to extend the application, support easy addition of new features, and reduce the size of the application. Plug-ins, when supported, enable customization of the functionality of a software application. For example, plug-ins are commonly used in web browsers to play video, generate interactions, scan for viruses, and display specific file types. Those skilled in the art will be familiar with several web browser plug-ins including Player, and In some embodiments, the toolbar includes one or more web browser extensions, add-ins, or add-ons. In some embodiments, the toolbar includes one or more explorer bars, toolbands, or deskbands.
[0256] In view of the disclosure provided herein, those skilled in the art will recognize that several plug-in frameworks are available that enable the development of plug-ins in a variety of programming languages, including, by way of non-limiting examples, C++, Delphi, Java TM , PHP, Python TM , and VB.NET, or combinations thereof.
[0257] A web browser (also known as an Internet browser) is a software application designed for use with a computing device connected to a network for retrieving, displaying, and traversing information resources on the World Wide Web. By way of non-limiting examples, suitable web browsers include Internet Chrome, Opera and KDE Konqueror. In some embodiments, the web browser is a mobile web browser. Mobile web browsers (also known as micro browsers, mini browsers, and wireless browsers) are designed for use with mobile computing devices, including, by way of non-limiting examples, handheld computers, tablet computers, netbook computers, subnotebook computers, smart phones, music players, personal digital assistants (PDAs), and handheld video game systems. By way of non-limiting examples, suitable mobile web browsers include: browser, RIM Browser, Blazer, Browser, for mobile phones Internet Mobile, Basic Web, Browser, Opera Mobile and PSP TM browser.
[0258] SOFTWARE MODULE
[0259] In some embodiments, the platforms, systems, media, and methods disclosed herein include software, server, and / or database modules, or use of the same. In view of the disclosure provided herein, the software modules are created using techniques known to those of skill in the art using machines, software, and languages known to the art. The software modules disclosed herein are implemented in a variety of ways. In various embodiments, the software modules comprise a file, a code segment, a programming object, a programming structure, a distributed computing resource, a cloud computing resource, or a combination thereof. In further various embodiments, the software modules comprise a plurality of files, a plurality of code segments, a plurality of programming objects, a plurality of programming structures, a plurality of distributed computing resources, a plurality of cloud computing resources, or a combination thereof. In various embodiments, the one or more software modules comprise, by way of non-limiting example, a web application, a mobile application, a standalone application, and a distributed or cloud computing application. In some embodiments, the software modules are located in one computer program or application. In other embodiments, the software modules are located in more than one computer program or application. In some embodiments, the software modules are hosted on one machine. In other embodiments, the software modules are hosted on more than one machine. In further embodiments, the software modules are hosted on a distributed computing platform, such as a cloud computing platform. In some embodiments, the software modules are hosted on one or more machines in one location. In other embodiments, the software modules are hosted on one or more machines in more than one location.
[0260] DATABASE
[0261] In some embodiments, the platforms, systems, media, and methods disclosed herein include one or more databases, or use of the same. In view of the disclosure provided herein, those of skill in the art will recognize that many databases are suitable for storing and retrieving data or information local to the systems herein. The databases herein can be accessed, maintained, or controlled by the data-driven workflow platform. In some cases, the databases can be distinct from the cloud-based repositories associated with the platform customers. The databases can be local, or can be accessed remotely by the data-driven workflow platform.
[0262] In various embodiments, suitable databases include, by way of non-limiting example, relational databases, non-relational databases, object-oriented databases, object databases, entity-relationship model databases, associative databases, XML databases, document-oriented databases, and graph databases. Further non-limiting examples include SQL, PostgreSQL, MySQL, Oracle, DB2, Sybase, and MongoDB. In some embodiments, the database is internet-based. In further embodiments, the database is web-based. In still further embodiments, the database is cloud-computing based. In particular embodiments, the database is a distributed database. In other embodiments, the database is based on one or more local computer storage devices.
[0263] Various embodiments of the present disclosure are described herein. Reference to these examples is made in a non-limiting sense. They are provided to illustrate more broadly applicable aspects of the present disclosure. Various alterations can be made to the disclosed content without departing from the true spirit and scope of the disclosure. Further, many modifications can be made to adapt a particular situation, material, composition of matter, process, process actives or steps, to the objective, spirit or scope of the present disclosure. Further, those of ordinary skill in the art will understand that each of the variations described and illustrated herein has discrete components and features that can be readily separated from or combined with features of any of the other several embodiments without departing from the scope or spirit of the present disclosure. All such modifications are intended to be within the scope of claims associated with the present disclosure.
[0264] While preferred embodiments of the application have been shown and described herein, it will be apparent to those skilled in the art that many more modifications are possible without departing from the inventive concepts. The application is not intended to be limited to the specific examples provided in the specification. While the application has been described with reference to the above description and an illustrative drawing, the description and drawings are to be regarded as illustrative in nature and explanations used are intended to convey a proper understanding of the application. It will be understood by those within the relevant art that the application is not limited to just the examples described herein. The scope of the application is to be defined by the appended claims, and equivalents thereof.
Claims
1. A method for providing a data-driven workflow platform, the method comprising: mapping one or more data fields of selected data objects to one or more elements of a data storage model of the data-driven workflow platform, wherein the selected data objects are stored in a data cloud configuration that is distinct from and operatively coupled to the data-driven workflow platform, and wherein the mapping comprises defining relationships between the selected data objects and the one or more elements of the data storage model; displaying, on a graphical user interface (GUI) of the data-driven workflow platform, a flow for building a cloud application with or managing the selected data objects, wherein the flow allows a user to add, remove, or modify one or more components of the cloud application, and wherein the flow comprises at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data objects; and executing the cloud application built using the flow displayed on the GUI of the data-driven workflow platform to automatically detect the trigger event of the selected data objects in the data cloud configuration and automatically perform the action on at least one of the selected data objects without extracting or loading the selected data objects from the data cloud configuration and without moving the selected data objects to the data-driven workflow platform.
2. The method of claim 1, wherein the data cloud configuration comprises one or more data clouds storing data objects, and wherein the data-driven workflow platform is granted permission to access, process, and edit the data objects stored on the one or more data clouds.
3. The method of claim 2, wherein the one or more data clouds store the data objects using one or more different data schemas.
4. The method of claim 1, wherein the relationships are defined by a user through the GUI.
5. The method of claim 1, wherein the relationships are automatically generated by the data-driven workflow platform and displayed on the GUI as recommended relationships.
6. The method of claim 1, wherein mapping the selected data objects to the data storage model comprises identifying missing elements from the data storage model and prompting a user to identify another set of data objects for the missing elements.
7. The method of claim 1, wherein the data storage model comprises multiple types of data, including at least one of a task type, an application type, and an element data type.
8. The method of claim 7, wherein mapping the selected data objects to the data storage model comprises mapping the selected data objects to an element data type.
9. The method of claim 1, wherein the flow permits a user to add, remove, or modify one or more components of the cloud application by dragging and dropping one or more graphical elements to the flow.
10. The method of claim 9, wherein the flow comprises a pre-built template flow prompting the user to add, remove, or modify the one or more components.
11. The method of claim 10, wherein the pre-built template flow is automatically determined based at least in part on the selected data objects and the cloud application.
12. The method of claim 1, wherein the rules are automatically generated based at least in part on one or more data fields added to the flow.
13. The method of claim 12, wherein the rules are automatically generated using a model, and wherein the model is developed using rules extracted from past actions and previously processed data.
14. The method of claim 13, wherein the model is trained using a machine learning algorithm.
15. The method of claim 13, wherein the rules are recommended to a user on the GUI, and wherein the at least one graphical element allows the user to accept, reject, or modify the rules.
16. The method of claim 1, wherein the rules are manually defined by a user through the GUI.
17. The method of claim 1, wherein the rules comprise a definition of the trigger event, and wherein the trigger event is based on time, or is associated with a change in value or a change in state of at least one subset of the selected data objects.
18. The method of claim 17, wherein the rules further comprise a definition of a condition for performing the action.
19. The method of claim 17, wherein the rules further comprise a definition of the action.
20. The method of claim 19, wherein the action is selected from adding an observer, updating a field, sending a notification, publishing a comment, assigning to a user or group, and creating a record.
21. The method of claim 1, further comprising displaying the selected data objects conforming to the data storage model within a portal of the GUI.
22. The method of claim 21, further comprising modifying a value of at least one of the selected data objects through the GUI, and automatically updating the value of the corresponding selected data object in the data cloud configuration through an API connection.
23. The method of claim 21, further comprising receiving an instruction through the GUI for performing an operation on at least one of the selected data objects, and performing the operation on the at least one of the selected data objects in the data cloud configuration without using an extract, transform, and load (ETL) or extract, load, and transform (ELT) data integration process.
24. The method of claim 23, wherein the selected data objects comprise transactional data or streaming data, and wherein performing the operation further comprises caching intermediate results through the data-driven workflow platform.
25. The method of claim 1, wherein the trigger event of the selected data objects comprises a change in the selected data objects stored in the data cloud configuration.
26. The method of claim 1, wherein the flow is identified from a plurality of pre-defined workflows by a large language model (LLM).
27. The method of claim 26, wherein the flow is identified based at least in part on a data pattern of the selected data objects stored in the data cloud configuration.
28. The method of claim 26, wherein an output of the LLM comprises a list of instructions for creating the flow.
29. A system for providing a data-driven workflow platform, the system comprising at least one processor and instructions executable to cause the at least one processor to perform operations comprising: operably coupling the data-driven workflow platform to one or more data clouds distinct from the data-driven workflow platform; mapping one or more data fields of selected data objects to one or more elements of a data storage model of the data-driven workflow platform, wherein the selected data objects are stored on the one or more data clouds, and wherein the mapping comprises defining relationships between the selected data objects and the one or more elements of the data storage model; displaying, on a graphical user interface (GUI) of the data-driven workflow platform, a flow for building a cloud application with or managing the selected data objects, wherein the flow allows a user to add, remove, or modify one or more components of the cloud application, and wherein the flow comprises at least one graphical element corresponding to a rule for automating an action triggered by a trigger event of the selected data objects; executing the cloud application built using the flow displayed on the GUI of the data-driven workflow platform to automatically detect the trigger event of the selected data objects in the data cloud configuration and automatically perform the action on at least one of the selected data objects without extracting or loading the selected data objects from the data cloud configuration and without moving the selected data objects to the data-driven workflow platform.
Citation Information
Patent Citations
Generalized flowsheet platform for corporation
CN101364289A
Workflow event mechanism implementation method based on script engine
CN105302581A