Freshdesk
Manage support tickets, contacts, and agents in Freshworks' Freshdesk helpdesk via the Freshdesk REST API v2.
This is a native InTouch tool (standard-library Python only — urllib,
json, base64). It performs the work deterministically with no AI cost per
run, and can be used directly by the assistant or inside any YAML job.
What it does
Talks to https://{domain}.freshdesk.com/api/v2, authenticating with HTTP
Basic auth where your API key is the username and X is a dummy password
({apiKey}:X, base64-encoded into the Authorization header). Returns the raw
API response body as a JSON string in result plus the HTTP status.
Operations
| operation | method | endpoint | required inputs |
|---|---|---|---|
list_tickets |
GET | /api/v2/tickets |
domain |
get_ticket |
GET | /api/v2/tickets/{id} |
domain, ticketId |
create_ticket |
POST | /api/v2/tickets |
domain, subject, description, email |
list_contacts |
GET | /api/v2/contacts |
domain |
list_agents |
GET | /api/v2/agents |
domain |
create_ticket also accepts optional priority (low, medium, high,
urgent — default low) and ticketStatus (open, pending, resolved,
closed — default open); these are translated to the numeric codes the API
expects.
Inputs
| input | required | notes |
|---|---|---|
apiKey |
yes | Your Freshdesk API key |
operation |
yes | One of the operations above |
domain |
yes | Subdomain, e.g. acme for https://acme.freshdesk.com (a full host is also accepted) |
ticketId |
— | For get_ticket |
subject |
— | For create_ticket |
description |
— | For create_ticket (HTML or plain text) |
email |
— | For create_ticket — the requester's email |
priority |
— | For create_ticket |
ticketStatus |
— | For create_ticket |
Outputs
result— the API response body (JSON, as a string)status— the HTTP status code as a string
API key setup
- Log in to Freshdesk.
- Click your profile picture (top right) and choose Profile settings.
- Your API key is shown on the right under Your API Key (click to reveal/copy).
- Use that value as
apiKey. No separate password is needed — the tool sendsXas the dummy password automatically.
Examples
List the most recent tickets:
operation = list_tickets
domain = acme
apiKey = <your key>
View a single ticket:
operation = get_ticket
domain = acme
apiKey = <your key>
ticketId = 42
Create a ticket on behalf of a customer:
operation = create_ticket
domain = acme
apiKey = <your key>
subject = Printer not working
description = The 3rd-floor printer reports a paper jam that isn't there.
email = [email protected]
priority = high
ticketStatus = open
List agents or contacts:
operation = list_agents
domain = acme
apiKey = <your key>
Notes
- Response bodies are capped at ~5 MB.
- Non-2xx responses are returned (not raised) so you can inspect
statusand the error body inresult. A transport-level failure (DNS, refused, timeout) prints anerrorenvelope and fails the step.