Skip to main content

SoftyFlow BPMN Process Components

This guide provides comprehensive documentation for all available BPMN components in SoftyFlow's Process Modeler and their configuration options.

1. Task Components

1.1 User Task (Manual Task)

Element Type: bpmn:UserTask

User Tasks represent manual work that needs to be done by a human user. These tasks appear in user task baskets and can be assigned to specific users or roles.

Configuration Options

Users and Roles
  • Users: Assign tasks to specific users by email

    • Supports dynamic assignment using variables: {{ userEmails }}
    • Can assign to multiple users with comma-separated emails
    • Special variables: {{SF_initiator}}, {{SF_latestValidator}}
  • Roles: Assign tasks to user groups/roles

    • Supports dynamic assignment using variables: {{ roleId }}
    • Can assign to multiple roles with comma-separated IDs
    • Special role: public (accessible to all users)
  • reCAPTCHA: Enable for public tasks to prevent spam and fraudulent activities

  • Observers: Users/roles that can view the task in read-only mode

Interface Configuration
  • Interface: Select a web interface (UI) for task execution
  • Screen: Choose specific screen within the selected interface
Task Priority
  • Due in: Set task due date in minutes
  • Priority: Set task priority level
    • Very Low, Low, Medium, High, Very High
  • Description: Task description text
  • Hide In Task Basket: Option to hide task from task basket view
Notification Settings
  • Send notification email: Enable/disable email notifications
  • Provider: Choose email provider (default: SoftyFlow provider)
  • Mail Subject: Email subject line (supports variables)
  • Mail Template: Visual email template editor
  • Advanced Settings:
    • Send UAT mail to SF_initiator: Send test emails to process initiator
    • From: Custom sender email
    • Cc: Carbon copy recipients
    • Reply to: Reply-to addresses
    • Attachments: File attachments from project files

1.2 Send Task (Mail Task)

Element Type: bpmn:SendTask

Send Tasks automatically send emails during process execution without requiring human interaction.

Configuration Options

Recipients
  • To Users: Email recipients (users)
  • To Roles: Email recipients (roles/groups)
Mail Configuration
  • Provider: Email service provider
  • Mail Subject: Email subject (supports variables like {{ taskId }})
  • Mail Template: Visual email body editor
  • Advanced Settings: Same as User Task notification settings

1.3 Service Task

Element Type: bpmn:ServiceTask

Service Tasks execute automated services/connectors, typically for API integrations or external service calls.

Configuration Options

Service Selection
  • Service: Choose from available connectors/services
  • Service ID: Unique identifier for the service
  • Methods: Available API methods/operations for the selected service
Service Configuration
  • API Configuration: JavaScript-based configuration including:
    • Authentication parameters (OAuth2, API Key, Basic Auth)
    • General parameters for all methods
    • Method-specific parameters
    • Return data handling

1.4 Sub Process

Element Type: bpmn:SubProcess

Sub Processes allow embedding and executing other processes within the current process.

Configuration Options

Sub Process Configuration
  • Sub Process: Select the process to execute
  • Parallel Multi-Instance: Enable parallel execution of multiple instances
  • Parallel Array: Variable containing array values for multi-instance execution
    • Each array value starts a new sub-process instance

2. Gateway Components

2.1 Exclusive Gateway

Element Type: bpmn:ExclusiveGateway

Exclusive Gateways create decision points in the process flow where only one path can be taken based on conditions.

Configuration

  • Conditions are defined on outgoing sequence flows
  • Uses JavaScript expressions for decision logic
  • Only one outgoing path will be activated

3. Event Components

3.1 Boundary Events

Element Type: bpmn:BoundaryEvent

Boundary Events are attached to activities and can interrupt or run parallel to the main activity.

Timer Events

Event Definition: bpmn:TimerEventDefinition

Interrupting Timer (One-time)
  • Start in: Time to wait before triggering (in minutes)
  • Supports variable-based delays: {{ delay }}
  • Interrupts the main activity when triggered
Non-Interrupting Timer (Recurring)
  • Every: Recurring interval (in minutes)
  • Runs periodically without interrupting the main activity
  • Continues until the main activity completes

