Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

On-call escalation policy

Thereza Van der
Tera Contributor

Hi all 🙂

 

I am still struggling with my on-call scheduling. Please look at my screenshot. When I create a schedule, that is there by default. I would like to know where to set the 15 minutes to 10 minutes (in the template or wherever the system gets that from) because I would like all our schedules to be 10 minutes instead of 15. And then, I would also like to notify the manager but only 10 minutes after the second person did not react to the notification. I can see that you can choose 'notify manager' but it seems like the manager is then notified at the same time as the on-call person. I would also appreciate if you can guide me as to how to create a template if it is at all possible?

 

In the second screenshot I created manually for one group, but I would like to have a template that I can apply to all groups that does exactly what is displayed in the screenshot (primary, secondary, level 1 manager, level 2 manager).

 

 

Regards

Thereza

 

1 REPLY 1

Naveen20
ServiceNow Employee

Try this option: Clone Script + Business Rule

Create one escalation policy with your desired 4-step structure (Primary → Secondary → L1 Manager → L2 Manager, all at 10-minute intervals). Then use a Fix Script to clone it to every group:

function cloneEscalationPolicy(masterSysId, targetGroupSysId) {
    var master = new GlideRecord('on_call_escalation');
    master.get(masterSysId);

    var np = new GlideRecord('on_call_escalation');
    np.initialize();
    np.name = 'Escalation - ' + getGroupName(targetGroupSysId);
    np.group = targetGroupSysId;
    var npId = np.insert();

    var steps = new GlideRecord('on_call_escalation_step');
    steps.addQuery('escalation_policy', masterSysId);
    steps.orderBy('order');
    steps.query();
    while (steps.next()) {
        var ns = new GlideRecord('on_call_escalation_step');
        ns.initialize();
        ns.escalation_policy = npId;
        ns.order = steps.order;
        ns.reminder_interval = steps.reminder_interval;
        ns.escalation_timeout = steps.escalation_timeout;
        ns.notify_type = steps.notify_type;
        ns.insert();
    }
}

Then add a before-insert Business Rule on on_call_escalation_step that overrides the default 15 to 10 minutes — this ensures any future manually-created steps also get 10-minute intervals automatically:

current.reminder_interval = 600; // 10 minutes in seconds
current.escalation_timeout = 600;

This covers both bulk rollout (the clone script) and ongoing enforcement (the business rule).