AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Approval Workflows

skill-happy-technologies-llc-happy-platform-skills-approval-workflows · by Happy-Technologies-LLC

Complete guide to configuring catalog approval rules, multi-level approvals, delegation, and escalation

No reviews yet
0 installs
18 views
0.0% view→install

Install

$ agentstack add skill-happy-technologies-llc-happy-platform-skills-approval-workflows

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-happy-technologies-llc-happy-platform-skills-approval-workflows)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Approval Workflows? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Service Catalog Approval Workflows

Overview

This skill covers approval management for service catalog items:

  • Understanding approval architecture
  • Configuring approval rules and conditions
  • Multi-level and parallel approvals
  • Approval delegation and coverage
  • Timeout, reminder, and escalation configuration
  • Monitoring and managing approval requests

When to use: When setting up approval processes for catalog items, troubleshooting stuck approvals, or implementing complex approval routing.

Prerequisites

  • Roles: catalog_admin, approval_admin, or admin
  • Access: sysapprovalapprover, scicaprvltypedefn, scicaprvldefn tables
  • Knowledge: Service catalog structure, approval concepts
  • Related Skills: catalog/item-creation should be completed first

Procedure

Step 1: Understand Approval Architecture

Approval Tables: | Table | Purpose | |-------|---------| | sysapprovalapprover | Individual approval records (one per approver) | | sysapprovalgroup | Group-based approvals | | scicaprvltypedefn | Catalog approval type definitions | | scicaprvldefn | Catalog-specific approval definitions | | sysapproval_rule | System-wide approval rules |

Approval Flow:

Request Submitted
      ↓
Approval Rule Evaluated
      ↓
Approval Records Created (sysapproval_approver)
      ↓
Approvers Notified
      ↓
Approver Takes Action
      ↓
Next Level (if multi-level) OR Complete

Approval States: | State | Value | Description | |-------|-------|-------------| | Not Yet Requested | not yet requested | Approval not triggered | | Requested | requested | Waiting for approver action | | Approved | approved | Approver approved | | Rejected | rejected | Approver rejected | | Cancelled | cancelled | Approval cancelled | | Duplicate | duplicate | Duplicate approval skipped | | Not Required | not_required | Approval waived |

Step 2: Query Existing Approvals

Find pending approvals for a request:

Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_approver
  query: sysapproval=[ritm_sys_id]
  fields: sys_id,approver,state,due_date,source_table,sys_created_on
  limit: 50

Find all pending approvals for a user:

Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_approver
  query: approver=[user_sys_id]^state=requested
  fields: sys_id,sysapproval,document_id,source_table,sys_created_on
  limit: 100

Find overdue approvals:

Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_approver
  query: state=requested^due_date $1000"
    active: true
    table: sc_req_item
    condition: cat_item.price>1000^cat_item.category.title=Hardware
    approval_type: "single"
    approver_field: "opened_by.manager"
    order: 100

Step 4: Configure Catalog Approval Types

Catalog approval types define reusable approval patterns.

Query existing approval types:

Tool: SN-Query-Table
Parameters:
  table_name: sc_ic_aprvl_type_defn
  query: active=true
  fields: sys_id,name,description,approval_type
  limit: 50

Create approval type definition:

Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_type_defn
  data:
    name: "Manager Approval"
    description: "Requires approval from requester's manager"
    active: true
    approval_type: "approver_user_field"
    approver_user_field: "requested_for.manager"
    wait_for: "everyone"  # everyone, anyone
    mandatory: true

Approval Type Options: | approvaltype | Description | |--------------|-------------| | approveruserfield | User from field on record | | approvergroupfield | Group from field on record | | specificuser | Hardcoded user | | specific_group | Hardcoded group | | script | Custom script determines approver |

Step 5: Configure Multi-Level Approvals

Multi-level approvals execute in sequence based on order.

Create Level 1 - Manager Approval:

Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_defn
  data:
    catalog_item: [catalog_item_sys_id]
    name: "Manager Approval"
    approval_type_definition: [manager_approval_type_sys_id]
    order: 100
    active: true
    condition: ""  # Always apply

Create Level 2 - Director Approval (for high-value requests):

Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_defn
  data:
    catalog_item: [catalog_item_sys_id]
    name: "Director Approval"
    approval_type_definition: [director_approval_type_sys_id]
    order: 200
    active: true
    condition: "price>5000"  # Only for requests over $5000

