A morning triage board for your HappyFox ticket queue

By General Input

Work the whole HappyFox queue from one board: see what is unassigned, overdue or aging, then reply, assign and escalate without leaving the page.

Integrations

  • HappyFox
  • Slack Bot

Type

App

Categories

  • Customer Support

Build me an app my support agents open first thing every morning to work our HappyFox queue, instead of clicking around the help desk UI. The people using it are support agents plus a support lead, and most agents live in one ticket category all day.

The main screen is a triage board with four lanes, all built from HappyFox List Tickets: Unassigned, Overdue or due today, Waiting on customer, and Aging past three days. Page through List Tickets at its maximum page size of 50 to load the open queue. If a ticket qualifies for more than one lane, place it in the leftmost lane it matches and mark it with a small tag for the others so it never appears twice. Sort every lane oldest first by created date. Each card shows the human facing display id (for example #HFS00000001), the subject, the customer name, category, priority, current assignee, age in days, and the due date, with a clear overdue state on anything past its due date.

Above the board put a filter bar: category, priority, assignee, and a text search on subject. Load the category list from HappyFox List Categories, the agent list from List Staff, and the status list from List Statuses. There is no list operation for priorities, so build the priority filter from the priority values that come back on the tickets themselves. Remember each viewer's chosen category filter and reapply it the next time that person opens the app, so a specialist lands straight on their own queue.

Clicking a card opens a detail pane beside the board that calls Get Ticket and shows the full conversation in order, with public customer replies and internal notes visually distinct, attachments listed, and the ticket properties pinned at the top.

From that pane an agent can act on the ticket without leaving the app. Assigning an owner, setting priority, changing status, setting a due date and sending a customer reply all go through Add Staff Reply. An internal comment goes through Add Staff Private Note. Retagging goes through Update Ticket Tags. An Escalate button posts a summary of the ticket into a Slack channel using Slack Bot Send a Message, including the display id, subject, customer, category, priority, age, due date, a short excerpt of the latest customer message and a link to the ticket in HappyFox; after posting, record the escalation on the ticket as a private note saying who escalated it and to which channel. After any action, refresh that ticket and re-evaluate which lane it belongs in.

Every ticket card and the detail pane also get a Draft a reply button that kicks off a background agent. The agent reads the ticket with Get Ticket, then uses List Tickets to pull past resolved tickets in the same category, opens the most similar looking ones with Get Ticket to see how that issue was handled before, and writes a suggested response grounded in what actually worked. It files that draft with Add Staff Private Note as an agent only internal note, clearly labelled as a suggested draft that has not been sent. The agent must never send anything to the customer and must never call Add Staff Reply. Show the run state on the card (drafting, then draft ready) and surface the resulting note at the top of the detail pane so a human can read, edit and send it.

Two HappyFox details to bake in. Assignee, status and category are set by numeric id rather than by name, so load the ids from List Staff, List Categories and List Statuses when the app loads and map them to readable labels everywhere in the UI. Ticket id is the number used in ticket paths while display_id is the label to show people. All HappyFox timestamps are UTC, so convert to the viewer's timezone before working out age, due today and overdue colouring.

Give the board a manual refresh control, refetch when someone returns to the app, and keep the board readable with a heavy queue: dense cards, clear lane counts, and no pagination controls in the way of a morning pass through the queue.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them