How To Build an AI To Solve Zendesk Tickets [Easy Steps]

Imagine this: A customer sends an email to your support team asking about your business hours. Within seconds, they receive a perfectly crafted response, complete with accurate information and a friendly tone. No human agent has touched the ticket, yet the customer’s query is resolved instantly.

In this step-by-step guide, we will guide you through the process of implementing an AI agent to solve Zendesk tickets, potentially saving your support team countless hours and improving the overall customer experience. We'll explore how to leverage Voiceflow, Make (formerly Integromat), and Zendesk's API to create an automated support workflow.
Why Should You Automate Zendesk Ticket Resolution?
With increasing customer demands, your support team can quickly become overwhelmed by repetitive tasks. Here’s why automating customer support can help your business save time and money:
- Reduce Response Times: Automated responses can significantly reduce the time it takes to address customer inquiries. By 2025, AI is expected to power 95% of customer interactions, enabling companies to handle routine inquiries promptly and efficiently.
- Increase Efficiency: AI-driven customer service not only improves efficiency but also reduces operational costs. Over half of the companies using AI in their customer service have reported reduced costs due to increased efficiency and faster issue resolution.
- Consistency: Automated responses ensure consistent and accurate information delivery to customers. With AI handling up to 70% of customer requests, businesses can maintain high levels of service consistency across interactions.
- Cost-Effective: Automating routine tasks reduces the need for extensive human resources, lowering operational costs. In fact, AI has enabled many companies to save significantly on staffing costs while improving service quality.
How to Build an AI-Powered Agent for Zendesk
To streamline customer support operations and enhance ticket resolution workflows, we’re setting up an integration between Zendesk, Make.com, and Voiceflow. The goal is to intelligently automate responses to new support tickets by combining Zendesk’s robust help center capabilities with Voiceflow’s advanced AI and conversational automation features. This setup leverages Make as a middleware platform because Zendesk’s native triggers are not capable of issuing the two sequential API calls required to engage Voiceflow—first initiating a launch request and then sending a user message via a text request. By using Make, we unlock the flexibility to orchestrate these calls and automate intelligent triage processes.
This integration allows us to take full advantage of the AI features Zendesk offers, while extending its functionality through Voiceflow’s generative AI. With Voiceflow, teams can design powerful conversational flows that answer customer questions, suggest help center articles, or escalate edge cases—reducing manual workload and improving customer satisfaction. Automatically routing support tickets to the right flows and responding with personalized, context-aware answers ensures faster resolutions, adherence to best practices, and scalable support operations. Whether you're looking to handle common customer questions or power your Zendesk AI help center with richer automation, this use case highlights how advanced AI systems like Voiceflow can transform support experiences end-to-end.
{{blue-cta}}
1. Understand the High-Level Workflow
- When a new ticket comes into Zendesk, a trigger fires off.
- This trigger sends a payload containing the ticket ID across to Make.com.
- Make.com receives the payload and sends it across to Voiceflow.
- Your AI agent built in Voiceflow processes the request and solves the ticket.
- Voiceflow updates the ticket in Zendesk with the response and potentially adds tags.
2. Set up Your Voiceflow AI Agent

- Go into Voiceflow and create a new assistant.
- The first step should be to capture the payload sent from Make.com. This payload contains the ticket ID.
- Save the captured ticket ID into a variable, for example, named ticket_id.
3. Call the Zendesk API to Get Ticket Details
- Add an API step to your Voiceflow canvas.
- Set the method for this API call to GET.
- The URL for getting ticket details:
https://{your_zendesk_subdomain}.zendesk.com/api/v2/tickets/{ticketId}
- Add the necessary Headers:
- Content-Type with value application/json.
- Authorization with value Basic {base64_encoded_api_token}.
- To get the Base64 encoded API token:
- Go to your Zendesk Admin Center.
- Search for "API" and click on "Zendesk API".
- Ensure Token access is enabled.
- Click "Add API token".
- Give it a name (e.g., "Zendesk Make integration").
- Copy the generated API token.
- Click save.
- Use an online Base64 encoder.
- Paste the format email_address/token:api_token into the encoder.
- Replace email_address with your email address and api_token with the token you copied from Zendesk.
- Encode and copy the encoded value.
- Paste this encoded value into the Authorization header in Voiceflow, ensuring it's preceded by Basic.
- Test the API call in Voiceflow:
- Choose a random ticket ID from Zendesk, paste it into the test field, and click generate.
- You should receive a successful response containing ticket information.
4. Capture Zendesk Ticket Data into Variables
- After a successful API call, use the Capture Response feature within the API step:
- response.ticket.subject → ticket_subject
- response.ticket.description → ticket_description
- response.ticket.via.channel → ticket_channel
- response.ticket.via.source.from.address → customer_email
- response.ticket.via.source.name → customer_name
- Think of accessing data like navigating subfolders in JSON:
response.ticket.subject, response.ticket.via.source.from.address, etc.
5. Filter Tickets (Risk Mitigation)
Filter by Number of Questions
- Add a Set AI step (e.g., "Set number of questions").
- Use a prompt that takes the subject and description and outputs the number of questions.
- Save to a variable like number_of_questions.
- Use System Settings to instruct the AI:
- "Output the number 1 if the request is only about one question and output 2 if it's 2+ questions."
- "Output the number 1 if the request is only about one question and output 2 if it's 2+ questions."
- Add a Condition block:
- First condition: if number_of_questions = 1.
- Use the "else" path for other values.
- Focus only on tickets with one question initially.
Classify Ticket Intent
- Add another Set AI step (e.g., "Classify the ticket").
- Use a prompt that takes the subject + description to classify the ticket's intent.
- Save result to ticket_intent.
- Use System Instructions to define intents:
- Example:
- 1 → "Open hours"
- 2 → "Computer isn't working"
- 3 → "Everything else"
- Always include a fallback intent.
- Example:
- Add a Condition block:
- Create conditions based on ticket_intent values.
- Add a "no match" or "else" path for unsupported intents.
6. Build Answer Flows
For AI-Generated Responses (e.g., Open Hours)