Create Level 3 - Finance Approval (for very high value):

Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_defn
  data:
    catalog_item: [catalog_item_sys_id]
    name: "Finance Approval"
    approval_type_definition: [finance_approval_type_sys_id]
    order: 300
    active: true
    condition: "price>10000"

Step 6: Configure Parallel Approvals

Parallel approvals execute simultaneously at the same level.

Create Parallel Approvers (same order = parallel):

Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_defn
  data:
    catalog_item: [catalog_item_sys_id]
    name: "IT Security Review"
    approval_type_definition: [security_approval_type_sys_id]
    order: 100  # Same order as other parallel approval
    active: true
Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_defn
  data:
    catalog_item: [catalog_item_sys_id]
    name: "Legal Review"
    approval_type_definition: [legal_approval_type_sys_id]
    order: 100  # Same order = parallel execution
    active: true

Wait For Options:

  • everyone - All approvers must approve
  • anyone - First approval completes the level
  • majority - Majority of approvers must approve

Step 7: Configure Group Approvals

Create group-based approval type:

Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_type_defn
  data:
    name: "Change Advisory Board"
    description: "CAB approval required for major changes"
    active: true
    approval_type: "specific_group"
    approver_group: [cab_group_sys_id]
    wait_for: "everyone"

Query group approval status:

Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_group
  query: parent=[ritm_sys_id]
  fields: sys_id,group,approval,sys_created_on

Step 8: Configure Approval Delegation

Delegation allows users to assign approval authority to others during absence.

Query existing delegations:

Tool: SN-Query-Table
Parameters:
  table_name: sys_user_delegate
  query: delegate=[user_sys_id]^active=true
  fields: sys_id,user,delegate,starts,ends,approval
  limit: 50

Create delegation record:

Tool: SN-Create-Record
Parameters:
  table_name: sys_user_delegate
  data:
    user: [original_approver_sys_id]
    delegate: [delegate_user_sys_id]
    starts: "2026-02-10"
    ends: "2026-02-24"
    approval: true  # Delegate approvals
    active: true

Step 9: Configure Timeout and Escalation

Approval with Due Date:

Tool: SN-Update-Record
Parameters:
  table_name: sysapproval_approver
  sys_id: [approval_sys_id]
  data:
    due_date: "2026-02-13 17:00:00"

Create Escalation via SLA: Configure through SLA Definitions (sla) table:

Tool: SN-Create-Record
Parameters:
  table_name: contract_sla
  data:
    name: "Approval Escalation - 48 Hours"
    table: sysapproval_approver
    condition: "state=requested"
    duration: "2 00:00:00"  # 48 hours
    workflow: [escalation_workflow_sys_id]
    active: true

Step 10: Process Approvals Programmatically

Approve a request:

Tool: SN-Update-Record
Parameters:
  table_name: sysapproval_approver
  sys_id: [approval_sys_id]
  data:
    state: "approved"
    comments: "Approved - budget verified and manager confirmed need"

Reject a request:

Tool: SN-Update-Record
Parameters:
  table_name: sysapproval_approver
  sys_id: [approval_sys_id]
  data:
    state: "rejected"
    comments: "Rejected - request exceeds department budget. Please resubmit next quarter."

Cancel pending approvals:

Tool: SN-Update-Record
Parameters:
  table_name: sysapproval_approver
  sys_id: [approval_sys_id]
  data:
    state: "cancelled"
    comments: "Approval cancelled - request withdrawn by user"

Step 11: Monitor Approval Metrics

Count pending approvals by group:

Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_approver
  query: state=requested^sys_created_on>=javascript:gs.beginningOfLastMonth()
  fields: sys_id,approver.u_group,state
  limit: 1000

Find approval bottlenecks:

Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_approver
  query: state=requested^sys_created_onRELATIVELE@dayofweek@ago@5
  fields: sys_id,approver,sysapproval,sys_created_on
  limit: 100

Complete Example: Multi-Level Hardware Approval

# 1. Create Manager Approval Type
Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_type_defn
  data:
    name: "Requester Manager"
    description: "Approval from requester's direct manager"
    active: true
    approval_type: "approver_user_field"
    approver_user_field: "requested_for.manager"
    wait_for: "everyone"
    mandatory: true
# Result: sys_id = "type_manager"

