#78 - SLA Priority Response Times and Business HoursOpen

Define Low, Medium, High and Urgent Priority Response times Global and Per Client Basis with Global being default if not defined at the client level

slas Table

  • sla_id
  • sla_name
  • sla_description
  • sla_low_response
  • sla_medium_response
  • sla_high_response
  • sla_severe_response

Client Table will have client_sla_id which can reference sla

We will also have defined Business Hours in the settings in which will be calculated based off these hours.

If past we can generate Notification and chnage the color of the ticket rows yellow when its getting close red when it due or past due sla based off the last ticket update.

Milestone:
25.05 - Due: 2025-04-29
Assigned To: =^_^=Marcus
Created Date: 2025-02-20 22:47:32
Discussion Link:

Comments 4

[o_O] Marcus Commented on 2025-02-22 11:53:25

Dump of my old notes on this.

----

ITFlow SLAs:-
- User defined response and resolution SLAs (in mins)
- User defined business days & business hrs
- Ticket priorities can be linked to SLAs, but this should be customisable (e.g. Low priority ticket gets the 'Low' SLA but can be changed per requirement without changing priority)
- Notifications when SLAs are about to / have breached (Agent + SLA Notification email DL); potentially other actions?
- Certain ticket states should pause the resolution SLA
- Filter tickets by SLA state
- Reporting on SLAs


ALTER TABLE `tickets` ADD `ticket_sla` INT(11) NULL DEFAULT NULL AFTER `ticket_status`; 
- The SLA ID associated with the ticket

ALTER TABLE `tickets` ADD `ticket_first_response_at` DATETIME NULL DEFAULT NULL AFTER `ticket_created_at`;
- Time of first ticket reply (internal OR client facing; resolving, merging or closing the ticket will also set this if unset)

ALTER TABLE `tickets` ADD `ticket_response_sla_met` TINYINT(1) NULL DEFAULT NULL AFTER `ticket_url_key`;
- Calculation based on if the time between ticket_created_at and ticket_first_response_at exceeds the response duration in the SLA plan (accounts for working hrs/days)

ALTER TABLE `tickets` ADD `ticket_resolution_sla_met` TINYINT(1) NULL DEFAULT NULL AFTER `ticket_response_sla_met`; 
- More advanced calculation based on sla_history. Using the SLA history table, this calculates the (working hrs/days) time between ALL the history_start_time (the first should match ticket_created_at) and the history_end_time for the ticket. This will have multiple entries as the ticket may bounce between open, on hold, custom states, back to open, etc. We only track open. 

 

sla_history
- table is used for tracking resolution SLA (we track response sla separately, as it's easier to track)
history_id
history_ticket_id
history_start_time
history_end_time
history_duration


ticket_slas
sla's:-
sla_id
sla_name
sla_response_mins
sla_resolution_mins
sla_created_at
sla_updated_at


ticket_priority_default_sla
ticket_priority (low,med,high)
ticket_sla_id

[o_O] Johnny Commented on 2025-02-27 16:53:59

I see

[o_O] Johnny Commented on 2025-02-27 16:54:40

See spot run

 

I run over spot

[o_O] Marcus Commented on 2025-03-20 05:30:48

We've now added the ticket_first_response_at field. Just need to actually start using it.