- Use a Set AI step (e.g., "open hours response").
- Use a prompt with subject + description.
- Use a Knowledge Base for info source.
- Save to a variable like open_hours_response.
For Canned Responses (e.g., Computer Isn't Working)
- Use a static text block or predefined variable instead of AI.
- This avoids AI token usage.
Filter by Ticket Channel
- Format responses differently per channel (email = formal, SMS = short).
- Add a Condition block:
- Filter based on ticket_channel.
- Create paths for email, SMS, etc.
- (Optional: consolidate channel filter early to avoid duplicating flows.)
7. Update the Zendesk Ticket with the Response
- Add an API step to update the ticket.
- Copy and modify the original API step.
- Set the method to PUT.
- Use the same URL: https://{your_zendesk_subdomain}.zendesk.com/api/v2/tickets/{ticketId}
Headers:
- Content-Type: application/json
- Authorization: Basic {base64_encoded_api_token}
Set Body (Raw, application/json):
- JSON structure:
{
"ticket": {
"comment": {
"html_body": "<p>Hi {{customer_name}}, ...</p>",
"public": true
},
"status": "pending"
}
}
- Use HTML and escape quotation marks with \" inside strings.
- Test in Voiceflow:
- Use a real ticket ID, name, and response text.
- Verify comment appears in Zendesk.
8. Add Tags to the Zendesk Ticket

- Add a separate API step (do not combine with the comment update).
- Method: PUT
- URL: same as above
- Headers: same
- Body (Raw, application/json):
{
"ticket": {
"additional_tags": ["voice_flow_ai_agent", "question_about_open_hours"]
}
}
- Use underscores in tag names (no spaces).
- Test in Voiceflow to confirm tags are added in Zendesk.
9. Set up the Zendesk Trigger and Webhook for Make.com
In Zendesk:
- Go to Admin Center → Webhooks
- Click "Create webhook"
- Type: Trigger or automation
- Name: "Zendesk Make integration"
- Click "Create webhook"
In Make.com:
- Go to Make.com → Create new scenario
- Add "Inbound webhook" module
- Choose Custom webhook
- Name: "Zendesk Make integration"
- Copy the generated webhook URL
- Add "Inbound webhook" module
Back to Zendesk:
- Paste Make webhook URL into Endpoint URL
- Request method: POST
- Format: JSON
- Test webhook:
- In Make: click OK → Run once
- In Zendesk: click "Send test"
- Confirm receipt in Make
- In Zendesk:
- Create a Trigger
- Name: "Zendesk and Make integration"
- Conditions:
- Ticket is Created
- Tags does not contain: vf_sent (to prevent re-firing)
- Actions:
- Notify active webhook: select your webhook
- JSON body:
- Create a Trigger
{"ticket_id": {{ticket.id}}}
- Add tag: vf_sent
10. Update the Make.com Scenario to Connect to Voiceflow
Voiceflow Launch Request
- Add an HTTP module in Make
- URL: https://general-runtime.voiceflow.com/state/user/{user_id}/interact
Method: POST
Headers:
- Authorization: Voiceflow API key {your_voiceflow_api_key}
Body type: Raw (application/json)
JSON body:
{}
Voiceflow Text Request
- Add another HTTP module
- Same URL as above
- Method: POST
- Headers: same
- Body type: Raw (application/json)
- JSON body:
{
"action": {
"type": "text",
"payload": {
"ticket_id": {{ticket_id_from_webhook}}
}
}
}
- Map the ticket ID from Zendesk webhook bundle
- Ensure your Voiceflow agent is Published
- Turn your Make scenario ON
11. Testing the End-to-End Flow
- Send a test email to your support address.
- Check Zendesk for the new ticket.
- Confirm the ticket is updated with the Voiceflow response.
- Check for added tags (e.g., voice_flow_ai_agent, question_about_open_hours).
- Look for the automated email response in your inbox.
This walkthrough covers the process described in the source for connecting Zendesk, Make, and Voiceflow to automate responses for new tickets. Focus on building more specific answer flows and filters in Voiceflow as you expand your AI agent’s capabilities.
{{blue-cta}}
How to Fine-Tune Your AI Agent for Customer Support
With the basic setup complete, it's time to put your AI agent to the test. Send a variety of test emails to your Zendesk support address and monitor how they're processed. Review the AI-generated responses for accuracy and appropriateness, and adjust your Voiceflow logic as needed.
As you refine your system, gradually expand the range of inquiries your AI agent can handle. Implement more sophisticated classification methods, add support for multiple languages if necessary, and consider A/B testing different response styles to optimize customer satisfaction.
Build Your AI Agent to Solve Zendesk Tickets Automatically Today
With Voiceflow's user-friendly platform, you can start building your AI support agent for free, joining over 250,000 teams who already trust our platform. Click on the Get Template button now to start building!
Start building AI Agents
Want to explore how Voiceflow can be a valuable resource for you? Let's talk.
