Ticket Escalation
The "Ticket Escalation" action evaluates a PSA ticket against predefined criteria to determine if it needs to be escalated, for example, by changing its status, reassigning it, or notifying a specific team. This helps ensure that tickets receive appropriate attention and are addressed in a timely manner according to your operational procedures.
This action is valuable for:
- Preventing Stagnation: Automatically flags tickets that are not progressing or have been overlooked.
- SLA Adherence: Helps in meeting response and resolution times by ensuring tickets are escalated when they breach certain time-based thresholds.
- Prioritizing Critical Issues: Allows for custom logic to quickly escalate tickets based on content, urgency, or customer importance.
- Automating Workflows: Reduces manual monitoring by systematically applying escalation rules.
What It Does
The "Ticket Escalation" action performs the following key functions:
- Evaluates a single PSA ticket based on the configured
escalation_criteria
. - Supports two main types of escalation logic:
- Time-Based: Escalates if the ticket's status or owner (primary resource) has not changed within a specified timeframe (
minutes_to_wait_before_escalation
). - Custom Criteria: Uses AI to analyze the ticket's content against user-defined
custom_instructions
to decide if escalation is warranted.
- Time-Based: Escalates if the ticket's status or owner (primary resource) has not changed within a specified timeframe (
- If the ticket meets the escalation criteria:
- It can optionally remove the current owner (primary resource) from the ticket if
remove_owner_from_ticket_if_escalated
is enabled. - It can optionally set a new status for the ticket, as specified in
status_to_set_when_escalated
.
- It can optionally remove the current owner (primary resource) from the ticket if
- Controls workflow progression based on the
continue_workflow_only_if_escalated
setting. If true (default) and the ticket is not escalated, subsequent actions in the workflow are skipped. - Outputs messages detailing the escalation decision and any fields that were updated.
How It Works
The action follows a structured process to determine if a ticket requires escalation:
1. Input Data
The action processes a single PsaTicket
. The core logic is driven by the escalation_criteria
field, which dictates whether to use time-based or AI-driven custom criteria. Other inputs like custom_instructions
, escalation_settings
, status_to_set_when_escalated
, and remove_owner_from_ticket_if_escalated
further refine its behavior.
2. Escalation Logic Evaluation
Based on the selected escalation_criteria
:
-
Time-Based Escalation (
ESCALATE_WHEN_TIME_IS_UP
):- Neo notes the ticket's current status and owner (primary resource) when the action begins.
- It then waits for the duration specified in
escalation_settings.minutes_to_wait_before_escalation
. - During this period, Neo periodically (e.g., every minute) re-checks the ticket's status and owner in your PSA.
- If, after the full waiting duration, the ticket's status and owner have remained unchanged from their initial values, the ticket is flagged for escalation.
- If either the status or the owner changes during the waiting period, the time-based escalation is aborted, and the ticket is not escalated under this criterion.
-
Custom Criteria Escalation (
CUSTOM_CRITERIA
):- Neo gathers the full content of the ticket, including its summary, description, and notes.
- This ticket information, along with the
custom_instructions
you provide, is sent to an AI model. - The AI model analyzes the ticket against the rules and conditions defined in your
custom_instructions
. - Based on this analysis, the AI determines whether the ticket should be escalated and provides reasoning for its decision.
3. Post-Escalation Field Updates (If Escalated)
If the evaluation (either time-based or custom) determines that the ticket requires escalation:
- If
remove_owner_from_ticket_if_escalated
is set toTrue
, Neo prepares an update to clear the ticket's current owner (primary resource). - If a
status_to_set_when_escalated
is provided, Neo prepares an update to change the ticket's status to this new value. - These intended changes are included in the
default_fields_to_update
output field.
4. Output and Workflow Control
- The action generates
EscalateTicketOutput
. This includes:default_messages_for_msp
: Contains messages detailing the reasoning behind the escalation decision. This list is populated only if escalation was actually required.default_fields_to_update
: Lists any prepared field changes (owner, status).default_messages_for_dashboard
: Provides a summary for the Event History.
- The
continue_workflow_only_if_escalated
setting (defaulting toTrue
) dictates further workflow behavior:- If
True
and the ticket was not escalated, the workflow execution stops, and subsequent actions are skipped. A message indicating why escalation was skipped will be logged. - If
True
and the ticket was escalated, the workflow proceeds to the next action. - If
False
, the workflow always proceeds to the next action, regardless of the escalation outcome.
- If
Configuration Fields
When you add the "Ticket Escalation" action to a workflow, you'll configure the following:
default_data
The PSA ticket that Neo should evaluate for escalation.
escalation_criteria
Determines the method used for escalation. Choose from:
Escalate when time is up
: Escalates if the ticket's status and owner remain unchanged for a defined period.Custom criteria
: Uses AI and your specific instructions to decide on escalation.
continue_workflow_only_if_escalated
(default: True
) If enabled, the workflow will only proceed to subsequent actions if this "Ticket Escalation" action actually escalates the ticket. If False
, the workflow continues regardless of the escalation outcome.
custom_instructions
(optional) Available if escalation_criteria
is set to Custom criteria
. Provide detailed text-based instructions for the AI to evaluate the ticket. Clearly define the conditions under which a ticket should be escalated.
remove_owner_from_ticket_if_escalated
(default: False
) If enabled, and the ticket is escalated, the current owner (primary resource) of the ticket will be removed.
status_to_set_when_escalated
(optional) If the ticket is escalated, its status will be changed to the PSA status selected here. If left blank, the status will not be changed by this action.
escalation_settings
(optional) Available if escalation_criteria
is set to Escalate when time is up
. This field groups settings related to time-based escalation:
-
minutes_to_wait_before_escalation
(default:10
, maximum:60
) The number of minutes Neo should wait. If the ticket's status and owner do not change during this period, the ticket will be escalated.
Output Fields
This action makes the following information available to subsequent actions in the workflow:
default_messages_for_msp
A list of messages detailing the escalation decision and the reasoning behind it. These are suitable for internal notes or notifications. This list is only populated if escalation was determined to be necessary.
default_fields_to_update
A list of field update objects. If escalation occurred and remove_owner_from_ticket_if_escalated
was true or status_to_set_when_escalated
was provided, this list will contain the necessary updates for the ticket's owner and/or status. This output can be used by a subsequent "Update Ticket Fields" action.
default_messages_for_dashboard
A list of strings, where each string is a summary of the escalation action for the ticket, intended for display in the Neo Dashboard Event History.
Use Cases
1. Time-Based SLA Breach Warning
- Trigger: Ticket status is updated to "In Progress - Tier 1".
- Action: "Ticket Escalation" with
escalation_criteria
=Escalate when time is up
,minutes_to_wait_before_escalation
= 120 (2 hours),status_to_set_when_escalated
= "Tier 1 - SLA Risk",continue_workflow_only_if_escalated
=True
. - Next Action: "Notify Internal Team" (e.g., Tier 1 Team Lead).
- Goal: Automatically flag and notify if a Tier 1 ticket shows no owner or status change for 2 hours, indicating potential stagnation.
2. Custom Escalation for Urgent Keywords
- Trigger: New ticket created.
- Action: "Ticket Escalation" with
escalation_criteria
=Custom criteria
,custom_instructions
= "Escalate if the ticket summary or description contains 'system down', 'outage', 'cannot work', or if priority is 'Critical'.",status_to_set_when_escalated
= "Urgent - Immediate Attention Required",remove_owner_from_ticket_if_escalated
=False
. - Next Action: "Assign Ticket to Technician" (to a dedicated urgent response team/technician).
- Goal: Rapidly escalate tickets that indicate severe, widespread, or business-critical issues based on their content.
3. Escalate Unactioned "Awaiting Customer" Tickets
- Trigger: Ticket status changed to "Awaiting Customer Response".
- Action: "Ticket Escalation" with
escalation_criteria
=Escalate when time is up
,escalation_settings.minutes_to_wait_before_escalation
= 7200 (5 days),status_to_set_when_escalated
= "Follow-up Required/Close",continue_workflow_only_if_escalated
=True
. - Next Action: "Chase Customer" action, or "Notify Internal Team" to manually review and close.
- Goal: Proactively manage tickets waiting on customer input for an extended period, moving them towards resolution or closure.
Best Practices
- Specificity in Custom Instructions: When using
CUSTOM_CRITERIA
, make yourcustom_instructions
as precise and unambiguous as possible. Clearly outline conditions, keywords, and scenarios. Test thoroughly with different ticket examples. - Appropriate Timeouts: For
ESCALATE_WHEN_TIME_IS_UP
, select aminutes_to_wait_before_escalation
value that aligns with your SLAs and operational capacity. Very short timeouts might lead to unnecessary escalations. - Status/Owner Change Focus: Remember that time-based escalation specifically monitors changes to the ticket's status and owner (primary resource). Other activities, like adding a note without changing status or owner, will not prevent a time-based escalation.
- Workflow Synergy: Use "Ticket Escalation" in conjunction with actions like "Notify Internal Team," "Assign Ticket to Technician," or "Update Ticket Fields" to create comprehensive automated escalation processes.
- Strategic Use of
continue_workflow_only_if_escalated
:- Keep it
True
(default) if subsequent actions (e.g., notifying an escalation team) should only occur if the ticket was actually escalated. - Set it to
False
if you want subsequent actions (e.g., logging the check) to run regardless of whether an escalation took place.
- Keep it
- Monitor Event History: Regularly review the Neo Dashboard Event History to see how the "Ticket Escalation" action is performing. The
default_messages_for_dashboard
anddefault_messages_for_msp
provide insights into why decisions were made, helping you refine your configurations. - Valid PSA Statuses: Ensure that any status name provided in
status_to_set_when_escalated
matches an existing, valid status in your PSA.