SKILL.md
Freshdesk 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 (RUBESEARCHTOOLS available)
- Active Freshdesk connection via
RUBEMANAGECONNECTIONSwith toolkitfreshdesk - Always call
RUBESEARCHTOOLSfirst to get current tool schemas
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
RUBESEARCHTOOLSresponds - Call
RUBEMANAGECONNECTIONSwith toolkitfreshdesk - 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:
FRESHDESKSEARCHCONTACTS- Find requester by email to get requester_id [Optional]FRESHDESKLISTTICKET_FIELDS- Check available custom fields and statuses [Optional]FRESHDESKCREATETICKET- Create a new ticket with subject, description, requester info [Required]FRESHDESKUPDATETICKET- Modify ticket status, priority, assignee, or other fields [Optional]FRESHDESKVIEWTICKET- Retrieve full ticket details by ID [Optional]
Key parameters for FRESHDESKCREATETICKET:
subject: Ticket subject (required)description: HTML content of the ticket (required)email: Requester email (at least one requester identifier required)requester_id: User ID of requester (alternative to email)status: 2=Open, 3=Pending, 4=Resolved, 5=Closed (default 2)priority: 1=Low, 2=Medium, 3=High, 4=Urgent (default 1)source: 1=Email, 2=Portal, 3=Phone, 7=Chat (default 2)responder_id: Agent ID to assign the ticket togroup_id: Group to assign the ticket totags: Array of tag stringscustomfields: Object withcf<field_name>keys
Pitfalls:
- At least one requester identifier is required:
requesterid,email,phone,facebookid,twitterid, oruniqueexternal_id - If
phoneis provided withoutemail, thennamebecomes mandatory descriptionsupports HTML formattingattachmentsfield expects multipart/form-data format, not file paths or URLs- Custom field keys must be prefixed with
cf(e.g.,cfreference_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:
FRESHDESKGETTICKETS- List tickets with simple filters (status, priority, agent) [Required]FRESHDESKGETSEARCH- Advanced ticket search with query syntax [Required]FRESHDESKVIEWTICKET- Get full details for specific tickets from results [Optional]FRESHDESKLISTTICKET_FIELDS- Check available fields for search queries [Optional]
Key parameters for FRESHDESKGETTICKETS:
status: Filter by status integer (2=Open, 3=Pending, 4=Resolved, 5=Closed)priority: Filter by priority integer (1-4)agent_id: Filter by assigned agentrequester_id: Filter by requesteremail: Filter by requester emailcreated_since: ISO 8601 timestamppage/per_page: Pagination (default 30 per page)sortby/sortorder: Sort field and direction
Key parameters for FRESHDESKGETSEARCH:
query: Query string like"status:2 AND priority:3"or"(created_at:>'2024-01-01' AND tag:'urgent')"page: Page number (1-10, max 300 total results)
Pitfalls:
FRESHDESKGETSEARCHquery must be enclosed in double quotes- 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
nullkeyword to find tickets with empty fields (e.g.,"agent_id:null") FRESHDESKLISTALLTICKETStakes no parameters and returns all tickets (use GETTICKETS for filtering)
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:
FRESHDESKVIEWTICKET- Verify ticket exists and check current state [Prerequisite]FRESHDESKREPLYTO_TICKET- Send a public reply to the requester [Required]FRESHDESKADDNOTETOTICKET- Add a private or public note [Required]FRESHDESKLISTALLTICKETCONVERSATIONS- View all messages and notes on a ticket [Optional]FRESHDESKUPDATECONVERSATIONS- Edit an existing note [Optional]
Key parameters for FRESHDESKREPLYTO_TICKET:
ticket_id: Ticket ID (integer, required)body: Reply content, supports HTML (required)ccemails/bccemails: Additional recipients (max 50 total across to/cc/bcc)from_email: Override sender email if multiple support emails configureduser_id: Agent ID to reply on behalf of
Key parameters for FRESHDESKADDNOTETOTICKET:
ticket_id: Ticket ID (integer, required)body: Note content, supports HTML (required)private: true for agent-only visibility, false for public (default true)notify_emails: Only accepts agent email addresses, not external contacts
Pitfalls:
- There are two reply tools:
FRESHDESKREPLYTOTICKET(more features) andFRESHDESKREPLY_TICKET(simpler); both work FRESHDESKADDNOTETOTICKETdefaults to private (agent-only); setprivate: falsefor public notesnotify_emailsin notes only accepts agent emails, not customer emails- Only notes can be edited via
FRESHDESKUPDATECONVERSATIONS; incoming replies cannot be edited
4. Manage Contacts and Companies
When to use: User wants to create, search, or manage customer contacts and company records.
Tool sequence:
FRESHDESKSEARCHCONTACTS- Search contacts by email, phone, or company [Required]FRESHDESKGETCONTACTS- List contacts with filters [Optional]FRESHDESKIMPORTCONTACT- Bulk import contacts from CSV [Optional]FRESHDESKSEARCHCOMPANIES- Search companies by custom fields [Required]FRESHDESKGETCOMPANIES- List all companies [Optional]FRESHDESKCREATECOMPANIES- Create a new company [Optional]FRESHDESKUPDATECOMPANIES- Update company details [Optional]FRESHDESKLISTCOMPANY_FIELDS- Check available company fields [Optional]
Key parameters for FRESHDESKSEARCHCONTACTS:
query: Search string like"email:'[email protected]'"(required)page: Pagination (1-10, max 30 per page)
Key parameters for FRESHDESKCREATECOMPANIES:
name: Company name (required)domains: Array of domain strings for auto-association with contactshealth_score: "Happy", "Doing okay", or "At risk"account_tier: "Basic", "Premium", or "Enterprise"industry: Standard industry classification
Pitfalls:
FRESHDESKSEARCHCONTACTSrequires exact matches; partial/regex searches are not supportedFRESHDESKSEARCHCOMPANIEScannot search by standardnamefield; use custom fields orcreated_at- Company custom fields do NOT use the
cf_prefix (unlike ticket custom fields) domainson companies enables automatic contact-to-company association by email domain- 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 -> requesterid:
FRESHDESKSEARCH_CONTACTSwith"email:'[email protected]'" - Company name -> companyid:
FRESHDESKGET_COMPANIESand match by name (search by name not supported) - Agent name -> agentid: Not directly available; use agentid from ticket responses or admin configuration
Pagination
Freshdesk uses page-based pagination:
FRESHDESKGETTICKETS:page(starting at 1) andper_page(max 100)FRESHDESKGETSEARCH:page(1-10, 30 results per page, max 300 total)FRESHDESKSEARCHCONTACTS:page(1-10, 30 per page)FRESHDESKLISTALLTICKETCONVERSATIONS:pageandper_page(max 100)
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
cf_prefix; company custom fields do NOT descriptionin tickets supports HTML formatting- Search query strings must be in double quotes with string values in single quotes
FRESHDESKLISTALL_TICKETSreturns all tickets with no filter parameters
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 | FRESHDESKCREATETICKET |
subject, description, email, priority |
| Update ticket | FRESHDESKUPDATETICKET |
ticket_id, status, priority |
| View ticket | FRESHDESKVIEWTICKET |
ticket_id |
| List tickets | FRESHDESKGETTICKETS |
status, priority, page, per_page |
| List all tickets | FRESHDESKLISTALL_TICKETS |
(none) |
| Search tickets | FRESHDESKGETSEARCH |
query, page |
| Reply to ticket | FRESHDESKREPLYTO_TICKET |
ticketid, body, ccemails |
| Reply (simple) | FRESHDESKREPLYTICKET |
ticket_id, body |
| Add note | FRESHDESKADDNOTETOTICKET |
ticket_id, body, private |
| List conversations | FRESHDESKLISTALLTICKETCONVERSATIONS |
ticket_id, page |
| Update note | FRESHDESKUPDATECONVERSATIONS |
conversation_id, body |
| Search contacts | FRESHDESKSEARCHCONTACTS |
query, page |
| List contacts | FRESHDESKGETCONTACTS |
email, company_id, page |
| Import contacts | FRESHDESKIMPORTCONTACT |
file, namecolumnindex, emailcolumnindex |
| Create company | FRESHDESKCREATECOMPANIES |
name, domains, industry |
| Update company | FRESHDESKUPDATECOMPANIES |
company_id, name, domains |
| Search companies | FRESHDESKSEARCHCOMPANIES |
query, page |
| List companies | FRESHDESKGETCOMPANIES |
page |
| List ticket fields | FRESHDESKLISTTICKET_FIELDS |
(none) |
| List company fields | FRESHDESKLISTCOMPANY_FIELDS |
(none) |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Example
User request:
Automate Freshdesk helpdesk operations including tickets, contacts, companies, notes, and replies via Rube MCP (Composio).
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.