# 2. Create IT Director Approval Type
Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_type_defn
  data:
    name: "IT Director"
    description: "IT Director approval for large hardware purchases"
    active: true
    approval_type: "specific_user"
    specific_user: [it_director_sys_id]
    wait_for: "everyone"
    mandatory: true
# Result: sys_id = "type_director"

# 3. Create Level 1 Approval Definition (always required)
Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_defn
  data:
    catalog_item: [hardware_item_sys_id]
    name: "Manager Approval"
    approval_type_definition: "type_manager"
    order: 100
    active: true
    condition: ""

# 4. Create Level 2 Approval Definition (only for > $2000)
Tool: SN-Create-Record
Parameters:
  table_name: sc_ic_aprvl_defn
  data:
    catalog_item: [hardware_item_sys_id]
    name: "IT Director Approval"
    approval_type_definition: "type_director"
    order: 200
    active: true
    condition: "price>2000"

# 5. Verify configuration
Tool: SN-Query-Table
Parameters:
  table_name: sc_ic_aprvl_defn
  query: catalog_item=[hardware_item_sys_id]
  fields: name,approval_type_definition,order,condition,active

Approval State Transitions

                        ┌──────────────────┐
                        │  not yet requested│
                        └─────────┬────────┘
                                  │ Workflow triggers
                        ┌─────────▼────────┐
                        │    requested      │
                        └─────────┬────────┘
                                  │
          ┌───────────────────────┼───────────────────────┐
          │                       │                       │
┌─────────▼────────┐   ┌─────────▼────────┐   ┌─────────▼────────┐
│    approved      │   │    rejected      │   │    cancelled     │
└──────────────────┘   └──────────────────┘   └──────────────────┘
          │
          │ All approvals approved
┌─────────▼──────────────────────┐
│  Request proceeds to fulfillment│
└────────────────────────────────┘

Tool Usage Summary

| Operation | MCP Tool | Table | |-----------|----------|-------| | Query approvals | SN-Query-Table | sysapprovalapprover | | Process approval | SN-Update-Record | sysapprovalapprover | | Create approval type | SN-Create-Record | scicaprvltypedefn | | Create approval definition | SN-Create-Record | scicaprvldefn | | Configure delegation | SN-Create-Record | sysuserdelegate | | Query group approvals | SN-Query-Table | sysapprovalgroup |

Best Practices

  • Minimize Approval Levels: Each level adds delay; use conditions to skip when appropriate
  • Use Groups Over Individuals: Groups survive personnel changes
  • Set Due Dates: Ensure approvals don't stall indefinitely
  • Configure Escalation: Auto-escalate overdue approvals
  • Document Conditions: Make approval conditions clear and auditable
  • Test All Paths: Test approval, rejection, and cancellation flows
  • Monitor Metrics: Track approval time and bottlenecks
  • Enable Delegation: Allow coverage during PTO

Troubleshooting

Approval Not Generated

Symptom: Request submitted but no approval record created Causes:

  1. Approval rule condition not met
  2. Approval type inactive
  3. Workflow not triggering approval activity

Solution:

Tool: SN-Query-Table
Parameters:
  table_name: sc_ic_aprvl_defn
  query: catalog_item=[item_sys_id]^active=true
  fields: name,condition,active,order

Approval Stuck in "Requested"

Symptom: Approval pending but approver claims to have acted Causes:

  1. Multiple approval records (one approved, one pending)
  2. Approver acted on wrong record
  3. Multi-level approval waiting for previous level

Solution:

Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_approver
  query: sysapproval=[ritm_sys_id]
  fields: sys_id,approver,state,order,sys_updated_on

Request Rejected But Still Processing

Symptom: Request continues despite rejection Cause: Business rule or workflow not honoring rejection Solution: Check workflow for proper rejection handling

Delegation Not Working

Symptom: Delegate not receiving approval requests Causes:

  1. Delegation record inactive
  2. Date range expired
  3. approval flag not set

Solution:

Tool: SN-Query-Table
Parameters:
  table_name: sys_user_delegate
  query: user=[original_user_sys_id]^active=true
  fields: delegate,starts,ends,approval,active

Related Skills

  • catalog/item-creation - Creating catalog items (prerequisite)
  • catalog/request-fulfillment - Processing approved requests
  • admin/workflow-management - Building approval workflows
  • admin/notification-management - Approval notification setup

References

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.