Back to Alchemy
Alchemy RecipeBeginnerautomation

Customer support ticket triage and draft response generation

Most support teams operate on a familiar treadmill. A ticket arrives. A human reads it. That human understands the issue, finds relevant information, and types out a response. If they're quick, it takes five minutes per ticket. If the issue is complex, it takes twenty. Now multiply that by fifty tickets a day, and you're looking at hours consumed by work that follows a predictable pattern every single time. The bottleneck isn't usually intelligence; it's volume and repetition. Your best support person and your newest hire both spend the same amount of time on a "reset password" request. Meanwhile, customers wait, and your team's queue grows. What if instead, the system could read each ticket, understand what it's asking, summarise the key details, classify it by urgency, and draft a response, all before a human even opens their inbox? This is where orchestration saves you. By connecting a support ticketing system to AI tools and automation, you can triage and draft responses with almost no manual work. We'll walk through how to build this, starting with industry-standard tools and moving to more flexible setups for teams that need custom logic. For more on this, see Multilingual customer support ticket automation with resp.... For more on this, see Multi-language customer support ticket triage and respons....

The Automated Workflow

The workflow runs on a trigger: a new support ticket arrives. From that moment, the system does four things in sequence: it summarises the ticket content, classifies its urgency, drafts a response, and flags it for review if needed. No human touches it until the draft is ready. We'll use Zapier as the starting point because it integrates well with common ticketing platforms like Zendesk, Freshdesk, and Help Scout. If your tickets come from email, we'll show that too. The high-level flow: 1. New ticket created (trigger in your ticketing system or email inbox).

  1. Smmry summarises the ticket body to extract the core issue.

  2. Claude Opus 4.6 classifies the ticket into a priority category.

  3. Copy.ai or ChatGPT Writer generates a draft response. For more on this, see Wispr Flow AI vs ChatGPT Writer vs HyperWrite: AI Writing....

  4. The draft is added back to the ticket as an internal note and flagged for agent review.

Setting up the trigger in Zapier:

If you use Zendesk, the trigger is straightforward: "New Ticket". If tickets come via email, use Gmail or Outlook as the trigger with a filter for your support email address.

Trigger: Zendesk > New Ticket
Condition: Status = New (to avoid re-processing)
Condition: Tags does not contain "automated_draft"

Step 1: Summarise the ticket

Smmry can reduce long ticket descriptions to two or three sentences. This saves tokens when you send the content to your LLM in the next step.

Action: Smmry > Summarize
Input: {{ticket_description}}
Output: Stored as {{ticket_summary}}

If the ticket is short (under 100 words), skip this step and pass the description directly to the classifier.

Step 2: Classify the ticket by urgency

Claude Opus 4.6 is your classifier. It's fast enough to handle this synchronously, and its reasoning capability means it understands context rather than relying on keyword matching.

Action: Make HTTP Request (Anthropic API)
Method: POST
URL: https://api.anthropic.com/v1/messages
Headers: Content-Type: application/json x-api-key: {{anthropic_api_key}}
Body:
{ "model": "claude-opus-4.6", "max_tokens": 100, "messages": [ { "role": "user", "content": "Classify this support ticket as URGENT, STANDARD, or LOW_PRIORITY. Reply with only the category and a one-sentence reason.\n\nTicket Summary: {{ticket_summary}}\n\nTicket Subject: {{ticket_subject}}" } ]
}

Parse the response and extract the priority level into a variable like {{priority_level}}.

Step 3: Draft the response

Now you generate the actual response. Copy.ai is excellent here because it understands tone and can adapt to your brand voice. Alternatively, use ChatGPT Writer for more detailed reasoning. For this example, we'll use Copy.ai's API:

Action: Make HTTP Request (Copy.ai)
Method: POST
URL: https://api.copy.ai/api/v1/generate
Headers: Authorization: Bearer {{copy_ai_api_key}} Content-Type: application/json
Body:
{ "prompt": "You are a professional support agent. Write a helpful, concise response to this customer support ticket. Use a friendly but professional tone.\n\nTicket Subject: {{ticket_subject}}\n\nTicket Summary: {{ticket_summary}}\n\nPriority Level: {{priority_level}}\n\nKeep the response under 150 words. If you cannot resolve the issue, offer next steps.", "max_tokens": 300, "temperature": 0.7
}

Store the output as {{draft_response}}. If you need more sophisticated reasoning or multi-step troubleshooting, substitute Claude Opus 4.6 or GPT-4o. Both can handle longer contexts and produce more detailed technical guidance.

