How to Connect Zendesk to Your AI Character
MegaNova's Zendesk integration connects your character or agent to Zendesk Support for ticket creation, lookup, status updates, and internal notes. Once configured, the same AI character that handles a conversation can also create a ticket, look up an existing one by ID, update its status, or append a note — without leaving the conversation flow.
The integration is provider-agnostic at the tool level. The same four helpdesk tools (lookup_ticket, create_ticket, update_ticket, add_ticket_note) work whether your space is connected to Zendesk or Freshdesk. Swap the integration; the tools stay the same.
What You Need From Zendesk
The integration requires three credentials:
Subdomain — the part before .zendesk.com in your account URL. If your Zendesk is at mycompany.zendesk.com, your subdomain is mycompany.
Agent Email — the email address of the Zendesk agent or admin whose API token you are using. This is the account that will appear as the creator of any tickets MegaNova creates.
API Token — found in Zendesk at Admin Center → Channels → API. Enable token access if it is not already on, then generate a token and copy it.
Zendesk uses email/token authentication: the email is passed as {email}/token and the API token as the password. Neither your actual account password nor OAuth is involved.
Setting Up the Integration
In MegaNova Studio, navigate to the Integrations section (accessible from the Agent Market). Find Zendesk and click to configure it.
The configuration form asks for:
- Zendesk Subdomain (required) — the subdomain only, not the full URL
- Agent Email (required) — the Zendesk agent's email address
- API Token (required) — the token from Admin > Channels > API
- Default Priority (optional) —
low,normal,high, orurgent. Defaults tonormal - Default Group ID (optional) — an integer group ID; assigns new tickets to a specific agent group automatically
After saving, MegaNova tests the connection by fetching your ticket list (GET /tickets.json). A successful test means credentials are valid and the integration is active for your space.
The Four Helpdesk Tools
Once Zendesk is the active integration for your space, four tools are available:
lookup_ticket
Retrieves a ticket by its ID. Returns subject, status, priority, customer email, customer name, tags, and a direct URL to the ticket in Zendesk (/agent/tickets/{id}).
{
"tool_name": "lookup_ticket",
"arguments": { "ticket_id": "12345" }
}
Use this when a user references a previous ticket number and the agent should retrieve its current status before responding.
create_ticket
Creates a new ticket in Zendesk. The ticket is created with status new (Zendesk's initial state before any agent action).
{
"tool_name": "create_ticket",
"arguments": {
"subject": "Login issue after password reset",
"description": "User cannot log in after resetting password. Error: 401 on login attempt.",
"customer_email": "user@example.com",
"customer_name": "Alex Smith",
"priority": "high",
"tags": ["auth", "login"]
}
}
Required fields: subject, description, customer_email. Optional: customer_name, priority, tags.
Priority values: low, normal, high, urgent.
update_ticket
Updates an existing ticket's status or priority.
{
"tool_name": "update_ticket",
"arguments": {
"ticket_id": "12345",
"status": "pending",
"priority": "urgent"
}
}
Status values: open, pending, resolved, closed. These map to Zendesk's status strings: open → open, pending → pending, resolved → solved, closed → closed.
add_ticket_note
Adds a comment to an existing ticket. Notes are private (internal, agent-only) by default. Set private: false to post a public reply visible to the customer.
{
"tool_name": "add_ticket_note",
"arguments": {
"ticket_id": "12345",
"body": "AI agent attempted resolution. User confirmed issue persists after cache clear. Escalating to Tier 2.",
"private": true
}
}
Two-Way Sync: Webhook Support
Zendesk can push ticket status changes back to MegaNova when a ticket is updated by a human agent. This closes the loop — if a human resolves a ticket in Zendesk, MegaNova's escalation record is updated to reflect that.
To set up the webhook in Zendesk:
- In Zendesk, go to Admin Center → Objects and rules → Triggers (or Webhooks in newer Zendesk accounts)
- Create a trigger that fires on ticket status change
- Set the endpoint to:
ReplacePOST https://studio-api.meganova.ai/api/v1/integrations/webhooks/{integration_id}{integration_id}with the ID shown in your MegaNova integration settings. - Set the payload format to:
{ "ticket": { "id": "{{ticket.id}}", "status": "{{ticket.status}}" } }
When Zendesk fires the webhook, MegaNova updates the corresponding escalation record. The conversation that generated the ticket can check back and see the current ticket state.
Using Zendesk Tools in a Workflow
Unlike Freshdesk, which has a dedicated node in the Workflow Editor, Zendesk integration is accessed through the Helpdesk Tools API. You can call these tools from a workflow using an HTTP Request node pointing to:
POST /api/v1/integrations/spaces/{space_id}/tools/execute
With a body of:
{
"tool_name": "create_ticket",
"arguments": {
"subject": "...",
"description": "...",
"customer_email": "..."
}
}
The executor picks up whichever helpdesk integration is active for the space. If Zendesk is the active integration, the ticket is created in Zendesk. No provider-specific code needed in the workflow.
Practical Example: Support Character That Creates Zendesk Tickets
A support character connected to Zendesk might be instructed:
When a user describes a billing issue you cannot resolve, call
create_ticketwith the issue details and the user's email. Set priority tohighif the user mentions they have been waiting more than 24 hours. After creating the ticket, tell the user their ticket number and that a human agent will follow up.
With the integration active, the character calls the Helpdesk Tools API during the conversation. The ticket appears in Zendesk immediately. The user gets a ticket number in the chat. A human agent in Zendesk sees the subject, description, and any tags the character set.
If the same character is later asked "what happened to my ticket?", it calls lookup_ticket with the stored ticket ID and returns the current status from Zendesk directly.
Difference From Freshdesk
Both integrations use the same HelpdeskProvider interface and the same four tool operations. The differences are:
| Zendesk | Freshdesk | |
|---|---|---|
| Auth | Email + API token | API key only |
| New ticket status | new |
Open (status code 2) |
| Priority values | Strings: low/normal/high/urgent | Integers: 1/2/3/4 |
| Workflow node | Not available | Available (Freshdesk node) |
| Agent tool | Via Helpdesk Tools API | create_freshdesk_ticket (direct) |
| Ticket URL | /agent/tickets/{id} |
/a/tickets/{id} |
If your support stack runs on Zendesk, the setup path is the same as Freshdesk — configure the integration, and the helpdesk tools become available to the space's characters and agents.
Stay Connected
💻 Website: Meganova Studio
🎮 Discord: Join our Discord
👽 Reddit: r/MegaNovaAI
🐦 Twitter: @meganovaai