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.
Toolkit docs: composio.dev/toolkits/freshdesk
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Freshdesk connection via
RUBE_MANAGE_CONNECTIONSwith toolkitfreshdesk - Always call
RUBE_SEARCH_TOOLSfirst 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
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith 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:
FRESHDESK_SEARCH_CONTACTS- Find requester by email to get requester_id [Optional]FRESHDESK_LIST_TICKET_FIELDS- Check available custom fields and statuses [Optional]FRESHDESK_CREATE_TICKET- Create a new ticket with subject, description, requester info [Required]FRESHDESK_UPDATE_TICKET- Modify ticket status, priority, assignee, or other fields [Optional]FRESHDESK_VIEW_TICKET- Retrieve full ticket details by ID [Optional]
Key parameters for FRESHDESK_CREATE_TICKET:
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 stringscustom_fields: Object withcf_<field_name>keys
Pitfalls:
- At least one requester identifier is required:
requester_id,email,phone,facebook_id,twitter_id, orunique_external_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.,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:
FRESHDESK_GET_TICKETS- List tickets with simple filters (status, priority, agent) [Required]FRESHDESK_GET_SEARCH- Advanced ticket search with query syntax [Required]FRESHDESK_VIEW_TICKET- Get full details for specific tickets from results [Optional]FRESHDESK_LIST_TICKET_FIELDS- Check available fields for search queries [Optional]
Key parameters for FRESHDESK_GET_TICKETS:
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)sort_by/sort_order: Sort field and direction
Key parameters for FRESHDESK_GET_SEARCH:
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:
FRESHDESK_GET_SEARCHquery 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") FRESHDESK_LIST_ALL_TICKETStakes no parameters and returns all tickets (use GET_TICKETS 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:
FRESHDESK_VIEW_TICKET- Verify ticket exists and check current state [Prerequisite]FRESHDESK_REPLY_TO_TICKET- Send a public reply to the requester [Required]FRESHDESK_ADD_NOTE_TO_TICKET- Add a private or public note [Required]FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS- View all messages and notes on a ticket [Optional]FRESHDESK_UPDATE_CONVERSATIONS- Edit an existing note [Optional]
Key parameters for FRESHDESK_REPLY_TO_TICKET:
ticket_id: Ticket ID (integer, required)body: Reply content, supports HTML (required)cc_emails/bcc_emails: 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 FRESHDESK_ADD_NOTE_TO_TICKET:
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:
FRESHDESK_REPLY_TO_TICKET(more features) andFRESHDESK_REPLY_TICKET(simpler); both work FRESHDESK_ADD_NOTE_TO_TICKETdefaults to private (agent-only); setprivate: falsefor public notesnotify_emailsin notes only accepts agent emails, not customer emails- Only notes can be edited via
FRESHDESK_UPDATE_CONVERSATIONS; 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:
FRESHDESK_SEARCH_CONTACTS- Search contacts by email, phone, or company [Required]FRESHDESK_GET_CONTACTS- List contacts with filters [Optional]FRESHDESK_IMPORT_CONTACT- Bulk import contacts from CSV [Optional]FRESHDESK_SEARCH_COMPANIES- Search companies by custom fields [Required]FRESHDESK_GET_COMPANIES- List all companies [Optional]FRESHDESK_CREATE_COMPANIES- Create a new company [Optional]FRESHDESK_UPDATE_COMPANIES- Update company details [Optional]FRESHDESK_LIST_COMPANY_FIELDS- Check available company fields [Optional]
Key parameters for FRESHDESK_SEARCH_CONTACTS:
query: Search string like"email:'user@example.com'"(required)page: Pagination (1-10, max 30 per page)
Key parameters for FRESHDESK_CREATE_COMPANIES:
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:
FRESHDESK_SEARCH_CONTACTSrequires exact matches; partial/regex searches are not supportedFRESHDESK_SEARCH_COMPANIEScannot 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 -> requester_id:
FRESHDESK_SEARCH_CONTACTSwith"email:'user@example.com'" - Company name -> company_id:
FRESHDESK_GET_COMPANIESand match by name (search by name not supported) - 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:page(starting at 1) andper_page(max 100)FRESHDESK_GET_SEARCH:page(1-10, 30 results per page, max 300 total)FRESHDESK_SEARCH_CONTACTS:page(1-10, 30 per page)FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS: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
FRESHDESK_LIST_ALL_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 | FRESHDESK_CREATE_TICKET | subject, description, email, priority |
| Update ticket | FRESHDESK_UPDATE_TICKET | ticket_id, status, priority |
| View ticket | FRESHDESK_VIEW_TICKET | ticket_id |
| List tickets | FRESHDESK_GET_TICKETS | status, priority, page, per_page |
| List all tickets | FRESHDESK_LIST_ALL_TICKETS | (none) |
| Search tickets | FRESHDESK_GET_SEARCH | query, page |
| Reply to ticket | FRESHDESK_REPLY_TO_TICKET | ticket_id, body, cc_emails |
| Reply (simple) | FRESHDESK_REPLY_TICKET | ticket_id, body |
| Add note | FRESHDESK_ADD_NOTE_TO_TICKET | ticket_id, body, private |
| List conversations | FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS | ticket_id, page |
| Update note | FRESHDESK_UPDATE_CONVERSATIONS | conversation_id, body |
| Search contacts | FRESHDESK_SEARCH_CONTACTS | query, page |
| List contacts | FRESHDESK_GET_CONTACTS | email, company_id, page |
| Import contacts | FRESHDESK_IMPORT_CONTACT | file, name_column_index, email_column_index |
| Create company | FRESHDESK_CREATE_COMPANIES | name, domains, industry |
| Update company | FRESHDESK_UPDATE_COMPANIES | company_id, name, domains |
| Search companies | FRESHDESK_SEARCH_COMPANIES | query, page |
| List companies | FRESHDESK_GET_COMPANIES | page |
| List ticket fields | FRESHDESK_LIST_TICKET_FIELDS | (none) |
| List company fields | FRESHDESK_LIST_COMPANY_FIELDS | (none) |
Powered by Composio