Learn-skills.dev freshdesk-automation
Automate Freshdesk helpdesk operations including tickets, contacts, companies, notes, and replies via Rube MCP (Composio). Always search tools first for current schemas.
git clone https://github.com/NeverSight/learn-skills.dev
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/aaaaqwq/agi-super-skills/freshdesk-automation" ~/.claude/skills/neversight-learn-skills-dev-freshdesk-automation && rm -rf "$T"
data/skills-md/aaaaqwq/agi-super-skills/freshdesk-automation/SKILL.mdFreshdesk Automation via Rube MCP
Automate Freshdesk customer support workflows including ticket management, contact and company operations, notes, replies, and ticket search through Composio's Freshdesk toolkit.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Freshdesk connection via
with toolkitRUBE_MANAGE_CONNECTIONSfreshdesk - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
Setup
Get Rube MCP: Add
https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_MANAGE_CONNECTIONSfreshdesk - If connection is not ACTIVE, follow the returned auth link to complete Freshdesk authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Tickets
When to use: User wants to create a new support ticket, update an existing ticket, or view ticket details.
Tool sequence:
- Find requester by email to get requester_id [Optional]FRESHDESK_SEARCH_CONTACTS
- Check available custom fields and statuses [Optional]FRESHDESK_LIST_TICKET_FIELDS
- Create a new ticket with subject, description, requester info [Required]FRESHDESK_CREATE_TICKET
- Modify ticket status, priority, assignee, or other fields [Optional]FRESHDESK_UPDATE_TICKET
- Retrieve full ticket details by ID [Optional]FRESHDESK_VIEW_TICKET
Key parameters for FRESHDESK_CREATE_TICKET:
: Ticket subject (required)subject
: HTML content of the ticket (required)description
: Requester email (at least one requester identifier required)email
: User ID of requester (alternative to email)requester_id
: 2=Open, 3=Pending, 4=Resolved, 5=Closed (default 2)status
: 1=Low, 2=Medium, 3=High, 4=Urgent (default 1)priority
: 1=Email, 2=Portal, 3=Phone, 7=Chat (default 2)source
: Agent ID to assign the ticket toresponder_id
: Group to assign the ticket togroup_id
: Array of tag stringstags
: Object withcustom_fields
keyscf_<field_name>
Pitfalls:
- At least one requester identifier is required:
,requester_id
,email
,phone
,facebook_id
, ortwitter_idunique_external_id - If
is provided withoutphone
, thenemail
becomes mandatoryname
supports HTML formattingdescription
field expects multipart/form-data format, not file paths or URLsattachments- Custom field keys must be prefixed with
(e.g.,cf_
)cf_reference_number - Status and priority are integers, not strings
2. Search and Filter Tickets
When to use: User wants to find tickets by status, priority, date range, agent, or custom fields.
Tool sequence:
- List tickets with simple filters (status, priority, agent) [Required]FRESHDESK_GET_TICKETS
- Advanced ticket search with query syntax [Required]FRESHDESK_GET_SEARCH
- Get full details for specific tickets from results [Optional]FRESHDESK_VIEW_TICKET
- Check available fields for search queries [Optional]FRESHDESK_LIST_TICKET_FIELDS
Key parameters for FRESHDESK_GET_TICKETS:
: Filter by status integer (2=Open, 3=Pending, 4=Resolved, 5=Closed)status
: Filter by priority integer (1-4)priority
: Filter by assigned agentagent_id
: Filter by requesterrequester_id
: Filter by requester emailemail
: ISO 8601 timestampcreated_since
/page
: Pagination (default 30 per page)per_page
/sort_by
: Sort field and directionsort_order
Key parameters for FRESHDESK_GET_SEARCH:
: Query string likequery
or"status:2 AND priority:3""(created_at:>'2024-01-01' AND tag:'urgent')"
: Page number (1-10, max 300 total results)page
Pitfalls:
query must be enclosed in double quotesFRESHDESK_GET_SEARCH- Query string limited to 512 characters
- Maximum 10 pages (300 results) from search endpoints
- Date fields in queries use UTC format YYYY-MM-DD
- Use
keyword to find tickets with empty fields (e.g.,null
)"agent_id:null"
takes no parameters and returns all tickets (use GET_TICKETS for filtering)FRESHDESK_LIST_ALL_TICKETS
3. Reply to and Add Notes on Tickets
When to use: User wants to send a reply to a customer, add internal notes, or view conversation history.
Tool sequence:
- Verify ticket exists and check current state [Prerequisite]FRESHDESK_VIEW_TICKET
- Send a public reply to the requester [Required]FRESHDESK_REPLY_TO_TICKET
- Add a private or public note [Required]FRESHDESK_ADD_NOTE_TO_TICKET
- View all messages and notes on a ticket [Optional]FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS
- Edit an existing note [Optional]FRESHDESK_UPDATE_CONVERSATIONS
Key parameters for FRESHDESK_REPLY_TO_TICKET:
: Ticket ID (integer, required)ticket_id
: Reply content, supports HTML (required)body
/cc_emails
: Additional recipients (max 50 total across to/cc/bcc)bcc_emails
: Override sender email if multiple support emails configuredfrom_email
: Agent ID to reply on behalf ofuser_id
Key parameters for FRESHDESK_ADD_NOTE_TO_TICKET:
: Ticket ID (integer, required)ticket_id
: Note content, supports HTML (required)body
: true for agent-only visibility, false for public (default true)private
: Only accepts agent email addresses, not external contactsnotify_emails
Pitfalls:
- There are two reply tools:
(more features) andFRESHDESK_REPLY_TO_TICKET
(simpler); both workFRESHDESK_REPLY_TICKET
defaults to private (agent-only); setFRESHDESK_ADD_NOTE_TO_TICKET
for public notesprivate: false
in notes only accepts agent emails, not customer emailsnotify_emails- Only notes can be edited via
; incoming replies cannot be editedFRESHDESK_UPDATE_CONVERSATIONS
4. Manage Contacts and Companies
When to use: User wants to create, search, or manage customer contacts and company records.
Tool sequence:
- Search contacts by email, phone, or company [Required]FRESHDESK_SEARCH_CONTACTS
- List contacts with filters [Optional]FRESHDESK_GET_CONTACTS
- Bulk import contacts from CSV [Optional]FRESHDESK_IMPORT_CONTACT
- Search companies by custom fields [Required]FRESHDESK_SEARCH_COMPANIES
- List all companies [Optional]FRESHDESK_GET_COMPANIES
- Create a new company [Optional]FRESHDESK_CREATE_COMPANIES
- Update company details [Optional]FRESHDESK_UPDATE_COMPANIES
- Check available company fields [Optional]FRESHDESK_LIST_COMPANY_FIELDS
Key parameters for FRESHDESK_SEARCH_CONTACTS:
: Search string likequery
(required)"email:'user@example.com'"
: Pagination (1-10, max 30 per page)page
Key parameters for FRESHDESK_CREATE_COMPANIES:
: Company name (required)name
: Array of domain strings for auto-association with contactsdomains
: "Happy", "Doing okay", or "At risk"health_score
: "Basic", "Premium", or "Enterprise"account_tier
: Standard industry classificationindustry
Pitfalls:
requires exact matches; partial/regex searches are not supportedFRESHDESK_SEARCH_CONTACTS
cannot search by standardFRESHDESK_SEARCH_COMPANIES
field; use custom fields ornamecreated_at- Company custom fields do NOT use the
prefix (unlike ticket custom fields)cf_
on companies enables automatic contact-to-company association by email domaindomains- Contact search queries require string values in single quotes inside double-quoted query
Common Patterns
ID Resolution
Always resolve display values to IDs before operations:
- Requester email -> requester_id:
withFRESHDESK_SEARCH_CONTACTS"email:'user@example.com'" - Company name -> company_id:
and match by name (search by name not supported)FRESHDESK_GET_COMPANIES - Agent name -> agent_id: Not directly available; use agent_id from ticket responses or admin configuration
Pagination
Freshdesk uses page-based pagination:
:FRESHDESK_GET_TICKETS
(starting at 1) andpage
(max 100)per_page
:FRESHDESK_GET_SEARCH
(1-10, 30 results per page, max 300 total)page
:FRESHDESK_SEARCH_CONTACTS
(1-10, 30 per page)page
:FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS
andpage
(max 100)per_page
Known Pitfalls
ID Formats
- Ticket IDs, contact IDs, company IDs, agent IDs, and group IDs are all integers
- There are no string-based IDs in Freshdesk
Rate Limits
- Freshdesk enforces per-account API rate limits based on plan tier
- Bulk operations should be paced to avoid 429 responses
- Search endpoints are limited to 300 total results (10 pages of 30)
Parameter Quirks
- Status values: 2=Open, 3=Pending, 4=Resolved, 5=Closed (integers, not strings)
- Priority values: 1=Low, 2=Medium, 3=High, 4=Urgent (integers, not strings)
- Source values: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedback Widget, 10=Outbound Email
- Ticket custom fields use
prefix; company custom fields do NOTcf_
in tickets supports HTML formattingdescription- Search query strings must be in double quotes with string values in single quotes
returns all tickets with no filter parametersFRESHDESK_LIST_ALL_TICKETS
Response Structure
- Ticket details include nested objects for requester, assignee, and conversation data
- Search results are paginated with a maximum of 300 results across 10 pages
- Conversation lists include both replies and notes in chronological order
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Create ticket | | , , , |
| Update ticket | | , , |
| View ticket | | |
| List tickets | | , , , |
| List all tickets | | (none) |
| Search tickets | | , |
| Reply to ticket | | , , |
| Reply (simple) | | , |
| Add note | | , , |
| List conversations | | , |
| Update note | | , |
| Search contacts | | , |
| List contacts | | , , |
| Import contacts | | , , |
| Create company | | , , |
| Update company | | , , |
| Search companies | | , |
| List companies | | |
| List ticket fields | | (none) |
| List company fields | | (none) |