Pipeline - Escalation

It is possible to setup escalation procedures in alarm notification pipelines in Ignition. Let’s create a pipeline that will notify operators 3 times, and if no one acknowledges the alarm after the third time, it gets escalated to the Production Supervisor’s on-call roster.

  1. In the Project Browser under the Alarm Notification Pipelines, create a New Alarm Pipeline called ‘Escalate.’

  2. In order to keep track of how many times the operators get notified, create a counter using the Set Property block inside your pipeline. Drag the Set Property Block to the Pipeline Workspace and connect the START block to the IN of the Set Property block.
    In the Pipeline Block Editor, set the Property Name to ‘numCalls’ and initialize the Property Value to ‘0.’

    images/download/attachments/1704293/Pipeline_Escalation_-_Set_Property_1.png

  3. Drag the Notification Block to the Pipeline Workspace and connect the OUT from the Set Property block to the IN of the Notification block.

    In the Pipeline Block Editor, set the Notification to use ‘Email’ and set the Contacts to use the ‘Operators’ on-call roster.

    images/download/attachments/1704293/Pipeline_Escalation_-_Notification_2.png

  4. Let’s add in a Delay Block so a little time is given to the operators to respond to the alarm before immediately sending back to the operators or escalating it the production supervisors.

    Drag in the Delay Block and connect the OUT from the Notification block to the IN of the Delay block. In the Pipeline Block Editor, set the spinner for '300' seconds. It will give the operators 5 minutes to respond to the alarm before going to the next block.

    images/download/attachments/1704293/Pipeline_Escalation_-_Delay_3.png

  5. If the alarm is still active and not acknowledged, the counter will increment by 1. In order to increment the counter, drag in another Set Property Block and connect the OUT of the Notification block to the IN of the Set Property block. You can right click on the Set Property block to reverse the orientation.

    In the Pipeline Block Editor, set the Property Name to ‘numCalls.' In the Property Value Expression type in, ‘{numCalls} + 1.’ In this expression, use the curly braces to refer to that variable so the counter gets incremented by 1.

    images/download/attachments/1704293/Pipeline_Escalation_-_Set_Property_4.png

  6. The Expression Block will check to see if ‘numCalls’ is < 3.' Drag in an Expression Block to your pipeline workspace and right click on the Expression block to reverse the orientation. Connect the OUT of the Set Property block to the IN of the Expression block.

    Since the value of ‘numCalls is < 3,' the alarm event will follow the ‘True’ path. Connect the ‘True’ pin to the Operator Notification block.

    images/download/attachments/1704293/Pipeline_Escalation_-_Expression_5.png

  7. If the 'numCalls is > 3,' the alarm event will follow the ’False’ path and it will escalate to the Production Supervisors.

    Drag in another Notification Block and reverse the block orientation. In the Pipeline Block Editor, set the Notification to use ‘Email’ and set the Contacts to use the ‘Production Supervisors’ on-call roster.

    Connect the ‘False’ pin to the IN of the Production Supervisors Notification block.

    images/download/attachments/1704293/Pipeline_Escalation_-_ProdSups_Notification_6.png

As you can see, when the Escalate Pipeline sets the ‘numCalls’ variable to a value of 0, it’s going to notify the Operators on-call roster through email that the alarm is active. It will wait 5 minutes, and if the alarm is still active, it will increment the counter by 1. This will repeat until the ‘numCalls’ is > 3. After the 3rd time, if the alarm is still active and in the pipeline, then the Production Supervisors will be notified. Keep in mind, that if the alarm at any point meets the dropout conditions, it will not go to the next block of the pipeline.