Triage urgent Zendesk tickets to Slack with a draft reply
Every 15 minutes, post new urgent and high priority Zendesk tickets to a Slack channel with a classification and a draft first response.
Build me an agent workflow that triages urgent Zendesk tickets into a dedicated Slack channel with a draft first response, so whoever is on-call can reply faster.
Trigger: cron, every 15 minutes.
On each run, do this:
1. Call Zendesk Search Tickets for tickets created or updated since the last run with priority urgent or high and status new or open. Use a query like 'type:ticket priority>=high status<solved updated>{last_run_iso}' and sort by updated_at descending.
2. For every ticket returned, call Zendesk Show Ticket to get the full ticket (subject, description, requester id, tags, status, priority, url) and Zendesk List Ticket Comments to get the conversation, then pick the most recent comment authored by the requester as the customer's actual question.
3. Classify the ticket into exactly one of these buckets: bug, billing, how-to, churn risk. Base the classification on the subject, description, and latest customer comment.
4. Draft a short proposed first response (3 to 6 sentences) grounded in the ticket body. Address the customer by first name when known. Do not invent facts, account ids, refund amounts, or commitments. If something cannot be answered without more info, the draft should ask for the missing detail.
5. For each ticket, post one Slack message via Slack Bot Send a Message into the channel #support-urgent. Format the message like this:
*New urgent ticket from {customer_name}* — {classification} Ticket #{ticket_id} • Priority: {priority} • Status: {status} *Question:* {requester_question} *Draft reply:* ``` {draft_reply} ``` <{ticket_url}|Open in Zendesk>
Use mrkdwn formatting. The ticket_url should deep link to the ticket inside the user's Zendesk subdomain.
6. Dedupe by ticket id. Keep a record of which Zendesk ticket ids have already been posted, and skip any ticket that has already been announced. Only post again if the ticket re-opens after being solved.
Other rules: never post tickets that are already solved or closed. Never auto-reply to the customer in Zendesk; the draft only goes to Slack. If no qualifying tickets exist on a given run, do nothing (no 'all clear' message). If Zendesk returns a 429, back off and retry on the next run.
Additional information
What does this prompt do?
- Polls Zendesk every 15 minutes for tickets created or updated since the last run with priority urgent or high and status new or open.
- Reads each ticket's full context, including the latest customer comment, then classifies it as bug, billing, how-to, or churn risk.
- Drafts a short, grounded first response based on the actual ticket body so the on-call agent can edit and send rather than write from scratch.
- Posts one Slack message per ticket into a dedicated #support-urgent channel with the customer name, classification, the question, the draft reply, and a deep link to the ticket.
- Dedupes by ticket id so the same ticket is not reposted on later runs.
What do I need to use this?
- A Zendesk account with API token access (Admin Center, Apps and integrations, APIs, API tokens). You will need the subdomain, an agent email, and the token.
- A Slack workspace with the Slack Bot integration connected, and a channel like #support-urgent that the bot has been added to.
- Permission to send messages in that channel as the bot (chat:write, plus chat:write.public if the bot is not yet a member).
How can I customize it?
- Change the cadence. Drop to every 5 minutes for a follow-the-sun rotation, or stretch to hourly for lower volume queues.
- Tighten the ticket filter. Restrict to a specific brand, group, form, or tag (for example tag:enterprise) instead of all urgent and high priority tickets.
- Change the classification taxonomy. Replace bug, billing, how-to, churn risk with the labels your team actually triages on.
- Route by classification. Send churn risk tickets to a CSM channel and bug tickets to an engineering channel instead of one shared #support-urgent.
Frequently asked questions
Will this auto-reply to customers?
How does it avoid posting the same ticket twice?
What ticket fields does the agent read?
Can I post into a private Slack channel?
What if the draft reply is wrong?
Stop refreshing the Zendesk queue.
Connect Zendesk and Slack once, and Geni surfaces every urgent ticket with a draft reply ready to send.