Documentation
</> Developer Portal
You are viewing documentation for RT 5.0.4, an older supported release. The current release is 6.0.4 (view the current version of this page).

Service Level Agreements

This is used to automate Starts/Due date setting. Almost everything is controlled in RT's config using %ServiceAgreements and %ServiceBusinessHours. Please check their documents in RT_Config.pm for full details. This is a cookbook to give you a quick sense of how flexible and powerful RT's SLA support is.

Show me a basic config that simply works?

No problem.

    Set( %ServiceAgreements, (
        Default => 'standard',
        Levels => {
            'standard' => {
                Starts => { RealMinutes => 0 },
                Resolve => { RealMinutes => 8*60 },
            },
            'urgent' => {
                Starts => { RealMinutes => 0 },
                Resolve => { RealMinutes => 2*60 },
            },
        },
    ));

With this, tickets' Starts date will be set to tickets' Created date, and Due date will be set to 2 or 8 hours after Created date, based on the which SLA value ("standard" or "urgent") is chosen.

Does it support business time instead of real time?

Sure.

    Set( %ServiceAgreements, (
        Default => 'standard',
        Levels => {
            'standard' => {
                Resolve => { BusinessMinutes => 4*60 },
            },
        },
    ));

You also need to define what business time is:

    Set( %ServiceBusinessHours, (
        'Default' => {
            1 => { Name => 'Monday', Start => '9:00', End => '18:00' },
            2 => { Name => 'Tuesday', Start => '9:00', End => '18:00' },
            3 => { Name => 'Wednesday', Start => '9:00', End => '18:00' },
            4 => { Name => 'Thursday', Start => '9:00', End => '18:00' },
            5 => { Name => 'Friday', Start => '9:00', End => '18:00' },
        },
    ));

Does business time support holidays?

Yep!

    Set( %ServiceBusinessHours, (
        'Default' => {
            1 => { Name => 'Monday', Start => '9:00', End => '18:00' },
            2 => { Name => 'Tuesday', Start => '9:00', End => '18:00' },
            3 => { Name => 'Wednesday', Start => '9:00', End => '18:00' },
            4 => { Name => 'Thursday', Start => '9:00', End => '18:00' },
            5 => { Name => 'Friday', Start => '9:00', End => '18:00' },
            holidays => [qw(01-01 12-25 2015-10-12)],
        },
    ));

Does it support response due?

Yep. e.g.

    Set( %ServiceAgreements, (
        Default => 'standard',
        Levels => {
            'standard' => {
                Starts => { RealMinutes => 0 },
                Response => { RealMinutes => 8*60 },
            },
        },
    ));

With this, Due date will be automatically unset after you reply to your clients. When your clients reply back, it'll be set to 8 hours after that.

You can define both "Response" and "Resolve" and RT will pick the one that comes earlier as the Due date.

Could I ignore Due date for stalled tickets?

Sure!

    Set( %ServiceAgreements, (
        Default => 'standard',
        Levels => {
            'standard' => {
                Starts => { RealMinutes => 0 },
                Resolve => { RealMinutes => 8*60, IgnoreOnStatuses => ['stalled'] },
            },
        },
    ));
← Back to index