Action: Make HTTP Request (OpenAI API)
Method: POST
URL: https://api.openai.com/v1/chat/completions
Headers: Content-Type: application/json Authorization: Bearer {{openai_api_key}}
Body:
{ "model": "gpt-4o", "messages": [ { "role": "system", "content": "You are a support agent for a SaaS product. Respond to customer tickets with clear, actionable solutions. If the issue requires escalation, say so explicitly." }, { "role": "user", "content": "Ticket: {{ticket_subject}}\n\nDetails: {{ticket_summary}}\n\nPriority: {{priority_level}}\n\nWrite a response." } ], "temperature": 0.8, "max_tokens": 400
}

Step 4: Add the draft back to the ticket

Once you have the draft, send it back as an internal note so your agent can review and edit it in seconds rather than writing from scratch.

Action: Zendesk > Create or Update Ticket
Field: Internal Note
Value: [AUTOMATED DRAFT - PRIORITY: {{priority_level}}]\n\n{{draft_response}}
Field: Tags (add)
Value: automated_draft

If the priority is URGENT, also send a Slack notification to your support manager:

Action: Slack > Send Message
Channel: #urgent_tickets
Message: "🔴 Urgent ticket from {{customer_name}}: {{ticket_subject}}\n\nDraft response ready for review: {{draft_response}}"

Handling edge cases:

If the ticket is a duplicate or spam, you can add a filtering step before step 1. Use Claude Haiku 4.5 for fast classification:

Action: Make HTTP Request (Anthropic API)
Model: claude-haiku-4.5
Prompt: "Is this a legitimate support request? Reply YES or NO.\n\n{{ticket_subject}}\n\n{{ticket_description}}"
Condition: If response contains "NO", skip remaining steps and tag as spam.

If the ticket is in a language other than English, Claude Opus 4.6 will translate it automatically as part of the summarisation step. Specify this in your initial prompt.

The Manual Alternative

If your ticketing system has limited API access or you prefer a more hands-on approach, use Okara AI as your primary tool. It's a multi-model chat environment with end-to-end encryption, making it suitable for sensitive ticket content. Open Okara, paste the ticket, and prompt it with: "Summarise this ticket, classify its urgency, and draft a response." Select Claude Opus 4.6 or GPT-4o from the model menu. You get the same output in seconds, but you retain full control over what gets sent where. This works well if you only have a handful of tickets per day or if your tickets contain highly sensitive information that shouldn't touch third-party APIs. For teams that want to avoid API complexity entirely, use ChatGPT Writer, a browser extension that generates responses directly in Gmail or your ticketing system's reply box. Paste the ticket into the prompt field, and it drafts a response. It's slower than full automation but faster than manual writing.

Pro Tips

Rate limiting and token costs

Claude Opus 4.6 and GPT-4o both have rate limits.

A typical support team will hit them quickly if you classify every ticket with the heavyweight model. Instead, use Claude Haiku 4.5 for classification (it's five times cheaper and fast enough) and reserve Opus or GPT-4o for draft generation only. This cuts your token spend by roughly 60 percent.

Error handling for API timeouts

If an API call times out mid-workflow, Zapier will retry automatically, but this can lead to duplicate drafts. Add a timestamp to your internal note and check for recent duplicates before adding a new one:

Condition: Internal notes do not contain "AUTOMATED_DRAFT" from the past 10 minutes

Cold responses and template fallback

For very simple tickets (password resets, billing questions), hard-code template responses instead of calling an API. This is instant and costs nothing:

Condition: If ticket_subject contains "password reset"
Then: Use template response "We've sent you a reset link to your registered email..."
Otherwise: Proceed to API call for draft generation

Customising tone by ticket type

Pass ticket metadata to your LLM to adjust tone. For billing complaints, use a more empathetic prompt. For feature requests, use an encouraging one. This prevents generic-sounding responses.

Prompt: "The customer is asking about {{ticket_category}}. Adjust your tone to be {{tone_for_category}}. Then write the response."

Measuring accuracy

Track how many drafted responses are sent without edits versus how many your agents modify. After a month, you'll know which categories (billing, technical, general) the AI handles well and which need human attention. Adjust your workflow to skip automation for the problematic categories.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
SmmryFree tier or Basic£0–£20Free tier covers ~200 summarisations per month; scale as needed
Claude Opus 4.6 (Anthropic)Pay-as-you-go£15–£50~10,000 classification requests at Haiku rates; response generation at Opus rates costs more
GPT-4o (OpenAI)Pay-as-you-go£20–£60Input tokens cheaper than output; draft generation uses most quota
Copy.aiStarter or Pro£36–£120Starter includes 5,000 generations per month; higher tier for unlimited
ZapierProfessional or higher£19–£49Standard plan doesn't support multi-step workflows; Professional required
Okara AIFree tier or Pro£0–£15Free for occasional use; Pro for daily encrypted workflows
ChatGPT WriterFree£0Browser extension with no direct cost; uses your OpenAI credits if integrated