How to Connect Zendesk to Your AI Character

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, or urgent. Defaults to normal
  • 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: openopen, pendingpending, resolvedsolved, closedclosed.

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:

  1. In Zendesk, go to Admin Center → Objects and rules → Triggers (or Webhooks in newer Zendesk accounts)
  2. Create a trigger that fires on ticket status change
  3. Set the endpoint to:
    POST https://studio-api.meganova.ai/api/v1/integrations/webhooks/{integration_id}
    
    Replace {integration_id} with the ID shown in your MegaNova integration settings.
  4. 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_ticket with the issue details and the user's email. Set priority to high if 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.

Open MegaNova Studio →

Stay Connected

💻 Website: Meganova Studio

🎮 Discord: Join our Discord

👽 Reddit: r/MegaNovaAI

🐦 Twitter: @meganovaai