Introduction
Customer support teams juggle many things: answering tickets in different languages, drafting responses that sound human, and routing complex issues to the right person. When tickets arrive from customers across Europe, Asia, and the Americas, the language barrier alone eats hours each week. Your team reads a ticket in French, translates it mentally, crafts a response, then someone else translates it back. Manual work compounds at every step.
This workflow solves that problem by combining three focused tools into a single automated pipeline. When a support ticket arrives, the system translates it into English, generates a contextual response draft using ChatGPT, synthesises that response into audio using ElevenLabs, and routes everything to your team with zero manual translation or composition work. The response draft appears in your team's inbox ready to review and send, alongside a spoken version for quick auditing.
The workflow is intermediate difficulty because it requires setting up webhooks and configuring API authentication across three external services, but no custom code writing is needed if you use Zapier or Make. If you prefer more control, n8n offers a self-hosted alternative with identical capability.
The Automated Workflow
Which Orchestration Tool
Zapier is the fastest path to a working system; Make offers better pricing at scale; n8n gives you data sovereignty if you run it on your own server. For this guide, we'll use Make because it handles API responses more flexibly than Zapier and costs considerably less if you process more than 1,000 tickets monthly.
Architecture Overview
The workflow follows this sequence:
- A support ticket arrives (via webhook, email integration, or API call)
- The ticket body is translated from its source language into English
- ChatGPT drafts a response based on the ticket content and your company tone
- ElevenLabs converts the draft response into spoken audio
- The translated ticket, draft response, and audio file are routed to your team
Step 1: Receiving the Ticket
Tickets can arrive via several methods. If you use Zendesk, Freshdesk, or Help Scout, Make has native connectors that trigger on new tickets. If you receive tickets through email or a custom system, use a webhook trigger.
A webhook approach looks like this:
POST https://hook.integrations.make.com/abc123def456xyz789
{
"ticket_id": "TKT-12847",
"customer_name": "Marie Dubois",
"customer_email": "marie@example.fr",
"ticket_subject": "Problème avec mon commande",
"ticket_body": "Bonjour, j'ai reçu mon colis hier mais le produit n'est pas celui que j'ai commandé. Pouvez-vous m'aider?",
"language": "fr",
"priority": "normal",
"created_at": "2024-01-15T09:30:00Z"
}
In Make, add an HTTP module configured to listen for POST requests. Map the incoming fields into Make variables: ticket_body, customer_name, language, etc. This becomes your pipeline's starting point.
Step 2: Translation with Immersive Translate
Immersive Translate AI is the third-party service that handles language conversion. It's not as well known as Google Translate, but it integrates cleanly via API and produces more natural-sounding translations because it understands context.
In Make, add an HTTP module that calls Immersive Translate:
POST https://api.immersive-translate.com/translate
{
"text": "Bonjour, j'ai reçu mon colis hier mais le produit n'est pas celui que j'ai commandé. Pouvez-vous m'aider?",
"source_lang": "fr",
"target_lang": "en",
"api_key": "YOUR_API_KEY_HERE"
}
Store your API key in Make's credential system rather than hardcoding it. The response contains a translations array:
{
"code": 0,
"data": {
"translations": [
{
"detected_source_lang": "fr",
"translations": [
{
"text": "Hello, I received my package yesterday but the product is not the one I ordered. Can you help me?"
}
]
}
]
}
}
Extract the translated text and store it in a Make variable called translated_ticket_body. At this stage, you also have detected_source_lang, which confirms the original language (useful for logging).
Step 3: Drafting a Response with ChatGPT Writer
ChatGPT Writer is a plugin that gives you API access to GPT-4, distinct from the standard OpenAI API. It's simpler to set up for non-technical users because authentication is managed through the ChatGPT Writer service itself.
In Make, add another HTTP module to call ChatGPT Writer:
POST https://api.chatgpt-writer.com/v1/generate
{
"api_key": "YOUR_CHATGPT_WRITER_API_KEY",
"prompt": "You are a professional customer support agent for an e-commerce company. A customer has written: 'Hello, I received my package yesterday but the product is not the one I ordered. Can you help me?' Write a polite, empathetic response that acknowledges the problem, apologises for the error, and offers to send the correct product or issue a refund. Keep the response under 150 words. Write only the response text, no greeting or signature.",
"model": "gpt-4",
"temperature": 0.7,
"max_tokens": 200
}
Customise the system prompt to match your company's tone. A generic prompt produces generic responses; a specific one creates responses that sound like your team. The temperature setting (0.7) balances creativity with consistency; lower values (0.3–0.5) produce more formulaic responses.
The response returns:
{
"id": "draft-9847362",
"object": "text_completion",
"created": 1705316400,
"model": "gpt-4",
"choices": [
{
"text": "Thank you for contacting us, and I sincerely apologise for this mix-up. It's frustrating to receive the wrong item, and I want to make this right immediately. I'm happy to send you the correct product at no cost, or if you'd prefer, I can process a full refund to your original payment method. Please let me know which option works best for you, and I'll arrange it straightaway.",
"finish_reason": "stop"
}
]
}
Extract the text from choices[0].text and store it as draft_response. This is the response your team will review before sending.
Step 4: Converting Response to Audio with ElevenLabs
ElevenLabs provides high-quality text-to-speech that sounds conversational, not robotic. This step is optional but valuable; team members can skim the audio while reviewing multiple tickets, which is faster than reading.
Add an HTTP module to call ElevenLabs:
POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}
{
"text": "Thank you for contacting us, and I sincerely apologise for this mix-up. It's frustrating to receive the wrong item, and I want to make this right immediately. I'm happy to send you the correct product at no cost, or if you'd prefer, I can process a full refund to your original payment method. Please let me know which option works best for you, and I'll arrange it straightaway.",
"model_id": "eleven_monolingual_v1",
"voice_settings": {
"stability": 0.5,
"similarity_boost": 0.75
}
}
Headers:
xi-api-key: YOUR_ELEVENLABS_API_KEY
ElevenLabs has multiple voice IDs available (you can list them with GET https://api.elevenlabs.io/v1/voices). For support responses, choose a voice that sounds professional but warm. The voice_id in the URL determines which voice to use; a common choice is "21m00Tcm4TlvDq8ikWAM" (Rachel, an American English voice).
The response is the audio file in MP3 format. Store this as a binary file in Make, then upload it to cloud storage (Google Drive, AWS S3, or your ticketing system's file storage). Make has modules for these integrations.
Step 5: Routing to Your Team
The final step sends everything to your support team. The approach depends on your ticketing system:
- For Zendesk: Use the Zendesk module to add the translated ticket body, draft response, and audio link as internal notes
- For Freshdesk: Call the API to create a private note or internal comment
- For email-based routing: Send an email to your support channel with the details
Here's an example using the generic HTTP module to post to a Freshdesk ticket:
PUT https://api.freshdesk.com/api/v2/tickets/{ticket_id}
{
"description": "Original (translated from French): Hello, I received my package yesterday but the product is not the one I ordered. Can you help me?\n\nDraft Response:\nThank you for contacting us, and I sincerely apologise for this mix-up. It's frustrating to receive the wrong item, and I want to make this right immediately. I'm happy to send you the correct product at no cost, or if you'd prefer, I can process a full refund to your original payment method. Please let me know which option works best for you, and I'll arrange it straightaway.\n\nAudio Review: [Audio file link]\n\n[SYSTEM]: This draft was generated automatically. Please review and customise before sending.",
"status": 2
}
Headers:
Authorization: Basic YOUR_FRESHDESK_API_KEY
If you use Slack, you can also send a message to your support channel:
POST https://hooks.slack.com/services/YOUR/WEBHOOK/URL
{
"text": "New ticket requiring review",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Ticket #TKT-12847 from Marie Dubois*\n\n*Original (French):*\nBonjour, j'ai reçu mon colis hier mais le produit n'est pas celui que j'ai commandé. Pouvez-vous m'aider?\n\n*Translated:*\nHello, I received my package yesterday but the product is not the one I ordered. Can you help me?\n\n*Draft Response:*\nThank you for contacting us, and I sincerely apologise for this mix-up. It's frustrating to receive the wrong item, and I want to make this right immediately. I'm happy to send you the correct product at no cost, or if you'd prefer, I can process a full refund to your original payment method. Please let me know which option works best for you, and I'll arrange it straightaway."
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "<https://api.elevenlabs.io/audio/abc123|Listen to draft> | <https://yourapp.com/tickets/TKT-12847|Open ticket>"
}
}
]
}
At each stage in your Make automation, add error handlers. If translation fails (the API returns an error), log it and send an alert to your team. If ChatGPT Writer times out, fall back to a template response. If ElevenLabs fails, simply skip the audio step and continue routing.
The Manual Alternative
If you prefer not to automate the entire pipeline, you can automate just the translation step and draft the response manually. This still saves time if your team handles tickets across five or more languages.
Alternatively, use ChatGPT Writer to draft responses without automation; your team copies each translated ticket into the plugin, generates a draft, and posts it manually. This works for teams handling fewer than 20 tickets daily but becomes tedious at higher volumes.
A middle ground: automate translation and routing (steps 2 and 5) but have your team draft responses manually in a shared document or your ticketing system's draft feature. This eliminates language barriers without removing human judgment from response quality.
Pro Tips
Error Handling and Retry Logic
Immersive Translate and ElevenLabs have rate limits. Immersive Translate allows 100 requests per minute on the standard plan; ElevenLabs allows 3,000 characters per minute on its paid tier. If you exceed the limit, both services return a 429 status code. In Make, add a retry module that waits 60 seconds and tries again automatically, up to three times. After three failures, send an alert to a Slack channel and manually route the ticket.
Configure this in Make by adding an error handler after each API call:
if response.status == 429:
wait 60 seconds
retry up to 3 times
else if response.status >= 500:
wait 30 seconds
retry up to 2 times
else if response.status >= 400:
send alert to Slack
mark ticket as "needs manual review"
Cost Optimisation
ChatGPT Writer charges per token used (approximately £0.02 per 1,000 tokens). A typical support response uses 150–200 tokens, so one ticket costs roughly £0.003–£0.004 for the response draft. If you process 1,000 tickets monthly, expect £3–£4 in ChatGPT Writer costs. However, you can reduce token usage by shortening your system prompt or using a smaller model if ChatGPT Writer offers GPT-3.5 access at a lower cost.
ElevenLabs charges per character synthesised (roughly £0.10 per 100,000 characters on the starter plan). A 150-word response is roughly 900 characters, so one ticket costs £0.0009. For 1,000 tickets monthly, expect £0.90 in ElevenLabs costs. Skip audio synthesis for low-priority tickets to save cost.
Immersive Translate typically charges around £5–£15 monthly for API access, depending on volume.
Quality Control for Draft Responses
ChatGPT can hallucinate details or suggest actions your company policy doesn't allow. Before automating response sending, add a human review step in Make: route the draft response to a senior team member who approves it before it's sent. Alternatively, set up a Slack approval button that routes approved responses back into your ticketing system automatically.
If you want to catch poor-quality drafts programmatically, add a sentiment check using a free API like IBM Watson Natural Language Understanding. Flag responses that sound too negative, too passive, or too vague, and route them to manual review.
Language Detection Considerations
Immersive Translate can auto-detect the source language, but sometimes a ticket written in English by a non-native speaker gets misidentified as German or Dutch. If accuracy matters, ask customers to specify their language in the ticket form, or use Make's pattern matching to detect language codes from email headers or metadata. For teams using Zendesk, Freshdesk, or Help Scout, the ticketing system already logs the customer's preferred language, so query that first before calling Immersive Translate.
Handling Tone and Company Voice
The system prompt you send to ChatGPT Writer is critical. Generic prompts produce generic responses that don't sound like your brand. Spend time crafting a prompt that includes:
- Your company's tone (formal, friendly, technical, conversational)
- Common policies (refunds, exchanges, escalation)
- Forbidden phrases or promises your company doesn't make
- Example responses your team approves
Test the prompt with 10–20 real tickets manually before going fully automated. Adjust temperature and max_tokens until the drafts feel right.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| ChatGPT Writer | Standard (GPT-4 access) | £15–£50 | Depends on usage; token-based pricing. ~£0.003–0.004 per response. |
| ElevenLabs | Starter or Creator | £5–£30 | Character-based. Starter tier includes 50,000 characters monthly. |
| Immersive Translate | API Standard | £5–£15 | Monthly or per-request pricing. Most teams use the monthly plan. |
| Make | Core or Team plan | £9–£40 | Depends on operations and concurrent flows. 1,000 operations included in Core. |
| Zapier | Professional or Team | £20–£99 | Alternative; pricier than Make at scale. |
| n8n | Self-hosted (free) or Cloud Pro | £0–£30 | Self-hosted has no subscription cost; Cloud Pro for managed hosting. |
Estimated total for 1,000 tickets monthly: £35–£145, depending on orchestration choice and tool tier selection. Most costs scale linearly with volume; once you exceed 10,000 monthly tickets, negotiate volume pricing with ElevenLabs and Immersive Translate.