OpenClaw Integrations

How to Connect Freshdesk to OpenClaw: Setup, Models, and Workflow Guide

·17 min read

If you're searching for "how to connect Freshdesk to OpenClaw", the real question is usually not just whether the connection is possible. It's how to make Freshdesk usable inside an OpenClaw workflow with the right model, the right context, and the right level of control.

That's the practical framing.

OpenClaw gives you the orchestration layer: connectors, skills, tools, prompts, approvals, and the ability to run workflows where your team already works. Freshdesk provides the domain context. The integration becomes valuable when those two pieces are connected cleanly.

Freshdesk + OpenClaw: What's Actually Happening Here

When someone searches for "how to connect Freshdesk to OpenClaw," they're asking one of two things. Either they run OpenClaw on their own infrastructure and need a reliable path into their support queue, or they use Cody (managed OpenClaw) and want to understand the plumbing underneath.

Freshdesk is where tickets, contacts, companies, groups, and solution articles live for thousands of support teams. Connecting it to OpenClaw means your agent can triage the queue every morning, spot overdue or at-risk tickets, summarise a customer's history in one Slack message, draft replies in your brand voice, and surface recurring product pain — without living inside the Freshdesk UI all day.

The landscape here changed meaningfully in 2026. Freshworks now ships an official MCP server for Freshdesk, but it comes with two sharp caveats most listicles gloss over: it's Beta/EAP and Enterprise-only, and it authenticates with an API key only — there is no OAuth flow. That second point is the single most important thing to understand before you start, and it's why the honest answer usually still lands on a direct API proxy for production headless use.

Let's walk through what actually works as of late 2026.


Path A: Freshdesk's Official MCP Server (Beta / EAP, Enterprise Only)

Freshworks hosts an official MCP server that exposes Freshdesk capabilities (create tickets, fetch conversations, manage contacts and companies, search solution articles) via public APIs. It's a "remote" MCP endpoint hosted at your own Freshdesk domain:

https://<your-freshdesk-domain>/mcp

The Freshdesk docs frame this around Claude Code, Claude Desktop, Cursor, Microsoft Copilot Studio, and VS Code — but the MCP server follows the standard Model Context Protocol, so any MCP-compatible client can point at the same endpoint, including self-hosted OpenClaw. You aren't waiting on Freshworks to "certify" OpenClaw the way some hosted AI products work.

How this connects to OpenClaw: OpenClaw can consume remote MCP servers as tools. In your OpenClaw Gateway config, you'd register the Freshdesk MCP server over HTTP/Streamable transport with the API key in the authorization header:

{
  mcp: {
    servers: {
      freshdesk: {
        url: "https://yourdomain.freshdesk.com/mcp",
        transport: "streamable-http",
        headers: {
          Authorization: "YOUR_FRESHDESK_API_KEY"
        }
      }
    }
  }
}

Run openclaw mcp doctor freshdesk --probe to confirm the connection, then your agent can use the Freshdesk tools the authenticated API key is allowed to touch.

The Two Big Caveats (Read These First)

⚠️ Caveat #1 — Beta / EAP / Enterprise only. The Freshdesk MCP integration is in Beta and available through an Early Access Program for selected Enterprise-plan customers. You have to contact your technical account manager (or email support@freshdesk.com) to request access. If you're on Growth, Pro, or the free/Sprout plan, the MCP server simply isn't available to you yet — Path B is your route.

⚠️ Caveat #2 — API key auth only, no OAuth. Freshdesk currently authenticates MCP requests with an API key only. That single key becomes a shared credential: every tool call reaches Freshdesk as one identity, with full read/write scope for whatever that key (and its user's role) is allowed to do. There's no per-agent OAuth token, no scope-limiting, no "this agent can only read tickets" granularity. This matters for security and it matters for attribution — see the pitfalls section below.

EAP Rate Limits and the September 1, 2026 Change

During the Early Access period, the limits are tight:

Limit EAP Value
Applicable plan Freshdesk Enterprise
Tool calls per minute 100
Tool calls (actions) per month 5,000
Tool permissions Full tool access

An "action" is one successful tool invocation — e.g. "fetch the conversation for ticket #1001" or "update company #11's name to Apple" each count as one. A single morning triage that lists 40 open tickets and pulls each one's detail could burn through a meaningful chunk of that 5,000 monthly budget fast. Starting September 1, 2026, Freshworks moves this onto tiered plans/add-ons (Freshdesk and Freshdesk Omni 2026) with per-plan rate limits and included action counts — so the exact numbers are in flux right now. Check the live doc before you commit to a monthly volume.


Path B: Freshdesk REST API Proxy + OpenClaw Skill File (Works Today, Any Plan)

