Skip to main content

Freshdesk

Connect your Freshdesk support desk to Squid to search, create, and manage tickets

The Freshdesk connector's functionality

The Freshdesk connector enables Squid AI agents to work with support tickets on the user's behalf:

CapabilityDescription
Search ticketsText search of tickets, or list the most recently updated tickets
Get ticket detailsFull ticket details including its conversation history, optionally with related tickets
Semantic searchNatural-language search over indexed tickets, including finding tickets similar to a given one
Create ticketsCreate a ticket with a subject, description, requester email, priority, and status
Update ticketsUpdate a ticket's subject, description, priority, or status
Reply and add notesPost a public (or private) reply on a ticket, or add a private internal note

When Index Tickets is enabled, Squid syncs your ticket history into a knowledge base every 10 minutes, enabling the semantic search and similar-ticket features.

Finding your Freshdesk API key

The connector authenticates using your Freshdesk API key, which can be found in your Freshdesk profile settings under Your API Key. For details, see Freshdesk's documentation on finding your API key.

Adding the Freshdesk connector to your Squid application

  1. Navigate to the Connectors tab in the Squid Console.

  2. Click Available Connectors.

  3. Find the Freshdesk connector, and select Add Connector.

  4. Provide the following configuration details:

Connector ID: A string that uniquely identifies the connector in your code.

Subdomain: The subdomain of your Freshdesk instance. For example, if your instance is at https://mycompany.freshdesk.com, enter mycompany.

API Key: Your Freshdesk API key. The key is stored securely as a Squid secret.

Index Tickets: Enable semantic search and similarity features for Freshdesk tickets.

Ticket History Days: The number of days of ticket history to sync for indexing. Defaults to 30.

note

The semantic search and similar-ticket features require Index Tickets to be enabled. After enabling it, allow some time for the initial sync to complete.

Using the Freshdesk connector in your application

No-code Studio

  1. Navigate to the Studio tab in the Squid Console.

  2. Click Create AI Agent.

  3. Provide an agent ID and description, such as "support-agent" and "This agent helps the user manage Freshdesk tickets".

  4. Click Add Abilities.

  5. Expand the Freshdesk entry and select the Freshdesk connector you created earlier.

  6. Give a description for how the agent should use this connection, such as "Call this when a user wants to look up or manage support tickets."

  7. Click on Test and try asking the agent "What are my most recent tickets?".

Using the Squid SDK

If you are creating your AI agent with the Squid SDK, connect the Freshdesk connector by adding it to the connectedIntegrations option of the ask() function:

await this.squid
.ai()
.agent('AGENT_ID')
.ask('Find tickets about login problems and summarize them', {
connectedIntegrations: [
{
integrationId: 'FRESHDESK_CONNECTOR_ID',
integrationType: 'freshdesk',
description: 'Call this connector to look up and manage Freshdesk tickets',
},
],
});

Using the npm package

For programmatic (non-agent) access from your backend or client code, install the @squidcloud/freshdesk-client package:

npm install @squidcloud/freshdesk-client
import { FreshdeskClient } from '@squidcloud/freshdesk-client';

const freshdesk = new FreshdeskClient(squid, 'FRESHDESK_CONNECTOR_ID');

// Search and inspect tickets
const tickets = await freshdesk.searchTickets('login problems');
const details = await freshdesk.getTicketDetails(tickets[0].id);

// Create, reply, and resolve
const ticket = await freshdesk.createTicket('Login issue', 'User cannot log in.', 'user@example.com');
await freshdesk.replyToTicket(ticket.id, 'We are looking into this.');
await freshdesk.resolveTicket(ticket.id);
note

Freshdesk uses numeric values for priority (1 = Low, 2 = Medium, 3 = High, 4 = Urgent) and status (2 = Open, 3 = Pending, 4 = Resolved, 5 = Closed).