Service Level Agreement (SLA)

Overview

In the Citizen Complaint Resolution System, the SLA or Service Level Agreement specifies how long a grievance can remain in a specific status before it is automatically escalated to the next level (for example, assigned to a higher authority). DIGIT offers an auto-escalation mechanism that monitors each complaint’s workflow and advances it if no action is taken within the designated time.

This configuration ensures:

  • Timely handling of complaints

  • Less manual intervention

  • Efficient and automated escalation


Configure SLA

1

Open configuration file

Navigate to: data/pg/Workflow/AutoEscalation.json The SLA values are configured here.

Each entry in this file defines:

  • Which business service (like PGR)

  • Which workflow state (like PENDING)

  • What action to perform when SLA is breached

  • The SLA duration in days

  • And which Kafka topic the escalation event should be pushed to

2

Edit the configuration values (as needed)

Add one entry per state that requires auto-escalation. Fill in fields as shown in the sample configuration.

  • Use a realistic SLA value (stateSLA) in days.

    • 1 = 1 day

    • 0.5 = 12 hours

    • 0.01 = ~15 minutes

  • Ensure "active" is set to "true" to enable escalation.


Sample Configuration

🔹 1. Escalate from PENDINGATLME State

{
  "businessService": "PGR",
  "module": "pgr-services",
  "state": "PENDINGATLME",
  "action": "FORWARD",
  "active": "true",
  "stateSLA": 0.01,
  "businessSLA": null,
  "topic": "pgr-auto-escalation"
}
  • If a complaint is in the PENDINGATLME state for more than ~14 minutes (0.01 days), and no action is taken.

  • The system will automatically trigger the "FORWARD" action.

  • This moves the complaint forward in the workflow (usually to the next responsible officer).

  • The message is sent to Kafka topic pgr-auto-escalation for processing.

🔹 2. Escalate from PENDINGFORASSIGNMENT State

{
  "businessService": "PGR",
  "module": "pgr-services",
  "state": "PENDINGFORASSIGNMENT",
  "action": "ASSIGNEDBYAUTOESCALATION",
  "active": "true",
  "stateSLA": 0.01,
  "businessSLA": null,
  "topic": "pgr-auto-escalation"
}
  • If a complaint is waiting for an assignee (PENDINGFORASSIGNMENT) for more than ~14 minutes,

  • The system auto-assigns it using the "ASSIGNEDBYAUTOESCALATION" action.

  • This ensures the complaint does not remain unassigned.

🔹 3. Escalate from REJECTED State

{
  "businessService": "PGR",
  "module": "pgr-services",
  "state": "REJECTED",
  "action": "CANCEL",
  "active": "true",
  "stateSLA": 0.01,
  "businessSLA": null,
  "topic": "pgr-auto-escalation"
}
  • If a complaint is in REJECTED state for more than ~14 minutes,

  • It will be moved to a CANCELLED status automatically using the "CANCEL" action.

  • This helps clean up rejected complaints that are not manually closed.


Key Parameters

Parameters
Description

businessService

The module this SLA applies to (PGR in this case)

state

The complaint's current workflow state

action

The next step the system will auto-trigger

stateSLA

Time in days before auto-escalation (e.g., 0.01 = ~14 minutes)

topic

Kafka topic where the escalation event is published

active

Whether this escalation rule is currently active


Example Use Case

Imagine a citizen raises a complaint about a streetlight not working:

  • It lands in PENDINGATLME state.

  • If no one takes action in 14 minutes, the system auto-forwards it to the next level.

  • If it's stuck waiting for an assignment, it gets auto-assigned.

  • If someone rejects it and doesn’t close it manually, it gets cancelled automatically.

Last updated

Was this helpful?