For the majority of teams — anything below Enterprise, or anyone who wants full control and headless/cron reliability — the direct Freshdesk REST API v2 proxy remains the right answer, and it's the path the base OpenClaw template already assumes.

Step 1: Get Your Freshdesk API Key

Log into Freshdesk, click your profile picture → Profile Settings, and locate "View API Key" (you'll complete a captcha verification). Freshdesk uses the key as the username in HTTP Basic authentication; the password field is ignored (the convention is to pass "X" or anything non-empty). Your base URL is https://{your-domain}.freshdesk.com/api/v2.

Step 2: Understand the Key Endpoints

Freshdesk's REST API v2 is well-documented and predictable. The core surfaces your agent will touch:

Resource Method Endpoint Notes
List tickets GET /tickets Page-based; supports filter= presets (open, pending, resolved, overdue, etc.)
Filter tickets GET /tickets/filter Accepts predefined filters or query= custom filter queries
Get ticket GET /tickets/{id} Full detail including conversation history
Get ticket conversations GET /tickets/{id}/conversations Threaded replies, notes, and replies
Create ticket POST /tickets Requires requester email or ID
List contacts GET /contacts Filter by email=, state=, etc.
Get contact GET /contacts/{id} Requester profile + custom fields
List companies GET /companies Account-level context
List groups GET /groups Support group roster
List agents GET /agents Agent roster (IDs needed for assignment)
List/Get solution articles GET /solutions/categories/solutions/articles/{id} Knowledge base lookup

Step 3: Build the Proxy and Skill File

Build a thin proxy that accepts simple HTTP calls from OpenClaw and translates them into Freshdesk API calls, resolving agent IDs back to names, and write a ~/.openclaw/skills/freshdesk.md with your SLA targets, group IDs, and assignment logic:

# Freshdesk Skill

## Groups
- Support: group_id 21000012345
- Billing: group_id 21000067890

## SLA Targets
- First response: under 4 business hours
- Resolution: under 24h for normal priority, 8h for urgent

## Common Queries
- Open queue: GET /tickets/filter?filter=open
- Overdue watch: GET /tickets/filter?filter=overdue, check due_by vs now
- Customer history: GET /contacts?email={email} → GET /tickets?requester_id={id}

## Important
- Freshdesk returns agent IDs, not names — resolve before showing the model
- due_by is the SLA breach timestamp; compare against now, not created_at

Freshdesk's official MCP integration guide (EAP) — note the API-key-only auth callout and the Beta/Enterprise-only gating

Real Use Cases for a Freshdesk + OpenClaw Agent

Here's what support and success teams actually build once the connection works — specific to Freshdesk's data model and workflows.

1. Morning Queue Triage

Every morning the agent checks the Freshdesk queue and posts to #support:

📥 Freshdesk Status — Mon 17 Aug, 09:00 Open tickets: 64 (down from 71 Friday) Overdue / at SLA risk: 9 — 3 are urgent priority Unassigned: 11 — need triage Waiting on customer > 48h: 18 — ping scheduled ⚠️ Ticket #4821: Enterprise account "Acme Corp", 31h without agent reply, urgent, tagged "billing-dispute"

The agent pulls the open filter, checks due_by against the current time for SLA risk, cross-references requester company and priority, and formats the summary. The lead sees what needs attention in 30 seconds instead of clicking through Freshdesk views.

2. Customer 360° from One Query

An agent types a customer's email in Slack. OpenClaw pulls from Freshdesk:

  • Contact profile (name, company, role, plan, custom fields)
  • All past tickets (open and resolved) with one-line summaries
  • Company-level context (how many other tickets is that account filing?)
  • Relevant solution articles they might benefit from
  • Group assignment history

All in a single thread. What used to be five Freshdesk views and manual piecing-together is now one query.

3. Weekly Support Health Report

Every Friday the agent generates a report for the leads:

📊 Support Health — Week 33 Tickets opened: 412 (↑6% WoW) Median first response: 3.1h (↓ from 3.9h) Median resolution: 21.4h (↑ from 18h — trending worse) SLA breaches: 14 (↑ from 6) Top issue tags: "login issues" (31%), "billing" (24%), "integration" (18%) Top accounts by volume: Acme Corp (11), Beta Inc (7), Gamma Ltd (6)

The agent aggregates by status, priority, and tag keyword, comparing week-over-week to surface drift before it becomes a problem.

4. Overdue-Ticket Early Warning

The agent polls the overdue filter and escalates:

🚨 Overdue Alert Ticket #4917: Urgent · "API rate limit blocking sync" · Acme Corp (Enterprise, $28K ARR) Opened: 52h ago · SLA breached: 16h ago Assigned: unassigned (was in Billing group) Recommended: Escalate to team lead, reach out to CSM, flag to product

This is the highest-value Freshdesk workflow because it catches breaches humans miss while clicking through the UI.

5. Recurring-Issue Mining for Product

Product managers don't live in Freshdesk, but they need the signal. Once a month:

📋 Product Feedback Digest — Aug 2026 Top issue themes (by ticket count):

  1. Bulk contact actions — 27 tickets, 5 from enterprise accounts
  2. Custom report builder — 21 tickets
  3. Slack notification granularity — 16 tickets Rising: "Bulk actions" went from 6 to 27 mentions this month Recurring tickets detected: 9 near-duplicate "login MFA" tickets — surface a fix

The agent clusters by tag and keyword across resolved tickets, turning unstructured support volume into a structured product signal.


Freshdesk-Specific Pitfalls (What Most Guides Miss)

These are the real-world gotchas from teams running Freshdesk integrations in production.

1. The API Key Is a Single Shared Identity — No Scoping

Freshdesk MCP (and the REST API v2) authenticate everything with one API key that acts as a single shared user. There's no OAuth, no per-agent tokens, no read-only vs read-write fine-grained scoping. Every tool call reaches Freshdesk as that one identity, with full access the key's role allows. If you give the key to three agents, you can't tell who did what, and a buggy prompt can create or delete tickets just as easily as read them. Fix: Use a dedicated service-account user for the agent key, restrict that user's role/permissions in Freshdesk to the minimum (e.g. no destructive admin rights), and route writes through human-review steps in OpenClaw where possible.

2. There Are TWO Official Freshworks MCP Servers — Don't Confuse Them

Freshworks actually ships two different MCP servers, and this is the #1 confusion vector:

  • Freshdesk MCP serverhttps://<your-freshdesk-domain>/mcp — the support data server (tickets, contacts, companies, articles). API-key auth, Beta/EAP, Enterprise-only. This is the one you want for a support assistant.
  • Freshworks Developer MCP serverhttps://mcp.freshworks.dev/mcp — the app lifecycle server used by the fw-publish skill to manage Custom App submissions (list_custom_apps, submit_custom_app, add_app_version, get_app_status). Bearer-token auth via the Application Management Portal, 60 req/min. This one is for Freshworks app developers, not for reading your support queue.

Guides that say "point at mcp.freshworks.dev to get your tickets" are flat wrong. Verify which server you're actually configuring.

Freshworks' Developer MCP server docs — a separate server (mcp.freshworks.dev) for Custom App lifecycle, not support data; easy to confuse with the Freshdesk MCP server

3. Filter API Is Not Arbitrary Search

The Freshdesk /tickets/filter endpoint accepts a fixed set of predefined filters or a custom filter query DSL — not free-form search across every field. For complex queue views (e.g. "all urgent tickets from enterprise accounts created in the last 7 days"), you often can't express that in a single filter — you'll fetch a broader set and filter client-side in your proxy. Fix: Understand the filter query syntax up front, and expect to do client-side refinement. Don't assume "the API will just search it."

4. Agent IDs, Not Names

Freshdesk returns agent IDs, not human-readable names, across tickets, assignments, and conversations. If your agent shows "assigned to agent #21000168800" to your team, that's useless. Fix: Resolve agent IDs to names in your proxy/skill file — cache the /agents roster and map IDs back before presenting anything to the model or to Slack.

5. Outbound Ticket Fields Are Immutable

Once a ticket is created, certain fields are effectively locked (Freshdesk restricts editing many ticket properties after creation, and outbound emails behave differently from replies). If your agent tries to "fix" a priority or requester and the change silently no-ops, this is usually why. Fix: Get the ticket shape right at creation time, and treat update operations as strictly additive (replies, notes, status, tags) rather than full field rewrites.

6. Conversations vs Threads Semantics

Freshdesk models the thread as a series of conversations (reply, note, or forward types) under a ticket. A "reply" goes to the customer; a "note" is internal-only. If your agent drafts something and doesn't know which type it's emitting, you can leak an internal note to a customer. Fix: Make the reply-vs-note distinction explicit in your skill file, and default to drafts that require human approval before sending customer-facing replies.


Decision Matrix: Which Path Should You Take?

Scenario Best Path Why
Enterprise plan, got EAP access, interactive use Official MCP — Path A Zero infrastructure, hosted endpoint, Freshworks-maintained
Growth/Pro/Sprout plan Proxy — Path B MCP is Enterprise-only
Headless/cron agent (nightly triage) Proxy — Path B API key is stable for background use; MCP EAP limits are tight
Need full control + custom fields + scoping Proxy — Path B REST API v2 is more complete than the MCP tool surface
Small team, want Freshdesk agent in Slack today Cody Zero setup, Freshdesk connected in minutes, no API glue
Building Freshworks marketplace apps Developer MCP — mcp.freshworks.dev App lifecycle, not support data

Related Pages

What “Connect Freshdesk to OpenClaw” Actually Means

In practice, connecting Freshdesk to OpenClaw usually involves four layers:

  • Authentication so OpenClaw can securely access Freshdesk
  • Tooling or proxy endpoints that expose the right Freshdesk actions and data
  • Skills/instructions that tell OpenClaw how to reason over Freshdesk context
  • Model selection so the assistant uses the right LLM for the job

That last piece matters more than most people expect.

Which Models Can You Use?

OpenClaw is model-flexible, so a Freshdesk integration does not need to be tied to a single provider. Depending on your setup, teams commonly want to use:

  • OpenAI models for broad reasoning, structured extraction, and tool use
  • Anthropic models for writing, analysis, and long-context work
  • Google models for multimodal and large-context workflows
  • Other model backends if your OpenClaw environment exposes them

Model names and availability change frequently, so check your OpenClaw model catalogue rather than copying a version from a guide. The practical point is that you can connect Freshdesk once, then choose a supported model for each workflow.

For example:

  • Use Claude for nuanced summarisation or drafting
  • Use OpenAI for structured extraction, tool-heavy workflows, or general-purpose copiloting
  • Use Gemini when multimodal or very large context windows matter

A Good Integration Pattern for Freshdesk

A strong Freshdesk + OpenClaw setup usually looks like this:

  1. OpenClaw receives a request in chat or from an automation
  2. It calls the right Freshdesk endpoint or proxy
  3. The selected model reasons over the returned context
  4. OpenClaw returns an answer, draft, classification, or action
  5. High-risk actions stay behind approvals or structured guardrails

That is what makes the setup operational rather than just experimental.

Step-by-Step: Connect Freshdesk to OpenClaw

Step 1: Get Your Freshdesk API Key

Log into Freshdesk, click your profile picture → Profile Settings, and scroll to 'Your API Key'. Use this as the username in HTTP Basic authentication (the password can be anything — Freshdesk ignores it). Your base URL is https://{your-domain}.freshdesk.com/api/v2.

Step 2: Use the Filter Tickets Endpoint

The /tickets/filter endpoint accepts predefined filters (open, unresolved, overdue, etc.) or custom filter queries. For SLA breach risk, look at the due_by field on tickets compared to the current time. The /tickets/{id} endpoint gives full ticket details including conversation history.

Step 3: Build the Proxy and Skill File

Build your proxy around ticket listing, filtering, and detail endpoints. Write ~/.openclaw/skills/freshdesk.md with your SLA targets and agent names — Freshdesk returns agent IDs, so your proxy should resolve these to human-readable names.

Model-Specific Workflow Ideas

Freshdesk + OpenAI

Use this when you want a strong general-purpose setup for extraction, classification, action planning, and tool-driven workflows around Freshdesk.

Freshdesk + Claude

Use this when you want better writing quality, clearer summaries, stronger nuance, and reliable long-context reasoning over Freshdesk data.

Freshdesk + Gemini

Use this when the workflow benefits from large context windows, multimodal inputs, or Google-native ecosystem alignment.

Common Mistakes

Most teams do not fail because the model is bad. They fail because:

  • the Freshdesk connection is too thin
  • the model lacks the right live context
  • prompts are vague
  • no structured outputs are enforced
  • permissions and approvals are skipped
  • one model is forced to do every job, even when another would be a better fit

The best setup is usually one integration layer, multiple model options, and clear guardrails.

Challenges and Caveats

Filter Complexity Is Limited

Freshdesk's ticket filter API supports a fixed set of conditions — not fully arbitrary queries. For complex queue views, you may need to fetch more data than needed and filter client-side in your proxy.

Webhook Support Varies by Plan

Freshdesk automations and webhooks (for real-time notifications) are available on Growth plan and above. On the free/Sprout plan, you're polling-only.

Want Freshdesk Connected to OpenClaw Without Building the Whole Stack Yourself?

Cody gives your team a Freshdesk AI assistant in Slack, so people can review queues, spot overdue or at-risk tickets, summarise ticket context, draft replies, and surface recurring customer pain without managing API keys or building the support workflow glue themselves.

Get started with Cody →


Related OpenClaw Guides


Looking for a more workflow-first angle? See: Freshdesk AI Automation and Freshdesk AI Assistant.

More Freshdesk Resources