A Triage Policy decides how incoming tickets are classified, routed and titled. It is made of steps. Each step sets one field (or one related pair of fields) on the ticket, using AI, your own rules, or the text and history already in your helpdesk.
Where to find it: Admin Panel → Components → Triage → Policies
Steps always run in the order below, no matter how they are listed on the policy. Steps of the same type run side by side.
| Order | Step Type | Uses AI? |
|---|---|---|
| 1 | Extract & Match | No |
| 2 | Field and Field Pair | Yes |
| 3 | Inferred Field | No |
| 4 | Ticket Filter Rules | No |
| 5 | Time Estimate | No |
| 6 | Text Generation | Optional |
Later steps see what earlier steps decided in the same run. For example, a security alert arrives filed under your own company:
Each step's result is checked against its Minimum Confidence before it is written. A result below the threshold is not written, unless the step has a fallback value. The rule-based steps always report a confidence of 1.0.
| Step Type | What It Sets | Uses AI? | Use It When |
|---|---|---|---|
| Field | One picklist field | Yes | The choice needs judgement, such as Priority. |
| Field Pair | Two related picklist fields | Yes | The fields depend on each other, such as Issue Type and Sub-Issue Type. |
| Text Generation | A text field | Optional | You want to write or rebuild the title or another text field. |
| Extract & Match | A company field | No | The company name is written in the ticket's title or description. |
| Ticket Filter Rules | One field of any type except date | No | The rule fits in a sentence, such as "Security tickets go to the SOC queue". |
| Inferred Field | One picklist or reference field | No | The answer follows how similar tickets were handled in the past, such as the contract for |
| Time Estimate | One number field | No | You want the duration from one of your time estimate policies on the ticket. |
Every step type starts the same way:
priority, issueType or companyID in Autotask).These steps ask the AI to choose a picklist value for the ticket. Use Field for a single field such as Priority, and Field Pair for two related fields such as Issue Type and Sub-Issue Type.
A fallback value that is later deactivated or excluded is not written. The triage log records the reason.
Text Generation steps write or assemble a text field such as the ticket title. They run last, so they cther step.
Formulas let you define a template for the output instead of relying entirely on AI. A formula uses {{namespace:key}} tokens that are replaced with real values at triage time.
| Namespace | What It Resolves From | Example |
|---|---|---|
field |
The ticket's current field values (before triage) | {{field:title}}, {{field:queueID}} |
result |
Results from earlier steps in this run | {{result:priority}}, {{result:issueType}} |
contact |
The linked contact's attributes | {{contact:firstName}}, {{contact:lastName}} |
company |
The linked company's attributes | {{company:companyName}} |
ai |
AI-generated text for this step | {{ai:text}} |
Note: Field names within each namespace use your helpdesk provider's native naming. Th field names. ConnectWise, HaloPSA, and other providers will have different field names.
A {{result:...}} token for a field set by a rule-based step shows:
Use the pipe character (|) to define fallbacks. If the first value is empty, the next one is tried. Segments without a colon are treated as literal text.
{{result:priority|field:priority}}: Use the triage result, or fall back to the ticket's current priority if triage skipped it.{{result:priority|N/A}}: Use the triage result, or show "N/A" if empty.{{result:priority|field:priority|Unclassified}}: Try the result, then the field, then the literal "Unclassified".{{contact:firstName|Unknown}}: Use the contact's name, or "Unknown" if no contact is
| Formula | Example Output | Uses AI? |
|---|---|---|
{{result:priority|field:priority}} - {{field:title}} |
High - Printer is down | No |
{{result:priority}} {{contact:firstName}} - {{ai:text}} |
Critical John - Server connectivity failure on VLAN 12 | Yes |
[{{result:priority|Unclassified}}] {{company:companyName|?}} - {{ai:text}} |
[High] Contoso Corp - Printer paper jam on floor 3 | Yes |
{{field:title}} |
Printer is down | No (passes through original title unchanged) |
{{ai:text}}, the AI runs first, then the formula wraps the AI o/li>
{{ai:text}}, the AI is skipped entirely. This is faster and costs nothing.Hints give the AI additional context when it classifies tickets. They are added to the AI's instructions when triage runs, and only affect the AI step types. There are three levels of hints, each layering on top of the previous.
Where to find it: Admin Panel → Components → Triage → Customer Context
These hints apply to every ticket triaged under your account. Use them to tell the AI about your busineassification preferences that apply across all customers.
Each hint has a Label (the category, e.g., "Industry", "Naming Convention") and a Body (the instruction). Examples:
| Label | Body |
|---|---|
| Industry | We are an MSP serving manufacturing and healthcare clients. |
| Priority Rules | Any ticket mentioning "production down" or "server offline" should be Critical priority. |
| Naming Convention | Tickets about recurring maintenance should be classified as IT:Change, not IT:Problem. |
Company hints apply to one customer company. When a ticket is linked to that company, its hints are used instead of any account-level hint with the same label. Account-level hints with other labels still apply.
For example, if you have an account-level hint labelled "Priority Rules" and a company-level hint for Ame label, the company version is used for ABLE Manufacturing tickets. All other customers still get theaccount-level version.
Account-level: Admin Panel → Components → Triage → Field Hints
Policy-level: Open a policy → Field Hints tab
These hints apply to individual picklist values. For each value in your helpdesk (e.g., each Priority option, each Issue Type), you can configure:
Account-level settings apply to all policies. Policy-level exclusions are added on top, so different policies can offer different picklist options.
These steps make no AI call and give the same answer every time for the same ticket. They do not use Mibe left at 0.
An Extract & Match step reads a company name written in the ticket's title or description and sets the ticket's company to the company with that name.
The typical case is alert tickets from tools such as Blumira or ThreatLocker. These arrive filed under eal customer's name is in the title or description.
If you can say "when the text contains X, set the field to Y", use a Ticket Filter Rules step instead. Use Extract & Match when the value itself is in the text and there are too many possible values to write a rule for each one.
Note: Extract & Match currently supports company fields only.
companyID in Autotask).{value} where the name appears.@ in an email address that comes before the one you want.| Ticket Text | Template | Captured |
|---|---|---|
| Blumira Alert - Suspicious login @ Contoso Corp | @ {value} |
Contoso Corp |
| Organization: Contoso Corp | Organization: {value} |
Contoso Corp |
| Wi-Fi down - Contoso Corp | - {value} (with a space before the hyphen) |
Contoso Corp |
| Contoso Corp | {value} |
Contoso Corp (the whole line) |
A space next to {value} is optional, so @ {value} matches both "@Contoso" and "@ Contoso". Any other space in the template must be present in the ticket. That is why the hyphen inside "Wi-Fi" is not mistaken for
the separator in the third example.
The Test section in the step panel runs your current, unsaved settings without writing anything to your helpdesk. Under Test With, paste a sample title and description, or enter a ticket number, then click Run Test.
| Result | Meaning |
|---|---|
| Would write | Exactly one company matched. This is the company that would be set. |
| Condition not met | The ticket did not pass the Run Only When filter. |
| No pattern matched | None of your patterns found text in the ticket. |
| No match found | Text was captured, but no company has that name. |
| Ambiguous | Text was captured, but more than one company matched it. |
| Pattern error | A pattern is invalid. Fix it before saving. |
The test also shows the pattern that hit, the captured text, and the text as it was compared after normalizing. With a ticket number, it also shows the ticket's current company and whether the ticket passes Run Only When.
A Ticket Filter Rules step is a lookup table. Each rule pairs a saved ticket filter with a value. Rulesom, and the first rule whose filter matches the ticket sets the field.
Use it for rules you can state in a sentence, such as "anything due within a day goes to Help Desk, everything else goes by territory".
Example rules for a Queue field:
| Order | Ticket Filter | Set Queue To |
|---|---|---|
| 1 | Due within 1 day | Help Desk |
| 2 | Territory is East | East Team |
| 3 | Territory is West | West Team |
Each rule needs its own saved ticket filter. A filter that a rule uses cannot be deleted or deactivatedp>
An Inferred Field step looks at how similar past tickets were set and picks the most common value. For example, to set the Contract field, it looks at past tickets for the same company and picks the contract used most often.
A Time Estimate step writes a duration from one of your time estimate policies to a number field on theurs.
The step checks your policy's rules against the values triage just decided for the ticket, not the values the ticket arrived with. A ticket that arrived with no type, and was then classified as a printer issue and routed to Service Desk, gets the printer estimate.
Note: Time Estimate steps are available for Autotask and ConnectWise only, and only on accounts with a single active helpdesk integration.
estimatedHours in Autotask or onnectWise.| Setting | Behavior |
|---|---|
| On (default) | The estimate is written every time triage runs, replacing any value already on the ticket,yped. |
| Off | A ticket that already has an estimate above zero is left alone. An empty or zero value is e ticket categories default the field to 0. |
With Overwrite Existing Estimate off, the first estimate written to a ticket stays, even if the ticket ifferent duration would now apply.
A time estimate policy that a triage step uses cannot be deleted. Point the step at a different policy, or delete the step, first.
Each triage run creates a triage log entry for the ticket. Open it to see what happened to each field:<
Each change carries a source badge showing which kind of step set it:
| Source | Set By |
|---|---|
| AI | A Field, Field Pair or Text Generation step. |
| Rule | A Ticket Filter Rules step, or a Time Estimate step whose policy rule matched. |
| Text Match | An Extract & Match step. |
| Fallback | A step's fallback value, or a Time Estimate policy's default duration. |
Changes from rule-based steps and fallbacks are not counted in AI accuracy metrics.