A morning triage console for your unassigned Freshdesk queue

Clear the unassigned queue in one pass: see every waiting ticket, spot who is already buried, and set priority, group and owner without leaving the page.

App
FreshdeskSlack BotCustomer SupportOperationsFeedback TriageNotifications & Alerts
PromptCreate

Build me a morning triage console my support team opens at the start of every shift to clear the unassigned Freshdesk queue in one pass. It is a working surface, not a report: everything a triager needs to route a ticket happens on this one screen.

The main view is the queue. Use Freshdesk Filter Tickets to pull open tickets that are either unassigned or have had no agent response yet, sorted oldest first. Each row shows the requester name and email, the subject, how long the ticket has been waiting since it was created, the current priority, the current group, and a short preview of the customer's first message. Pull the ticket body with View Ticket, or the first inbound entry from List Ticket Conversations, and truncate it to a couple of lines with the full text available on hover or in a side drawer. The age column is the anchor of the whole screen, so make it visually prominent.

Down the right side, show an agent load sidebar. Build it from List Agents and List Groups, and get each agent's current open ticket count by querying their open tickets with Filter Tickets. For every agent show their name, the group or groups they belong to, and their open ticket count, sorted with the busiest first. Anyone well above the team average gets a visual flag so the triager can see at a glance who is already buried before handing them more work. The sidebar is what makes this better than the native views: load and queue side by side.

From any row I can act without leaving the page. Give me an inline priority selector, a group picker populated from List Groups, and an owner picker populated from List Agents, each writing through Update Ticket and refreshing the row and the sidebar counts when it lands. I can also tick checkboxes on multiple rows, and a bulk action bar appears letting me apply the same priority or the same group to the whole selection through Bulk Update Tickets. That call runs asynchronously and returns a job to poll, so show a pending state on the affected rows and refresh them once the job finishes.

Add a Triage these button that acts on the selected rows and kicks off a background agent. For each selected ticket the agent reads the full thread with List Ticket Conversations, considers the subject matter against the group list and the current per-agent open ticket counts, and produces a proposal: a priority, a group, an owner, and a one line reason explaining the choice, for example that it is a billing question and that this agent has the lightest load in the billing group. It also drafts a suggested first reply to the customer and posts that draft to the ticket as an internal private note using Add Note to Ticket, marked private so only agents can see it, addressed to whoever ends up owning the ticket. The agent must never send a public reply to the customer and must never post a customer-visible conversation entry.

Every agent output is a proposal until a human accepts it. Proposals come back into the app and render on the matching row as a suggestion chip showing the proposed priority, group and owner plus the one line reason, with Apply and Dismiss buttons. Only when someone clicks Apply do you write the change through Update Ticket. Dismiss clears the suggestion and leaves the ticket untouched. While the background agent is running, show per-ticket progress so the triager knows which rows are still being worked on, and keep the rest of the console usable.

Whenever a ticket gets an owner, whether from the inline picker, a bulk update or an applied suggestion, notify the new owner in Slack. Match the Freshdesk agent's email to their Slack account with the Slack Bot Look Up User by Email operation, open a direct message with Open a Conversation, and send the message with the Slack Bot Send a Message operation. The message includes the ticket subject, the requester, the priority it was set to, how long it has been waiting, and a direct link to the ticket in Freshdesk built from the account subdomain. If no matching Slack user is found, still complete the assignment and flag the missing notification on the row rather than failing the whole action.

Bake in the rules that make it usable every morning. An aging threshold, default four hours and editable in a settings panel, highlights anything waiting longer than that, with a stronger treatment for tickets past double the threshold. A group filter at the top of the queue narrows everything to one team's work. Persist the threshold and the last selected group filter per viewer so each triager gets their own view back when they reopen the app. Show a small header summary of how many tickets are waiting, how many are past the threshold, and how many have been routed in this session.

What does this prompt do?

  • Lists every unassigned or untouched open ticket oldest first, with the requester, subject, how long it has been waiting, its current priority and a preview of the first message
  • Shows a sidebar of each agent's open ticket count and the group they sit in, so whoever is triaging can see who is already buried before handing out more work
  • Lets you set priority, pick a group and assign an owner straight from the row, or tick several tickets and apply the same change to all of them at once
  • A Triage these button sends a background assistant through the full thread of each selected ticket: it proposes a priority, a group and an owner with a one line reason, and leaves a drafted first reply as an internal note for the assigned agent to edit and send
  • Highlights anything that has been sitting longer than your aging threshold, and sends the new owner a Slack direct message the moment a ticket is assigned

What do I need to use this?

  • A Freshdesk account with permission to view and update tickets and to see your agents and groups
  • A Slack workspace the app can send direct messages in
  • Your support groups already set up in Freshdesk, so the routing choices match how your team actually splits work
  • Agent email addresses that match their Slack accounts, so assignment notifications reach the right person

How can I customize it?

  • Change the aging threshold so tickets go amber and red at whatever wait time your team treats as late
  • Change what lands in the queue: unassigned only, or every open ticket with no agent reply yet, and filter down to a single group
  • Adjust the drafted reply, from tone and length to turning drafting off entirely so the assistant only proposes routing
  • Send the assignment notification to a shared channel instead of a direct message, or switch it off

FAQs

Will the assistant ever reply to a customer on its own?
No. Anything it drafts is saved as an internal note on the ticket, which only your agents can see. The assigned agent edits it and sends it themselves, so nothing reaches the customer without a person deciding to send it.
Does it reassign or reprioritise tickets by itself?
No. Every suggestion stays a proposal sitting next to the ticket until someone clicks apply. The queue only changes when a human says so.
How does it know which agents are already busy?
It counts each agent's open tickets directly from your helpdesk and shows the totals in a sidebar next to the queue, so you can see at a glance who has capacity and who does not.
What happens if an agent is not in our Slack workspace?
The assignment still goes through in Freshdesk. The app just skips the notification for that person and flags it on the row so you know to tell them another way.
Can we run it with several support groups?
Yes. The sidebar shows which group each agent belongs to, and you can filter the queue to a single group so each team only triages its own work.
How many tickets can we triage at once?
You can select as many rows as you want to review, and bulk priority or group changes are applied in batches behind the scenes. The background assistant works through your selection one ticket at a time and reports progress as it goes.

Related templates

Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Voice agent QA review board for your Hume EVI calls

Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.

Hume
Linear
Slack Bot
App
Clear your Guru verification backlog in one weekly app

A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.

Guru
Slack Bot
App

Stop starting every shift staring at an untouched queue.

Give your support team one screen that shows what is waiting, who is free, and lets them route the whole backlog in a single pass.