Skip to content

Support Triage

A classifier reads the first message and sends it to the right specialist — support or sales. The most common flow for companies that serve via chat.

Updated on Sep 02, 2026

Every company that serves via chat has the same problem in the first minute: who answers? A single generic agent answers everything poorly — the support one makes up prices, the sales one gives wrong technical instructions.

The solution is to separate classifying from answering: a node decides the topic, and each specialist has their own prompt, their own tone, and (as you grow the flow) their own tools.

How to import

On the platform: Agents → Import, choose the downloaded file. It enters as a new draft (nothing existing is changed), with refreshed observability IDs. Then fill in what belongs to your environment — credentials, URLs, and knowledge bases — and publish.

The file

support-triage.hinow-agent.jsonjson
{
 "format": "hinow.agent",
 "version": 1,
 "exported_at": "2026-09-01T00:00:00Z",
 "credentials_included": false,
 "agent": {
  "name": "Triagem de atendimento",
  "description": "Um classificador lê a mensagem e manda para o especialista certo: suporte ou vendas.",
  "avatar": null,
  "model": "hinow/hicode",
  "system_prompt": null,
  "config": {},
  "tools": null,
  "workflow": {
   "nodes": [
    {
     "id": "start",
     "type": "start",
     "position": {
      "x": 300,
      "y": 0
     },
     "data": {
      "label": "Início",
      "variables": []
     }
    },
    {
     "id": "rt-1",
     "type": "router",
     "position": {
      "x": 285,
      "y": 150
     },
     "data": {
      "name": "Triagem",
      "confidence_threshold": 0.6,
      "default_route": "route-0",
      "routes": {
       "route-0": {
        "target_name": "Suporte",
        "description": "problemas, erros, dúvidas técnicas, como usar"
       },
       "route-1": {
        "target_name": "Vendas",
        "description": "preços, planos, contratação, upgrade"
       }
      }
     }
    },
    {
     "id": "agent-sup",
     "type": "agent",
     "position": {
      "x": 110,
      "y": 320
     },
     "data": {
      "name": "suporte",
      "model": "hinow/hicode",
      "system_prompt": "Você é o suporte técnico: resolva a dúvida em passos numerados e objetivos.",
      "config": {}
     }
    },
    {
     "id": "agent-ven",
     "type": "agent",
     "position": {
      "x": 460,
      "y": 320
     },
     "data": {
      "name": "vendas",
      "model": "hinow/hicode",
      "system_prompt": "Você é de vendas: apresente valor, faixa de preço fictícia de exemplo (deixe claro que é exemplo) e chame para a ação.",
      "config": {}
     }
    },
    {
     "id": "end-1",
     "type": "end",
     "position": {
      "x": 305,
      "y": 490
     },
     "data": {
      "label": "Fim"
     }
    }
   ],
   "edges": [
    {
     "id": "e-start-rt-1-d",
     "source": "start",
     "target": "rt-1"
    },
    {
     "id": "e-rt-1-agent-sup-route-0",
     "source": "rt-1",
     "target": "agent-sup",
     "sourceHandle": "route-0"
    },
    {
     "id": "e-rt-1-agent-ven-route-1",
     "source": "rt-1",
     "target": "agent-ven",
     "sourceHandle": "route-1"
    },
    {
     "id": "e-agent-sup-end-1-d",
     "source": "agent-sup",
     "target": "end-1"
    },
    {
     "id": "e-agent-ven-end-1-d",
     "source": "agent-ven",
     "target": "end-1"
    }
   ]
  }
 }
}

Card by card

CardWhy it's hereWhat it does
**Start**Every workflow has one.No variables here. This is where data from your system would come in (customer_id, plan) for the specialists to use.
**Router**It's what separates classifying from answering.Reads the message and chooses one of the named outputs. Each route has a description — it's that, not the name, that the classifier uses to decide.
**Agent support**Specialist in solving problems.Short and surgical prompt: answer in numbered steps. No tools yet — this is where your ticketing system Webhook comes in.
**Agent sales**Specialist in converting.Different tone, different mission. Separating the two avoids the monster prompt that tries to be everything.
**End**Closes both paths.A single End serves both routes — its status is what appears in the agent's statistics.

What makes this flow work

The confidence_threshold (here 0.6) is the rule: below it, the Router sends to default_route instead of guessing. And the route descriptions are written in terms of what the customer says, not the company's org chart — "prices, plans, contracting, upgrade" works; "sales team" doesn't.

How to adapt to your case

  • More routes: each new specialty is a route in the Router + an Agent. Finance, logistics, cancellation.
  • Give power to act: connect a Webhook card in the support agent's slot so it can query orders and open real tickets.
  • Company knowledge: a Knowledge card (RAG) in the sales slot answers about plans without hallucination.
  • Back to triage: if the conversation continues, the Agent's capture_flow keeps the customer with the same specialist instead of reclassifying every message.

All ready-made flows

Other complete agents to import and adapt.