Workflows· Customer Support & Service

    The Ticket Router

    A workflow that automatically sorts incoming support tickets by category and urgency, assigns them to the right team, and prepares a personalized first reply.

    automatingstructuring

    Description

    Steps

    Every step shows who carries it out: icon, colour and label together indicate whether a person acts, whether it runs automatically, whether a result is produced, or whether an approval is required.

    01Person

    A new support ticket with subject line, message, and customer context comes in and starts the process.

    02Automated

    03Automated

    04Automated

    05Result

    Key
    PersonAutomatedResultApproval

    Requirements and operations

    Requirements

    • Ticket system Zendesk, Freshdesk, or a comparable system that reads tickets and accepts updates.
    • Team/queue mapping A fixed rule from category to team, for example bug to Development or billing to Finance.
    • Email tool (optional) Gmail, Outlook, or a comparable tool for sending the first reply.
    • LLM access API access to a language model, for example from OpenAI, Anthropic, or Google.

    Testing

    • Test ticket Set up a realistic case, for example "Login isn't working."
    • Category and priority Check whether the classification matches the actual urgency.
    • Routing and update Check whether the correct team or queue, as well as fields and tags, are set.
    • Edge cases Test vague tickets, tickets with multiple issues, multilingual tickets, and empty tickets.

    Go-live

    • Approval to start Activate the workflow only once classification, routing, and ticket updates are reliably correct.
    • Start narrow Begin with a few categories and let first replies be sent automatically only for clear low-risk cases at first.
    • Review rules Set a review rule before dispatch for Critical and complaint tickets.
    • Expand Extend the workflow later with sentiment escalation, VIP detection, SLA tracking, and duplicate merging.

    Common issues

    • Incorrect priority on vague tickets Add examples for each priority level to the prompt.
    • First reply too generic Make personal address and the ticket ID mandatory fields.
    • JSON parsing fails Make the "JSON only" instruction explicit and validate the output.
    • Team names do not match Match the identifiers exactly against the support tool.

    Builder Prompt

    GOAL
    Build a workflow that automatically classifies every newly incoming support ticket (category and priority), assigns it to the responsible team, updates the ticket system, and prepares a personalized first reply, with dispatch protection for critical cases.
    
    Adapt the structure to the concepts of your automation tool (for example nodes, steps, zaps, or agent actions). While doing so, preserve the trigger logic, the sequence, the dispatch branch, and the data flow.
    
    TRIGGER
    Type: webhook or native integration with your ticket system (Zendesk, Freshdesk, or comparable) that fires on every new ticket and supplies subject line, message, and customer context.
    
    STEPS
    1. AI step: classification. Use exactly the Categorization and Prioritization working prompt (see the Working Prompts section). Output exclusively as JSON with the fields category, priority, team, and reasoning.
    2. Routing: assign the ticket to the matching queue or team based on the category to team mapping. Team names must exactly match the identifiers in the ticket system.
    3. Update ticket: set category, priority, team, and tags in the ticket system.
    4. AI step: first reply. Use exactly the First Reply working prompt (see the Working Prompts section).
    5. Dispatch branch: for low-risk cases (for example category Question with priority Low or Medium), send the first reply automatically. For Critical, High, or complaint, save the first reply only as a draft and request approval before it is sent.
    
    PROMPTS
    Take over both working prompts from the section of the same name unchanged. Do not alter the placeholders they contain, and map them as described in the data flow.
    
    DATA FLOW
    Trigger to step 1: ticket subject, ticket message, customer name.
    Step 1 to steps 2 and 3: category, priority, team, reasoning as JSON.
    Trigger and step 1 to step 4: customer name, ticket ID, category, priority, team.
    Step 1 to step 5: category and priority drive the dispatch branch.
    
    ERROR HANDLING
    No valid JSON from step 1: keep the "JSON only" instruction, validate the output, and retry once. Then place the ticket unclassified in a triage queue.
    Incorrect priority on vague tickets: add examples for each priority level to the prompt. When in doubt, choose the higher priority, the approval step will catch it.
    Team names do not match: match the exact queue or team identifiers from the ticket system, otherwise routing fails.
    Customer name not extractable: use a neutral greeting as a fallback instead of an incorrect name.
    Ticket covering multiple issues: classify by the most urgent concern and note the rest in the reasoning.
    Critical or complaint should not be sent automatically: enforce the dispatch branch from step 5 consistently. These cases always go through approval.
    
    PLACEHOLDER CONVENTION
    All placeholders in square brackets inside the two working prompts are mapped dynamically: [TICKET_SUBJECT], [TICKET_MESSAGE], [CUSTOMER_NAME], and [TICKET_ID] from the trigger, as well as [CATEGORY], [PRIORITY], and [TEAM] from the JSON of step 1. [SUPPORT_TEAM_NAME] is not dynamic: set this value before activation, along with the category to team mapping as workflow configuration. List all placeholders that require manual configuration separately at the end.
    
    SELF CHECK BEFORE COMPLETION
    Check, before you report the workflow as finished:
    1. Are all steps connected correctly, including the dispatch branch (low-risk automatic, Critical/High/complaint only as a draft with approval)?
    2. Are both working prompts inserted in full and unchanged, and are all placeholders mapped?
    3. Is the JSON validated, and do the team names exactly match the queues in the ticket system?
    4. Are all points listed that require manual configuration: ticket system access with write permissions, the category to team mapping, the low-risk rule, [SUPPORT_TEAM_NAME], and LLM access?

    Working prompts

    Categorization and Prioritization

    Assigns an incoming ticket to a category, sets the priority, and determines the responsible team.

    You are a support ticket analysis assistant. Analyze the following support ticket and categorize it precisely.
    
    **Ticket details:**
    - Subject: [TICKET_SUBJECT]
    - Message: [TICKET_MESSAGE]
    - Customer: [CUSTOMER_NAME]
    
    **Your task:**
    1. Assign the ticket to EXACTLY ONE of these categories:
       - Bug (technical error in the software)
       - Feature Request (request for a new function)
       - Question (general inquiry or how-to)
       - Complaint (dissatisfaction with service or product)
       - Technical Issue (access or configuration problem)
       - Billing (questions about invoices, payment, subscription)
    
    2. Set the priority:
       - Critical: system down, no usage possible, data loss
       - High: important function impaired, multiple users affected
       - Medium: single issue, workaround possible
       - Low: cosmetic issue, feature request, general question
    
    3. Determine the responsible team:
       - Development: bugs, technical issues, feature requests
       - Customer Success: questions, onboarding, best practices
       - Sales: upgrade requests, product information
       - Finance: billing, invoices, payment issues
       - Management: complaints, escalations
    
    **Respond exclusively in this JSON format:**
    {
      "category": "[Category]",
      "priority": "[Priority]",
      "team": "[Team]",
      "reasoning": "[Brief reasoning in 1-2 sentences]"
    }

    First Reply

    Creates a personalized first reply with a realistic turnaround time from category, priority, and ticket details.

    Create a professional, friendly first reply for a support ticket.
    
    **Context:**
    - Customer name: [CUSTOMER_NAME]
    - Ticket ID: [TICKET_ID]
    - Category: [CATEGORY]
    - Priority: [PRIORITY]
    - Responsible team: [TEAM]
    
    **Requirements:**
    - Personal address by name
    - Confirmation of ticket receipt
    - Brief summary that we have understood the request
    - Realistic turnaround time based on priority:
      * Critical: within 2 hours
      * High: within 4 hours
      * Medium: within 24 hours
      * Low: within 48 hours
    - Friendly, helpful tone
    - Signature with "[SUPPORT_TEAM_NAME]"
    
    **Respond ONLY with the email body, no subject line.**

    JSON export

    Setup

    Two routes lead to the same result. Pick the one that fits your setup.

    Suitable when you want to build the workflow in your own automation tool.

    1. Open your workflow tool, for example n8n, Make, Zapier or Langdock.
    2. Create a new workflow and give it a name.
    3. Choose the AI-assisted build option if your tool offers one.
    4. Paste the builder prompt from above in full.
    5. Check the result against the step sequence in this document, then add your access credentials and channels.

    Suitable when you want to take the workflow over unchanged.

    1. Download the JSON file from the JSON export section.
    2. Open the workflow area of your tool and create a new workflow.
    3. Give it a name and confirm.
    4. Open the menu on the workflow name and choose to import a JSON file.
    5. Upload the file, then add your own access credentials.
    6. Run a test before you activate the workflow.

    Last reviewed:

    In the workshop this becomes your method.

    A single prompt becomes a repeatable method. We show that in the workshop From Prompt to Method.

    View workshops

    Related resources

    Browse all resources

    Conversation, not pitch

    Understand first, then decide. We take time for an initial conversation, without sales pressure, without obligation.

    Schedule a call