PSA/docs/workflow/automation-hub-workflow-guide.md
Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

9.5 KiB

Automation Hub: Creating TypeScript Workflows

Introduction

The Automation Hub provides a powerful interface for creating, managing, and monitoring TypeScript-based workflows. This guide will walk you through the practical steps of using the Automation Hub to create and manage your workflows.

Table of Contents

  1. Automation Hub Overview
  2. Creating a New Workflow
  3. Using the Workflow Editor
  4. Testing and Validating Workflows
  5. Managing Workflow Versions
  6. Attaching Workflows to Events
  7. Monitoring Workflow Executions
  8. Using Workflow Templates
  9. Best Practices

Automation Hub Overview

The Automation Hub consists of four main sections:

  1. Template Library: Browse and use predefined workflow templates
  2. Workflows: Create, edit, and manage your custom workflows
  3. Events Catalog: Configure event triggers for your workflows
  4. Logs & History: Monitor workflow executions and troubleshoot issues

To access the Automation Hub, navigate to the main menu and select "Automation Hub".

Creating a New Workflow

Step 1: Navigate to the Workflows Section

  1. Open the Automation Hub
  2. Click on the "Workflows" tab in the navigation menu

Step 2: Create a New Workflow

  1. Click the "Create Workflow" button in the top-right corner
  2. You'll be taken to the workflow editor page

Step 3: Fill in Workflow Metadata

Complete the following fields in the metadata section:

  • Workflow Name: Enter a descriptive name for your workflow
  • Description: Provide a clear description of what the workflow does
  • Version: Set the initial version (default is 1.0.0)
  • Tags: Add relevant tags to categorize your workflow
  • Active: Toggle to set whether the workflow is active or inactive

Using the Workflow Editor

The workflow editor provides a TypeScript code editor with specialized features for workflow development.

Editor Features

  • Syntax Highlighting: TypeScript syntax is highlighted for readability
  • Code Completion: Intelligent suggestions for workflow context methods and properties
  • Error Checking: Real-time validation of your TypeScript code
  • Code Snippets: Pre-built snippets for common workflow patterns

Using Code Snippets

  1. Type a keyword or press Ctrl+Space to see available snippets
  2. Select a snippet from the dropdown menu
  3. The snippet will be inserted with placeholders for customization

Available snippets include:

  • Basic Workflow Structure
  • Process Trigger Event
  • Execute Action
  • Parallel Actions
  • Conditional Logic
  • Error Handling

Workflow Structure

Every workflow must follow this basic structure:

async function workflow(context: WorkflowContext): Promise<void> {
  const { actions, data, events, logger } = context;
  
  // Initial state
  context.setState('initial');
  
  // Workflow implementation
  
  // Final state
  context.setState('completed');
}

Key Components to Include

  1. State Management: Always set and update workflow states

    context.setState('initial');
    // Later
    context.setState('processing');
    // Finally
    context.setState('completed');
    
  2. Event Handling: Process the trigger event that started the workflow

    const triggerEvent = context.input.triggerEvent;
    
  3. Action Execution: Perform actions to interact with systems

    const result = await actions.someAction({ param: 'value' });
    
  4. Error Handling: Include try/catch blocks for robustness

    try {
      await actions.riskyOperation();
    } catch (error) {
      logger.error('Operation failed', error);
    }
    
  5. Logging: Add logs for monitoring and debugging

    logger.info('Workflow started');
    logger.debug('Processing data', someData);
    logger.error('Error occurred', error);
    

Testing and Validating Workflows

Using the Test Button

  1. Click the "Test" button in the editor toolbar
  2. The system will validate your workflow code
  3. Results will be displayed, including:
    • Syntax errors
    • Structure validation
    • Security warnings
    • Best practice recommendations

Understanding Validation Results

  • Success: Your workflow code is valid and can be saved
  • Warnings: Potential issues that should be reviewed but won't prevent saving
  • Errors: Critical issues that must be fixed before saving

Common Validation Warnings

  • Missing error handling (try/catch blocks)
  • Not using context.setState to track workflow state
  • Security concerns like accessing process.env or using eval()

Managing Workflow Versions

