# Support triage

A new support ticket arrives. Momor sorts it by topic and urgency, sets its priority in the helpdesk, looks for known issues when it reports a bug, and drafts a first reply.

- **Trigger:** Helpdesk API key
- **Steps:** 7, four at the top level
- **Waits for:** Nobody
- **Uses:** Helpdesk tool server

Trigger: Helpdesk → Model: Triage → Tool: Set priority → Logic: A bug? → Tool: Find known issues → Output: Draft a reply

[Open in Designer](/workflows/designer)

## How it works

- **Triage.** Ask the model reads the ticket and returns its topic, its urgency and a one-line summary.
- **File.** Call a tool sets the ticket’s priority and topic in the helpdesk, straight from the triage’s fields.
- **Look.** For a bug only, the model chooses helpdesk searches for open tickets about the same problem, and their results are handed back to it.
- **Draft.** The last model step drafts a first reply to the customer. That draft is the run’s result, for an agent to review and send.

## Starting it

The helpdesk starts a run for each new ticket with its API key, sending the ticket text as `Prompt` and its id as `TicketId`. Give each run the ticket id as `?referenceId=` too, so the runs can be matched to tickets later. See [Start a run](/docs/workflows/api/start-a-run/).

## The workflow

```yaml title="SupportTriage.yaml"
Workflow: SupportTriage
Description: Sorts an incoming support ticket, files it in the helpdesk, and drafts a first reply.
Triggers:
  - New: Ticket
    Schema:
      type: object
      required: [Prompt, TicketId]
      properties:
        Prompt: { type: string }
        TicketId: { type: string }
Operations:
  - Tool: SetPriority
    Locator: mcp://9e4b7d20-1c5a-4f38-b06e-3d8a2f71c945/set_priority
  - Tool: SearchTickets
    Locator: mcp://9e4b7d20-1c5a-4f38-b06e-3d8a2f71c945/search_tickets
Output: Content
Steps:
  - ModelCall: Triage
    Instructions: Read the ticket. Say what it is about, how urgent it is, and sum it up in one line.
    Output:
      Structured:
        type: object
        required: [Topic, Urgency, Summary]
        properties:
          Topic: { type: string, enum: [Billing, Refund, Bug, Account, Other] }
          Urgency: { type: string, enum: [Low, Normal, High] }
          Summary: { type: string }
  - ExecuteTool: File
    Operations: [SetPriority]
    Input:
      ticket: { Field: Trigger.TicketId }
      priority: { Field: Triage.Urgency }
      topic: { Field: Triage.Topic }
  - Branch: Route
    Cases:
      - When: { Equals: { Field: Triage.Topic, Value: Bug } }
        Then:
          - ModelCall: Look
            Instructions: Search the helpdesk for open tickets about the same problem.
            Operations: [SearchTickets]
            Output: ToolCall
          - ExecuteModelToolCall: Search
            Operations: [SearchTickets]
          - DeliverResults: Found
  - ModelCall: Draft
    Instructions: >-
      Draft a first reply to the customer. If a known issue was found, say so and link it.
      Do not promise a date for a fix.
    Output: Content
```

> **Before you upload it**
> Replace the `mcp://` locators with your helpdesk tool server’s connection id and tool names, and the `File` step’s input with the fields its tool expects.
