Skip to main content

Case Workflows

TrustGate provides flexible workflows for managing cases through their lifecycle, from assignment to escalation to resolution.

Case Assignment

Assign to User

curl -X POST https://api.bytrustgate.com/v1/cases/{case_id}/assign \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assignee_id": "user_123",
"note": "Please review this sanctions alert"
}'

Assign to Team

curl -X POST https://api.bytrustgate.com/v1/cases/{case_id}/assign \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"team_id": "team_compliance",
"note": "Requires senior analyst review"
}'

Auto-Assignment Rules

Configure automatic case routing:

curl -X PUT https://api.bytrustgate.com/v1/settings/case-routing \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rules": [
{
"condition": {
"type": "sanctions",
"priority": "critical"
},
"assign_to": "team_senior_compliance",
"sla_hours": 4
},
{
"condition": {
"type": "verification",
"priority": "medium"
},
"assign_to": "team_operations",
"sla_hours": 72
},
{
"condition": {
"type": "pep"
},
"assign_to": "team_enhanced_dd",
"sla_hours": 24
}
]
}'

Status Transitions

Update Case Status

curl -X PATCH https://api.bytrustgate.com/v1/cases/{case_id} \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "in_progress",
"note": "Beginning investigation"
}'

Valid Status Transitions

┌─────────┐
│ OPEN │
└────┬────┘

├──────────────────────────┐
│ │
v v
┌─────────────┐ ┌──────────────┐
│ IN_PROGRESS │──────────│ ESCALATED │
└──────┬──────┘ └──────┬───────┘
│ │
├────────────────────────┤
│ │
v v
┌──────────────┐ ┌──────────┐
│ PENDING_INFO │────────>│ RESOLVED │
└──────────────┘ └────┬─────┘

v
┌──────────┐
│ CLOSED │
└──────────┘
FromToAllowed
openin_progress
openescalated
in_progresspending_info
in_progressresolved
in_progressescalated
escalatedresolved
pending_infoin_progress
resolvedclosed
closedopen✅ (reopen)

Escalation

Escalate Case

curl -X POST https://api.bytrustgate.com/v1/cases/{case_id}/escalate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"escalate_to": "user_senior_analyst",
"reason": "Requires senior review - complex ownership structure",
"urgency": "high"
}'

Escalation Levels

LevelEscalate ToUse Case
L1Senior AnalystComplex cases, unclear matches
L2Compliance ManagerPolicy decisions, high-risk approvals
L3MLRO/CCORegulatory filings, SAR decisions

Auto-Escalation

Cases escalate automatically when:

curl -X PUT https://api.bytrustgate.com/v1/settings/auto-escalation \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rules": [
{
"trigger": "sla_breach",
"escalate_to": "team_managers",
"notification": true
},
{
"trigger": "priority_critical",
"max_time_unassigned_minutes": 30,
"escalate_to": "user_on_call"
},
{
"trigger": "multiple_hits",
"hit_count_threshold": 5,
"escalate_to": "team_senior_compliance"
}
]
}'

Adding Notes and Evidence

Add Case Note

curl -X POST https://api.bytrustgate.com/v1/cases/{case_id}/notes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Verified identity documents against government database. All checks passed.",
"visibility": "internal"
}'

Attach Evidence

curl -X POST https://api.bytrustgate.com/v1/cases/{case_id}/evidence \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@screenshot.png" \
-F "description=Screenshot of government database verification" \
-F "evidence_type=verification_result"

Evidence Types

TypeDescription
documentSupporting documents
screenshotSystem screenshots
verification_resultThird-party verification
correspondenceCustomer communication
researchExternal research

Request Information

Mark as Pending Information

curl -X POST https://api.bytrustgate.com/v1/cases/{case_id}/request-info \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"info_needed": "Additional proof of address dated within last 3 months",
"deadline": "2025-01-27T23:59:59Z",
"notify_customer": true
}'

Case Activities

Get Case Timeline

curl -X GET "https://api.bytrustgate.com/v1/cases/{case_id}/activities" \
-H "Authorization: Bearer YOUR_API_KEY"

Response

{
"activities": [
{
"id": "activity_001",
"type": "status_change",
"from_status": "open",
"to_status": "in_progress",
"user": "analyst@company.com",
"timestamp": "2025-01-20T10:00:00Z"
},
{
"id": "activity_002",
"type": "note_added",
"note_id": "note_123",
"user": "analyst@company.com",
"timestamp": "2025-01-20T10:15:00Z"
},
{
"id": "activity_003",
"type": "escalation",
"escalated_to": "senior@company.com",
"reason": "Requires senior review",
"user": "analyst@company.com",
"timestamp": "2025-01-20T11:00:00Z"
}
]
}

SLA Management

View SLA Status

curl -X GET "https://api.bytrustgate.com/v1/cases/{case_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"id": "case_789012",
"priority": "high",
"sla": {
"target_hours": 24,
"elapsed_hours": 18,
"remaining_hours": 6,
"status": "on_track",
"due_at": "2025-01-21T14:30:00Z"
}
}

SLA Statuses

StatusDescription
on_trackWithin SLA timeframe
at_riskLess than 25% time remaining
breachedSLA deadline passed
pausedSLA clock paused (pending info)

Bulk Operations

Bulk Assign

curl -X POST https://api.bytrustgate.com/v1/cases/bulk/assign \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"case_ids": ["case_1", "case_2", "case_3"],
"assignee_id": "user_123"
}'

Bulk Status Update

curl -X POST https://api.bytrustgate.com/v1/cases/bulk/status \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"case_ids": ["case_1", "case_2"],
"status": "in_progress"
}'

Next Steps