Skip to main content

Freshdesk

The Freshdesk tool plugs your assistant into your helpdesk so anything the AI can't (or shouldn't) handle becomes a real Freshdesk ticket on the right team's queue. The most common pattern is graceful escalation: the assistant resolves what it can on its own, and when it hits a billing dispute, an account-specific question, or a request for human follow-up, it opens a ticket with the full context — caller, issue, transcript summary — and the next available agent picks up from there.

What you can do with this tool

  • Open a Freshdesk ticket from inside any conversation, on any channel.

That's the entire surface. Ticket lookup, status updates, internal notes, and replies aren't part of this built-in — if you need those, layer a Custom tool on Freshdesk's REST API.

Business use cases

After-hours support for a SaaS product

The support team is offline from 6pm to 9am. The chat widget stays open. The assistant handles password resets, plan questions, and basic feature walkthroughs from the knowledge base. Anything that needs a human — refund requests, account-specific bug reports, billing disputes — triggers a create_ticket call. By 9am the support team opens Freshdesk to a queue of well-structured tickets, each one with a clear subject, a paragraph summary of what the customer wanted, and the customer's email. First-reply time on the next business day drops dramatically.

Voice receptionist with ticket-based escalation

A real-estate brokerage's voice agent handles inbound calls. Most callers want to ask about a listing or book a viewing. Some need to reach a specific agent about an active deal. The assistant captures the request, opens a Freshdesk ticket with the caller's name, callback number, and what they wanted, and tells them an agent will follow up. The brokerage's support pod monitors Freshdesk; the right agent gets pinged and calls back within the SLA.

Chat that creates a ticket with the transcript attached

A B2B product runs a customer-success chat widget for paying accounts. When a customer reports a bug, the assistant captures the steps they took, the expected behavior, the actual behavior, and any error messages they saw — then calls create_ticket with all of it formatted in the description field. The support engineer who picks up the ticket has everything they need before they reply, instead of "can you repeat what happened?"

High-touch onboarding for a fintech

A wealth platform's voice agent fields questions from new account holders. Some questions need a real human (Series 7-licensed advisors for investment guidance, compliance for KYC issues). The agent's prompt says "for investment guidance or compliance questions, never answer — call create_ticket and tell the customer a licensed advisor will follow up." Tickets land in the right Freshdesk group automatically based on the subject keywords.

Connecting Freshdesk

Step-by-step

  1. In Freshdesk, click the profile icon → Profile Settings. Find the API Key on the right-hand side and copy it.
  2. Note your Freshdesk subdomain — the part before .freshdesk.com. If your portal is at acme.freshdesk.com, the subdomain is acme.
  3. In Insighto: Tools & Integrations → Freshdesk → Add.
  4. Paste the API key and the subdomain (just acme, not the full URL), name the connection, save.

Freshdesk uses Basic auth on every API call; Insighto stores the key encrypted and authenticates each call automatically. If you rotate the API key, paste the new one in the connection settings.

Prerequisites

  • A Freshdesk account on any paid plan with API access enabled.
  • Admin permission to retrieve the API key.

Functions the assistant can call

create_ticket

Opens a new ticket in Freshdesk on the connected portal.

  • Arguments
    • subject (string, required) — short ticket title.
    • description (string, required) — body of the ticket. This is where you put the conversation summary, context, customer mood — whatever your support team needs.
    • email (string, required) — the customer's email; Freshdesk uses this to associate the ticket with a contact.
  • Returns"Ticket created successfully." on success.

Tickets are created with priority Low and status Open. These are fixed and not parameterized — see "Priority and status" below if you need different defaults.

Example invocation

The assistant escalates a refund request at the end of a chat:

{
"function": "create_ticket",
"arguments": {
"subject": "Refund request — order #4421",
"description": "Caller: Alice Patel, +1-555-123-4567.\nIssue: Says order #4421 arrived damaged on May 12.\nWhat I tried: Offered store credit; she wants a full refund.\nMood: Frustrated but polite.\nNext step: Refund decision + callback within 24 hours.",
"email": "alice@example.com"
}
}

Result returned to the assistant:

"Ticket created successfully."

The assistant then tells the customer: "I've opened a ticket for our refunds team — someone will follow up within 24 hours."

System prompt guidance

A consistent ticket structure makes agents' jobs much easier. Tell the assistant exactly how to format the description:

When the customer asks for something you can't handle (refunds, billing, account changes), call create_ticket with:

  • A clear one-line subject (e.g. "Refund request — order #4421").
  • A description formatted like this:
    • Caller: name and phone
    • Issue: one-line summary
    • What I tried: list of self-serve steps you offered
    • Customer mood: calm / frustrated / angry
    • Next step: what the customer expects
  • The customer's email.

After calling the tool, tell the customer a human will follow up.

A structured description means agents open the ticket and immediately know what's going on — instead of reading a stream-of-consciousness paragraph.

Priority and status

This integration writes tickets at Low priority, Open status. The assistant can't change these. If your team relies on the AI tagging certain ticket types as High or Urgent, you have two options:

  • Use Freshdesk's own automation rules (Dispatch'r, Supervisor) to re-prioritize incoming tickets based on subject keywords or contact tags.
  • Build a Custom tool on the Freshdesk REST API that accepts a priority argument and writes it through.

Failure modes

  • Wrong subdomain — the API call hits a non-existent host and fails. Double-check the subdomain in the connection settings (just acme, not acme.freshdesk.com).
  • Bad or rotated API key — Freshdesk returns 401, the ticket fails to create. Re-paste the current API key.
  • Required field missing — Freshdesk rejects the create if subject, description, or email is missing. The assistant will usually re-ask for the missing field.
  • Free plan rate limits — the free tier rate-limits aggressively. Production deployments should be on a paid plan.

Where to next

  • Pair with HubSpot for full CRM + helpdesk syncing.
  • For ticket updates, replies, or lookups, build a Custom tool against Freshdesk's REST API.
  • For voice-call escalation to a live agent instead of a ticket, see Disconnect & transfer.