# Triage new Zoho Desk tickets with Zoho CRM customer context

> Every new support ticket gets read, prioritized, routed, and annotated with the customer's account and deal history before an agent opens it.

- Workflow type: agent
- Services: Zoho Desk, Zoho CRM, Slack
- Categories: Customer Support, Operations
- Published: 2026-08-10

## What it does

- Fires the moment a new ticket lands in Zoho Desk and reads the customer's actual message, not just the subject line.
- Looks the requester up in Zoho CRM to find their account, lifecycle stage, and any open deals, and carries on gracefully when there is no match.
- Sets the priority, routes the ticket to the right team, and leaves a private two line summary plus the CRM context for whoever picks it up.
- Pings your support channel in Slack only for high priority tickets or customers with an open deal, so routine tickets stay quiet.

## What you'll need

- A Zoho Desk account with permission to update tickets and add comments.
- Admin access in Zoho Desk so newly created tickets can notify the workflow automatically.
- A Zoho CRM account holding your contacts, accounts, and deals.
- A Slack workspace and the channel your support team watches.

## Prompt

Run this every time a new ticket is created in Zoho Desk, so it gets triaged before a human touches it. Use a webhook trigger and point a Zoho Desk webhook at it using the Tickets module Add event, which fires the moment a ticket arrives.

Take the ticket id from the webhook payload and call Get Ticket in Zoho Desk for the full record: subject, department, channel, status, current priority, and the requester contact with their email address. Then call Get Latest Thread on the same ticket to read what the customer actually wrote, because the ticket fields on their own rarely tell you how urgent something is.

Next look the requester up in Zoho CRM. Use Search Records with the requester's email address against the Contacts module to find their record, then read the account they belong to and their lifecycle stage. If you find a contact, pull their open deals with stage and amount, either with Search Records against the Deals module or with Get Related Records on the matching account. If the lookup comes back empty, that is normal, since plenty of requesters are not in the CRM. Record it as no CRM match and keep going, triaging on the ticket content alone. Never fail the run because the CRM had nothing.

Now judge the ticket on two axes. First, how urgent the issue itself is: outages, data loss, failed billing, and blocked onboarding are high, while how to questions, feature requests, and cosmetic issues are low. Second, how valuable the customer is: open deal value, account size, and lifecycle stage. Combine the two, then call Update Ticket to set the priority and route it in the same call by setting the department, team, or assignee that owns that kind of issue. If nothing about the issue or the customer justifies escalation, leave it at a normal or low priority.

Then post an internal note with Add Ticket Comment, marked private so the customer never sees it. Keep it to two lines summarizing the problem in plain language, followed by the CRM context: account name, lifecycle stage, open deals with value and stage, and anything else relevant such as a renewal date. Say plainly when there was no CRM match. The point is that whoever picks the ticket up starts with the full picture instead of repeating the lookups.

Only alert Slack when the ticket is high priority or the customer has an open deal. In that case, send a message to the support channel with the ticket subject, the customer and their account name, the total value of their open deals, the priority you set, and a direct link to the ticket in Zoho Desk. Routine low priority tickets from customers with no open deal get triaged silently, with no Slack message at all, because the channel is only useful if everything in it deserves attention.

Triage each ticket exactly once, and never send a public reply or email to the customer. This workflow only sets ticket fields, writes a private internal note, and sometimes posts to Slack.

## How to customize

- Change what counts as urgent, for example treating outages and billing failures as high while how to questions stay low.
- Decide which team, department, or agent each type of issue gets routed to.
- Adjust the Slack rule, such as only alerting on deals above a certain value or sending VIP accounts to their own channel.

## FAQ

### What happens if the person who wrote in is not in our CRM?

Nothing breaks. The workflow notes that there was no match and triages the ticket on what the customer actually wrote, so brand new prospects and one off requesters still get a priority and a route.

### Will the customer see the summary it writes?

No. The summary is posted as a private internal note on the ticket, visible only to your team. The workflow never sends a reply to the customer.

### Why doesn't every ticket show up in Slack?

That is deliberate. Only high priority tickets and tickets from customers with an open deal get a Slack message, so the channel stays worth reading. Everything else is triaged quietly inside Zoho Desk.

### Can it overwrite a priority someone on my team already set?

It runs the moment a ticket is created, before anyone has touched it, so in practice it is setting the first priority rather than overriding a person. You can also tell it to leave specific departments alone.

### Do we need a particular Zoho CRM plan for this?

Any Zoho CRM plan where you can search contacts and view deals will work. The lookup only reads data, it never changes anything in your CRM.

Use this prompt in General Input: https://www.generalinput.com/prompts/triage-new-zoho-desk-tickets-with-zoho-crm-customer-context