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 (RUBE_SEARCH_TOOLS available)
- Active Freshdesk connection via
RUBE_MANAGE_CONNECTIONS with toolkit freshdesk
- Always call
RUBE_SEARCH_TOOLS first 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_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit freshdesk
- 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 to
group_id: Group to assign the ticket to
tags: Array of tag strings
custom_fields: Object with cf_<field_name> keys
Pitfalls:
- At least one requester identifier is required:
requester_id, email, phone, facebook_id, twitter_id, or unique_external_id
- If
phone is provided without email, then name becomes mandatory
description supports HTML formatting
attachments field 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 agent
requester_id: Filter by requester
email: Filter by requester email
created_since: ISO 8601 timestamp
page / 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_SEARCH query 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
null keyword to find tickets with empty fields (e.g., "agent_id:null")
FRESHDESK_LIST_ALL_TICKETS takes 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 configured
user_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) and FRESHDESK_REPLY_TICKET (simpler); both work
FRESHDESK_ADD_NOTE_TO_TICKET defaults to private (agent-only); set private: false for public notes
notify_emails in 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 contacts
health_score: "Happy", "Doing okay", or "At risk"
account_tier: "Basic", "Premium", or "Enterprise"
industry: Standard industry classification
Pitfalls:
FRESHDESK_SEARCH_CONTACTS requires exact matches; partial/regex searches are not supported
FRESHDESK_SEARCH_COMPANIES cannot search by standard name field; use custom fields or created_at
- Company custom fields do NOT use the
cf_ prefix (unlike ticket custom fields)
domains on 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_CONTACTS with "email:'user@example.com'"
- Company name -> company_id:
FRESHDESK_GET_COMPANIES and 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) and per_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: page and per_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
description in tickets supports HTML formatting
- Search query strings must be in double quotes with string values in single quotes
FRESHDESK_LIST_ALL_TICKETS returns 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) |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for enprojectnment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: freshdesk-automation3description: Automate Freshdesk helpdesk operations including tickets, contacts, companies, notes, and replies via Rube MCP (Composio). Always search tools first for current schemas.4---56# Freshdesk Automation via Rube MCP78Automate Freshdesk customer support workflows including ticket management, contact and company operations, notes, replies, and ticket search through Composio's Freshdesk toolkit.910## Prerequisites1112- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)13- Active Freshdesk connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `freshdesk`14- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1516## Setup1718**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.19201. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds212. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `freshdesk`223. If connection is not ACTIVE, follow the returned auth link to complete Freshdesk authentication234. Confirm connection status shows ACTIVE before running any workflows2425## Core Workflows2627### 1. Create and Manage Tickets2829**When to use**: User wants to create a new support ticket, update an existing ticket, or view ticket details.3031**Tool sequence**:321. `FRESHDESK_SEARCH_CONTACTS` - Find requester by email to get requester_id [Optional]332. `FRESHDESK_LIST_TICKET_FIELDS` - Check available custom fields and statuses [Optional]343. `FRESHDESK_CREATE_TICKET` - Create a new ticket with subject, description, requester info [Required]354. `FRESHDESK_UPDATE_TICKET` - Modify ticket status, priority, assignee, or other fields [Optional]365. `FRESHDESK_VIEW_TICKET` - Retrieve full ticket details by ID [Optional]3738**Key parameters for FRESHDESK_CREATE_TICKET**:39- `subject`: Ticket subject (required)40- `description`: HTML content of the ticket (required)41- `email`: Requester email (at least one requester identifier required)42- `requester_id`: User ID of requester (alternative to email)43- `status`: 2=Open, 3=Pending, 4=Resolved, 5=Closed (default 2)44- `priority`: 1=Low, 2=Medium, 3=High, 4=Urgent (default 1)45- `source`: 1=Email, 2=Portal, 3=Phone, 7=Chat (default 2)46- `responder_id`: Agent ID to assign the ticket to47- `group_id`: Group to assign the ticket to48- `tags`: Array of tag strings49- `custom_fields`: Object with `cf_<field_name>` keys5051**Pitfalls**:52- At least one requester identifier is required: `requester_id`, `email`, `phone`, `facebook_id`, `twitter_id`, or `unique_external_id`53- If `phone` is provided without `email`, then `name` becomes mandatory54- `description` supports HTML formatting55- `attachments` field expects multipart/form-data format, not file paths or URLs56- Custom field keys must be prefixed with `cf_` (e.g., `cf_reference_number`)57- Status and priority are integers, not strings5859### 2. Search and Filter Tickets6061**When to use**: User wants to find tickets by status, priority, date range, agent, or custom fields.6263**Tool sequence**:641. `FRESHDESK_GET_TICKETS` - List tickets with simple filters (status, priority, agent) [Required]652. `FRESHDESK_GET_SEARCH` - Advanced ticket search with query syntax [Required]663. `FRESHDESK_VIEW_TICKET` - Get full details for specific tickets from results [Optional]674. `FRESHDESK_LIST_TICKET_FIELDS` - Check available fields for search queries [Optional]6869**Key parameters for FRESHDESK_GET_TICKETS**:70- `status`: Filter by status integer (2=Open, 3=Pending, 4=Resolved, 5=Closed)71- `priority`: Filter by priority integer (1-4)72- `agent_id`: Filter by assigned agent73- `requester_id`: Filter by requester74- `email`: Filter by requester email75- `created_since`: ISO 8601 timestamp76- `page` / `per_page`: Pagination (default 30 per page)77- `sort_by` / `sort_order`: Sort field and direction7879**Key parameters for FRESHDESK_GET_SEARCH**:80- `query`: Query string like `"status:2 AND priority:3"` or `"(created_at:>'2024-01-01' AND tag:'urgent')"`81- `page`: Page number (1-10, max 300 total results)8283**Pitfalls**:84- `FRESHDESK_GET_SEARCH` query must be enclosed in double quotes85- Query string limited to 512 characters86- Maximum 10 pages (300 results) from search endpoints87- Date fields in queries use UTC format YYYY-MM-DD88- Use `null` keyword to find tickets with empty fields (e.g., `"agent_id:null"`)89- `FRESHDESK_LIST_ALL_TICKETS` takes no parameters and returns all tickets (use GET_TICKETS for filtering)9091### 3. Reply to and Add Notes on Tickets9293**When to use**: User wants to send a reply to a customer, add internal notes, or view conversation history.9495**Tool sequence**:961. `FRESHDESK_VIEW_TICKET` - Verify ticket exists and check current state [Prerequisite]972. `FRESHDESK_REPLY_TO_TICKET` - Send a public reply to the requester [Required]983. `FRESHDESK_ADD_NOTE_TO_TICKET` - Add a private or public note [Required]994. `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS` - View all messages and notes on a ticket [Optional]1005. `FRESHDESK_UPDATE_CONVERSATIONS` - Edit an existing note [Optional]101102**Key parameters for FRESHDESK_REPLY_TO_TICKET**:103- `ticket_id`: Ticket ID (integer, required)104- `body`: Reply content, supports HTML (required)105- `cc_emails` / `bcc_emails`: Additional recipients (max 50 total across to/cc/bcc)106- `from_email`: Override sender email if multiple support emails configured107- `user_id`: Agent ID to reply on behalf of108109**Key parameters for FRESHDESK_ADD_NOTE_TO_TICKET**:110- `ticket_id`: Ticket ID (integer, required)111- `body`: Note content, supports HTML (required)112- `private`: true for agent-only visibility, false for public (default true)113- `notify_emails`: Only accepts agent email addresses, not external contacts114115**Pitfalls**:116- There are two reply tools: `FRESHDESK_REPLY_TO_TICKET` (more features) and `FRESHDESK_REPLY_TICKET` (simpler); both work117- `FRESHDESK_ADD_NOTE_TO_TICKET` defaults to private (agent-only); set `private: false` for public notes118- `notify_emails` in notes only accepts agent emails, not customer emails119- Only notes can be edited via `FRESHDESK_UPDATE_CONVERSATIONS`; incoming replies cannot be edited120121### 4. Manage Contacts and Companies122123**When to use**: User wants to create, search, or manage customer contacts and company records.124125**Tool sequence**:1261. `FRESHDESK_SEARCH_CONTACTS` - Search contacts by email, phone, or company [Required]1272. `FRESHDESK_GET_CONTACTS` - List contacts with filters [Optional]1283. `FRESHDESK_IMPORT_CONTACT` - Bulk import contacts from CSV [Optional]1294. `FRESHDESK_SEARCH_COMPANIES` - Search companies by custom fields [Required]1305. `FRESHDESK_GET_COMPANIES` - List all companies [Optional]1316. `FRESHDESK_CREATE_COMPANIES` - Create a new company [Optional]1327. `FRESHDESK_UPDATE_COMPANIES` - Update company details [Optional]1338. `FRESHDESK_LIST_COMPANY_FIELDS` - Check available company fields [Optional]134135**Key parameters for FRESHDESK_SEARCH_CONTACTS**:136- `query`: Search string like `"email:'user@example.com'"` (required)137- `page`: Pagination (1-10, max 30 per page)138139**Key parameters for FRESHDESK_CREATE_COMPANIES**:140- `name`: Company name (required)141- `domains`: Array of domain strings for auto-association with contacts142- `health_score`: "Happy", "Doing okay", or "At risk"143- `account_tier`: "Basic", "Premium", or "Enterprise"144- `industry`: Standard industry classification145146**Pitfalls**:147- `FRESHDESK_SEARCH_CONTACTS` requires exact matches; partial/regex searches are not supported148- `FRESHDESK_SEARCH_COMPANIES` cannot search by standard `name` field; use custom fields or `created_at`149- Company custom fields do NOT use the `cf_` prefix (unlike ticket custom fields)150- `domains` on companies enables automatic contact-to-company association by email domain151- Contact search queries require string values in single quotes inside double-quoted query152153## Common Patterns154155### ID Resolution156Always resolve display values to IDs before operations:157- **Requester email -> requester_id**: `FRESHDESK_SEARCH_CONTACTS` with `"email:'user@example.com'"`158- **Company name -> company_id**: `FRESHDESK_GET_COMPANIES` and match by name (search by name not supported)159- **Agent name -> agent_id**: Not directly available; use agent_id from ticket responses or admin configuration160161### Pagination162Freshdesk uses page-based pagination:163- `FRESHDESK_GET_TICKETS`: `page` (starting at 1) and `per_page` (max 100)164- `FRESHDESK_GET_SEARCH`: `page` (1-10, 30 results per page, max 300 total)165- `FRESHDESK_SEARCH_CONTACTS`: `page` (1-10, 30 per page)166- `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS`: `page` and `per_page` (max 100)167168## Known Pitfalls169170### ID Formats171- Ticket IDs, contact IDs, company IDs, agent IDs, and group IDs are all integers172- There are no string-based IDs in Freshdesk173174### Rate Limits175- Freshdesk enforces per-account API rate limits based on plan tier176- Bulk operations should be paced to avoid 429 responses177- Search endpoints are limited to 300 total results (10 pages of 30)178179### Parameter Quirks180- Status values: 2=Open, 3=Pending, 4=Resolved, 5=Closed (integers, not strings)181- Priority values: 1=Low, 2=Medium, 3=High, 4=Urgent (integers, not strings)182- Source values: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedback Widget, 10=Outbound Email183- Ticket custom fields use `cf_` prefix; company custom fields do NOT184- `description` in tickets supports HTML formatting185- Search query strings must be in double quotes with string values in single quotes186- `FRESHDESK_LIST_ALL_TICKETS` returns all tickets with no filter parameters187188### Response Structure189- Ticket details include nested objects for requester, assignee, and conversation data190- Search results are paginated with a maximum of 300 results across 10 pages191- Conversation lists include both replies and notes in chronological order192193## Quick Reference194195| Task | Tool Slug | Key Params |196|------|-----------|------------|197| Create ticket | `FRESHDESK_CREATE_TICKET` | `subject`, `description`, `email`, `priority` |198| Update ticket | `FRESHDESK_UPDATE_TICKET` | `ticket_id`, `status`, `priority` |199| View ticket | `FRESHDESK_VIEW_TICKET` | `ticket_id` |200| List tickets | `FRESHDESK_GET_TICKETS` | `status`, `priority`, `page`, `per_page` |201| List all tickets | `FRESHDESK_LIST_ALL_TICKETS` | (none) |202| Search tickets | `FRESHDESK_GET_SEARCH` | `query`, `page` |203| Reply to ticket | `FRESHDESK_REPLY_TO_TICKET` | `ticket_id`, `body`, `cc_emails` |204| Reply (simple) | `FRESHDESK_REPLY_TICKET` | `ticket_id`, `body` |205| Add note | `FRESHDESK_ADD_NOTE_TO_TICKET` | `ticket_id`, `body`, `private` |206| List conversations | `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS` | `ticket_id`, `page` |207| Update note | `FRESHDESK_UPDATE_CONVERSATIONS` | `conversation_id`, `body` |208| Search contacts | `FRESHDESK_SEARCH_CONTACTS` | `query`, `page` |209| List contacts | `FRESHDESK_GET_CONTACTS` | `email`, `company_id`, `page` |210| Import contacts | `FRESHDESK_IMPORT_CONTACT` | `file`, `name_column_index`, `email_column_index` |211| Create company | `FRESHDESK_CREATE_COMPANIES` | `name`, `domains`, `industry` |212| Update company | `FRESHDESK_UPDATE_COMPANIES` | `company_id`, `name`, `domains` |213| Search companies | `FRESHDESK_SEARCH_COMPANIES` | `query`, `page` |214| List companies | `FRESHDESK_GET_COMPANIES` | `page` |215| List ticket fields | `FRESHDESK_LIST_TICKET_FIELDS` | (none) |216| List company fields | `FRESHDESK_LIST_COMPANY_FIELDS` | (none) |217218## When to Use219This skill is applicable to execute the workflow or actions described in the overview.220221## Limitations222- Use this skill only when the task clearly matches the scope described above.223- Do not treat the output as a substitute for enprojectnment-specific validation, testing, or expert review.224- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.