Example Sequence Diagram
Complete flow of the Alert to Ticket integration with MSPCentric.
sequenceDiagram
participant V as Vendor
participant API as MSPCentric Platform API
participant PSA as PSA System
participant DB as Database
Note over V,DB: Alert Creation Flow
V->>API: POST /api/oem-alerts-api/alerts
API->>API: Validate Request & Auth
alt Integration Alerting Disabled
API->>DB: Store Event (correlationId)
API-->>V: 409 Forbidden (alerting not enabled for integration)
else Integration Alerting Enabled
API->>API: Evaluate Suppression Rules
API->>API: Check service-based suppression
API->>API: Check status-based suppression
alt Rules Allow Ticket Creation
API-->>API: Proceed with ticket creation
API->>API: Check Ticket Appending Toggle
alt Appending Enabled
API->>DB: Check for existing tickets
alt Existing Ticket Found
API->>PSA: Update Ticket (append description)
PSA-->>API: Ticket Updated
API->>DB: Store Event (correlationId, appended)
API-->>V: 200 OK (existing correlationId, appended)
else No Existing Ticket
API->>PSA: Create New Ticket
PSA-->>API: Ticket Created (ticket_id)
API->>DB: Store Event (correlationId, success)
API-->>V: 201 Created (correlationId, ticket_id)
end
else Appending Disabled
API->>PSA: Create New Ticket
PSA-->>API: Ticket Created (ticket_id)
API->>DB: Store Event (correlationId, success)
API-->>V: 201 Created (correlationId, ticket_id)
end
else Rules Suppress Ticket Creation
API-->>API: Suppress ticket creation
API->>DB: Store Event (correlationId, suppressed_by_rules)
API-->>V: 200 OK (suppressed by rules)
end
end
Note over V,DB: Self-Healing Flow
V->>API: POST /api/oem-alerts-api/alerts/
API->>API: Check integration features for alerting enabled
alt Integration Alerting Disabled
API->>DB: Store Event (correlationId)
API-->>V: 409 Forbidden (alerting not enabled for integration)
else Integration Alerting Enabled
API->>API: Check Self-Healing Toggle (enabled?)
alt Self-Healing Enabled
API->>API: Validate Request & Find Ticket
API->>DB: Lookup Ticket by correlationId
API->>PSA: Update Ticket Status (resolved/closed)
alt PSA Success
PSA-->>API: Ticket Status Updated
API->>DB: Store Event (correlationId, self_healed)
API-->>V: 200 OK (ticket resolved)
else Ticket Already Closed
PSA-->>API: Ticket Already Closed
API->>DB: Store Event (correlationId, already_closed)
API-->>V: 409 Conflict (ticket already closed)
else PSA Failure
PSA-->>API: Error Response
API->>DB: Store Event (correlationId, error)
API-->>V: 500/502 Error (error message)
end
else Self-Healing Disabled
API->>DB: Store Event (correlationId, self_healing_disabled)
API-->>V: 200 OK (self-healing disabled)
end
end
Note over V,DB: Status Query Flow
V->>API: GET /api/oem-alerts-api/alerts/{correlationId}
API->>DB: Lookup Event History
API-->>V: 200 OK (status, history, ticket_id)