Headless & Integration package

AI ticket triage with human review

An AI agent classifies each helpdesk ticket and drafts a reply; confident, low-risk answers go out automatically and the rest wait for a person.

Headless / APIIntermediate~20 min setupv1.0.0

About this package

What it does

AI ticket triage with human review puts an AI agent in front of your support queue without letting it answer everything on its own. Your helpdesk posts each new ticket (id, subject, body, customer email, channel and plan tier) to the workflow.

The Ticket triage agent returns the category, urgency, sentiment, a short summary, a suggested reply and its confidence. The Triage routing decision table then decides: confident how-to and low-urgency answers are posted automatically; security issues, critical tickets, enterprise billing and anything the agent is unsure about go to a person, with a queue and priority set either way.

The "Review AI triage" task shows the ticket, the summary and the draft reply. The reviewer corrects the category and priority, edits the reply and sends it, escalates the ticket (which moves it to the escalation queue and emails your support leads) or discards the draft and leaves the ticket for an agent. Every ticket is tagged so you can measure how often the AI reply was used. Adapt the agent instructions, the routing rules and the helpdesk calls to your tooling.

Headless / API

Headless: your helpdesk posts each new ticket to the start API or an inbound webhook. People only see the tickets the rules send for review.

Another system starts it over REST or an inbound webhook. No UI is needed; people only appear where a decision needs a human.

The flow

Step by step

  1. 1

    Ticket received

    The helpdesk posts the ticket id, subject, body, customer email, channel and plan tier.

  2. 2

    AI triage

    The Ticket triage agent returns category, urgency, sentiment, a summary, a suggested reply and its confidence.

  3. 3

    Apply routing rules

    The Triage routing decision table decides auto-reply or human review and sets the queue and priority.

  4. 4

    Auto-reply

    Confident, low-risk answers are posted to the customer and the ticket is updated and tagged.

  5. 5

    Human review

    Otherwise a reviewer checks the triage and edits the reply, then sends it, escalates or discards it.

AI ticket triage — A helpdesk ticket is triaged by an AI agent; routing rules decide whether its reply is sent automatically or a person reviews the triage, edits the reply and sends, escalates or discards it. The same canvas you get in the designer after installing.

Forms

Inputs and task forms

The inputs a caller passes when it starts a run, and the forms people complete when the process needs a decision.

Start inputs

AI ticket triage

Passed by the calling system

Ticket id * ticket_id · textTicket id in the helpdesk
Subject * subject · textTicket subject
Body * body · textTicket text from the customer
Customer email customer_email · emailname@company.comCustomer email
Channel channel · textWhere the ticket came from: email, web_form, chat
Plan tier tier · textCustomer plan tier: free, pro, enterprise
Escalation email escalation_email · emailname@company.comWho is emailed when a reviewer escalates
Reviewer (user id) reviewer_id · textOptional: user id of the support reviewer (overrides the install-time default)

User Task

Review AI triage

Review triage: {{ticket_id}} {{subject}} ({{urgency}}, {{=ROUND(MULTIPLY(confidence, 100), 0)}}% confident)

Category * category · choice
billingtechnicalhow_toaccountsecurityfeedback+1
Reply to the customer * reply · textPrefilled: {{suggested_reply}}
Priority priority · choice
lowmediumhighcritical
Internal note note · text
Send replyEscalateDiscard

Headless

Call it from your systems

Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.

REST

shell
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
  -H "Authorization: Bearer $USERTASKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id":"<workflow id>","variables":{"ticket_id":"T-48213","subject":"Charged twice for October","channel":"email","tier":"pro","customer_email":"lee.chen@example.com","body":"Hi, my card statement shows two charges of 49.00 for the October invoice. Can you check and refund the duplicate? This is the second time this has happened."}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input ticket_id=T-48213 --input subject="Charged twice for October" --input channel=email --input tier=pro … --wait

Inbound webhook

shell
usertasks webhooks create <workflow id>          # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
  -H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
  -d '{"ticket_id":"T-48213","subject":"Charged twice for October","channel":"email","tier":"pro","customer_email":"lee.chen@example.com","body":"Hi, my card statement shows two charges of 49.00 for the October invoice. Can you check and refund the duplicate? This is the second time this has happened."}'

What's included

8 assets, ready to adapt

