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}}
- Supports dynamic assignment using variables:
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)
- Supports dynamic assignment using variables:
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 informationSF_latestValidator
: Latest task validatorinstanceId
: Current process instance IDprojectId
: Current project IDnextTaskId
: 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
- Start with simple flows before adding complexity
- Use descriptive names for all elements
- Group related activities in sub-processes
- Plan error handling for critical paths
7.2 Variable Management
- Use consistent naming conventions
- Document complex scripts with comments
- Test variables before deployment
- Minimize variable scope when possible
7.3 Email Configuration
- Test email templates in UAT mode
- Use variables for dynamic content
- Configure appropriate providers for different environments
- Include unsubscribe options when applicable
7.4 Security Considerations
- Enable reCAPTCHA for public tasks
- Validate input data in scripts
- Use role-based access control
- 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.