Note: Descriptions are shown in the official language in which they were submitted.
WO 2023/283088
PCT/US2022/035521
SYSTEMS, METHODS, USER INTERFACES, AND DEVELOPMENT
ENVIRONMENTS FOR GENERATING INSTRUCTIONS IN A COMPUTER
LANGUAGE
PRIORITY CLAIM
[0001] This application is based upon and claims the benefit of
priority to U.S. Patent
Application No. 17/733,423, filed on April 29, 2022, which is a continuation
of and claims
the benefit of priority to U.S. Patent Application Serial No. 17/372,007,
filed on July 9, 2021.
The present application claims priority to, benefit of, and incorporates by
reference the
entirety of the contents of the cited applications.
FIELD
[0002] The present disclosure generally relates to computer
systems. More particularly,
the present disclosure relates to application development, the use of
application user
interfaces in creating computer programs, and the use of application user
interfaces in
generating computer source code or other instructions for execution by
computer
applications, computer systems, or intemet services.
BACKGROUND
[0003] A computer program is a collection of instructions that
can be executed by a
computer device to perform one or more tasks. Computer programs usually are
written by a
computer programmer (i.e., software developer, programmer, coder) having
specialized
knowledge of one or more highly complex computer programming languages (e.g.,
Java, C,
C++).
[0004] A computer programmer may enter human-readable source code
in a source code
editor or integrated development environment (IDE). A compiler program then
transforms
(i.e., "compiles") the source code into a lower-level machine-readable
language, such as
assembly language or machine code, for execution by a computer device. Some
compilers
generally may compile source code into an intermediate language for execution
by an
interpreter computer program of a runtime environment.
[0005] Unlike computer programmers, traditional users lack the
specialized knowledge,
experience, and skills needed to write computer programs in a computer
programming
language. As such, traditional users generally are unable to develop their own
custom
applications and remain constrained by existing computer programs. Therefore,
a need exists
1
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
for providing applications, user interfaces, and application development
environments that
empower users with the ability to access, query, obtain, and/or perform other
operations with
organizational data and other types of information available in computer
systems.
SUMMARY
[0006] Aspects and advantages of embodiments of the present
disclosure will be set
forth in part in the following description, or can be learned from the
description, or can be
learned through practice of the embodiments.
[0007] One example aspect of the present disclosure is directed
to a computer system
that implements an organizational data management platform that controls and
leverages
organizational data to manage organizational applications for an organization.
The computer
system includes one or more processors. The computer system includes one or
more
databases that collectively store a set of organizational data associated with
the organization,
where the set of organizational data comprises an object graph data structure
comprising a
plurality of employee data objects that respectively correspond to a plurality
of employees of
the organization. The computer system includes one or more non-transitory
computer-
readable media that collectively store instructions that, when executed by the
one or more
processors, cause the computer system to perform operations. The operations
include
maintaining the one or more databases that collectively store the set of
organizational data
and the object graph data structure associated with the set of organizational
data, providing an
application user interface for generating instructions in a custom computer
language where
the custom computer language provides one or more programmatic commands for
performing operations based on the set of organizational data, analyzing input
from the
application user interface where such input comprises information for
generating the
instructions in the custom computer language, and generating the instructions
in the custom
computer language based at least in part on analyzing the input from the
application user
interface.
[0008] Another example aspect of the present disclosure is
directed to a computer-
implemented method for generating instructions in a computer language. For
example, a
computer-implemented method performed by one or more processors may include
maintaining one or more databases that collectively store organizational data
associated with
an organization where the organizational data comprises a plurality of data
objects that
respectively correspond to records from the organizational data, providing an
application user
interface for generating instructions in a custom computer language where the
custom
2
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
computer language includes programmatic commands for performing operations
based on the
organizational data, analyzing input from the application user interface where
the input
comprises information for generating the instructions in the custom computer
language, and
generating the instructions in the custom computer language based at least in
part on the input
from the application user interface.
[0009] Another example aspect of the present disclosure is
directed to one or more
tangible non-transitory computer-readable media storing computer-readable
instructions that,
when executed by one or more processors, cause the one or more processors of a
computing
system to perform operations. For example, the operations may include
maintaining one or
more databases that collectively store organizational data associated with an
organization
where the organizational data comprises a plurality of data objects that
respectively
correspond to records from the organizational data, providing an application
user interface for
generating instructions in a custom computer language where the custom
computer language
includes programmatic commands for performing operations based on the
organizational
data, analyzing input from the application user interface where the input
comprises
information for generating the instructions in the custom computer language,
and generating
the instructions in the custom computer language based at least in part on the
input from the
application user interface.
[0010] Another example aspect of the present disclosure is
directed to a computing
system having one or more processors that are communicatively coupled to one
or more non-
transitory computer-readable media with instructions that, when executed by
the one or more
processors, cause the one or more processors to perform operations. For
example, the
operations may include maintaining one or more databases that collectively
store
organizational data associated with an organization where the organizational
data comprises a
plurality of data objects that respectively correspond to records from the
organizational data,
providing an application user interface for generating instructions in a
custom computer
language where the custom computer language includes programmatic commands for
performing operations based on the organizational data, analyzing input from
the application
user interface where the input comprises information for generating the
instructions in the
custom computer language, and generating the instructions in the custom
computer language
based at least in part on the input from the application user interface.
[0011] Other aspects of the present disclosure are directed to
various systems, computer-
implemented methods, apparatuses, and non-transitory computer-readable media
for
providing applications, user interfaces, and processing associated with
generating instructions
3
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
in a computer language. These and other features, aspects, and advantages of
various
embodiments of the present disclosure will become better understood with
reference to the
following description and appended claims. The accompanying drawings, which
are
incorporated in and constitute a part of this specification, illustrate
example embodiments of
the present disclosure and, together with the description, serve to explain
the related
principles.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Detailed discussion of embodiments directed to one
skilled in the art is set forth
in the specification, which makes reference to the appended figures, in which:
[0013] FIG. 1 depicts a block diagram of an example environment
including a
computing system that performs operations, according to example embodiments of
the
present disclosure.
[0014] FIG. 2 depicts a block diagram of an example of a
computing device, according
to example embodiments of the present disclosure.
[0015] FIG. 3 depicts a block diagram of an example computing
environment including
multiple computing systems, according to example embodiments of the present
disclosure.
[0016] FIG. 4 depicts a flow diagram of an example method for
providing an application
user interface for generating instructions in a computer language, according
to example
embodiments of the present disclosure.
[0017] FIG 5 depicts a flow diagram of an example method for
providing an application
user interface with a code editor for generating instructions in a computer
language,
according to example embodiments of the present disclosure.
[0018] FIG. 6A depicts an illustration of an example application
user interface with field
assistance for generating instructions in a computer language, according to
example
embodiments of the present disclosure.
[0019] FIG. 6B depicts an illustration of an example application
user interface with
function assistance for generating instructions in a computer language,
according to example
embodiments of the present disclosure.
[0020] FIG. 6C depicts an illustration of an example application
user interface that
allows browsing of available functions and associated information for
generating instructions
in a computer language, according to example embodiments of the present
disclosure.
4
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0021] FIG. 7 depicts a flow diagram of an example method for
providing an application
user interface with selectable options for generating instructions in a
computer language,
according to example embodiments of the present disclosure.
[0022] FIG. 8A depicts an illustration of an example application
user interface with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
[0023] FIG. 8B depicts an illustration of an example user
interface with selectable
options based on organizational data and integrated third-party applications
for generating
instructions in a computer language, according to example embodiments of the
present
disclosure.
[0024] FIG. 9A depicts an illustration of an example application
user interface with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
[0025] FIG. 9B depicts an illustration of an example application
user interface with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
[0026] FIG. 9C depicts an illustration of an example application
user interface with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
1100271 FIG. 9D depicts an illustration of an example application
user interface with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
[0028] FIG. 9E depicts an illustration of an example application
user interface with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
[0029] FIG. 9F depicts an illustration of an example application
user interface with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
[0030] Reference numerals that are repeated across plural
figures are intended to identify
the same features in various implementations.
DETAILED DESCRIPTION
[0031] Reference now will be made in detail to embodiments, one
or more examples of
which are illustrated in the drawings. Each example is provided by way of
explanation of the
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
embodiments, not limitation of the present disclosure. In fact, it will be
apparent to those
skilled in the art that various modifications and variations can be made to
the embodiments
without departing from the scope or spirit of the present disclosure. For
instance, features
illustrated or described as part of one embodiment can be used with another
embodiment to
yield a further embodiment. Thus, it is intended that aspects of the present
disclosure cover
such modifications and variations.
[0032] Generally, the present disclosure is directed to improved
computer systems,
computer applications, user interfaces, computer-implemented methods, and/or
services
associated with generating instructions in a computer language. In particular,
examples
described in the present disclosure enable users of various levels of
experience, skill, and
knowledge to generate computer instructions based on information or operations
provided via
application user interfaces. As one example, a computing system may provide an
application
user interface for generating instructions in a custom computer language. The
application
user interface generally can assist users with constructing statements in a
custom computer
language for performing various types of operations associated with
organizational data in an
organizational data management system. The application user interface may
include one or
more selectable options based on organizational data and/or a code editor for
editing
instructions in the custom computer language. The computer system also may
provide code
assist information with the application user interface, for example, as part
of the application
user interface or dynamically based on user input or user interaction
associated with the
application user interface. information provided via the application user
interface may be
analyzed and used to generate instructions in the custom computer language.
The instructions
generated in the custom computer language then can be executed in association
with one or
more different applications, computer systems, and/or data stores.
[0033] Organizations generally use many different types of
applications and computer
systems to sustain operations. Such applications and computer systems
generally rely on
organizational data and processing tied to organizational data. Usually,
organizational data is
generated, modified, and utilized separately across various different types of
third-pal ty
applications and computer systems. For example, various different third-party
applications
and computer systems may generate and/or store portions of organizational
data, may
perform operations based on organizational data, may provide applications and
related
services to users based on organizational data, etc. However, this leaves
organizations
responsible for ensuring that their own organizational data is updated
consistently and
regularly across a variety of different applications and computer systems. In
many cases,
6
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
organizational data and associated processes become out of sync when not
updated
consistently. As such, organizations generally are left to performing
continuous manual
processing of organizational data, coordinating and ensuring compatibility
between changing
configurations across each of multiple different third-party applications and
computer
systems, and/or building their own expensive, proprietary integrations across
various third-
party applications and computer systems that must be maintained and updated
regularly (e.g.,
when organizational procedures change, based on organizational data management
changes,
when vendors update their own proprietary third-party applications, etc.). As
such,
organizations can benefit from improved computer systems, computer
applications,
computer-implemented methods, user interfaces, and related services for
generating
instructions in a computer language for execution by a system of record that
manages
organizational data and associated operations performed based on the
organizational data
across various different third-party applications.
[0034] The present disclosure describes examples for providing
applications, user
interfaces, and processing associated with generating instructions in a
computer language. In
examples of the present disclosure, a computer system may provide such
applications, user
interfaces, and processing by maintaining one or more databases that
collectively store
organizational data associated with an organization where the organizational
data comprises a
plurality of data objects that respectively correspond to records from the
organizational data,
providing an application user interface for generating instructions in a
custom computer
language where the custom computer language includes programmatic commands for
performing operations based on the organizational data, analyzing input from
the application
user interface where the input comprises information for generating the
instructions in the
custom computer language, and generating the instructions in the custom
computer language
based at least in part on the input from the application user interface.
[0035] Example implementations of the present disclosure can be
implemented in the
context of or as a portion of an organizational data management platform that
controls and
leverages organizational data to manage organizational applications such as
payroll,
operations, human resources (e.g., onboarding and offboarding), benefits,
information
technology and device management, third-party application integration and
access, and many
others.
[0036] The organizational data management platform can hold, for
each of one or more
organizations, a centralized set of organizational data that acts as a single,
centralized system
of record for all organizational management processes for that organization.
Each
7
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
organization can include a number of users which are able to access and
interact with the
organizational data management platform. Some users may have administrative
permissions
which define whether the user is able to access and/or modify certain types of
organizational
data for their organization.
[0037] The organizational data for each organization can include
data directly entered
into the organizational data management platform and/or can include data
retrieved, pulled,
or otherwise obtained from one or more first party and/or third-party
applications with which
the organizational data management platform may have varying levels of
integration. This
ingestion and storage of data from third-party applications is in contrast to
systems which
simply sit on top of third-party applications and apply rules at run time. In
some
implementations, the organizational data management platform can provide a
user with the
ability (e.g., by configuring Simple Mail Transfer Protocol (SMTP) settings)
to configure the
cadence or periodicity at which the organizational data management platform
receives or
ingests data (e.g., via .csv files) from third-party applications. Data can be
transferred
between the organizational data management platform and third-party
applications (e.g., to
and/or from) using various techniques such as application programming
interfaces, data
hooks, flat files, bulk uploads/downloads and/or other data transfer
mechanisms.
[0038] The organizational data can, in some implementations, be
held as one or more
object databases. For example, multiple object classes can be defined in the
object databases.
Example object classes include employees, devices, job candidates, benefits
policies,
documents, pay instances, timecards, and/or other objects. For each object,
values can be
provided and maintained for one or more attributes, such as location, role,
salary, etc. Links
can be made between different objects. For example, one or more device objects
can be
associated with employee objects.
[0039] The object database(s) can be represented as or can store
data which can be
represented as one or more graphs with nodes that correspond to objects and
edges that
correspond to links or logical associations between objects and/or object
attribute(s).
Graph(s) can be traversed to understand or leverage relationships among
objects and their
attribute(s). In one example, the organizational data can be synthesized into
a single graph
which includes multiple classes of objects and defines complex relationships
among objects
and their attribute(s). For example, all workflows, including payroll, IT,
etc. can be run
through one platform and graph. In some implementations, the employee objects
can be
referred to and/or treated as sentinel nodes.
8
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0040] In some implementations, the organizational data can
include organizational
structure data. For example, the organizational structure data can be encoded
within links or
edges defined between objects of the organizational data or can be stored as a
separate data
layer. For example, the organizational structure data can define
organizational relationships
between objects, including employee objects. As one example, the
organizational structure
data may indicate that a first employee object has the relationship of
"manager- relative to a
second employee object. The organizational relationships can be defined
between specific
objects and/or groups of objects. As another example, the organizational
structure data may
indicate that a first group of employees (e.g., the -IT Administrator" group
of employees) has
a certain set of permissions (e.g., device activation/deactivation) relative
to a particular group
of devices (e.g. the "work laptops" group of the devices).
[0041] Example implementations of the present disclosure
leverage a domain-specific
query language that can be used to perform (e.g., in real time) queries
against the
organizational data. The custom query language can be used to define functions
or queries
which return data that satisfies or responds to the functions or queries. In
some
implementations, the custom query language is a declarative language. In some
implementations, the custom query language includes organization functions or
operators
which leverage organizational relationships within the organizational data.
For example, the
organization function ORG(employee, relationship) returns one or more other
employees that
have the specified relationship to the specified employee.
[0042] Specifically, according to an aspect of the present
disclosure, the custom query
language can be incorporated into reports, policies, triggering, data
management, and/or
workflows. For example, a user-constructed query in the custom query language
can be used
for intelligently facilitating various downstream operations, for example, by
reference/query
to an employee or organizational chart.
[0043] In one example, the custom query language can allow for
the creation of
"calculated fields" which can be data fields which are or act as a function of
a custom query
language script and can be propagated to or referenced by other reports,
policies, triggering,
data management, and/or workflows.
[0044] In other examples, custom query language expressions can
underlie or be
included in predefined reports, policies, triggering, data management, and/or
workflows.
These predefined items can be visible and modifiable by the user (e.g., in raw
query
expression form or via a wizard user interface). For example, in the wizard
user interface,
objects or functions can be automatically populated and/or suggested.
9
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0045] In some implementations, the custom query language can
handle or include
functions or expressions which include "organization" functions or operators
which leverage
employee or organizational data held by the core system of record. For
example, as described
elsewhere herein, the function ORG(employee, relationship) can return one or
more other
employees that have the relationship to the employee given in the function.
Other example
organization functions or operators may return employees or other data based
on any of the
employee or organizational data held by the core system of record (e.g.,
return all employees
working in California making over $100,000/year).
[0046] The systems, methods, applications, user interfaces, and
computer program
products described herein provide a number of technical effects and benefits.
As one
example, the embodiments described in the present disclosure provide automated
generation
and processing of computer instructions for use across a variety of
applications and systems
that utilize different underlying technologies and technical designs, for
example, more
efficiently and with fewer computing resources (e.g., less processing power,
less memory
usage, less power consumption, etc.), than would otherwise be wasted by
maintaining
custom, proprietary, and/or manual synchronization processes. In particular,
examples of the
present disclosure facilitate and automate the generation and processing of
computer
instructions using a rigorous computerized process to allow a system of record
to perform
operations involving organizational data and also to perform various
operations across
different applications and systems based on the organizational data.
[0047] With reference to the Figures, example embodiments of the
present disclosure
will be discussed in further detail.
[0048] FIG. 1 depicts a block diagram of an example environment
100 including a
computing system 110 that performs operations according to example embodiments
of the
present disclosure. The environment 100 includes a network 102, a computing
system 110,
one or more computing devices 112, one or more processors 114, one or more
memory
devices 116, data 118, instructions 120, a remote computing system 130, one or
more
computing devices 132, one or more processors 134, one or more memory devices
136, data
138, instructions 140, one or more computing devices 152, one or more
processors 154, one
or more memory devices 156, data 158, and instructions 160.
[0049] The network 102 can include any type of communications
network. For example,
the network 102 can include a local area network (LAN), a wide area network
(WAN), an
intranet, an extranet, and/or the internet. Further, the network 102 can
include any number of
wired or wireless connections and/or links that can be used to communicate
with one or more
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
computing systems (e.g., the computing system 110 and/or the remote computing
system
130) and/or one or more devices (e.g., the one or more computing devices 152).
Communication over the network 102 can be performed via any type of wired
and/or wireless
connection and can use a wide variety of communication protocols (e.g.,
TCP/IP, HTTP,
SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes
(e.g.,
VPN, secure HTTP, SSL).
[0050] The computing system 110 can include any combination of
systems and/or
devices including one or more computing systems (not shown) and/or one or more
computing
devices 112. Further, the computing system 110 may be connected (e.g.,
networked) to one or
more computing systems (e.g., remote computing system 130) and/or one or more
computing
devices (e.g., one or more computing devices 132, 152) via the network 102.
The computing
system 110 may operate in various different configurations including as a
server or a client
machine in a client-server network environment, or as a peer machine in a peer-
to-peer (or
distributed) network environment. Though the computing system 110 is depicted
in FIG. 1 as
a single device, the computing system 110 can include any collection or
combination of
devices that, individually or in combination with other devices, execute a set
of one or more
instructions to perform any one or more of the operations discussed herein.
[0051] In this example, the computing system 110 includes the
one or more computing
devices 112. The one or more computing devices 112 can include any type of
computing
device. For example, the one or more computing devices 112 can include a
personal
computing device (e.g., a desktop computing device), a mobile computing device
(e.g., a
smartphone or tablet device), a wearable computing device (e.g., a smartwatch
device), an
embedded computing device, a web appliance, a server computing device, a
network router, a
switch, a bridge, or any device capable of executing a set of instructions
(e.g., any
combination of instructions which can include sequential instructions and/or
parallel
instructions) associated with one or more operations and/or one or more
actions to be
performed by the computing system 110 or any of the constituent components
and/or devices
of the computing system 110.
[0052] Any of the one or more computing devices 112 can include
the one or more
processors 114. The one or more processors 114 can include any processing
device (e.g., a
processor core, a microprocessor, an ASIC, a FPGA, a controller, or a
microcontroller) and
can include one processor or multiple processors that may be operatively
connected. In some
embodiments, the one or more processors 114 may include one or more complex
instruction
set computing (CISC) microprocessors, one or more reduced instruction set
computing
11
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
(RISC) microprocessors, one or more very long instruction word (VLIW)
microprocessors,
and/or one or more processors that are configured to implement other
instruction sets.
[0053] The one or more computing devices 112 can include the one
or more memory
devices 116. The one or more memory devices 116 can be used to store data
and/or
information and can include one or more computer-readable media, one or more
non-
transitory computer-readable storage media, and/or one or more machine-
readable media.
Though the one or more memory devices 116 are depicted in FIG. 1 as a single
unit (e.g., a
single medium), the computer-readable storage media can include a single
medium or
multiple media (e.g., a centralized or distributed database, and/or associated
caches and
servers) that store one or more sets of instructions. Further, the computer-
readable storage
media can include any medium that is capable of storing, encoding, and/or
carrying a set of
instructions for execution by a computing device and which may cause the
computing device
to perform any of the one or more operations described herein. In some
embodiments, the
computer-readable storage media can include one or more solid-state memories,
one or more
optical media, and/or one or more magnetic media. By way of example, the one
or more
memory devices 116 can include any combination of random-access memory (RAM),
read-
only memory (ROM), EEPROM, EPROM, one or more flash memory devices, and/or one
or
more magnetic storage devices (e.g., one or more hard disk drives).
[0054] The one or more processors 114 can be configured to
execute one or more
instructions to perform the operations described herein including, for
example, one or more
operations associated with providing applications, user interfaces, and
processing associated
with generating instructions in a computer language (e.g., a custom computer
language
designed for use with organizational data) across various types of
applications and/or
computer systems. Further, the one or more memory devices 116 can store the
data 118
and/or the instructions 120, which can be executed by the one or more
processors 114 to
cause the one or more computing devices 112 to perform one or more operations.
For
example, the one or more operations performed by the one or more processors
114 can
include maintaining one or more databases that collectively store
organizational data
associated with an organization where the organizational data comprises a
plurality of data
objects that respectively correspond to records from the organizational data,
providing an
application user interface for generating instructions in a custom computer
language where
the custom computer language includes programmatic commands for performing
operations
based on the organizational data, analyzing input from the application user
interface where
the input comprises information for generating the instructions in the custom
computer
12
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
language, and generating the instructions in the custom computer language
based at least in
part on the input from the application user interface, etc.
[0055] The data 118 can include organizational data (e.g.,
organizational data that can
include one or more organizational records), one or more data structures
defining, describing,
and/or otherwise associated with the organizational data, rule data (e.g.,
rule data that
includes one or more rules used to configure an application policy, one or
more rules
maintained by or otherwise associated with an organizational data management
system, etc.),
application data (e.g., application data associated with a plurality of
applications including
one or more third-party applications and/or one or more intra-organizational
applications),
third-party integration data (e.g., data providing configuration and/or other
information for
performing integration and synchronization with each of one or more different
third-party
systems and/or applications), organizational policy data (e.g., organizational
policy data
associated with one or more organizational policies), application policy data
(e.g., policy data
that includes one or policies associated with the organizational data, the
rule data, the
application data, one or more applications, one or more devices, etc.), data
that includes
instructions in a custom computer language (e.g., a custom query language
based on
organizational data), data that includes rules associated with the custom
computer language,
and/or other types of data. Further, the instructions 120 can include one or
more instructions
to use data including the data 118 to perform any one or more of the various
operations
described herein. In some embodiments, the one or more memory devices 116 can
be used to
store one or more applications that can be operated by the one or more
processors 114. The
data 118, the instructions 120, and/or the one or more applications can be
associated with an
organization. Further, the computing system 110 may be associated with an
organization and
may be configured to manage the one or more applications. For example, the
computing
system 110 can perform one or more operations associated with authenticating
one or more
users that attempt to access the one or more applications, which can include
one or more
third-party applications that may be remote from the computing system 110.
[0056] Any of the one or more computing devices 112 can include
one or more input
devices 122 and/or one or more output devices 124. The one or more input
devices 122 can
be configured to receive input (e.g., user input) and can include one or more
touch screens,
one or more keyboards, one or more pointing devices, (e.g., mouse device), one
or more
buttons, one or more microphones, and/or one or more cameras. The one or more
output
devices 124 can include one or more display devices, one or more loudspeaker
devices, one
or more haptic output devices. By way of example, the one or more output
devices 124 can
13
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
be used to display a graphical user interface via a display device that can
include a touch
screen layer that is configured to detect one or more inputs (e.g., one or
more user inputs).
The one or more processors 114 may perform one or more operations (e.g.,
operations
associated with providing applications, user interfaces, and processing
associated with
generating instructions in a computer language, for example, based at least in
part on user
input received via one or more graphical user interfaces.
[0057] The remote computing system 130 includes the one or more
computing devices
132. Each of the one or more computing devices 132 can include one or more
processors 134,
one or more memory devices 136, the data 138, and/or the instructions 140. The
remote
computing system 130 can include any of the attributes and/or capabilities of
the computing
system 110. Further, the remote computing system 130 can communicate with one
or more
devices and/or one or more systems via the network 102.
[0058] In some embodiments, the remote computing system 130 can
include one or more
applications (e.g., computer software applications comprising computer
instructions) that can
be stored and/or executed by the remote computing system 130. Further, the one
or more
applications can include one or more third-party applications that may be
accessed from the
computing system 110 and which are at least partly operated from the remote
computing
system 130. The one or more third-party applications generally may be
associated with and
provided by an organization that is different from the organization that is
associated with the
computing system 110. Further, the data 138 can include one or more portions
of the
organizational data (e.g., one or more organizational records), one or more
data structures
associated with the organizational data, rule data, organizational policy
data, application
policy data, third-party integration data, application object data, and/or
other types of data.
[0059] One or more computing devices 152 (e.g., user devices or
any other types of
devices) can include one or more processors 154, one or more memory devices
156, the data
158, and/or the instructions 160. Such one or more computing devices 152 may
include any
of the attributes and/or capabilities of the one or more computing devices
112, 132. Further,
such one or more computing devices 152 can communicate with one or more
devices and/or
one or more systems via the network 102.
[0060] In some embodiments, the one or more computing devices
152 can include one or
more applications (e.g., computer software applications comprising computer
instructions)
that can be stored and/or executed by such one or more computing devices 152.
Further, the
one or more applications can include one or more third-party applications that
may be
accessed from the one or more computing devices 152 and which are at least
partly operated
14
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
from such one or more computing devices 152. Data 138 may include, for
example, one or
more portions of the organizational data (e.g., one or more organizational
records), one or
more data structures associated with the organizational data, rule data,
organizational policy
data, application policy data, third-party integration data (e.g., third-party
application
integration data), application object data, and/or other types of data.
[0061] FIG. 2 depicts a block diagram of an example computing
device 200 according to
example embodiments of the present disclosure. The computing device 200 can
include one
or more attributes and/or capabilities of the computing system 110, the remote
computing
system 130, the one or more computing devices 152, and/or the computing device
200.
Furthermore, the computing device 200 can be configured to perform one or more
operations
and/or one or more actions that can be performed by the computing system 110,
the remote
computing system 130, the one or more computing devices 152, and/or the
computing device
200.
[0062] As shown in FIG. 2, the computing device 200 can include
one or more memory
devices 202, organizational data 203, rule data 204, organizational policy
data 205,
application policy data 206, integration data 207, data structures 208,
application object data
209, one or more interconnects 212, one or more processors 220, a network
interface 222,
one or more mass storage devices 224, one or more output devices 226, one or
more sensors
228, one or more input devices 230, and/or one or more location devices 232.
The one or more memory devices 202 can store information and/or data (e.g.,
organizational data 203, rule data 204, organizational policy data 205,
application policy data
206, integration data 207, data structures 208, application object data 209,
and/or any other
types of data). Further, the one or more memory devices 202 can include one or
more non-
transitory computer-readable storage media, including RAM, ROM, EEPROM, EPROM,
flash memory devices, magnetic disks, and any combination thereof. The
information and/or
data stored by the one or more memory devices 202 can be executed by the one
or more
processors 220 to cause the computing device 200 to perform one or more
operations
associated with providing applications, user interfaces, and processing
associated with
generating instructions in a computer language (e.g., computer instructions in
a custom
computer language that includes programmatic commands for performing
operations based
on organizational data). For example, such operations may include, but are not
limited to,
maintaining one or more databases that collectively store organizational data
associated with
an organization where the organizational data comprises a plurality of data
objects that
respectively correspond to records from the organizational data, providing an
application user
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
interface for generating instructions in a custom computer language where the
custom
computer language includes programmatic commands for performing operations
based on the
organizational data, analyzing input from the application user interface where
the input
comprises information for generating the instructions in the custom computer
language, and
generating the instructions in the custom computer language based at least in
part on the input
from the application user interface.
[0063] The organizational data 203 can include one or more
portions of data (e.g., the
data 118, the data 138, and/or the data 158, which are depicted in FIG. 1)
and/or instructions
(e.g., the instructions 120, the instructions 140, and/or the instructions
160, which are
depicted in FIG. 1) that are stored respectively in any of the one or more
memory devices
116, 136, 156. The organizational data 203 also can include information
associated with one
or more applications (e.g., one or more third-party applications), one or more
organizational
records and/or one or more organizational policies. In some embodiments, the
organizational
data 203 can be received from one or more computing systems (e.g., the remote
computing
system 130 depicted in FIG. 1), which can include one or more computing
systems that are
remote from the computing device 200 (e.g., in another room, building, part of
town, city, or
nation).
[0064] The rule data 204 can include one or more portions of data
(e.g., the data 118, the
data 138, and/or the data 158, which are depicted in FIG. 1) and/or
instructions (e.g., the
instructions 120, the instructions 140, and/or the instructions 160, which are
depicted in FIG.
1) that are stored in the one or more memory devices 116, the one or more
memory devices
136, and/or the one or more memory devices 156, respectively. The rule data
204 can include
information associated with one or more rules that can be used to generate
and/or implement
an application policy. The rule data 204 also can include information
associated with one or
more rules of an organizational data management system (e.g., base or default
rules provided
or enforced by the system, one or more custom rules configured by an
organization, etc.). The
rule data 204 also can include one or more rules associated with implementing
and/or
utilizing a custom computer language, such as a custom computer language for
performing
operations associated with organizational data 203. In some embodiments, the
rule data 204
can be received from one or more computing systems (e.g., the remote computing
system 130
depicted in FIG. 1), which can include one or more computing systems that are
remote from
the computing device 200.
[0065] The organizational policy data 205 can include one or more
portions of data (e.g.,
the data 118, the data 138, and/or the data 158, which are depicted in FIG. 1)
and/or
16
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
instructions (e.g., the instructions 120, the instructions 140, and/or the
instructions 160, which
are depicted in FIG. 1) that are stored in the one or more memory devices 116,
the one or
more memory devices 136, and/or the one or more memory devices 156,
respectively.
Furthermore, the organizational policy data 205 can include information
associated with one
or more organizational policies that are used to regulate one or more
applications (e.g., one or
more third-party applications), one or more computing devices, and/or one or
more records
which can include one or more organizational records and/or one or more
employee records.
In some embodiments, the organizational policy data 205 can be received from
one or more
computing systems (e.g., the remote computing system 130 depicted in FIG. 1),
which can
include one or more computing systems that are remote from the computing
device 200.
[0066] The application policy data 206 can include one or more
portions of data (e.g., the
data 118, the data 138, and/or the data 158, which are depicted in FIG. 1)
and/or instructions
(e.g., the instructions 120, the instructions 140, and/or the instructions
160, which are
depicted in FIG. 1) that are stored in the one or more memory devices 116, the
one or more
memory devices 136, and/or the one or more memory devices 156, respectively.
Furthermore,
the application policy data 206 can include information associated with one or
more policies
that are used to implement an application policy associated with one or more
applications
(e.g., one or more third-party applications), one or more computing devices,
and/or one or
more records which can include one or more organizational records and/or one
or more
employee records. In some embodiments, the application policy data 206 can be
received
from one or more computing systems (e.g., the remote computing system 130
depicted in
FIG. 1), which can include one or more computing systems that are remote from
the
computing device 200.
[0067] The integration data 207 can include one or more portions
of data (e.g., the data
118, the data 138, and/or the data 158, which are depicted in FIG. 1) and/or
instructions (e.g.,
the instructions 120, the instructions 140, and/or the instructions 160, which
are depicted in
FIG. 1) that are stored in the one or more memory devices 116, the one or more
memory
devices 136, and/or the one or more memory devices 156, respectively. The
integration data
207 can include configuration and/or operational information associated with
integrating and
synchronizing data (e.g., organizational data 203) among one or more
applications. For
example, the integration data 207 can include information that enables
integration and
synchronization between each of one or more applications (e.g., third-party
applications
and/or other applications). In an embodiment, the integration data 207
provides integration
information that allows an organizational data management system (e.g., a
system of record
17
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
for maintaining organizational data and for performing corresponding
processing), for
example, to obtain information from one or more applications (e.g., third
party and/or other
applications), to perform operations involving organizational data (e.g.,
organizational data
203) in the organizational data management system, to synchronize
organizational data across
one or more applications, to perform or cause one or more actions involving
the applications
based on organizational data in the organizational data management system,
and/or to
perform or cause one or more other operations associated with managing
organizational data
as a system of record. In some embodiments, the integration data 207 can be
received from
one or more computing systems (e.g., the remote computing system 130 depicted
in FIG. 1),
which can include one or more computing systems that are remote from the
computing device
200.
[0068] The data structures 208 can include one or more portions
of data (e.g., the data
118, the data 138, and/or the data 158, which are depicted in FIG. 1) and/or
instructions (e.g.,
the instructions 120, the instructions 140, and/or the instructions 160, which
are depicted in
FIG. 1) that are stored in the one or more memory devices 116, the one or more
memory
devices 136, and/or the one or more memory devices 156, respectively. The data
structures
208 can include one or more logical and/or physical instances of information
representing or
describing one or more entities (e.g., objects, records, etc.), one or more
relationships
involving one or more of the entities, one or more data values associated with
each of one or
more of the entities and/or one or more of the relationships, one or more
functions and/or
operations that may be applied to each of one or more of the entities and/or
one or more of
the relationships, any other data or metadata describing or otherwise defining
structure and/or
rules associated with one or more of the entities and/or one or more of the
relationships, etc.
[00691 The data structures 208 can be implemented and utilized
with one or more types
of computer software, computer hardware, or any combination thereof In an
embodiment,
the data structures 208 are used to represent and perform processing
associated with various
types of organizational data (e.g., organizational data 203). For example, the
data structures
208 may include information about various types of information and entities
associated with
organizational data including, but not limited to, individuals (e.g.,
employees, vendors,
independent contractors), departments, teams, roles, groups, locations,
offices, documents,
tasks, reports, accounts, devices, applications, end-user applications,
licenses, workflows,
alerts, and/or any other types of entities representing or related to managing
organizational
data 203.
18
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0070] The data structures 208 also can define various
relationships among the various
entities associated with organizational data 203. For example, the data
structures 208 may
define and be used to enforce relationships such as each employee must be
assigned to a
department, each employee can be included on one or more teams, each employee
must be
assigned to a primary location, each employee may be assigned to one or more
secondary
locations, employees may have one or more computing devices, each vendor must
have a
current audit, each independent contractor must be associated with a contract,
and/or any
other relationships provided by an organizational data management system or
configured for
an organization that utilizes an organizational data management system (e.g.,
a system for
managing organizational data 203 with one or more associated organizational
data
management applications).
[0071] In some embodiments, the data structures 208 can include
one or more object
graphs providing information about entities, relationships, and/or any other
aspects relating to
the definition, structure, and rules associated with organizational data
(e.g., organizational
data 203). The data structures 208 also can include any one or more other
types of data
structures (e.g., with or without the use of object graphs) that provide
information about
entities (e.g., data objects), entity attributes, entity attribute categories,
relationships, and/or
any other aspects of the definition, structure, and/or rules associated with
organizational data.
In some embodiments, the data structures 208 can be received from one or more
computing
systems (e.g., the remote computing system 130 depicted in FIG. 1), which can
include one
or more computing systems that are remote from the computing device 200.
[0072] The application object data 209 can include one or more
portions of data (e.g., the
data 118, the data 138, and/or the data 158, which are depicted in FIG. 1)
and/or instructions
(e.g., the instructions 120, the instructions 140, and/or the instructions
160, which are
depicted in FIG. 1) that are stored in the one or more memory devices 116, the
one or more
memory devices 136, and/or the one or more memory devices 156, respectively.
Furthermore,
the application object data 209 generally can include any information used to
implement any
particular type of application object or associated data structure that
stores, references,
utilizes, and/or processes data (e.g., organizational data 203). For example,
such types of
application objects generally may include, but are not limited to, application
triggers, reports,
workflows, tasks, custom application objects (e.g., custom user-defined
objects, custom
organization-defined objects, etc.), and/or any other types of objects used to
store and/or
process data in a system of record, such as an organizational data management
system.
Further, application object data 209 used to implement any particular type of
application
19
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
object or associated data structure may include, but is not limited to,
instructions in a
computer language (e.g., a custom computer language provided by an
organizational data
management system provider for managing organizational data 203), metadata
associated
with application objects or related data structures, data associated with one
or more particular
instances of application objects or related data structures, data associated
with configuration
of one or more application objects or related data structures, etc. In some
embodiments, the
application object data 209 can be received from one or more computing systems
(e.g., the
remote computing system 130 depicted in FIG. 1), which can include one or more
computing
systems that are remote from the computing device 200.
[0073]
The one or more interconnects 212 can include one or more interconnects or
buses
that can be used to send and/or receive one or more signals (e.g., electronic
signals) and/or
data (e.g., organizational data 203, rule data 204, organizational policy data
205, application
policy data 206, integration data 207, data structures 208, application object
data 209, and/or
any other data) between components of the computing device 200, including the
one or more
memory devices 202, the one or more processors 220, the network interface 222,
the one or
more mass storage devices 224, the one or more output devices 226, the one or
more sensors
228 (e.g., a sensor array), the one or more input devices 230, and/or the one
or more location
devices 232. The one or more interconnects 212 can be arranged or configured
in different
ways. For example, the one or more interconnects 212 can be configured as
parallel or serial
connections. Further the one or more interconnects 212 can include one or more
internal
buses that are used to connect the internal components of the computing device
200 and one
or more external buses used to connect the internal components of the
computing device 200
to one or more external devices. By way of example, the one or more
interconnects 212 can
include different interfaces including Industry Standard Architecture (ISA),
Extended ISA,
Peripheral Components Interconnect (PCI), PCI Express, Serial AT Attachment
(SATA),
HyperTransport (HT), USB (Universal Serial Bus), Thunderbolt, IEEE 1394
interface (e.g.,
FireWire), and/or other interfaces that can be used to connect components.
[0074]
The one or more processors 220 can include one or more computer processors
that
are configured to execute the one or more instructions stored in the one or
more memory
devices 202. For example, the one or more processors 220 can, for example,
include one or
more general purpose central processing units (CPUs), application specific
integrated circuits
(AS1Cs), and/or one or more graphics processing units (GPUs). Further, the one
or more
processors 220 can perform one or more actions and/or operations including one
or more
actions and/or operations associated with the organizational data 203, the
rule data 204, the
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
organizational policy data 205, the application policy data 206, the
integration data 207, the
data structures 208, the application object data 209, and/or any other data.
The one or more
processors 220 can include single or multiple core devices including a
microprocessor,
microcontroller, integrated circuit, and/or a logic device.
[0075] The network interface 222 can support network
communications. The network
interface 222 can support communication via networks including a local area
network and/or
a wide area network (e.g., the interne . For example, the network interface
222 can allow the
computing device 200 to communicate with the computing system 110 via the
network 102.
[0076] The one or more mass storage devices 224 (e.g., a hard
disk drive and/or a solid-
state drive) can be used to store data including the organizational data 203,
the rule data 204,
the organizational policy data 205, the application policy data 206, the
integration data 207,
the data structures 208, the application object data 209, and/or any other
data. The one or
more output devices 226 can include one or more display devices (e.g., liquid
crystal display
(LCD), OLED display, mini-LED display, micro-LED display, and/or plasma
display), one or
more light sources (e.g., LEDs), one or more loudspeakers, and/or one or more
haptic output
devices (e.g., one or more devices that are configured to generate vibratory
output).
[0077] The one or more sensors 228 can be configured to detect
various states and can
include one or more cameras, one or more light detection and ranging (LiDAR)
devices, one
or more sonar devices, and/or one or more radar devices. Further, the one or
more sensors
228 can be used to provide input (e.g., an image of a user captured using the
one or more
cameras) that can be used as part of invoking or performing one or more
operations For
example, the one or more sensors 228 can be used to authenticate the identity
of a user and
determine an authorization level based on an image of the user's face that is
captured using
the one or more sensors 228.
[0078] The one or more input devices 230 can include one or more
touch sensitive
devices (e.g., a touch screen display), a mouse, a stylus, one or more
keyboards, one or more
buttons (e.g., ON/OFF buttons and/or YES/NO buttons), one or more microphones,
and/or
one or more cameras (e.g., cameras that are used to detect gestures that can
trigger one or
more operations by the computing device 200).
[0079] Although the one or more memory devices 202 and the one or
more mass storage
devices 224 are depicted separately in FIG. 2, the one or more memory devices
202 and the
one or more mass storage devices 224 can be regions within the same memory
module. The
computing device 200 can include one or more additional processors, memory
devices,
and/or network interfaces, which may be provided separately or on the same
chip or board.
21
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
The one or more memory devices 202 and the one or more mass storage devices
224 can
include one or more computer-readable media, including, but not limited to,
non-transitory
computer-readable media, RAM, ROM, hard drives, flash drives, and/or other
memory
devices.
[0080] The one or more memory devices 202 can store sets of
instructions for
applications including an operating system that can be associated with various
software
applications or data. For example, the one or more memory devices 202 can
store sets of
instructions for one or more applications (e.g., one or more organizational
applications and/or
one or more third-party applications) that are subject to one or more
application policies or
utilize third-party integration data that can be configured, generated, and/or
implemented by
the computing device 200 and/or one or more other computing devices or one or
more
computing systems. In some embodiments, the one or more memory devices 202 can
be used
to operate or execute a general-purpose operating system that operates on
mobile computing
devices and/or and stationary devices, including for example, smartphones,
laptop computing
devices, tablet computing devices, and/or desktop computers.
[0081] The software applications that can be operated or executed
by the computing
device 200 can include applications associated with the computing system 110,
the remote
computing system 130, and/or the one or more computing devices 152 that are
depicted in
FIG. 1. Further, the software applications that can be operated and/or
executed by the
computing device 200 can include native applications, web services, and/or web-
based
applications.
[0082] The one or more location devices 232 can include one or
more devices or circuitry
for determining the position of the computing device 200. For example, the one
or more
location devices 232 can determine an actual and/or relative position of the
computing device
200 by using a satellite navigation positioning system (e.g. a GPS system, a
Galileo
positioning system, the GLOba1Navigation satellite system (GLONASS), the
BeiDou
Satellite Navigation and Positioning system, an inertial navigation system, a
dead reckoning
system, based on IP address, by using triangulation and/or proximity to
cellular towers or Wi-
Fi hotspots, and/or beacons.
[0083] FIG. 3 depicts a block diagram of an example computing
environment 300
including multiple computing systems, according to example embodiments of the
present
disclosure. Any of computing system 302, computing system 306, computing
system 310,
computing system 330, computing system 332, or computing system 334 can
include one or
more attributes and/or capabilities of the computing system 110, the remote
computing
22
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
system 130, the one or more computing devices 152, and/or the computing device
200.
Furthermore, any of the computing system 302, the computing system 306, the
computing
system 310, the computing system 330, the computing system 332, or the
computing system
334 can be configured to perform one or more operations and/or one or more
actions that can
be performed by the computing system 110, the remote computing system 130, the
one or
more computing devices 152, and/or the computing device 200.
[0084] As shown in FIG. 3, the environment 300 includes the
computing system 302, an
application 304, an application development environment 305, the computing
system 306, an
application 308. a cloud application development environment 309, the
computing system
310, organizational data 311 (e.g., organizational data 203), one or more
application(s) 312,
application policy data 313, integration data 314, data structures 315,
application object data
316, cloud development environment 317, custom language processing engine 318,
computer
instruction compiler 319, computer instruction generator 320, one or more
computing
systems 330, 332, 334, and third-party applications 340, 342, 344.
[0085] In an embodiment, the computing system 302, the computing
system 306, the
computing system 310, the computing system 330, the computing system 332,
and/or the
computing system(s) 334 can be configured to communicate directly and/or via a
communication network (e.g., the network 102 depicted in FIG. 1). In one
embodiment, the
computing system 302 includes an application 304 that is stored and/or
operates on the
computing system 302 and can communicate (e.g., send and/or receive data
and/or
information) with one or more other computing systems including the computing
system 306
and/or the computing system 310. The application 304 can, for example, include
an email
application that performs one or more operations on the computing system 302
and includes
an email account associated with an organizational record (e.g., an employee
record including
the name of an employee, an email access identifier, and an email passcode)
that is stored as
part of the organizational data 311. In an example, a user associated with any
computing
system 302, 306, 310 can use a portion of the organizational data 311
associated with their
employee record to access a corresponding account associated with one or more
of
application 304, application 308, and/or application(s) 312.
[0086] In an embodiment, one or more application(s) 312 provide
access to, utilize,
support, and/or otherwise provide various interfaces or services that enable
other applications
(e.g., application 304, application development environment 305, application
308, cloud
application development environment 309, application(s) 312) and/or users to
perform
various operations and activities involving one or more custom computer
languages. For
23
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
example, a custom computer language (e.g., a custom query language) generally
may provide
users with a simplified set of computer instructions that align with or match
a user's
understanding of a functional or business environment, such as an
organization, business,
industry, sector, etc. In some embodiments, each of one or more custom
computer languages
is a user language that allows users with a basic understanding of a subject,
topic, business
area, organization, functional role, industry, sector, etc. to implement
custom computer
instructions in terms that are familiar to the users, without knowledge of a
complex computer
programming language, without dependence on computer programmers, without
being aware
of or needing to know the complexity of underlying data organization and
storage, without
needing to understand, implement, and/or maintain a complex web of join
conditions across
various sets of underlying data, etc.
[0087] In an embodiment, a custom computer language generally
enables users of any
skill or level with a basic knowledge of a subject area to perform one or more
operations or
activities associated with an application (e.g., any of applications 312). For
example, a
custom computer language generally may enable a user to create, update,
execute, and/or
otherwise implement custom queries, reports, policies, workflows, triggers,
and/or any other
functionality and operations associated with an application. In some
embodiments, a custom
computer language enables a user to utilize and perform various operations
involving
organizational data 311. For example, one or more applications associated with
an
organizational data management system or any other types of applications
(e.g., applications
312) generally may provide a custom computer language allowing users to
perform
operations based on the structure and/or relationships associated with
organizational data 311
(e.g., with or without specifying data joins specifying relationships between
various objects).
[0088] In an embodiment, a custom computer language may allow a
user to use
simplified terms to query organizational data 311. In one example, a custom
computer
language may allow a user to obtain the name of an employee's manager with the
following
example query: "ORG(John Smith, Manager)", which may return "Jane Jones" as
the
manager of the employee. As such, a custom computer language for an
application may allow
a user to use simplified and familiar terms without needing to understand
complex
interrelationships between various types of data stored across one or more
different databases
and/or other types of data stores. Further, a custom computer language
generally may be
processed by one or more applications (e.g., application(s) 312 associated
with an
organizational data store) so that users do not have to specify data joins
when performing
various operations involving organizational data 311.
24
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0089] In an embodiment, a custom computer language (e.g., a
custom query language)
includes a function that reports quantile information based on employee
information or any
other type of organizational data. For example, such a function generally may
be labeled as a
"quantile" function, as a -percentile" function, or given any other type of
label or name. The
following examples generally refer to the function name as "quantile" for
illustration
purposes only.
[0090] In an example, a "quantile- function of a custom query
language generally may
return a particular quantile (e.g., decile, percentile, etc.) of
organizational data (e.g., an
employee, a department, etc.) in comparison to other corresponding
organizational data (e.g.,
other employees, other departments. etc.). In one example, a "quantile"
function call in a
custom query language may take four arguments. For example, a first example
argument of
the "quantile" function may specify a particular instance of organizational
data 311 such as a
particular employee, a particular department, a particular contractor, a
particular vendor, or
any other particular instance of organizational data 311. A second example
argument of the
"quantile- function may specify a numeric attribute value, a derived value, or
a calculated
value for comparison. A third example argument of the "quantile" function may
specify a
logical condition that evaluates to "true" or "false" for corresponding
organizational data
(e.g., other employees, other departments, etc.) where the corresponding
organizational data
that evaluates to "true" is included when calculating quantile information. As
such,
corresponding organizational data that evaluates to "false- would not be
included when
calculating quantile information. A fourth example argument of the "quantile"
function may
specify a particular quantile to use for analysis. For example, the example
fourth argument
may specify a numeric value representing a number of buckets to use for
calculating a
particular quantile (e.g., the value "4" for quartiles, the value "5" for
quintiles, the value "10"
for deciles, the value "100" for percentiles and/or any other value for
calculating a particular,
specialized quantile associated with organizational data 311). The example
fourth argument
also could take text input indicating a particular type of quantile to utilize
(e.g., "quartile",
-decile", "percentile", etc.) and is not limited to numeric values.
[0091] In one example, a signature of an example "quantile"
function of a custom
computer language (e.g., a custom query language) generally can be defined
and/or appear as
-QUANTILE( {employee information }, {attribute value to compare}, {logi cal
conditi on,
quantile type)}". For example, an example call to the -quantile" function of
the custom
query language generally may be invoked based on the following example custom
query
language statement: "QUANTILE("Denise Smith-, compensation, leve1=Slevel, 10).
In the
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
example quantile function call, the first example argument specifies the name
of a particular
employee or individual. Other values, such as a unique employee identifier,
unique contractor
identifier, and/or any other type of unique identifier of a particular
instance of organizational
data may be utilized (e.g., unique department name, unique department id,
etc.).
[0092] The second example argument in the example quantile
function call indicates
compensation as the attribute of the specified employee (i.e., "Denise Smith-)
to be
compared. Also, any derived or calculated values, such as "TODAY() -
employee start date" (e.g., which calculates an employee's length of
employment) may be
utilized. The third example argument in the example quantile function call
indicates a logical
condition where the level of other employees "level" is equal "=" to the level
of "Denise
Smith" "$level". As such, employees at the same level as "Denise Smith" in an
organizational data management system as indicated by the organizational data
will be
included in the QUANTILE determination of the current example. The fourth
example
argument in the example quantile function call -10" indicates that 10
quantiles (i.e.,
"deciles-) are to be used in the calculation of determining how "Denise
Smith's"
"compensation" compares to other employees at the same level (i.e.,
"level=$level"). Thus,
"Denise Smith" may fall into any one of 10 buckets depending on how her
"compensation"
compares to other employees in an organization based on organizational data
311.
[0093] The example QUANTILE function generally can return the
number of the
particular, specified quantile (e.g., the bucket number) based on a
determination. Continuing
with the current example, if "Denise Smith" had "compensation" that ranked in
the top ten
percent of employees at the same level (i.e., "level=$level") then "10" would
be returned as
the determined decile bucket of the example quantile function (or, for example
if quartiles
were specified instead of deciles, then "4" would be returned). Similarly, if
the
compensation- of "Denise Smith" ranked last in the determination, then a "1-
would be
returned as the determined decile bucket of the example quantile function ("1"
also would be
returned if quartiles were specified instead of quintiles). In an additional
example, a custom
query language statement: -QUANTILE("Denise Smith", equity_grant, start date <
$start date + 90 and start date > $start date - 90 and equity grant > 0, 100)
returns -Denise
Smith's- "equity grant- decile in comparison to other employees with start
dates within 90
days of -Denise Smith's" start date where those employees have equity grants.
[0094] In an embodiment, a custom computer language is based on
and/or otherwise
associated with one or more data structures 315 associated with an
application. For example,
a custom computer language may be based on, represent, describe, or otherwise
be associated
26
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
with an object graph data structure 315 (e.g., a master object graph, any one
or more portions
of a master object graph, etc.) and/or any other types of data structures 315
that describe the
structure of an application and/or the underlying data associated with an
application. In an
example, a custom computer language is based on the structure of one or more
applications
and/or associated organizational data 311 of an organizational data management
system. For
example, the structure of the one or more applications and/or the associated
organizational
data 311 may be represented and described in one or more data structures 315
including, but
not limited to, one or more independent and/or interrelated object graph data
structures 315.
In various embodiments, an application (e.g., one of application 312) and/or
another
supporting application used in association with the application can utilize
object graph data
structures 315 to process and perform various underlying operations associated
with custom
computer language instructions.
[0095] In an embodiment, the computing system 302 includes an
application
development environment 305 that provides users with access to and/or
operations associated
with one or more computer languages including, but not limited to, a custom
computer
language. For example, the application development environment 305 can be
associated with
one or more applications of an organizational data management system that
stores and
manages various types of organizational data 311. In an example, application
development
environment 305 generally may be an application (e.g., application 304) or
portion of an
application that enables a user to perform various operations involving
organizational data
311 of an organizational data management system using a custom computer
language. For
example, application development environment 305 generally may enable a user
to create,
update, execute, and/or otherwise implement custom queries, reports, policies,
workflows,
triggers, rules, group assignments, and/or other functionality and operations
associated with
one or more applications of an organizational data management system.
[0096] In various embodiments, any one or more parts of the
application development
environment 305 may run, for example, on a computing system (e.g., computing
system 302)
and/or in association with information, applications, and/or services on
another computing
system (e.g., computing system 310). For example, application development
environment
305 may utilize organizational data 311, application(s) 312, application
policy data 313,
integration data 314, data structures 315, and/or application object data 316
available from
another computing system (e.g., computing system 310, one or more computing
systems
associated with an organizational data management system, etc.). Application
development
environment 305 also may include a query processing engine (not shown),
computer
27
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
instruction compiler (not shown), computer instruction generator (not shown),
and/or other
specialized computer software for performing one or more operations associated
with
providing applications, user interfaces, and processing associated with
generating instructions
in a computer language (e.g., a custom computer language provided by an
organizational data
management system or any other type of system of record). Application
development
environment 305 also may utilize or work in conjunction with, in whole or in
part, with any
one or more of cloud development environment 317, custom language processing
engine 318,
computer instruction compiler 319, computer instruction generator 320, and/or
other
operations or features available from another computing system (e.g.,
computing system 310,
one or more computing systems associated with an organizational data
management system,
etc.).
[0097] In an embodiment, application development environment 305
can include an
editor that allows users to enter, define, edit, check, store, schedule,
execute, and/or perform
any other operations associated with creating, viewing, maintaining, and/or
utilizing
computer instructions in a custom computer language. In some embodiments,
application
development environment 305 includes a textual editor that enables users to
enter and
manipulate computing instructions in a custom computer language. In some
examples, a
textual editor of the application development environment 305 may assist users
with
constructing various types of statements in a custom computer language. For
example, the
textual editor may provide syntax highlighting in a custom computer language,
intelligent
completion of keywords or statements in a custom computer language, automated
hints and
examples, various types of pop-up information to assist a user in writing or
editing
instructions in a custom language, visual notification of syntax or other
errors, suggested
correction of syntax or other errors, automatic suggestion and/or population
of objects and/or
functions, etc. In some examples, automation and other assistance provided by
a textual
editor of the application development environment 305 may be based on and may
actively
utilize one or more data structures 315 (e.g., an object graph based on
organizational data
311) associated with implementation of a custom computer language.
[0098] In an embodiment, application development environment 305
can include a visual
editor (e.g., either with or without a textual editor) to, for example,
create, view, maintain,
and/or utilize computer instructions in a custom computer language. For
example, the visual
editor may allow users to build, modify, and perform other operations
associated with
instructions in a custom computer language via drag and drop and/or any other
types of
graphical user interfaces (e.g., which may include a software wizard or setup
assistant user
28
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
interface that presents a user with a sequence of dialog boxes or other types
of interfaces that
guide the user through a series of steps in generating one or more statements
in a custom
computer language). Further, a visual editor generally also may provide
dropdown lists,
enhanced browsing, and other visual access to features and operations of a
custom computer
language, and/or one or more data structures 315 associated with a custom
computer
language or related application to construct, edit, and/or otherwise utilize
instructions in a
custom computer language. In some examples, the application development
environment 305
may provide a textual editor in combination with the visual editor to allow
users to view,
utilize, and alternate between both textual and visual editors of a custom
query language, for
example, as part of the same user interface. In some examples, application
development
environment 305 can parse and perform various operations involving
instructions in a custom
computer language alone or in association with another computing system (e.g.,
based on
various data and/or services provided by computing system 310).
[0099] In an embodiment, the computing system 310 includes one or
more application(s)
312 that can perform one or more operations on the computing system 310 and
can
communicate data and/or information with any one or more computing systems,
including the
computing system 302 and/or the computing system 306, or any one or more
computing
devices. The application(s) 312 can, for example, include an employee
management
application that operates on the computing system 310 and accesses the
organizational data
311, which can include one or more organizational records associated with the
names of
organization employees and the respective employment statuses for each of the
employees
(e.g., an employee's position or role within the organization, an
organizational department
associated with the employee, etc.). A user (e.g., a privileged user, such as
a manager or
administrator with the authority to access and/or modify the organizational
data 311)
associated with the computing system 306 can, for example, access and/or
modify the
organizational data 311 to reflect when an employee receives a promotion or a
raise, changes
to a different department, is added to one or more new teams, is assigned new
computer
hardware or other equipment, etc.
[0100] The one or more application(s) 312 can perform one or more
operations on the
computing system 310 and can communicate data and/or information with one or
more
computing systems, including the computing system 302 and/or the computing
system 306,
or any one or more computing devices. The application(s) 312 can, for example,
include an
administrative or other type of system application to manage one or more
aspects of the
application(s) 312 including, but not limited to, installing, configuring,
maintaining, updating,
29
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
integrating, automating and/or performing one or more other operations
associated with the
application(s) 312 on the computing system 310 and that can manage one or more
aspects of
one or more other applications on different systems and devices, which may
include the
application 304 and/or the application 308.
[0101] In some embodiments, the application(s) 312 can include
one or more third-party
applications that are stored and/or perform operations on the computing system
310. Further,
the application(s) 312 can retrieve data and/or information associated with
and/or operate in
cooperation with applications external to the computing system 310 (e.g., the
computing
system 302 and/or the computing system 306). The application(s) 312 can also
use (e.g.,
access, modify, and/or control) the organizational data 311. For example, the
application(s)
312 can use the organizational data 311 that is associated with the
application 304 to perform
one or more operations using the application 308 that is on the computing
system 306.
[0102_1 In an embodiment, the computing system 306 includes a
cloud application
development environment 309. For example, the cloud application development
environment
309 generally may be a local instance of an online integrated development
environment (e.g.,
a cloud development environment 317) provided by one computing system (e.g.,
computing
system 310) that is accessed from a web browser and/or any other type of
application 308 on
another computing system (e.g., computing system 306). For example, the cloud
application
development environment 309 can be associated with one or more applications of
an
organizational data management system that stores and manages various types of
organizational data 311_ in an example, cloud application development
environment 309
generally may be an application (e.g., application 308) or portion of an
application that
enables a user to perform various operations involving organizational data 311
of an
organizational data management system using a custom computer language. For
example,
cloud application development environment 309 generally may enable a user to
create,
update, execute, and/or otherwise implement custom queries, reports, policies,
workflows,
triggers, rules, group assignments, and/or other functionality and operations
associated with
one or more applications of an organizational data management system.
[0103] In various embodiments, any one or more parts of the cloud
application
development environment 309 may run, for example, on a computing system (e.g.,
computing system 306) and/or in association with information, applications,
and/or services
on another computing system (e.g., computing system 310). For example, cloud
application
development environment 309 may utilize one or more of organizational data
311,
application(s) 312, application policy data 313, integration data 314, data
structures 315
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
and/or application object data 316 available from another computing system
(e.g., computing
system 310, one or more computing systems associated with an organizational
data
management system, etc.). Cloud application development environment 309 also
may include
a query processing engine (not shown), computer instruction compiler (not
shown), computer
instruction generator (not shown), and/or other specialized computer software
for performing
one or more operations associated with providing applications, user
interfaces, and
processing associated with generating instructions in a computer language.
Cloud application
development environment 309 also may utilize or work in conjunction with, in
whole or in
part, any one or more of cloud development environment 317, custom language
processing
engine 318, computer instruction compiler 319, computer instruction generator
320 and/or
other operations or features available from another computing system (e.g.,
computing
system 310, one or more computing systems associated with an organizational
data
management system, etc.).
[0104] In an embodiment, cloud application development
environment 309 can include
an editor that allows users to enter, define, edit, check, store, schedule,
execute, and/or
perform any other operations associated with creating, viewing, maintaining,
and/or utilizing
computer instructions in a custom computer language. In some embodiments,
cloud
application development environment 309 includes a textual editor that enables
users to enter
and manipulate computing instructions in a custom computer language. In some
examples, a
textual editor of the cloud application development environment 309 may assist
users with
constructing various types of statements in a custom computer language. For
example, the
textual editor may provide syntax highlighting in a custom computer language,
intelligent
completion of keywords or statements in a custom computer language, automated
hints and
examples, various types of pop-up information to assist a user in writing or
editing
instructions in a custom language, visual notification of syntax or other
errors, suggested
correction of syntax or other errors, automatic suggestion and/or population
of objects and/or
functions, etc. In some examples, automation and other assistance provided by
a textual
editor of the cloud application development environment 309 may be based on
and may
actively utilize one or more data structures 315 (e.g., an object graph based
on organizational
data 311) associated with implementation of a custom computer language.
[0105] In an embodiment, cloud application development
environment 309 can include a
visual editor (e.g., either with or without a textual editor) to, for example,
create, view,
maintain, and/or utilize computer instructions in a custom computer language.
For example,
the visual editor may allow users to build, modify, and perform other
operations associated
31
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
with instructions in a custom computer language via a drag and drop and/or any
other types
of graphical user interfaces (e.g., which may include, for example, a software
wizard or setup
assistant user interface that presents a user with a sequence of dialog boxes
or other types of
interfaces that guide the user through a series of steps in generating one or
more statements in
a custom computer language). Further, a visual editor generally also may
provide dropdown
lists, enhanced browsing; and other visual access to features and operations
of a custom
computer language, and/or one or more data structures 315 associated with a
custom
computer language or related application to construct, edit, and/or otherwise
utilize
instructions in a custom computer language. In some examples, the cloud
application
development environment 309 may provide a textual editor in combination with
the visual
editor to allow users to view, utilize, and alternate or toggle between both
textual and visual
editors of a custom query language, for example, as part of the same user
interface.
[0106] The computing system 310 includes the application policy
data 313 which can be
implemented on the computing system 310 and can be used to perform one or more
operations associated with implementing an application policy associated with
the
organizational data 311 and/or one or more applications including the
application 304, the
application 308, and/or application(s) 312. The application 304, the
application 308, and/or
application(s) 312 can include one or more third-party applications that are
separate from,
that are operated separate and apart from, and that are not affiliated with
the organization that
manages, owns, controls, or maintains the organizational data 311 or an
associated
organizational data management application on the computing system 310, and/or
that
determines or implements an application policy associated with the application
policy data
313. In one example, third-party applications can be differentiated from
organizational
applications that, for example, are inherent to, are a part of, or otherwise
operate directly or as
part of an organizational data management application, system, services,
and/or platform.
[0107] The application policy data 313 can include one or more
rules that deterinine how
one or more applications, such as one or more third-party applications or
organizational
applications are accessed, modified, and/or controlled. For example, the
application policy
data 313 can use the organizational data 311 that is associated with the
application 304 to
perform one or more operations on the application(s) 312 and/or the
application 308. Also,
the application policy data 313 can use the organizational data 311 that is
associated with the
application(s) 312 to perform one or more operations on the application 304
and/or the
application 308. By way of further example, the application policy data 313
can use the
organizational data 311 that is associated with the application 308 to perform
one or more
32
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
operations on the application 304 and/or the application(s) 312. In some
embodiments, the
application policy data 313 can determine how a combination of one or more
organizational
applications (e.g., applications owned and controlled by an organization that
owns and
controls the organizational data 311, applications provided with or as part of
an
organizational data management system used by the organization as a system of
record for
maintaining the organizational data 311, etc.), and/or one or more third-party
applications are
accessed, modified, configured, and/or controlled.
[0108] The computing system 310 includes the integration data
314, which can reside on
the computing system 310 and can be used, for example, to perform one or more
operations
that integrate the organizational data 311 and associated activities based on
the organizational
data 311 across one or more different computing systems (e.g., such as
computing systems
302, 306, and 310) and/or applications (e.g., such as applications 304, 308,
and 312). For
example, the integration data 314 can be used to integrate and synchronize
organizational
data 311 and/or associated operations across an organizational data management
application
or system (e.g., a system of record for organizational data 311) and each of
one or more
separate third-party applications that utilize organizational data 311 and/or
perform
operations based on organizational data 311.
[0109] In an embodiment, the integration data 314 can include
configuration information
associated with integrating and synchronizing data among one or more computing
systems
and/or applications. For example, the integration data 314 can include
information that
enables integration between an organizational application (e.g., an
application 312 associated
with an organizational data management system of record for the organizational
data 311)
and each of one or more separate third-party applications (e.g., application
304, application
308, etc.) that use or perform operations based on the organizational data
311). Such
integration data 314 may include, but is not limited to, information
indicating and/or
describing various data that enables performance of an integration between
applications or
systems, such as an integration type information (e.g., flat file, application
programming
interface or -API", webhook, system call, etc.), security information
(authentication
information, encryption information, etc.) technical information (e.g., file
locations, call
information, system naming, application naming, IP address information, port
information,
etc.), integration flow information (e.g., push, pull, bidirectional, etc.),
integration activation
(e.g., scheduling or timing information, event information, one or more rules,
one or more
triggers, etc.), processing information (e.g., data mappings between the
source and target,
data validation rules, data transformations, error handling, etc.), and/or any
other information
33
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
used in defining, configuring, and/or integrating an application with each of
any number of
third-party applications and/or systems.
[0110] The computing system 310 includes the data structures 315,
which can be
implemented on the computing system 310 and used to perform operations
involving the
organizational data 311 including, but not limited to, performing integration
and
synchronization of the organizational data 311 with one or more different
third-party
applications and/or systems, generating and processing computer instructions
across one or
more different systems based on the organizational data 311, etc. In an
embodiment, the data
structures 315 generally can include information about the properties or
attributes of each of
one or more entities associated with the organizational data 311. Data
structures 315 also can
include information describing relationships associated with one or more
entities associated
with the organizational data 311 (e.g., explicit relationships defined between
entities, virtual
relationships determined based on various attributes and data associated with
entities, etc.). In
some embodiments, the data structures 315 generally can be used in validating
and
processing the organizational data 311 and/or other information received from
third-party
applications and/or systems. The data structures 315 also can be used in
association with
performing or otherwise carrying out one or more operations involving the
organizational
data 311 including, but not limited to, processing requests, validating
queries, generating
computer instructions, processing computer instructions, generating workflows,
executing
workflows, generating triggers, evaluating trigger conditions, performing
trigger operations,
creating reports, running reports, etc.
[0111] In an embodiment, the data structures 315 can include one
or more object graphs
and/or any other types of logical or physical structures that provide
information about
entities, relationships, rules, constraints, and/or any other aspects of
managing the
organizational data 311. For example, such object graphs can include one or
more nodes
representing entities associated with the organizational data 311 and one or
more edges that
connect and represent relationships between the nodes (e.g., explicit edges
defining
relationships between entities and data of such entities, virtual edges
inferring relationships
between entities and data of such entities, etc.). The data structures 315 can
also include
organizational data and/or associated metadata. In addition, the data
structures 315, together
or alone, generally may represent one or more structural aspects of an
application or system
(e.g., such as an organizational data management system that is a system of
record for
organizational data 311 of an organization). In various examples, the data
structures 315
generally may be used to support one or more of various operations associated
with providing
34
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
application, user interfaces, and processing associated with generating
instructions in a
computer language. For example, the data structures 315 alone or in
combination with
configuration data and/or one or more types of other information) may be used
to generate
new instructions in a computer language, which may include a custom computer
language
based on high-level structure of organizational data. Further, such new
instructions generally
may include one or more operations (e.g., one or more underlying data joins)
that are
identified and included in the generated instructions based on analyzing
instructions received
in the custom computer language in view of the data structures 315.
[0112] The computing system 310 includes the application object
data 316, which can be
implemented on the computing system 310. For example, the application object
data 316 can
include any information that is used to implement any type of application
object or data
structure for an application object that may store, reference, utilize, and/or
process data. In an
example, a system of record generally may support application objects that
include, but are
not limited to, application triggers, application reports, application
workflows, application
tasks, custom objects, and/or any other types of objects used in an
application.
[0113] In an embodiment, application triggers generally may
include application objects
that are referenced based on an event. For example, an application trigger may
be referenced
based on one or more internal application or system events (e.g., occurring
within a system of
record, etc.), based on one or more external application or system events
(e.g., occurring
outside of a system of record, occurring in a third-party application
integrated with a system
of record, etc.), or based on a combination of one or more internal
application or system
events and one or more external application or system events.
[0114] Generally, an application trigger may include one or more
conditions to be
evaluated when the application trigger is referenced by an application or
system. For
example, such conditions may include, but are not limited to, conditional
statements that test
one or more aspects of organizational data 311. In one example, when the
application trigger
is referenced and the conditions of the application trigger are satisfied
(e.g., evaluate to true),
then one or more operations associated with the trigger are automatically
executed. For
example, the one or more operations associated with the application trigger
may cause an
application or system to perform one or more operations internally, may cause
the application
or system to perform one or more operations in association with an external
application or
system (e.g., based on an integration, etc.), or may cause the application or
system to perform
one or more operations internally and to perform one or more operations with
an external
application or system.
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0115] In an embodiment, application reports generally may
include any computer
instructions that are executed by an application or system to obtain a
collection of data or the
resulting collection of data. Application workflows generally may refer to an
object or objects
that define a sequence of steps for automating a process associated with an
application or
system. Application tasks generally may be objects that are used to define one
or more
actions or pieces of work to be performed by a user or group of users.
Application tasks may
be assigned or delegated to one or more users or groups of users. Application
tasks also may
include information related to a particular task (e.g., start date, due date,
etc.). Applications
and systems may allow a user of an organization to create custom objects,
which may define
one or more custom object attributes, custom object operations, and
relationships with entities
provided by an application or system and/or other custom objects defined for
an organization.
[0116] The computing system 310 includes the cloud development
environment 317,
which can be implemented on the computing system 310, for example, to provide
users with
access to an environment for writing, building, testing, executing, and/or
performing any
other types of operations involving instructions in a custom computer
language. In an
embodiment, the cloud development environment 317 may include and/or perform
operations
associated with any one or more of the custom language processing engine 318,
computer
instruction compiler 319, and/or computer instruction generator 320. In
addition, the cloud
development environment 317 may run on one computing system (e.g., computing
system
310) and provide one or more services to applications running on another
computing system
(e.g., application development environment 305 on computing system 302, cloud
application
development environment 309 on computing system 306, etc.). Further, the cloud
development environment 317 may perform any one or more of the operations
previously
described with respect to application development environment 305 and/or cloud
application
development environment 309. Similarly, application development environment
305 and/or
cloud application development environment 309 may perform any one or more of
the
operations described in association with cloud development environment 317.
[0117] The computing system 310 includes the custom language
processing engine 318,
which can be implemented on the computing system 310 and used to perform
operations
associated with processing requests based on instructions in a custom computer
language. In
various embodiments, the custom language processing engine 318 may receive
requests for
processing that include one or more instructions in a custom computer
language. For
example, such requests may be received from one or more different computing
systems (e.g.,
computing system 302, computing system 306, computing system 310, etc.) and/or
one or
36
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
more different applications (e.g., application 304, application development
environment 305,
application 308, cloud application development environment 309, application(s)
312, cloud
development environment 317, etc.). Custom language processing engine 318 may
be
associated with or utilize any one or more of computer instruction compiler
319 and/or
computer instruction generator 320, which for example, may be separate, part
of, or
integrated with the custom language processing engine 318.
[0118] In an embodiment, a computer instruction compiler 319 of
the custom language
processing engine 318, can be implemented on the computing system 310 and used
to
perform operations associated with analyzing instructions in a custom computer
language
including, but not limited to, parsing and analyzing custom computer language
instructions
based on one or more rules associated with a custom computer language and/or
associated
data structures 315, for example, to determine whether any error exists in the
custom
computer language instructions, to identify one or more errors in the custom
computer
language instructions, to return information about one or more of the
identified errors, to
determine when the custom computer language instructions are free from error,
etc. The
computer instruction compiler 319 of the custom language processing engine 318
may
include or be associated with a computer instruction generator 320 that
generates one or more
new instructions in a computer language, such as a custom computer language.
[0119] In an embodiment, a computer instruction generator 320 of
a custom language
processing engine 318, can be implemented on the computing system 310 and used
to
perform operations associated with generating one or more new instructions in
a custom
computer language. For example, the computer instruction generator 320 may
generate
instructions in a custom computer language for execution based on
configuration of one or
more application objects and/or data associated with such application objects
(e.g.,
application triggers, application reports, application workflows, application
tasks, custom
objects, etc.). In one example, such instructions in the custom computer
language may be
executed by an application of a system of record to perform one or more
operations involving
the system of record and/or any third-party application that has been
integrated with the
system of record.
[0120] In an embodiment, the computer instruction generator 320
may generate
instructions in any computer language, for example, to be executed in
association with any
application or computing system. For example, the computer instruction
generator 320 may
generate instructions in a different computer language for execution with one
or more other
applications 312 or data stores (not shown) on or associated with computing
system 310
37
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
and/or one or more other applications (e.g., application 304, application 308,
third-party
application 340, third-party application 342, third-party application 344)
associated with
other computing systems (e.g., computing system 330, computing system 332,
computing
system 334), based on analyzing instructions in the custom computer language
in
combination with other information (e.g., information associated with one or
more data
structures 315 describing the structure of an application associated with an
organizational
data management system that manages organizational data 311).
[0121] In an embodiment, one or more data stores (not shown) may
run individually or in
any combination with one or more different computing systems (e.g., computing
system 310,
computing system 330, computing system 332, computing system, 334, and/or any
other
computing system). Each data store generally may include one or more
collections of data,
such as organizational data 311 and/or other data that is associated with
and/or accessible
from application(s) 312 and/or other applications running on corresponding
computing
system(s) 320. In one example, each data store may be associated with a
particular database
application or any other type of data storage software applications that store
and provide
access to organizational data 311. In some examples, each data store may
provide access to
organizational data 311 via the same computer language (e.g., a standard
computer language
for data access). In some examples, any one or more of the data stores each
may use different
computer languages to provide access to organizational data 311 (e.g., one or
more standard
computer languages, one or more proprietary computer languages, and/or
specialized data
access languages).
[0122] In an embodiment, custom language processing engine 317
uses new instructions
generated from one or more statements or instructions based on a custom
computer language
to query one or more data stores (not shown). In various examples, custom
language
processing engine 317 then may process, combine, and/or generally perform any
other types
of operations on information (e.g., organizational data 311) obtained from the
one or more
data stores. In addition, the custom language processing engine 317 then may
return the
results obtained from the one or more data stores in response to a request
based on one or
more statements or instructions based on a custom computer language.
[0123] In various examples, third-party applications (e.g., third-
party application 330,
third-party application 332, third-party application 334) generally may be any
type of
computer application (e.g., associated with or of the same type of any
application referenced
within the present disclosure or otherwise available for use). In some
examples, each third-
party application may be associated with a respective computing system (e.g.,
computing
38
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
system 330, computing system 332, or computing system 334). In some examples,
each third-
party application may be associated with any one or more different computing
systems. In
some examples, multiple third-party applications may run on each of one or
more computing
systems.
[0124] In an embodiment, an application store computing system
(not shown) provides an
organization with access to multiple different integration applications (not
shown) for
integrating organizational data 311 and/or associated processes with and
across various
different applications and/or systems (e.g., application(s) 312, third-party
application 340,
third-party application 342, third-party application 344, etc.). An
application store computing
system also may provide an organization with one or more other types of
applications,
including but not limited to, platform utility apps that provide additional
functionality to an
organizational data management application or system, other apps that may
include
integration-related applications, and/or any other types of applications.
Generally, the
application store computing system may provide one or more various
applications for a flat
fee, based on a subscription purchase, usage, a number of users, a number of
computing
systems, a number of processors, and/or any other criteria, as part of a
limited trial, for free,
and/or generally under any type of arrangement. In an embodiment the
application store
computing system is managed and provided by the same party that provides an
organizational
data management system to organizations. For example, the integration
applications provided
by the application store computing system generally may be specialized for use
with the
organizational data management system (e.g., and not end-user versions of
applications that
would be installed for general purpose use by end-users on end-user devices or
for use by
end-users via cloud services or any other types of services).
[0125] In an embodiment, the integration applications generally
can be any application
that allows an organization to manage any one or more aspects associated with
providing one
or more corresponding end-user applications to individual members (e.g.,
employees), teams,
roles, departments, and/or any other grouping or categorization of individuals
in an
organization. For example, each of the integration applications can be used by
an
organization to control and automate various tasks associated with
provisioning, configuring,
maintaining, and integrating third-party applications. In some embodiments,
one or more of
the integration applications can allow an organization to configure automated
assignment of a
corresponding end-user application to one or more individuals, user account
creation, single
sign-on setup, provisioning, installation, setup, and/or maintenance of
corresponding end-user
applications (e.g., third-party applications or other applications available
for use by end
39
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
users) provided to particular individuals, groups, and/or one or more devices
associated with
such individuals or groups in the organization (e.g., via installation on
respective user
devices, via a cloud application service available to end users, etc.).
[0126] In an embodiment, one or more of the integration
applications can provide
integration of organizational data 311 and associated services with one or
more
corresponding third-party applications (e.g., application 304 on computing
system 302,
application 308 on computing system 306, application(s) 312 on computing
system 310,
third-party application 340 on computing system 330, third-party application
342 on
computing system 332, third-party application 344 on computing system 334,
etc.) that utilize
and/or perform operations based on organizational data 311. For example, each
of the
integration applications can provide one or more of user account creation,
single sign-on
integration, user account suspension or removal, user management, group
management, user
privileges, user data access, user data control, template management, data
integration, process
automation, and/or any other types of integration between applications (e.g.,
third-party
applications or other applications) that are associated with organizational
data 311 of an
organization.
[0127] In an embodiment, the integration applications and/or
other applications provided
by the application store computing system may include, but are not limited to,
collaboration
apps, support apps, design apps, development apps, finance and legal apps,
human resources
(HR) and benefits apps, information technology (IT), device management, and
security apps,
office management apps, sales and marketing apps, charitable apps, platform
utility apps,
and/or other types of apps. Generally, various different types of applications
provided by the
application computing system may be organized, categorized, grouped,
presented, and/or
otherwise offered in any type of arrangement, and thus are not limited to any
particular
examples discussed herein, which are provided for illustration purposes only.
[0128] In an embodiment, collaboration apps may include, for
example, any applications
that provide scheduling, communications, document sharing and management,
electronic
signature services, project management, productivity, and/or any other types
of applications
that facilitate work between individuals, groups, and/or parties.
[0129] In an embodiment, support apps may include, for example,
any applications that
provide services associated with customer support, technical support, issue
reporting, issue
management and escalation, tracking and managing help desk tickets, and/or any
other types
of applications that facilitate customer, business, and/or technology support.
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0130] In an embodiment, design apps may include, for example,
any applications that
provide services associated with creating graphic designs, product designs,
prototypes,
drawings, graphical user interfaces, user experiences, and/or any other types
of applications
that facilitate the creation of designs, interfaces, and/or artistic works.
[0131] In an embodiment, development apps may include, for
example, any applications
that provide services associated with software development, software testing,
source code
control and management, source code scanning, application testing, process
automation,
cloud hosting and services, system monitoring, error reporting and alerts,
machine learning,
and/or any other types of applications that facilitate activities associated
with building,
maintaining, or deploying software applications.
[0132] In an embodiment, finance, operational, and legal apps may
include, for example,
any applications that provide services associated with accounting systems,
budgeting
systems, vendor management systems, payment systems, travel systems, expense
management systems, supply chain systems, manufacturing systems, compliance
and
governance systems, vendor management systems, contract management systems,
and/or any
other types of applications or systems used to manage various aspects of an
organization.
[0133] In an embodiment, human resources (HR) and benefits apps
may include, for
example, any applications that provide services associated with recruiting and
hiring,
temporary staffing, background checks, payroll and benefits, training and
onboarding,
retirement planning and contributions, reward and bonus programs, employee
training,
learning management systems, performance management, time and attendance,
and/or
systems any other types of applications or systems associated with employee-
related
activities.
[0134] In an embodiment, information technology (IT), device
management, and security
apps may include, for example, any applications that provide services
associated with device
management, technology, information security, password management, and/or any
activities
associated with managing applications, systems, devices, or associated
technology.
[0135] In an embodiment, office management apps may include, for
example, any
applications that provide services associated with facilities management,
receptionist
services, physical access, visitor access, catering services, office layout,
office assignments,
and or any other types of applications or systems associated with performing
office
management.
[0136] In an embodiment, sales and marketing apps may include,
for example, any
applications that provide services associated with social media, analytics,
advertising, event
41
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
management, customer relationship management, content creation and
distribution, public
relations, business generation, campaign management, and/or any other types of
similar or
related activities.
[0137] In an embodiment, charitable apps may include, for
example, any applications that
provide services associated with donations, charitable giving, crowdfunding,
etc.
[0138] In an embodiment, platform utility apps may include, for
example, any
applications from a provider that allow an organization to utilize software
applications,
systems, or services that have been purchased or that are otherwise available
from the
provider. For example, a provider of an organizational data management system
can allow an
organization to access and utilize standard services and/or enhanced services
via one or more
of the platform utility apps. In some embodiments, the platform utility apps
operate from or
are directly integrated with applications, systems, and/or services obtained
from a provider.
For example, such platform utility apps can allow one or more users of an
organization to
customize a particular implementation or instance of provider software that is
associated with
the organization. In one example, one of the platform utility apps can allow
the creation
and/or modification of one or more custom fields in association with one or
more entities, the
creation and/or modification of one or more relationships among the entities,
the creation
and/or modification of one or more default system rules or custom rules, the
addition and/or
use of custom fields, custom relationships and/or custom rules in various
workflows, triggers,
tasks, reports, integrations, etc. In some embodiments, users may create and
modify custom
fields, relationships, rules, tables, entities, and any other various aspects
of an organizational
data management system in a utility application or otherwise using a custom
computer
language provided by the organizational data management system.
[0139] In an embodiment, other apps may include, for example, any
types of applications
that may be used by individuals and/or organizations. The other apps may
include, for
example, any other category of integration applications and/or any other types
of applications
that can be executed by a computing system or device.
[0140] In an embodiment, authorized users of an organization with
the appropriate
privileges may access one or more services of the application store computing
system
directly, for example, via a website, web page, desktop application, mobile
application,
and/or any other type of application to browse, view, search, compare,
evaluate, download,
install, configure, upgrade, uninstall, and/or perform any other types of
activities associated
with the integration applications or any other types of applications provided
via the
application store computing system. In some embodiments, authorized users of
an
42
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
organization with the appropriate privileges may access one or more services
of the
application store computing system indirectly, for example, through another
application (e.g.,
application 312) and/or another computing system (e.g., computing system 310).
In some
embodiments, the application store computing system can be provided on the
same
computing system with other applications and services (e.g., running on
computing system
310).
[0141] In an embodiment, any one or more users of an
organization, such as an
administrator, manager, or one or more other users associated with a
particular role and/or
one or more particular privileges each may install and/or configure each of
one or more
different integration applications for use by the organization. For example,
any such user with
the appropriate privileges may install one or more of the integration
applications for the
organization on the computing system 310 or any other computing systems or
devices. Also,
any such user with the appropriate privileges may configure integration data
314 associated
with each of one or more integration applications. In some embodiments, one
user with the
appropriate privileges may delegate authority to one or more other users to
perform
installation and/or configuration of one or more of the integration
applications for an
organization.
[0142] In an embodiment, an organizational data management system
is provided via at
least one computing system to allow each of one or more different
organizations to centrally
manage their own organizational data 311. For example, the organizational data
management
system can be provided as a centralized system of record for storing and
managing various
types of organizational data 311 of an organization. The organizational data
management
system also can provide various types of integration across different third-
party applications
that utilize, that perform processing involving or based on, and/or that are
otherwise
associated with organizational data 311. The organizational data management
system also can
automate various processing based on the organizational data 311 including,
but not limited
to, the automation of processing performed across various third-party
applications based on
the organizational data 311. In various embodiments, the organizational data
management
system can be provided via one or more different computing systems, one or
more different
applications, and/or via one or more different services, for example, to one
or more different
organizations over a computer network.
[0143] In an embodiment, a separate instance of an organizational
data management
system generally can be provided to each of one or more different
organizations, for example,
to allow each organization to independently configure, manage, and integrate
their own
43
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
instance of an organizational data management system, and to secure and
insulate
organizational data 311 from outside parties. For example, separate instances
of an
organizational data management system generally may be provided to different
organizations
using different computer hardware devices, different software applications,
different
instances of software applications running in an isolated space, different
databases, physically
partitioned databases, and/or in various other ways.
[0144] In an embodiment, an organizational data management system
generally enables
organizations to efficiently manage organizational data 311 and associated
processing that
occurs based on the organizational data 311. For example, an organizational
data
management system may be used as a centralized system of record that is
integrated with
other computing systems and applications (e.g., third-party applications 340,
342, 344) that
generate, utilize, process, and/or perform activities based on organizational
data 311. Such
integration generally allows an organizational data management system to
orchestrate and
automate processing of organizational data 311 and associated activities
across numerous
different applications that are not in communication or coordination with one
another. In
some embodiments, an organizational data management system can allow
appropriate users
of an organization (e.g., authenticated, authorized, privileged, etc.) to, for
example, manage
organization information, settings of an organizational data management
system, onboarding
of employees, offboarding of employees, employee information, organizational
structure and
locations, employee placement in departments and teams, workflows and tasks,
reports,
documents, and/or any other information associated with organizational data
311.
[0145] In an embodiment, an organization uses an organizational
data management
system that allows the organization to manage organizational data 311 and
activities
performed based on the organizational data 311. In some embodiments, an
organization can
install and use an organizational data management system on a computing system
(e.g.,
computing system 310 or any other computing system) that is dedicated to the
organization.
Also, an organizational data management system can comprise any one or more of
organizational data 311, application(s) 312, application policy data 313,
integration data 314,
data structures 315, application object data 316, cloud development
environment 317, custom
language processing engine 318, computer instruction compiler 319, computer
instruction
generator 320, and/or any other information associated with managing,
processing, and
performing activities associated with organizational data 311. In addition, an
organizational
data management system may provide and utilize its own custom computer
language that
allows business users to access and perform various operations using
simplified computer
44
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
instructions based on the structure of organizational data 311. Further, an
organizational data
management system may include one or more operations associated with providing
applications, user interfaces, and processing associated with generating
instructions in a
computer language. Such generated instructions then may be used to perform
various
activities within the organizational data management system and/or across one
or more other
applications (e.g., third-party application 340, third-party application 342,
third-party
application 344) running on one or more different computing systems (e.g.,
computing
system 330, computing system 332, computing system 334).
[0146] In an embodiment, an organizational data management system
may be provided
by another party for use by an organization. For example, another party such
as a software
application provider may host or otherwise provide a separate instance of an
organizational
data management system to each of one or more different organizations allowing
each
organization to independently manage their own organizational data 311. In
such
embodiments, each separate instance of an organizational data management
system provided
to an organization can respectively comprise any one or more of organizational
data 311,
application(s) 312, application policy data 313, integration data 314, data
structures 315,
application object data 316, and/or any other information associated with
managing,
processing, and performing activities associated with organizational data 311
for the
particular organization. As such, an organizational data management system may
be a cloud-
based platform that maintains organizational data 311 and other information
associated with
each of one or more different organizations and that allows each of the
different organizations
to independently manage their own respective organizational data 311 and
related processes
independently from any other organization.
[0147] FIG. 4 depicts a flow diagram of an example method for
providing an application
user interface for generating instructions in a computer language, according
to example
embodiments of the present disclosure. One or more portions of the method 400
can be
executed and/or implemented on one or more computing devices or computing
systems
including, for example, the computing system 110, the remote computing system
130, the one
or more computing devices 152, the computing device 200, the computing system
302, the
computing system 306, and/or the computing system 310. In addition, one or
more portions
of the method 400 can be executed or implemented as an algorithm on the
hardware devices
or systems disclosed herein. FIG. 4 depicts steps performed in a particular
order for purposes
of illustration and discussion. As such, those skilled in the art, using the
disclosures provided
herein, will understand that various steps of any of the methods disclosed
herein can be
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
adapted, modified, rearranged, omitted, and/or expanded without deviating from
the scope of
the present disclosure.
[0148] At 402, a computer system maintains one or more databases
comprising
organizational data. In an embodiment, a computer system maintains one or more
databases
for storing and managing organizational data (e.g., organizational data 203,
organizational
data 311). The computer system also may store and maintain other various types
of data in
the same database and/or other databases. In an embodiment, the computer
system maintains
any one or more of rule data (e.g., rule data 204), organizational policy data
(e.g.,
organizational policy data 205), application policy data (e.g., application
policy data 206,
application policy data 313), integration data (e.g., integration data 207,
integration data 314),
data structures (e.g., data structures 208, data structures 315), application
object data (e.g.,
application object data 209, application object data 316) and/or other data in
association with
organizational data 311.
[0149] In an embodiment, the computer system is associated with
an organizational data
management system that maintains the organizational data 311 and various other
supporting
data. For example, the organizational data management system can serve as a
system of
record for organizational data 311 that is generated, modified, and utilized
across multiple,
non-related applications and computer systems. In an embodiment, the
organizational data
management system provides application user interfaces that allow various
types of users,
including non-technical users, to generate instructions in a custom computer
language based
on the organizational data 311. For example, users can utilize such
application user interfaces
to generate instructions for performing various types of operations based on
the
organizational data 311 within the organizational data management system and
across one or
more other applications integrated with the organizational data management
system.
[0150] At 404, a computer system provides an application user
interface for generating
instructions in a custom computer language. For example, the computer system
may provide
one or more application user interfaces (e.g., a single application user
interface, multiple
application user interfaces, a series of related application user interfaces,
or any combination
of application user interfaces) that enable users to provide input for
generating instructions in
a custom computer language and/or for performing any other types of
operations.
[0151] In an embodiment, a computer system receives a request to
provide an application
user interface. For example, the computer system may receive such a request
based on a user
interaction involving any of one or more applications associated with an
organizational data
management system. In an example, the computer system may analyze the request
and
46
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
perform one or more operations to generate the application user interface. For
example, the
computer system may analyze the request to determine a type of application
user interface to
generate. The computer system also may analyze the request in view of one or
more data
structures 315 to determine one or more sets of organizational data 311 to
utilize and/or
include when generating the application user interface. For example, the
computer system
may determine one or more data objects or data records from organizational
data 311 to
include in the application user interface based on data structures 315
associated with the
organizational data 311.
[0152] In an embodiment, a computer system creates or otherwise
generates an
application user interface that includes information about one or more data
objects associated
with organizational data 311. For example, such data objects may be selectable
in the
application user interface and allow a user to graphically drill down and/or
perform other
operations to specify particular information and criteria for generating
instructions in a
custom computer language and/or performing any other types of operations. In
some
examples, an application user interface may include a code editor that allows
a user to view
statements generated in a custom computer language based on input and/or
selections made
via the application user interface. Such a code editor also may be provided to
allow users to
enter, modify, store, test, deploy, execute, and/or perform any other types of
operations
associated with statements or instructions in a custom computer language. In
various
examples, once the computer system creates the application user interface, the
computer
system then may transmit, render, display, or otherwise provide the
application user interface
to a user via a computing device.
[0153] At 406, a computer system analyzes input received from the
application user
interface. In an embodiment, a computer system receives input at least in part
based on one or
more user interactions associated with an application user interface. In some
examples, the
input received from the application user interface may be based on one or more
user
selections indicated via the application user interface. In some examples, the
input may be
user-provided statements in a custom computer language. In some examples, the
input may
be a combination of one or more user selections and/or a combination of one or
more
statements in a custom computer language (e.g., partial statements, a complete
statement, or
any number or combination of partial and/or complete statements). Such
statements may be
provided as text input that is analyzed in whole or in part (e.g., as a user
enters the text input,
after the user enters the text input, when requested by a user, etc.)
47
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0154] In an embodiment, an application user interface receives
input from a user and
analyzes the input. The application user interface also may provide some or
all of the input
for analysis. For example, the application user interface may provide
associated input to an
application associated with an organizational data management system for
analysis and
processing. In an example, such an application may receive, analyze, and
process input from
an application user interface. In some examples, the application may analyze
one or more
user selections received via the application user interface. The application
also may analyze
one or more statements in a custom computer language received via the
application user
interface. In some examples, the application may determine or identify one or
more errors
associated with input received via the application user interface. The
application then may
return one or more suggestions, recommendations, messages, corrections, and/or
any other
types of information via the application user interface or another interface
to aid a user. In
various examples, the application proceeds with generating instructions in the
custom
computer language based on input received from the application user interface.
[0155] At 408, a computer system generates the instructions in
the custom computer
language based on the input from the application user interface. In an
embodiment, a
computer system receives input associated with one or more application user
interfaces and
generates instructions in a custom computer language based on the input from
the application
user interfaces. For example, the instructions may be generated in a custom
computer
language that is based on the structure of organizational data 311 implemented
by an
organizational data management system.
[0156] In an embodiment, a computer system analyzes one or more
selections and/or one
or more statements received via an application user interface. For example,
such selections
and statements may be analyzed based on organizational data 311, based on
information that
describes structure and relationships associated with the organizational data
311 (e.g., data
structures 315), or based on any other information associated with an
organizational data
management system. The computer system then may generate the instructions in
the custom
computer language based on any one or more of input from an application user
interface,
organizational data 311, structure and/or relationships associated with the
organizational data
311, and/or any other information (e.g., any other information associated with
an
organizational data management system or any other system of record).
[0157] At 410, a computer system executes the instructions
generated in the custom
computer language. In an embodiment, a computer system performs one or more
operations
based on executing the instructions generated in the custom computer language.
For example,
48
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
one or more operations may cause an application or system to perform one or
more
operations internally, may cause the application or system to perform one or
more operations
in association with an external application or system (e.g., based on an
integration, etc.), or
may cause the application or system to perform one or more operations both
internally and
with an external application or system. In an example, the one or more
operations may
include performing any operation available in a system of record, any
operation available
from an application provided for use with the system of record, and/or any
operation
available from a third-party application integrated with the system of record.
Some examples
of operations may include, but are not limited to, updating organizational
data 311, advancing
progression of a workflow, completing a workflow, assigning a task, updating
status of a
task, completing a task, initiating evaluation of another trigger, firing
another trigger,
approval of a request, denial of a request, generation of one or more alerts,
transmission of
one or more alerts, generation of one or more messages, transmission of one or
more
messages, generating and sending a request to another application, initiating
an action or
event in another application, installing an application on a user device,
applying a software
update to a user device, setting one or more configurations on a user device,
setting one or
more configurations for each of one or more applications provided to a user,
setting one or
more configurations for each of one or more applications on a user device,
and/or performing
any other types of actions within a system of record and/or across any number
of
applications.
[0158] FIG. 5 depicts a flow diagram of an example method for
providing an application
user interface with a code editor for generating instructions in a computer
language,
according to example embodiments of the present disclosure. One or more
portions of the
method 500 can be executed and/or implemented on one or more computing devices
or
computing systems including, for example, the computing system 110, the remote
computing
system 130, the one or more computing devices 152, the computing device 200,
the
computing system 302, the computing system 306, and/or the computing system
310. In
addition, one or more portions of the method 500 can be executed or
implemented as an
algorithm on the hardware devices or systems disclosed herein. FIG. 5 depicts
steps
performed in a particular order for purposes of illustration and discussion.
As such, those
skilled in the art, using the disclosures provided herein, will understand
that various steps of
any of the methods disclosed herein can be adapted, modified, rearranged,
omitted, and/or
expanded without deviating from the scope of the present disclosure.
49
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0159] At 502, a computer system maintains organizational data
and a collection of code
assist information for a custom computer language that is based on the
organizational data. In
an embodiment, a computer system maintains organizational data 311 and other
information
associated with an organizational data management system. For example,
additional
information maintained by the computer system may include, but is not limited
to, rule data,
organizational policy data, application policy data 313, integration data 314,
data structures
315, application object data 316 and/or other data associated with
organizational data 311.
[0160] In an embodiment, a computer system also maintains one or
more collections of
code assist information associated with a custom computing language based on
the
organizational data 311. For example, the custom computing language may be
provided by a
system of record to enable users to perform various operations involving
organizational data
311. In an example, the code assist information may be stored for use with one
or more
application user interfaces that enable users to input, enter, or otherwise
generate instructions
in the custom computer language. For example, one or more portions of code
assist
information may be included with, referenced by, or provided via any one or
more
application user interfaces.
[0161] In an embodiment, code assist information generally may
refer to any type of
information that assists a human in creating instructions in a computer
language (e.g., such as
a custom computer language). For example, code assist information may include
visual,
audible, and/or other information that aids a human in providing correct and
complete input
via an application user interface for generating instructions in a custom
computer language
Such code assist information may include, but is not limited to information
about
organizational data 311, information about data objects associated with the
organizational
data 311 (e.g., attributes, constraints, etc.), information about
relationships between data
objects associated with the organizational data 311, keywords of the custom
programming
language, available variables, available functions, available procedures,
available third-party
applications, available integrations between an organizational data management
system and
respective third-party applications, data objects associated with integrated
third-party
applications, operations available from integrated third-party applications,
etc. In some
examples, code assist information may be provided with and presented by an
application user
interface. in some examples, an application user interface may be configured
to obtain,
reference, or utilize code assist information to provide hints via the
application user interface,
to provide autocompletion of statements via the application user interface, to
provide code
snippets via the application user interface, to provide example code templates
via the
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
application user interface, etc. Further, one or more portions of such code
assist information
may be provided statically as part of the application user interface, and/or
provided
dynamically based on one or more of context, contextual information, and/or
user interaction
with the application user interface.
[0162] At 504, a computer system provides a graphical user
interface for generating
instructions in the custom computer language with code assist information. In
an
embodiment, the application user interface includes a code editor that enables
a user to input,
enter, insert, build, or otherwise provide statements in a custom computer
language. For
example, such statements may be a set or collection of programmatic statements
in a custom
computer language for performing operations associated with organizational
data 311. FIG.
6A, FIG. 6B, and FIG. 6C provide examples of application user interfaces that
include or that
are associated with a code editor.
[0163_1 FIG. 6A depicts an illustration of an example application
user interface 600 with
field assistance for generating instructions in a computer language, according
to example
embodiments of the present disclosure. Example application user interface 600
includes
descriptive information 602 about the interface, a field name input control
604, field
description input control 606, a code editor 608 (e.g., formula editor), an
insert function
control 610, user input 612, code assist information 614, and a data type
selection control
616.
[01641 In an embodiment, the descriptive information 602
generally may provide
information describing an application user interface. In example application
user interface
600, the descriptive information 602 indicates that the application user
interface is directed to
configuring a calculated field. For example, a calculated field may be added
to any data
object associated with organizational data 311. The field name input control
604 generally
enables a user to assign a name to a calculated field. The field description
input control 606
generally enables a user to provide a brief description associated with a
calculated field. The
code editor 608 generally enables a user to enter statements in a custom query
language. The
insert function control 610 generally enables a user to access a collection or
library of
functions graphically for selection and insertion into the code editor 608.
The user input 612
represents example input information entered into the code editor 608 by a
user. The code
assist information 614 provides graphical selections based on context of the
user input 612
for aiding a user in forming statements in the custom computer language. For
example, code
assist information 614 may present relevant variables, functions, and or other
information
while excluding other irrelevant information based on existing context
associated with an
51
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
application user interface. The data type selection control 616 is provided to
enable a user to
specify a data type for the calculated field that is being created. In some
examples, a user can
access an application user interface for inserting a function based on
selecting the insert
function control 610. Also, statements from the code editor 608 may be
processed by a
custom language processing engine 318. For example, such statements may be
compiled by a
computer instruction compiler 319 and used to generate instructions in the
custom computer
language by a computer instruction generator 320. In some examples, such
generated
instructions may be expanded, optimized, and/or otherwise different in some
way compared
to certain types of simplified instructions that may be entered via the code
editor.
[0165] In an embodiment, one or more templates may be provided
or shared among
users as a starting point for configuring statements or instructions in a
custom computer
language. Such code templates and/or any other types of templates may be
provided or
otherwise made available via a search interface. Also, such templates may be
provided or
otherwise made available via a navigable user interface that may include an
organized list of
folders or other objects that enable multiple different users to define,
redefine, use, reuse,
and/or perform any other types of activities relating to instructions in a
computer language.
[0166] FIG. 613 depicts an illustration of an example
application user interface 630 with
function assistance for generating instructions in a computer language,
according to example
embodiments of the present disclosure. Example application user interface 630
includes the
descriptive information 602, the field name input control 604, the field
description input
control 606, the code editor 608 (e.g., formula editor), the insert function
control 610, and the
data type selection control 616 described above with respect to example
application user
interface 600. In addition, example application user interface 630 includes
example user input
632 in the code editor 608, pop-up code assist information 634 based on
context associated
with the user input 632 in the code editor 608, and detailed code assist
information 636 based
on context associated with the user input 632 in the code editor 608.
[0167] In an embodiment, a user begins to enter text associated
with a "SELECT"
function as user input 632 into code editor 608. Example application user
interface 630
receives and processes the user input. For example, an application user
interface may, for
example by itself or in conjunction with a server process, analyze user input
632 as the user
enters or during a pause after the user enters input into code editor 608. In
an example, the
user input may be analyzed to determine and obtain relevant information that
is to be
provided via the application user interface based on context of the user input
632. For
example, the example application user interface 630 can determine, obtain, and
provide pop-
52
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
up code assist information 634, detailed code assist information 636, and/or
any other type of
code assist information based on context and user input 632.
[0168] FIG. 6C depicts an illustration of an example application
user interface 650 that
allows browsing of available functions and associated information for
generating instructions
in a computer language, according to example embodiments of the present
disclosure.
Example application user interface 650 includes a search interface 652,
categories of data
types 654, a listing of text-based functions 656, and code assist information
658 for the
concatenate function. In an embodiment, a user may navigate to, launch, or
otherwise invoke
example application user interface 650. For example, a user may access example
application
user interface 650 based on selecting the insert function control 610 of
example application
user interface 600 of FIG. 6A or example user interface 630 of FIG. 6B.
[0169] In an embodiment, a user can search for a particular
function using example
application user interface 650 based on entering input into and activating
search interface
652. The user also can browse available functions based on selecting a
category from the
categories of data types 654. In example application user interface 650, a
user has selected
"Text" to view text-based functions, which are included in the listing of text-
based functions
656. The user also has selected the "CONCATENATE" function from the listing of
text-
based functions 656, which displays associated code assist information 658 for
the selected
function. The user may continue to browse available functions and insert a
desired function
or cancel the process. In an example, the user selects the "CONCATENATE-
function, which
then may be automatically inserted into a code editor for use by the user
(e.g., code editor 608
of FIG. 6A or FIG. 6B).
[0170] In an embodiment, an application user interface may
provide access to one or
more template formulas that may be used and/or customized for use in
association with a
custom computer language. For example, template formulas may be provided by
any one or
more of an organizational data management system for use by users of one or
more different
organizations. Organizations also may define template formulas for use by
users of an
organizational data management system. Organizations also may share template
formulas
with other organizations. As such, template formulas generally may be assigned
or otherwise
associated with permissions used to provide or restrict access to appropriate
parties and users
(e.g., for use by certain users or roles within an organization, for use by
users of an
organization, shared with partner organizations, shared with any organization,
etc.). In
various examples, template formulas can be shared and distributed in a manner
that protects
and preserves privacy of sensitive, underlying organizational data 311. In
some examples,
53
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
one or more approvals (e.g., administrative approvals) may be required before
template
formulas can be shared with one or more other users, groups, roles,
organizations, and/or
publicly. In some examples, template formulas may include template fields that
generalize
user defined fields for use with different applications and user groups. For
example, template
fields can be generally defined and mapped or otherwise associated with each
of one or more
particular versions of different respective applications. In some examples, a
user may define a
template formula that references, is based on, or is otherwise provided for
use with one or
more particular versions of any number of applications.
[0171] At 506, a computer system generates one or more
instructions in the custom
computer language based on the statements obtained from the graphical user
interface. In an
embodiment, a computer system receives or otherwise obtains one or more
statements from
an application user interface. For example, such statements may be received or
obtained
based on user input provided via a code editor. In one example, a custom
language processing
engine 318 receives statements, a computer instruction compiler 319 compiles
the statements
based on rules associated with a custom computer language, and a computer
instruction
generator 320 generates instructions in the custom computer language for
execution by an
organizational data management system.
[0172] In an embodiment, a computer instruction generator 320 of
a computer system
analyzes statements in a custom computer language based on one or more data
structures 315
associated with the organizational data 311. In various embodiments, the
computer
instruction generator 320 determines, based on the analyzing of the data
structures 315, one
or more data joins and/or other operations to add or otherwise include when
generating
associated instructions in the custom computer language. For example,
statements provided
via an application user interface code editor may be simplified programmatic
calls associated
with a custom computer language. Such simplified programmatic calls may allow
users to
write instructions in a custom computer language based on organizational data
311 without
knowledge of or specifying underlying data joins, applications, integrations,
computer
systems, data stores, etc. In various examples, computer instruction generator
320 analyzes
statements in a custom computer language and then generates expanded
instructions in the
custom computer language that can be executed by an organizational data
management
system. in one example, computer instruction generator 320 may determine that
expansion or
modification to statements is unnecessary, for example, when statements in a
custom
computer language include underlying information (e.g., one or more data joins
based on
relationships between data objects).
54
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0173] In an embodiment, computer instruction generator 320 also
may generate
instructions in other computer languages based on statements received in a
custom computer
language. For example, the computer instruction generator 320 can generate
instructions in
one or more different computer languages for execution with another
application, system,
and/or data store based on analyzing instructions of a custom computer
language in view of
one or more data structures 315. Instructions generated in one or more other
computing
languages may include one or more data joins and/or one or more other types of
operations
identified based on analyzing statements or instructions in a custom computer
language in
view of one or more data structures 315.
[0174] At 508, a computer system stores the instructions
generated in the custom
computer language. In an embodiment, the generated instructions may be stored
in one or
more databases associated with an organizational data management system. For
example, the
generated instructions may be deployed and enabled for use with the
organizational data
management system. The generated instructions then can be executed to perform
one or more
operations involving the organizational data management system and/or one or
more separate
applications or systems based on organizational data 311.
[0175] FIG. 7 depicts a flow diagram of an example method for
providing an application
user interface with selectable options for generating instructions in a
computer language,
according to example embodiments of the present disclosure. One or more
portions of the
method 700 can be executed and/or implemented on one or more computing devices
or
computing systems including, for example, the computing system 110, the remote
computing
system 130, the one or more computing devices 152, the computing device 200,
the
computing system 302, the computing system 306, and/or the computing system
310. In
addition, one or more portions of the method 700 can be executed or
implemented as an
algorithm on the hardware devices or systems disclosed herein. FIG. 7 depicts
steps
performed in a particular order for purposes of illustration and discussion.
As such, those
skilled in the art, using the disclosures provided herein, will understand
that various steps of
any of the methods disclosed herein can be adapted, modified, rearranged,
omitted, and/or
expanded without deviating from the scope of the present disclosure.
[0176] At 702, a computer system provides an application user
interface with selectable
options based on organizational data for generating instructions in a computer
language. in an
embodiment, a computer system provides one or more application user interfaces
that guide a
user through visually building and generating instructions in a custom
computer language. In
some examples, such application user interfaces may be organized in a
progressive series of
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
application user interfaces associated with a code generation wizard or
assistant. In addition,
such application user interfaces generally may present data objects associated
with
organizational data 311 and enable users to visually select and navigate such
data objects to
generate instructions in a custom computer language.
[0177] In an embodiment, a computer system creates each of one or
more application
user interfaces for generating instructions in a custom computer language. For
example, the
computer system may analyze one or more of organizational data 311, data
structures 315,
and/or other available data to determine information about data objects to
include or use in
generating respective application user interfaces. In various examples, the
computer system
obtains information about data objects and associated relationships between
such data objects
to generate each of one or more portions of an application user interface. For
example, such
information may be used to define and generate selectable objects, controls,
and/or other
information representing structure of the organizational data for an
application user interface.
In various examples, the computer system creates and provides each application
user
interface to a computing device of a user. FIG. 8A, FIG. 8B, FIG. 9A, FIG. 9B,
FIG. 9C,
FIG. 9D, FIG. 9E, and FIG. 9F provide examples of application user interfaces
with
selectable options based on organizational data.
[0178] As an example, FIG. 8A depicts an illustration of an
example application user
interface 800 with selectable options based on organizational data for
generating instructions
in a computer language, according to example embodiments of the present
disclosure. For
example, example user interface 800 may be one of multiple application user
interfaces that
enable a user to configure various aspects of an application trigger (e.g.,
trigger conditions,
trigger operations, etc.).
[0179] In example application user interface 800, a search
interface 802 is provided to
enable a user to search for one or more of available trigger objects,
available fields associated
with trigger objects, available events associated with trigger objects, and/or
any other type of
information available from a system of record for configuring triggers. In
some examples, the
search interface 802 may provide access to preconfigured trigger templates
that a user may
utilize, for example, as a starting point when configuring a trigger. Such
trigger templates
and/or any other types of templates also may be provided, for example, via a
navigable user
interface that rnay include an organized list of folders or other objects that
enable multiple
different users to define, redefine, use, reuse, and/or perform any other
types of activities
relating to trigger templates.
56
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0180] Example application user interface 800 also includes a
listing of objects 804
available for selection by a user. For example, a listing of objects 804 may
be generated
based on any one or more types of data objects utilized by a system. In one
example, a listing
of objects 804 is generated based on identifying one or more types of data
objects maintained
by a system of record. For example, such data objects may be identified and
presented based
on analyzing one or more data structures 315 associated with a system of
record. In addition,
example application user interface 800 includes assistance information 806 to
aid a user in
understanding or performing one or more activities. One or more portions of
such assistance
information 806 may be updated based on a selected data object in the listing
of data objects
804.
[0181] Further, information provided to a user via an
application user interface may be
based on any one or more of organization subscriptions with third-party
applications,
configured integrations with third-party applications, permissions of a user,
custom entities
configured for an organization, custom fields configured for an organization,
etc.
[0182] As an example, FIG. 8B depicts an illustration of an
example application user
interface 850 with selectable options based on organizational data 311 and
integrated third-
party applications for generating instructions in a computer language,
according to example
embodiments of the present disclosure.
[0183] In example application user interface 850, selectable
options associated with
information and events from applications other than a system of record (i.e.,
other apps 852)
are Included_ Example user interface 850 includes multiple third-party
applications in an
example listing of objects 854, which may be used in configuring a trigger.
Example user
interface 850 also includes an example listing of third-party events and
reports 856, which
may be used in configuring a trigger. In various examples, such third-party
application
information and events may be determined based on analyzing one or more of
organizational
data 311, integration data 314, data structures 315, and/or any other
available data that can be
used to generate application user interfaces.
[0184] As an example, FIG. 9A depicts an illustration of an
example application user
interface 900 with selectable options based on organizational data for
generating instructions
in a computer language, according to example embodiments of the present
disclosure.
Example user interface 900 may be provided as part of one or more application
user
interfaces that enable users to create and configure executable instructions
for trigger
application objects graphically. In example application user interface 900, a
user has started
to define a trigger object based on a selected employee data object 904 in a
listing of
57
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
selectable data objects 902 associated with a system of record for managing
organizational
data 311.
[0185] In the example application user interface 900, the user
is presented with a listing
of selectable data objects 902 (e.g., representing current data objects
available in an
organizational data management system that manages organizational data 311).
In an
example, once the user selects one of the data objects (e.g., the selected
employee data object
904) in the listing of selectable data objects 902, the user is presented with
an additional
interface 906 of selectable data object attributes associated with the
selected data object (e.g.,
selectable attributes of the selected employee data object 904). For example,
the additional
interface 906 allows a user to select a category of attributes associated with
a data object
(e.g., a category of compensation-related attributes of an employee data
object associated
with the system of record). The additional interface 906 then provides a
listing of selectable
attributes associated with the current, selected category of attributes (e.g.,
a listing of specific
employee data object attributes in the compensation category). In various
examples, one or
more categories and/or attributes related to a data object may be determined
based on
analyzing one or more data structures 315 and/or other data associated with a
system of
record for managing organizational data 311.
[0186] FIG. 9B depicts an illustration of an example application
user interface 910 with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure.
Continuing with the
example from FIG 9A above, example application user interface 910 shows a user
selection
of the annual compensation attribute 912 of the employee data object. In
addition, the user is
provided with an additional interface 914 that enables the user to configure a
specific
condition based on annual compensation of the employee data object. The user
then may
adjust any one or more of the various options presented by the additional
interface 914 and
add the desired condition to the trigger. In some examples, the user may
continue one or more
additional conditions associated with the employee data object, one or more
entities
associated with the employee data object (e.g., devices, applications, etc.),
one or more third-
party applications, and/or any other data objects supported by a system of
record. Once the
user has finished adding conditions for the trigger, then the user can
configure one or more
operations for the trigger. Additional illustrations of example application
user interfaces with
selectable options are illustrated in FIGs. 9C, 9D, 9E, and 9F.
[0187] FIG. 9C depicts an illustration of an example application
user interface 920 with
selectable options based on organizational data for generating instructions in
a computer
58
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
language, according to example embodiments of the present disclosure. In
example user
interface 920, a user has selected a third-party application data object 922
from a list of data
objects. A first additional interface 924 and a second additional interface
926 listing
selectable attributes associated with the selected third-party application
data object 922 are
presented. In particular, the first additional interface 924 lists attributes
of the selected third-
party application data object 922 pertaining to pull requests. The second
additional interface
926 includes three categories of additional attributes based on the selected
"Author- attribute
in the first additional interface 924 (i.e., "Compensation," "Employee login
details," and
-Employee personal information"). For example, the "Author" attribute of the
third-party
application data object can be associated with an employee data object (e.g.,
in organizational
data 311 and associated data structures 315 because employees can author
source code). Such
association between a third-party application data object attribute and
another data object
then may be used, for example, to generate and provide selectable attributes
for defining a
trigger condition provided in the additional interface 926.
[0188] FIG. 9D depicts an illustration of an example application
user interface 930 with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure. In
example
application user interface 930, a user is in the process of defining a trigger
condition. In a first
portion 932 of the example user interface 930, a user has been presented with
multiple
categories of attributes and objects associated with an employee data object
in organizational
data 311. For example, categories of attributes generally may be associated
with the
employee data object. In addition, one or more data objects, such as "Devices"
and
-Documents" can be provided, for example, based on a relationship between each
respective
data object and the employee data object (e.g., as provided in the
organizational data 311 or
data structures or any other information indicating relationships between data
objects in the
organizational data).
[0189] In an embodiment, an organization may define a
relationship between an
employee data object and a devices data object to indicate that an employee of
the
organization may be assigned or otherwise associated with any number of
devices (e.g., zero
or more devices). An organization also may define a similar relationship
between the
employee data object and a documents data object. Various other types of
relationships and
associated cardinality can be defined between any two or more data objects.
[0190] In the first portion 932 of example user interface 930, a
user has selected
"Devices- based on an associated data object related to the employee data
object. In addition,
59
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
a second portion 934 of example user interface 930 is presented with multiple,
selectable
options based on a relationship between the employee data object and the
devices data object
(e.g., indicating that an employee can have any number of devices). Such
selectable options
may be tailored based on the cardinality of a relationship between data
objects and may be
provided to facilitate configuration of application data objects and
generation of associated
instructions in a custom computer language.
[0191] FIG. 9E depicts an illustration of an example application
user interface 940 with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure. In
example
application user interface 940, a user is defining a condition for a trigger
object across
multiple data objects (i.e., an employee data object and a devices data
object) based on a
relationship between the data objects in organizational data 311 maintained by
a system of
record. For example, such a relationship may indicate that all employees of an
organization
may be assigned or otherwise associated with any number of computing devices
(i.e., zero or
more assigned computing devices).
[0192] Example application user interface 940 includes an
application user interface path
942 illustrating how a user has navigated a series of application user
interfaces for generating
instructions in a custom computer language. Example application user interface
940 also
includes a listing of attributes 944 associated with a -devices" data object
in the
organizational data. In addition, the user has selected the -OS Version-
attribute 946 to
configure an associated trigger condition. Further, a corresponding additional
interface 948 is
presented to allow the user to configure the specific trigger condition based
on the selected
attribute 946.
[0193] FIG. 9F depicts an illustration of an example application
user interface 950 with
selectable options based on organizational data for generating instructions in
a computer
language, according to example embodiments of the present disclosure. In
example
application user interface, a user is defining a trigger condition based on
employee
compensation. Example user interface includes a first portion 952 indicating
the selection of
the "Annual compensation- attribute of an employee data object, which is
grouped with other
attributes associated with the employee data object pertaining to
compensation. A second
portion 954 of the example application user interface 950 shows in-progress
user
configuration of the condition. A user may add any number of conditions and
operations
when configuring an application trigger. Once an application trigger or any
application object
has been defined then associated instructions may be generated in a computer
language.
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0194] Returning to FIG. 7, at 704, a computer system obtains
input from the application
user interface based on one or more of the selectable options. In an
embodiment, user input
associated with one or more selectable options based on organizational data
311 may be
received or otherwise obtained based on user interaction with an application
user interface.
For example, one or more selectable options and/or other user input can be
received or
obtained as a user interacts with the application user interface (e.g., based
on each interaction
with the application user interface, based on interaction with particular
controls of the
application user interface, etc.). User input also can be received or obtained
for evaluation
based on a specific user request. For example, a user may provide one or more
selections or
other input via an application user interface and then submit the selections
together at a single
time. In other examples, input also may be received or otherwise obtained from
an
application user interface in various other ways.
[0195_1 At 706, a computer system analyzes the input associated
with the application user
interface. For example, the computer system may validate input from an
application user
interface to ensure that such input is complete and correct. The computer
system also may use
such input to refresh or update the application user interface. For example,
one or more
portions of the application user interface may be refreshed or otherwise
updated with new
information based on the user input from the application user interface. In
one example, one
or more selections of data objects associated with an application user
interface may be
analyzed and used to generate one or more new portions of the application user
interface or
another user interface associated with generating instructions in a computer
language. In
various examples, input from an application user interface may be used to
dynamically
update the application user interface in support of assisting a user with
providing information
for completing a configuration available via the application user interface.
Input from an
application user interface also may be used to dynamically generate or
otherwise guide a user
via a series of multiple application user interfaces that assist a user in
providing configuration
information to, for example, generate instructions in a computer language.
[0196] At 708, a computer system generates instructions in the
custom computer
language based on the input from the application user interface. In an
embodiment, a
computer system analyzes one or more selections, one or more statements,
and/or any other
input or information associated with an application user interface. For
example, such
selections, statements, input, and information may be analyzed based on
organizational data
311, based on information that describes structure and relationships
associated with the
organizational data 311 (e.g., data structures 315), or based on any other
information
61
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
associated with an organizational data management system. The computer system
then may
generate the instructions in the custom computer language based on any one or
more of input
from an application user interface, organizational data 311, structure and/or
relationships
associated with the organizational data 311, and/or any other information
(e.g., any other
information associated with an organizational data management system or system
of record).
[0197] At 710, a computer system stores the instructions
generated in the custom
computer language for use with a system of record that manages the
organizational data. In
an embodiment, generated instructions may be stored in one or more databases,
or any other
type of data store. For example, generated instructions may be stored in one
or more
databases or other data stores associated with an organizational data
management system. In
an example, instructions may be generated in a custom computer language and
then deployed
and enabled for use in an organizational data management system. Such
generated
instructions then may be executed based on organizational data 311 in the
organizational data
management system.
[0198] At 712, a computer system executes the instructions
generated in the custom
computer language based on the organizational data. For example, one or more
instructions
may cause an application or system (e.g., an organizational data management
system that
serves as a system of record for managing organizational data 311) to perform
one or more
operations internally, may cause the application or system to perform one or
more operations
in association with an external application or system (e.g., including one or
more third-party
applications based on respective integrations, etc.), or may cause the
application or system to
perform one or more operations both internally and with an external
application or system. In
an example, the one or more operations may include performing any operation
available in a
system of record, any operation available from an application provided for use
with the
system of record, and/or any operation available from a third-party
application integrated
with the system of record. Some examples of operations may include, but are
not limited to,
updating organizational data 311, executing one or more queries, advancing
progression of a
workflow, completing a workflow, assigning a task, updating status of a task,
completing a
task, initiating evaluation of another trigger, firing another trigger,
approval of a request,
denial of a request, generation of one or more alerts, transmission of one or
more alerts,
generation of one or more messages, transmission of one or more messages,
generating and
sending a request to another application, initiating an action or event in
another application,
installing an application on a user device, applying a software update to a
user device, setting
one or more configurations on a user device, setting one or more
configurations for each of
62
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
one or more applications provided to a user, setting one or more
configurations for each of
one or more applications on a user device, and/or performing any other types
of actions
within a system of record and/or across any number of applications.
[0199] Numerous details are set forth in the foregoing
description. However, it will be
apparent to one skilled in the art having the benefit of this disclosure that
the present
disclosure may be practiced without these specific details. In some instances,
structures and
devices are shown in block diagram form, rather than in detail, to avoid
obscuring the present
disclosure.
[0200] Some portions of the detailed description have been
presented in terms of
processes and symbolic representations of operations on data bits within a
computer memory.
Here, a process can include a self-consistent sequence of steps leading to a
result. The steps
can include those requiring physical manipulations of physical quantities.
These quantities
can take the form of electrical or magnetic signals capable of being stored,
transferred,
combined, compared. and otherwise manipulated. These signals can be referred
to as bits,
values, elements, symbols, characters, terms, numbers, or the like.
[0201] These terms and similar terms can be associated with
physical quantities and can
represent labels applied to these quantities. The terms including "obtaining,"
"parsing,"
-analyzing," -accessing," -determining," -identifying," -adjusting," -
modifying,"
"transmitting," "receiving,- "processing" "generating," or the like, can refer
to the actions
and processes of a computer system, a computing device, or similar electronic
computing
device, that manipulates and transforms data represented as physical (e.g.,
electronic)
quantities within the computer system's registers and memories into other data
that can be
similarly represented as physical quantities within the computer system's
memories, registers,
or other information storage device, data transmission device, or data
processing device.
[0202] Certain examples of the present disclosure can relate to
an apparatus for
performing the operations described herein. This apparatus may include a
computing device
that is activated or reconfigured by a computer program comprising electronic
instructions
stored in the computing device. Such a computer program may be stored in a
computer
readable storage medium, which can include any type of storage. For example,
the storage
can include hard disk drives, solid state drives, floppy disks, optical disks,
CD-ROMs, and
magnetic-optical disks, read-only memories (ROMs), random access memories
(RAMs),
EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for
storing
electronic instructions.
63
CA 03225389 2024- 1-9
WO 2023/283088
PCT/US2022/035521
[0203] The above description is intended to be illustrative, and
not restrictive. The scope
of the disclosure can therefore be determined with reference to the claims.
[0204] The technology discussed herein makes reference to
servers, databases, software
applications, and other computer-based systems, as well as actions taken and
information sent
to and from such systems. The inherent flexibility of computer-based systems
allows for a
great variety of possible configurations, combinations, and divisions of tasks
and
functionality between and among components. For instance, processes discussed
herein can
be implemented using a single device or component or multiple devices or
components
working in combination. Databases and applications can be implemented on a
single system
or distributed across multiple systems. Distributed components can operate
sequentially or in
parallel.
[0205] While the present subject matter has been described in
detail with respect to
various specific example embodiments thereof, each example is provided by way
of
explanation, not limitation of the disclosure. Those skilled in the art, upon
attaining an
understanding of the foregoing, can readily produce alterations to, variations
of, and
equivalents to such embodiments. Accordingly, the subject disclosure does not
preclude
inclusion of such modifications, variations and/or additions to the present
subject matter as
would be readily apparent to one skilled in the art. For instance, features
illustrated or
described as part of one embodiment can be used with another embodiment to
yield a still
further embodiment. Thus, it is intended that the present disclosure cover
such alterations,
variations, and equivalents
64
CA 03225389 2024- 1-9