# System Feed

Signal detection and lifecycle management

## List signals

> Returns paginated list of system feed signals with optional filtering

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}},"schemas":{"Signal":{"type":"object","required":["id","title","summary","severity","status","category","integrationName","createdAt"],"properties":{"id":{"type":"integer","description":"Unique signal identifier"},"fingerprint":{"type":"string","description":"Unique fingerprint for deduplication"},"title":{"type":"string","description":"Signal title"},"summary":{"type":"string","description":"Brief summary of the issue"},"analysis":{"type":"string","nullable":true,"description":"AI-generated analysis"},"severity":{"type":"string","enum":["critical","warning","info"],"description":"Signal severity level"},"status":{"type":"string","enum":["active","acknowledged","assigned","in_progress","resolved","dismissed"],"description":"Current lifecycle status"},"category":{"type":"string","description":"Signal category"},"integrationId":{"type":"integer","nullable":true,"description":"Source integration ID"},"integrationName":{"type":"string","description":"Source integration name"},"integrationType":{"type":"string","enum":["stripe","zuora","salesforce"],"description":"Integration type"},"suggestedActions":{"type":"array","items":{"type":"string"},"description":"AI-suggested resolution actions"},"metrics":{"type":"object","nullable":true,"description":"Signal-specific metrics"},"priority":{"type":"string","nullable":true,"enum":["low","medium","high","critical"]},"assigneeId":{"type":"integer","nullable":true},"eventCount":{"type":"integer","description":"Number of related events"},"firstSeen":{"type":"string","format":"date-time"},"lastSeen":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Pagination":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}}}}},"paths":{"/concierge/alerts":{"get":{"tags":["System Feed"],"summary":"List signals","description":"Returns paginated list of system feed signals with optional filtering","operationId":"listAlerts","parameters":[{"name":"status","in":"query","description":"Filter by signal status","schema":{"type":"string","enum":["active","acknowledged","assigned","in_progress","resolved","dismissed"]}},{"name":"severity","in":"query","description":"Filter by severity level","schema":{"type":"string","enum":["critical","warning","info"]}},{"name":"integrationId","in":"query","description":"Filter by integration ID","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Page number (default 1)","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","description":"Items per page (default 10)","schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"Paginated list of signals","content":{"application/json":{"schema":{"type":"object","properties":{"alerts":{"type":"array","items":{"$ref":"#/components/schemas/Signal"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"401":{"description":"Not authenticated"},"403":{"description":"Access denied"},"500":{"description":"Server error"}}}}}}
```

## Get signal statistics

> Returns aggregated statistics about signals

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}},"schemas":{"SignalStats":{"type":"object","properties":{"total":{"type":"integer"},"bySeverity":{"type":"object","properties":{"critical":{"type":"integer"},"warning":{"type":"integer"},"info":{"type":"integer"}}},"byStatus":{"type":"object","properties":{"active":{"type":"integer"},"acknowledged":{"type":"integer"},"resolved":{"type":"integer"}}},"byCategory":{"type":"object","additionalProperties":{"type":"integer"}}}}}},"paths":{"/concierge/alerts/stats":{"get":{"tags":["System Feed"],"summary":"Get signal statistics","description":"Returns aggregated statistics about signals","operationId":"getAlertStats","responses":{"200":{"description":"Signal statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalStats"}}}},"401":{"description":"Not authenticated"},"403":{"description":"Access denied"},"500":{"description":"Server error"}}}}}}
```

## Get signal details

> Returns detailed information about a specific signal

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}},"schemas":{"SignalDetail":{"allOf":[{"$ref":"#/components/schemas/Signal"},{"type":"object","properties":{"affectedEntities":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}}},"initialGuess":{"type":"string","description":"AI initial assessment before deep analysis"}}}]},"Signal":{"type":"object","required":["id","title","summary","severity","status","category","integrationName","createdAt"],"properties":{"id":{"type":"integer","description":"Unique signal identifier"},"fingerprint":{"type":"string","description":"Unique fingerprint for deduplication"},"title":{"type":"string","description":"Signal title"},"summary":{"type":"string","description":"Brief summary of the issue"},"analysis":{"type":"string","nullable":true,"description":"AI-generated analysis"},"severity":{"type":"string","enum":["critical","warning","info"],"description":"Signal severity level"},"status":{"type":"string","enum":["active","acknowledged","assigned","in_progress","resolved","dismissed"],"description":"Current lifecycle status"},"category":{"type":"string","description":"Signal category"},"integrationId":{"type":"integer","nullable":true,"description":"Source integration ID"},"integrationName":{"type":"string","description":"Source integration name"},"integrationType":{"type":"string","enum":["stripe","zuora","salesforce"],"description":"Integration type"},"suggestedActions":{"type":"array","items":{"type":"string"},"description":"AI-suggested resolution actions"},"metrics":{"type":"object","nullable":true,"description":"Signal-specific metrics"},"priority":{"type":"string","nullable":true,"enum":["low","medium","high","critical"]},"assigneeId":{"type":"integer","nullable":true},"eventCount":{"type":"integer","description":"Number of related events"},"firstSeen":{"type":"string","format":"date-time"},"lastSeen":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/concierge/alerts/{id}":{"get":{"tags":["System Feed"],"summary":"Get signal details","description":"Returns detailed information about a specific signal","operationId":"getAlert","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"responses":{"200":{"description":"Signal details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalDetail"}}}},"401":{"description":"Not authenticated"},"403":{"description":"Access denied"},"404":{"description":"Signal not found"},"500":{"description":"Server error"}}}}}}
```

## Update signal status

> Updates the lifecycle status of a signal

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}}},"paths":{"/concierge/alerts/{id}":{"patch":{"tags":["System Feed"],"summary":"Update signal status","description":"Updates the lifecycle status of a signal","operationId":"updateAlertStatus","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["active","acknowledged","assigned","in_progress","resolved","dismissed"]}}}}}},"responses":{"200":{"description":"Signal status updated","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"400":{"description":"Invalid status"},"401":{"description":"Not authenticated"},"403":{"description":"Permission denied"},"404":{"description":"Signal not found"},"500":{"description":"Server error"}}}}}}
```

