Lifecycle Diagram
sequenceDiagram
participant User
participant Campaign
participant ScriptEngine
participant CampaignExecution
participant NotifyFailedChecker
participant CreateAppChecker
%% Create & Activate
User->>Campaign: Create Campaign
Note over User,Campaign: Define expression (JS/Python)
User->>Campaign: Activate Campaign
alt Manual Campaign
User->>Campaign: Start Campaign
else Automatic Campaign
Note over Campaign: Automatically scheduled
end
%% Execution
Campaign->>CampaignExecution: Create execution
%% Client Filtering with Expression
CampaignExecution->>ScriptEngine: Evaluate expression for each client
Note over ScriptEngine: client.creditScore > 700 && client.income > 50000
ScriptEngine-->>CampaignExecution: Return eligible clients
CampaignExecution->>CampaignExecution: Add filtered clients to execution
alt Success
CampaignExecution->>CampaignExecution: Mark as FINISHED
CampaignExecution-->>CreateAppChecker: Status changed notification
CreateAppChecker->>CreateAppChecker: Check if status=FINISHED
CreateAppChecker->>CreateAppChecker: Create applications
CreateAppChecker->>CreateAppChecker: Void old applications
else Error
CampaignExecution->>CampaignExecution: Mark as EXCEPTION_OCCURRED
CampaignExecution-->>NotifyFailedChecker: Status changed notification
NotifyFailedChecker->>NotifyFailedChecker: Check if status=EXCEPTION_OCCURRED
NotifyFailedChecker->>NotifyFailedChecker: Send failure notification
User->>CampaignExecution: Restart or Ignore
end
%% Deactivate
User->>Campaign: Deactivate when done
Last updated
Was this helpful?