What You’ll Connect
After this guide, your Freshdesk helpdesk will have AI ticket processing powered by your own GPU server — no API costs, no rate limits. New tickets are automatically classified, prioritised, and paired with an AI-drafted response — all powered by a model running on dedicated GPU hardware you control.
The integration uses Freshdesk’s automation rules to fire webhooks when tickets arrive. A middleware service receives the ticket data, sends it to your vLLM or Ollama endpoint, and updates the ticket with AI-generated fields via the Freshdesk API. Agents start each ticket with an AI head start.
Automation Rule –> Webhook POST –> Middleware –> GPU Server (new ticket) (ticket created) ticket data (FastAPI) LLM inference | | on dedicated GPU Ticket updated Calls GPU API | with AI fields <-- Freshdesk API <-- Middleware <-- Completion returned (category, draft) PUT /tickets updates ticket -->Prerequisites
- A GigaGPU server with a running LLM on an OpenAI-compatible API (self-host guide)
- Freshdesk Pro plan or higher (required for automation rules with webhooks)
- Python 3.10+ or Node.js 18+ for the middleware
- HTTPS endpoints for middleware and GPU server (Nginx proxy guide)
- Freshdesk API key (found under Profile Settings)
Integration Steps
In Freshdesk Admin, add custom ticket fields for AI output — “AI Category” (dropdown) and “AI Draft” (multi-line text). These will store the model’s classification and suggested response for agents to review.
Navigate to Admin > Automations > Ticket Creation and create a new rule. Set the condition to match all new tickets (or filter by specific criteria). Add a Trigger Webhook action pointing to your middleware endpoint. Include ticket ID, subject, and description as request parameters.
The middleware parses the webhook payload, constructs a prompt with the ticket content, calls your GPU inference API, and uses the Freshdesk REST API to update the ticket’s custom fields with the AI classification and draft reply.
Code Example
This Python middleware processes Freshdesk webhooks and calls your FastAPI inference server:
from fastapi import FastAPI, Request
from openai import OpenAI
import httpx, os, json
app = FastAPI()
llm = OpenAI(
base_url="https://your-gpu-server.gigagpu.com/v1",
api_key=os.environ["GPU_API_KEY"],
)
FD_DOMAIN = os.environ["FRESHDESK_DOMAIN"] # e.g., yourcompany.freshdesk.com
FD_KEY = os.environ["FRESHDESK_API_KEY"]
@app.post("/freshdesk/webhook")
async def process_ticket(request: Request):
data = await request.json()
ticket_id = data["ticket_id"]
subject = data["subject"]
description = data["description_text"]
completion = llm.chat.completions.create(
model="meta-llama/Llama-3-70b-chat-hf",
messages=[
{"role": "system", "content": """Analyse this support ticket.
Return JSON: {"category": "billing|technical|account|general", "priority": 1-4, "draft": "..."}"""},
{"role": "user", "content": f"Subject: {subject}\n\n{description}"}
],
max_tokens=500,
temperature=0.1,
)
result = json.loads(completion.choices[0].message.content)
async with httpx.AsyncClient() as client:
await client.put(
f"https://{FD_DOMAIN}/api/v2/tickets/{ticket_id}",
json={
"priority": result["priority"],
"custom_fields": {
"cf_ai_category": result["category"],
"cf_ai_draft": result["draft"]
}
},
auth=(FD_KEY, "X"),
)
return {"status": "processed"}
Testing Your Integration
Submit a test ticket via email or the Freshdesk portal. The automation rule should fire the webhook within seconds. Open the ticket in the Freshdesk agent view and verify the AI Category and AI Draft fields are populated with relevant values. Check the automation rule’s activity log for successful webhook delivery.
Test tickets across different categories — billing disputes, password resets, feature requests — to validate classification accuracy. Adjust the system prompt if certain categories are consistently misclassified.
Production Tips
Freshdesk webhooks do not retry on failure by default. Add health monitoring to your middleware and set up alerts if the endpoint goes down. Consider using a message queue between the webhook receiver and GPU inference to handle load spikes during high-ticket-volume periods.
Present AI drafts as agent suggestions, not automatic replies. Use Freshdesk’s canned response feature to let agents insert the AI draft into the reply editor with one click, then customise before sending. This maintains quality while cutting response drafting time significantly.
For support teams with data privacy requirements, self-hosted AI on open-source models keeps ticket content within your own infrastructure. Secure all connections with our API security guide. Browse more tutorials or get started with GigaGPU dedicated GPU hosting to power your Freshdesk AI integration.