Automation System - Architecture
Visual overview of the automation system architecture and data flows.
System Overview
Layer 1: User Interface
Pipeline Builder (/pipelines)
Workflow Builder (/workflows)
Main Dashboard (/automation)
Management Hub (/automation/hub)
Layer 2: API Routes
GET /api/automation-rules
POST /api/automation-rules
PUT /api/automation-rules/:id
DELETE /api/automation-rules/:id
Layer 3: Service & Database
AutomationRuleService
PostgreSQL Database
TypeORM Repository
Event-Driven Data Flow
Example: Lead Created Event
- 1. Event TriggerUser creates a lead in the CRM → Event: LEAD_CREATED
- 2. API CallPOST /api/automation-rules/trigger/LEAD_CREATED with lead data
- 3. Rule MatchingFind all active rules with trigger=LEAD_CREATED in current workspace
- 4. Condition EvaluationCheck if lead.score > 70, lead.status == 'qualified', etc.
- 5. Action ExecutionIf conditions pass: Send Email → Create Task → Update Lead Score → Send Webhook
- 6. Statistics UpdateUpdate lastSuccessAt, successCount, or lastFailureAt based on result
- 7. Retry Logic (if failed)Schedule retry with exponential backoff: 1s → 2s → 4s → 8s
Integration Points
Pipeline Builder Integration
Users create stage automations in Pipeline Builder. When they click "Create as Workflow," the automation is saved as an AutomationRule via the API and becomes reusable across multiple pipelines.
Workflow Builder Integration
Visual workflow designer creates complex multi-step automations with branching logic. Workflows are saved as AutomationRule entities with visualization metadata (nodes, edges).
Automation Hub Integration
Management interface for viewing, editing, cloning, and monitoring all automation rules. Provides health reports, execution statistics, and manual triggering capabilities.
Supported Triggers (35+)
Lead Events
LEAD_CREATED
LEAD_UPDATED
LEAD_STATUS_CHANGED
LEAD_SCORE_THRESHOLD
LEAD_ASSIGNED
Property Events
PROPERTY_CREATED
PROPERTY_UPDATED
PROPERTY_STATUS_CHANGED
PROPERTY_PRICE_CHANGED
Contact Events
CONTACT_CREATED
CONTACT_UPDATED
CONTACT_TAGGED
CONTACT_EMAIL_BOUNCED
Transaction/Deal Events
TRANSACTION_CREATED
TRANSACTION_UPDATED
TRANSACTION_STAGE_CHANGED
TRANSACTION_CLOSED_WON
TRANSACTION_CLOSED_LOST
Task Events
TASK_CREATED
TASK_DUE_SOON
TASK_COMPLETED
TASK_OVERDUE
Integration Events
EMAIL_RECEIVED
CALENDAR_EVENT_CREATED
WEBHOOK_RECEIVED
API_CALL_RECEIVED
System Events
SCHEDULE
MANUAL_TRIGGER
Supported Actions (25+)
Communication
SEND_EMAIL
SEND_SMS
SEND_NOTIFICATION
SEND_SLACK_MESSAGE
Record Management
CREATE_TASK
UPDATE_RECORD
CREATE_NOTE
UPDATE_LEAD
UPDATE_CONTACT
UPDATE_PROPERTY
UPDATE_TRANSACTION
Assignment & Routing
ASSIGN_USER
ASSIGN_TEAM
ROUND_ROBIN_ASSIGN
Tagging & Classification
ADD_TAG
REMOVE_TAG
Deal Management
UPDATE_DEAL_STAGE
CLOSE_DEAL_WON
CLOSE_DEAL_LOST
AI & Scoring
CALCULATE_LEAD_SCORE
AI_SENTIMENT_ANALYSIS
AI_NEXT_BEST_ACTION
Integrations
SEND_WEBHOOK
TRIGGER_ZAPIER
TRIGGER_WORKFLOW
API_REQUEST
CREATE_DOCUMENT
Condition Operators (17)
Equality
equals
not_equals
Comparison
greater_than
greater_or_equal
less_than
less_or_equal
String Matching
contains
not_contains
starts_with
ends_with
Existence
is_empty
is_not_empty
List Operations
in_list
not_in_list
Advanced
matches_regex
is_true
is_false