Error Events

Event Definition: bpmn:ErrorEventDefinition

  • Catches errors from the attached activity
  • Provides error handling and recovery mechanisms
  • Can define error-specific handling logic

3.2 Start Events

Element Type: bpmn:StartEvent

Start Events define where process instances begin execution.

3.3 End Events

Element Type: bpmn:EndEvent

End Events define where process instances complete execution.

4. Flow Components

4.1 Sequence Flow

Element Type: bpmn:SequenceFlow

Sequence Flows connect process elements and define the execution order.

Configuration Options

  • Conditional Flows: Add JavaScript conditions to control flow
  • Default Flows: Fallback paths when no conditions are met
  • Variable access for condition evaluation

5. Input/Output Variables

Available for User Tasks, Send Tasks, Service Tasks, and Sub Processes.

5.1 Variable Types

Scripts

  • Type: script
  • Language: JavaScript
  • Execution: Server-side execution
  • Use Cases: Complex data manipulation, calculations, API calls

Expressions

  • Type: expression
  • Language: JavaScript expressions
  • Execution: Simple value assignments and transformations
  • Use Cases: Variable mapping, simple calculations

Actions

  • Type: action
  • UI-Based: Visual function builder
  • Capabilities: UI components, database operations, file handling
  • Return Value: Configurable return data

5.2 Variable Management

Input Parameters

  • Process data before task execution
  • Transform external data for task consumption
  • Set up task-specific variables

Output Parameters

  • Process data after task completion
  • Transform task results for process consumption
  • Update process variables

Variable Features

  • Propagate to all branches: Apply variable changes across parallel branches
  • Testing Environment: Built-in variable testing with mock data
  • Drag & Drop Ordering: Reorder execution sequence
  • Variable Finder: Browse and insert available process variables

6. Advanced Features

6.1 Process Variables

System Variables

  • SF_initiator: Process initiator information
  • SF_latestValidator: Latest task validator
  • instanceId: Current process instance ID
  • projectId: Current project ID
  • nextTaskId: Next task identifier

Variable Interpolation

  • Syntax: {{ variableName }}
  • Supported in: Email subjects, templates, assignments, conditions
  • Dynamic evaluation during runtime

6.2 Multi-Instance Execution

Parallel Multi-Instance

  • Execute multiple instances of sub-processes simultaneously
  • Array-based instance creation
  • Independent variable scopes per instance

6.3 Error Handling

Error Boundary Events

  • Catch and handle task errors
  • Provide alternative execution paths
  • Error-specific recovery mechanisms

Process Error Management

  • Centralized error collection
  • Error serialization and logging
  • Process continuation after error handling

6.4 Timer Management

Timer Events

  • Minute-based timing precision
  • Variable-driven timer values
  • Both interrupting and non-interrupting modes

Due Date Management

  • Task-level due date configuration
  • Automatic task prioritization
  • Overdue task handling

6.5 Email System

Template Management

  • Visual email designer
  • Variable interpolation in templates
  • Project-level default templates
  • Template versioning

Provider Management

  • Multiple email provider support
  • Default SoftyFlow provider
  • Custom SMTP configuration
  • Provider failover support

7. Best Practices

7.1 Process Design

  1. Start with simple flows before adding complexity
  2. Use descriptive names for all elements
  3. Group related activities in sub-processes
  4. Plan error handling for critical paths

7.2 Variable Management

  1. Use consistent naming conventions
  2. Document complex scripts with comments
  3. Test variables before deployment
  4. Minimize variable scope when possible

7.3 Email Configuration

  1. Test email templates in UAT mode
  2. Use variables for dynamic content
  3. Configure appropriate providers for different environments
  4. Include unsubscribe options when applicable

7.4 Security Considerations

  1. Enable reCAPTCHA for public tasks
  2. Validate input data in scripts
  3. Use role-based access control
  4. Secure API credentials in service tasks

This comprehensive guide covers all available BPMN components in SoftyFlow. Each component can be combined to create sophisticated workflow automation solutions that meet your business requirements.