TypeNameDetails
Email templateTicket escalatedSent to the escalation contact when a reviewer escalates a ticket.
IntegrationAI model (OpenAI-compatible)
IntegrationHelpdesk
API referencePost replyPOST /tickets/{{ticket_id}}/replies — Post a public reply to the customer on the ticket.
API referenceUpdate ticketPATCH /tickets/{{ticket_id}} — Set the ticket status, priority, queue, category and tags.
Decision tableTriage routing7 rules — Whether the AI reply can be sent automatically, and the queue and priority, from the agent confidence, urgency, category and plan tier. First matching rule wins.
AI agentTicket triage agentClassifies a support ticket, judges urgency and sentiment, summarises it and drafts a reply.
WorkflowAI ticket triage18 steps — A helpdesk ticket is triaged by an AI agent; routing rules decide whether its reply is sent automatically or a person reviews the triage, edits the reply and sends, escalates or discards it.

Requirements

What you connect it to

Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.

Needs

  • AI model — An OpenAI-compatible model endpoint and API key for the AI agent.
  • REST API — A REST API integration: set its base URL and credentials on install.
  • Assignees — People in your workspace to receive the User Tasks (picked on install).
  • Inbound webhook — An inbound webhook created for the workflow, so other systems can start it.
  • Email (optional) — Email delivery configured for the instance (EMAIL_PROVIDER), used for notifications.

After installing

  1. AI model: set the base URL of an OpenAI-compatible endpoint (e.g. https://api.openai.com/v1 or your gateway) and its API key. Change the agent model if gpt-4o-mini is not available.
  2. Helpdesk: set the base URL and API token of your helpdesk API. Post reply posts to /tickets/{id}/replies; Update ticket patches /tickets/{id}.
  3. Assignee: pick the default support reviewer (runs can pass reviewer_id, e.g. per queue).
  4. Tune the Triage routing rules: which categories and confidence levels may be answered automatically. Start strict and loosen as you review results.
  5. Inbound webhook: create a webhook for the workflow and point your helpdesk's new-ticket trigger at it.
  6. Email (optional): configure EMAIL_PROVIDER and set escalation_email for the escalation notice (the step continues on error).

Asked for on install

  • Integration “AI model (OpenAI-compatible)”Required

    • Tokenconfig.auth_config.token
    • Base urlconfig.base_urldefault https://llm.example.com/v1· optional
  • Integration “Helpdesk”Required

    • Tokenconfig.auth_config.token
    • Base urlconfig.base_urldefault https://helpdesk.example.com/api· optional
  • Workflow “AI ticket triage” assigneesRequired

    • User for step “Review AI triage”nodes.7.config.assignee_id

Install

Install it in your workspace

Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.

In the app

  1. Download ai-agent-triage-hitl-1.0.0.utpkg.
  2. Open Automations → Packages and drag the file onto the page (or choose Import package). Browse gallery there lists every gallery package without downloading by hand.
  3. Pick the file. The wizard verifies the checksum, every file hash and the signature, and shows the readme.
  4. Review the changes (what is created) and the data rows.
  5. Fill in the requirements, or tick Keep incomplete and finish later with Complete setup.
  6. Done: the workflow is published and active once setup is complete.

With the CLI

shell
curl -fLO https://usertasks.com/gallery/ai-agent-triage-hitl-1.0.0.utpkg
usertasks packages inspect ai-agent-triage-hitl-1.0.0.utpkg       # offline: checksum, hashes, signature
usertasks packages install ai-agent-triage-hitl-1.0.0.utpkg --dry-run
usertasks packages install ai-agent-triage-hitl-1.0.0.utpkg       # prompts for each requirement
usertasks packages install ai-agent-triage-hitl-1.0.0.utpkg --keep-incomplete --yes   # in CI; finish with:
usertasks packages complete ai-agent-triage-hitl -f values.yaml

Verify the download

File SHA-256
fca4bbe3659f0ccfabf0e77daeaaedf555d67c8d38ba9848f215a808b34585bb
Package checksum (what is signed)
sha256:ada3380c7505039fd90af486d0f9298f6991e6be930406105539c85c8cc4ffbc
Signer
Unsigned preview build — compare the SHA-256 above

shasum -a 256 ai-agent-triage-hitl-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.0

  1. v1.0.02026-10-26First release.

Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work

More packages

Related

Browse the whole gallery