Find the real bugs in Zoho Desk and file them once in Linear

Every weekday morning we read your open support tickets, tell genuine product bugs apart from how-to questions, and file each one in Linear only once.

Agentic Task
Zoho DeskLinearSlackCustomer SupportEngineeringFeedback TriageNotifications & Alerts
PromptCreate

Every weekday at 9am, review the open tickets in Zoho Desk, work out which ones are genuine engineering bugs, and hand those off to Linear properly. The single most important rule is that the same defect must never be filed in Linear twice.

Start with List Tickets in Zoho Desk to pull the currently open tickets, newest first. For every ticket that could plausibly be a defect, use Get Ticket for the full record and List Ticket Conversations to read the whole exchange between the customer and support. Judge from what the conversation actually says, not from the subject line, because subjects are frequently misleading.

Treat a ticket as a confirmed bug only when the product behaved differently from the way it is designed or documented to behave. Qualifying signals include: something that used to work and now fails, an error message or crash, data that saves incorrectly or disappears, a page or control that does not respond, a report or export showing wrong or empty values, and an integration that stopped syncing.

Exclude the following, even when the customer is frustrated: how-to and usage questions, configuration or permission problems on the customer's own side, billing, invoicing, refund and plan questions, feature requests and "it would be nice if" asks, and user error where support explained the correct steps and the customer was satisfied. When the conversation is ambiguous, or support never managed to reproduce the problem, leave the ticket alone rather than guessing. A missed escalation is cheap to catch later; a wrong or duplicated issue is expensive.

Before doing any work on a ticket, call List Ticket Comments on it and skip the ticket entirely if an earlier run already left a comment containing a Linear issue reference. This keeps repeated runs idempotent.

For each confirmed bug, check Linear for an existing issue before filing anything. Use Search Issues several times with different phrasings of the same defect: the customer's own wording, the exact error text, and the name of the affected feature or screen. Do not conclude that nothing exists after a single search. Compare candidates on the underlying defect rather than the wording, because two customers will describe one bug in completely different language. Same feature plus same failure plus same conditions means it is the same bug. Include recently closed issues in your judgement, since a defect that has resurfaced belongs on the existing thread as a regression rather than in a fresh issue.

When a matching issue already exists, do not create a new one. Use Add Comment to Issue to attach the new customer evidence: the customer name, what they experienced, the date they reported it, any error text or steps taken from the conversation, a link back to the Zoho Desk ticket, and the updated total of how many tickets have now reported this defect.

When nothing matches, use Create Issue. Give it a title naming the specific defect rather than the customer's complaint. In the description include numbered reproduction steps reconstructed from the conversation, the expected behaviour versus what actually happened, the affected customer along with any environment detail mentioned such as browser, device or plan, a link back to the originating Zoho Desk ticket, and the number of tickets reporting the defect so far, which is one for a first report.

Once the issue is filed or updated, use Add Ticket Comment on the Zoho Desk ticket to record the Linear issue identifier and its URL. Post it as a private comment so support can track engineering status directly from the ticket without exposing internal tracking to the customer.

Finish by sending one Slack message summarizing the run: the new issues filed with their links and the customer behind each, the tickets that were attached to existing issues and which issue each joined, any defect now reported by three or more tickets called out for attention, and a count of how many tickets were reviewed and how many were skipped with the main reasons. If nothing qualified, say so in a single line rather than staying silent, so the team knows the check ran.

Example output

Bug escalation, Tuesday 9:00am Reviewed 34 open tickets. 5 judged to be product defects. Filed in Linear (2 new) - ENG-482 Bulk CSV import silently drops rows containing commas. Reported by Northwind Retail, ticket #10412. - ENG-483 Saved report filters reset when switching workspaces. Reported by Acme Health, ticket #10418. Attached to existing issues (3 deduplicated) - ENG-419 Two-factor codes rejected on first attempt. New evidence from Bright Labs (#10402) and Cedar Group (#10425). Now reported by 7 tickets. - ENG-455 Invoice PDF export blank on Safari. New evidence from Vantage Co (#10430). Now reported by 3 tickets. Needs attention - ENG-419 has now been reported by 7 separate customers. Skipped: 29 tickets (18 how-to questions, 6 billing, 5 configuration on the customer side).

What does this prompt do?

  • Reads your open Zoho Desk tickets each weekday morning and works out which ones describe a genuine product defect rather than a how-to question, a billing query, or a setup mistake.
  • Checks Linear before filing anything, so a bug that five customers reported becomes one issue with five pieces of evidence instead of five near-identical tickets.
  • Writes each new issue with reproduction steps, the affected customer, a link back to the original ticket, and how many customers have now hit it.
  • Comments the Linear reference back onto the Zoho Desk ticket and posts a Slack recap of what was filed and what was merged into an existing issue.

What do I need to use this?

  • A Zoho Desk account with the open ticket queue your support team works from
  • A Linear workspace, and the team you want engineering bugs filed into
  • A Slack workspace and a channel for the daily escalation recap
  • A rough sense of what counts as a bug for your product, so you can tune the rules

How can I customize it?

  • Change the timing. Every weekday at 9am suits most teams, but you can run it more often during a busy release week.
  • Tighten or loosen what counts as a bug, for example only escalating tickets from paying customers, or only ones support has already reproduced.
  • Choose which Linear team receives the issues, and which Slack channel gets the recap.

FAQs

Will it file duplicate issues if several customers report the same bug?
No. Deduplication is the main rule this workflow follows. Before filing anything it searches Linear for an existing issue covering the same defect, matching on the underlying problem rather than the exact wording. When it finds one, it adds the new customer evidence as a comment and updates the running count of how many tickets have reported it.
How does it tell a real bug from a how-to question?
It reads the full conversation on the ticket, not just the subject line. A bug means the product behaved differently from the way it is meant to work, such as an error, a crash, missing data, or a feature that stopped responding. Questions about how to use a feature, billing and plan queries, feature requests, and cases where support simply explained the right steps are all left alone.
What happens if it is not sure whether something is a bug?
It leaves the ticket alone. The workflow is deliberately cautious, because a missed escalation is easy for support to catch later, while a backlog full of wrong or duplicated issues costs engineering far more time.
Will support know what engineering is doing with the ticket?
Yes. Once an issue is filed or updated, the workflow adds a private comment on the Zoho Desk ticket with the Linear issue reference, so anyone looking at the ticket can follow engineering status from there.
What happens if it runs twice on the same ticket?
Nothing gets duplicated. Before working on a ticket it checks whether an earlier run already left a Linear reference in the comments, and skips the ticket if so. That makes it safe to rerun, or to increase how often it runs.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Monthly CloudWatch cleanup audit for waste and dead alarms

On the first Monday of every month, find the alarms nobody watches and the monitoring you quietly pay for, then get a costed cleanup list in Slack and Linear.

Amazon CloudWatch
Slack Bot
Linear
Agentic Task
Turn each week's football fixtures into a venue staffing plan

Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.

API-Sports
Google Calendar
Slack
Agentic Task
Turn 5 star Yotpo reviews into a weekly marketing content queue

Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.

Yotpo
Notion
Slack
Agentic Task

Stop retyping customer bugs into Linear.

Let an agent read your support queue every morning, escalate only the real defects, and keep it to one issue per bug.