## Generate AI insight

> Generates deeper AI-powered analysis and recommendations for a signal. Requires feedAI plan feature.

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}}},"paths":{"/concierge/alerts/{id}/insight":{"post":{"tags":["System Feed"],"summary":"Generate AI insight","description":"Generates deeper AI-powered analysis and recommendations for a signal. Requires feedAI plan feature.","operationId":"generateAlertInsight","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"responses":{"200":{"description":"AI insight generated","content":{"application/json":{"schema":{"type":"object","properties":{"insight":{"type":"string","description":"Detailed AI analysis with root cause, impact, and resolution guidance"}}}}}},"401":{"description":"Not authenticated"},"403":{"description":"Permission denied or plan feature not available"},"404":{"description":"Signal not found"},"500":{"description":"Server error"}}}}}}
```

## Get signal raw data

> Returns the raw event data associated with a signal

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}},"schemas":{"RawEvent":{"type":"object","properties":{"id":{"type":"integer"},"eventType":{"type":"string"},"entityType":{"type":"string"},"entityId":{"type":"string"},"occurredAt":{"type":"string","format":"date-time"},"severity":{"type":"string"},"payload":{"type":"object"},"metadata":{"type":"object"}}}}},"paths":{"/concierge/alerts/{id}/raw-data":{"get":{"tags":["System Feed"],"summary":"Get signal raw data","description":"Returns the raw event data associated with a signal","operationId":"getAlertRawData","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"responses":{"200":{"description":"Raw event data","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/RawEvent"}}}}}}},"401":{"description":"Not authenticated"},"403":{"description":"Access denied"},"404":{"description":"Signal not found"},"500":{"description":"Server error"}}}}}}
```

## Assign signal to user

> Assigns a signal to a specific user for investigation

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}}},"paths":{"/concierge/alerts/{id}/assign":{"post":{"tags":["System Feed"],"summary":"Assign signal to user","description":"Assigns a signal to a specific user for investigation","operationId":"assignAlert","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["assigneeId"],"properties":{"assigneeId":{"type":"integer","description":"User ID to assign the signal to"}}}}}},"responses":{"200":{"description":"Signal assigned successfully"},"401":{"description":"Not authenticated"},"403":{"description":"Permission denied"},"404":{"description":"Signal not found"},"500":{"description":"Server error"}}}}}}
```

## Update signal priority

> Updates the priority level of a signal

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}}},"paths":{"/concierge/alerts/{id}/priority":{"post":{"tags":["System Feed"],"summary":"Update signal priority","description":"Updates the priority level of a signal","operationId":"updateAlertPriority","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["priority"],"properties":{"priority":{"type":"string","enum":["low","medium","high","critical"]}}}}}},"responses":{"200":{"description":"Priority updated successfully"},"401":{"description":"Not authenticated"},"403":{"description":"Permission denied"},"404":{"description":"Signal not found"},"500":{"description":"Server error"}}}}}}
```

## Add comment to signal

> Adds a comment to a signal's history

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}}},"paths":{"/concierge/alerts/{id}/comment":{"post":{"tags":["System Feed"],"summary":"Add comment to signal","description":"Adds a comment to a signal's history","operationId":"addAlertComment","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["comment"],"properties":{"comment":{"type":"string","description":"Comment text"}}}}}},"responses":{"200":{"description":"Comment added successfully"},"401":{"description":"Not authenticated"},"403":{"description":"Permission denied"},"500":{"description":"Server error"}}}}}}
```

## Get signal history

> Returns the full audit history of a signal including status changes, assignments, and comments

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}},"schemas":{"SignalHistoryEntry":{"type":"object","properties":{"id":{"type":"integer"},"alertId":{"type":"integer"},"action":{"type":"string","enum":["created","status_changed","assigned","commented","priority_changed","resolution_started","resolution_completed"]},"previousValue":{"type":"string","nullable":true},"newValue":{"type":"string","nullable":true},"comment":{"type":"string","nullable":true},"userId":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/concierge/alerts/{id}/history":{"get":{"tags":["System Feed"],"summary":"Get signal history","description":"Returns the full audit history of a signal including status changes, assignments, and comments","operationId":"getAlertHistory","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"responses":{"200":{"description":"Signal history","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SignalHistoryEntry"}}}}},"401":{"description":"Not authenticated"},"500":{"description":"Server error"}}}}}}
```

## Link signal to support ticket

> Associates a signal with a support ticket

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}}},"paths":{"/concierge/alerts/{id}/link-ticket":{"post":{"tags":["System Feed"],"summary":"Link signal to support ticket","description":"Associates a signal with a support ticket","operationId":"linkAlertToTicket","parameters":[{"name":"id","in":"path","required":true,"description":"Signal ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ticketId"],"properties":{"ticketId":{"type":"integer","description":"Support ticket ID to link"}}}}}},"responses":{"200":{"description":"Ticket linked successfully"},"401":{"description":"Not authenticated"},"403":{"description":"Permission denied"},"500":{"description":"Server error"}}}}}}
```

## Trigger anomaly analysis

> Ingests fresh events from connected integrations, detects anomalies, and generates AI-powered signals. Requires feedAI plan feature.

```json
{"openapi":"3.0.3","info":{"title":"Kaana System Feed API","version":"1.0.0"},"tags":[{"name":"System Feed","description":"Signal detection and lifecycle management"}],"servers":[{"url":"/api","description":"API base path"}],"security":[{"sessionAuth":[]}],"components":{"securitySchemes":{"sessionAuth":{"type":"apiKey","in":"cookie","name":"connect.sid","description":"Session-based authentication via HTTP-only cookie"}},"schemas":{"Signal":{"type":"object","required":["id","title","summary","severity","status","category","integrationName","createdAt"],"properties":{"id":{"type":"integer","description":"Unique signal identifier"},"fingerprint":{"type":"string","description":"Unique fingerprint for deduplication"},"title":{"type":"string","description":"Signal title"},"summary":{"type":"string","description":"Brief summary of the issue"},"analysis":{"type":"string","nullable":true,"description":"AI-generated analysis"},"severity":{"type":"string","enum":["critical","warning","info"],"description":"Signal severity level"},"status":{"type":"string","enum":["active","acknowledged","assigned","in_progress","resolved","dismissed"],"description":"Current lifecycle status"},"category":{"type":"string","description":"Signal category"},"integrationId":{"type":"integer","nullable":true,"description":"Source integration ID"},"integrationName":{"type":"string","description":"Source integration name"},"integrationType":{"type":"string","enum":["stripe","zuora","salesforce"],"description":"Integration type"},"suggestedActions":{"type":"array","items":{"type":"string"},"description":"AI-suggested resolution actions"},"metrics":{"type":"object","nullable":true,"description":"Signal-specific metrics"},"priority":{"type":"string","nullable":true,"enum":["low","medium","high","critical"]},"assigneeId":{"type":"integer","nullable":true},"eventCount":{"type":"integer","description":"Number of related events"},"firstSeen":{"type":"string","format":"date-time"},"lastSeen":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/concierge/analyze":{"post":{"tags":["System Feed"],"summary":"Trigger anomaly analysis","description":"Ingests fresh events from connected integrations, detects anomalies, and generates AI-powered signals. Requires feedAI plan feature.","operationId":"analyzeAnomalies","responses":{"200":{"description":"Analysis completed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"alerts":{"type":"array","items":{"$ref":"#/components/schemas/Signal"}},"alertIds":{"type":"array","items":{"type":"integer"}}}}}}},"401":{"description":"Not authenticated"},"403":{"description":"Permission denied or plan feature not available"},"500":{"description":"Server error"}}}}}}
```
