For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Approvals Engine is a platform that orchestrates approvals, built into the Moveworks platform. These are workflows designed to automate the approval process for tasks and functions within a system.
Approvals Engine provides a sequence of validations for different actions or requests, such as permissions to a resource or additions to a distribution list. These processes can be tailored according to specific roles, tasks, and predefined conditions.
By employing conditions and rules, these approval workflows filter and sort requests to eliminate unnecessary steps and find the most efficient path to resolution.
Overview
Approval workflows control who needs to approve software access requests, group memberships, and other privileged actions before they’re granted. Moveworks provides pre-built approval workflows for common scenarios, and allows you to create custom workflows for complex requirements.
The Goal: Get the right approvals from the right people, automatically, without slowing down users or creating unnecessary bottlenecks.
Medium risk (e.g., Salesforce, internal tools) → Manager or App Admin
High risk (e.g., production systems, financial tools) → Sequential approvals (Manager + App Admin)
2. Who knows if this person should have access?
Their manager knows → Manager approval
IT/App owner knows → App Admin approval
Both should agree → Sequential approval (Manager then App Admin)
No one needs to decide → Auto-approve
3. Are there special cases?
Different rules for contractors? → Conditional approval based on employee type
Different rules by department? → Conditional approval based on department
Different rules by role level? → Role-based approval
Built-In Approval Workflows
These are pre-configured workflows ready to use immediately.
🟢 Self-Service
Workflow
Who Approves
When to Use
Example Use Case
AUTO_APPROVE
No one (automatic)
Low-risk software everyone should have access to
Slack, Zoom Basic, company wiki
AUTO_APPROVE_FULL_TIME_ELSE_MANAGER
Auto for employees, Manager for contractors
Standard tools but contractors need review
Microsoft Office, standard SaaS tools
AUTO_APPROVE_FULL_TIME_ELSE_APP_ADMIN
Auto for employees, App Admin for contractors
IT-managed tools, contractors need special setup
VPN access, dev tools
Example scenario:
“Everyone should have Slack, so we use AUTO_APPROVE. For VPN though, employees get it automatically but contractors need IT approval, so we use AUTO_APPROVE_FULL_TIME_ELSE_APP_ADMIN.”
🟡 Standard Approval
Workflow
Who Approves
When to Use
Example Use Case
MANAGER
User’s direct manager
Manager knows if user needs this for their job
Salesforce, Jira, specialized tools
APP_ADMIN
Application administrators
IT/app owner needs to provision or has technical knowledge
Admin panels, specialized software
Example scenario:
“For Salesforce, managers know who on their team needs it, so we use MANAGER approval. For our internal admin tool, IT needs to set up accounts, so we use APP_ADMIN approval.”
🔴 Multi-Level Approval
Workflow
Who Approves
When to Use
Example Use Case
APP_ADMIN_THEN_MANAGER
App Admin first, then Manager
Both IT and manager need to agree, IT checks first
Production access, elevated permissions
MANAGER_THEN_DL_OWNER
Manager first, then Group Owner
Adding to sensitive groups
Executive mailing lists, privileged groups
Example scenario:
“For production database access, IT (APP_ADMIN) confirms the person is technically qualified, then their manager confirms they need it for their role.”
🔵 Group-Specific Workflows (Trust Models)
These workflows apply to distribution lists and group memberships. They use “trust models” that make approval decisions based on the group’s configuration in your identity system (Okta, Azure AD, Google Workspace, etc.).
Understanding Trust Models
Trust models check the group’s settings to determine if approval is needed:
Key Group Properties:
Access Type/Join Policy: How users can join (Open, Owner Approval Required, Closed, etc.)
Self-Managed: Whether the group allows self-service membership
Visibility: Public vs Private groups
Owner Settings: Whether owner approval is required
STANDARD_TRUST_MODEL
Who Approves: Automatic if group allows self-service, else Group Owner
Conditions for Auto-Approval:
Group is marked as “self-managed” OR
Group access type is “Open” or “Anyone can join” OR
Group explicitly allows members to add themselves
Otherwise: Group Owner must approve
When to Use:
Standard distribution lists
Team mailing lists
Department groups with normal security requirements
Example:
“For team distribution lists, if the group is configured as ‘open’ in Azure AD, anyone can join automatically. If it requires owner approval, the group owner must approve.”
MOST_RESTRICTIVE_TRUST_MODEL
Who Approves: Group Owner unless very specific auto-approval conditions are met
Conditions for Auto-Approval (ALL must be true):
Requester is already a member of a parent group OR
Group explicitly allows self-service membership AND
Group is public/visible AND
Group access type is “Open” or “Anyone can join”
Otherwise: Group Owner must approve
When to Use:
Executive distribution lists
Sensitive information groups
Compliance-required groups
Security team lists
Example:
“For the Executive Team mailing list, the group owner must approve every request, even if someone’s manager requests access for them. Only if the group is explicitly configured as ‘open’ and ‘self-service’ would it auto-approve.”
Why “Most Restrictive”:
Requires Group Owner approval by default
Only auto-approves when multiple conditions align
Protects sensitive groups from accidental access
Ensures conscious approval decisions
LEAST_RESTRICTIVE_TRUST_MODEL
Who Approves: Automatic for most groups, Group Owner only for explicitly restricted groups
Conditions for Auto-Approval:
Group is NOT marked as “Closed” or “Private” AND
Group does NOT explicitly require owner approval for all joins
Otherwise: Group Owner must approve
When to Use:
All-company announcements
Public distribution lists
Open collaboration groups
Social/interest groups
Example:
“For the ‘All Company’ mailing list, anyone can join automatically unless the group is specifically configured as closed or private.”
Trust Model Variants with Fallbacks
Some trust models have “fallback” options that change the approval behavior when conditions aren’t met:
Workflow
Approval Logic
Use Case
STANDARD_WITH_FALLBACK_TO_MANAGER
Standard trust check, but if Group Owner approval needed and owner is unavailable → Manager approves
Groups where manager can substitute for owner
MOST_RESTRICTIVE_WITH_FALLBACK_TO_MANAGER
Most restrictive check, but Manager can approve if Group Owner unavailable
Sensitive groups with manager backup
MANAGER_THEN_DL_OWNER
Manager approves first, then Group Owner (sequential)
“For our all-company mailing list, anyone can join (LEAST_RESTRICTIVE). For our executive team list, the group owner must approve everyone (MOST_RESTRICTIVE). For department teams, we trust the group’s configuration (STANDARD).”