Creating a New Version

  1. Open an existing workflow
  2. Make your changes
  3. Update the version number in the metadata section
  4. Click "Save Workflow"
  5. A new version will be created while preserving the previous versions

Using the Versions Dialog

  1. Click the "Versions" button in the workflow editor
  2. A dialog will open showing all versions of the workflow
  3. For each version, you can see:
    • Version number
    • Creation date
    • Created by
    • Whether it's the current active version

Setting the Active Version

  1. Open the Versions dialog
  2. Find the version you want to activate
  3. Click "Set as Active"
  4. The selected version will become the active one used for new workflow executions

Attaching Workflows to Events

Step 1: Navigate to the Events Catalog

  1. Open the Automation Hub
  2. Click on the "Events Catalog" tab

Step 2: Find an Event

Browse or search for the event you want to attach a workflow to.

Step 3: Attach a Workflow

  1. Click the "Attach Workflow" button next to the event
  2. Select a workflow from the dropdown menu
  3. Configure parameter mapping if needed
  4. Click "Save" to create the attachment

Parameter Mapping

When attaching a workflow to an event, you can map event data to workflow parameters:

  1. Select an event field from the dropdown
  2. Select the corresponding workflow parameter
  3. Add any transformation logic if needed
  4. Repeat for all required parameters

Monitoring Workflow Executions

Step 1: Navigate to Logs & History

  1. Open the Automation Hub
  2. Click on the "Logs & History" tab

Step 2: Browse Workflow Executions

The Logs & History section shows all workflow executions with:

  • Workflow name
  • Trigger event
  • Execution status
  • Start and end times
  • Duration

Step 3: View Execution Details

  1. Click on a workflow execution to see details
  2. The details view includes:
    • State transitions
    • Action executions and results
    • Events received and emitted
    • Log messages
    • Error information (if any)

Using the Workflow Visualizer

  1. Click the "Visualize" button for a workflow execution
  2. A visual representation of the workflow will be displayed
  3. The visualization shows:
    • States and transitions
    • Actions and their status
    • Events and their flow
    • Current state (for active workflows)

Using Workflow Templates

Step 1: Browse the Template Library

  1. Open the Automation Hub
  2. Click on the "Template Library" tab
  3. Browse available templates by category or use the search function

Step 2: Preview a Template

  1. Click the "Preview" button on a template
  2. Review the template code and description

Step 3: Create a Workflow from a Template

  1. Click "Create Workflow from Template"
  2. You'll be taken to the workflow editor with the template code pre-loaded
  3. Customize the workflow as needed
  4. Save the workflow with your changes

Available Template Categories

  • Approval Workflows
  • Request and Fulfillment Workflows
  • Review and Feedback Workflows
  • Onboarding and Provisioning Workflows
  • Incident Management Workflows

Best Practices

Workflow Design

  1. Start Simple: Begin with a clear, focused workflow
  2. Use Descriptive Names: Name workflows, states, and variables clearly
  3. Include Comments: Document complex logic and decisions
  4. Handle Errors: Always include error handling
  5. Test Thoroughly: Validate your workflow before deploying

Performance Optimization

  1. Use Parallel Execution: Run independent actions in parallel
  2. Minimize Data Storage: Store only necessary data
  3. Optimize State Transitions: Use meaningful states but don't overdo it
  4. Consider Workflow Size: Break complex workflows into smaller ones

Security Considerations

  1. Avoid Unsafe Patterns: Don't use eval(), Function(), or access process.env
  2. Validate Inputs: Check input data before processing
  3. Limit Scope: Keep workflows focused on their specific purpose
  4. Follow Least Privilege: Only request necessary permissions

Maintenance Tips

  1. Version Properly: Use semantic versioning (MAJOR.MINOR.PATCH)
  2. Document Changes: Add comments explaining version changes
  3. Test Before Activating: Always test new versions before setting them active
  4. Monitor Executions: Regularly check the Logs & History section

Conclusion

The Automation Hub provides a powerful environment for creating and managing TypeScript-based workflows. By following this guide, you can effectively create, test, and monitor workflows that automate your business processes.

For more detailed information on TypeScript workflow development, refer to the TypeScript Workflow Creation Guide.