Automate Freshdesk helpdesk operations including tickets, contacts, companies, notes, and replies via Rube MCP (Composio). Always search tools first for current schemas.
Add this skill
npx mdskills install sickn33/freshdesk-automationComprehensive Freshdesk automation with detailed workflows, parameter mappings, and pitfall guidance
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."4requires:5 mcp: [rube]6---78# Freshdesk Automation via Rube MCP910Automate Freshdesk customer support workflows including ticket management, contact and company operations, notes, replies, and ticket search through Composio's Freshdesk toolkit.1112## Prerequisites1314- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)15- Active Freshdesk connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `freshdesk`16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1718## Setup1920**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.2122231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `freshdesk`253. If connection is not ACTIVE, follow the returned auth link to complete Freshdesk authentication264. Confirm connection status shows ACTIVE before running any workflows2728## Core Workflows2930### 1. Create and Manage Tickets3132**When to use**: User wants to create a new support ticket, update an existing ticket, or view ticket details.3334**Tool sequence**:351. `FRESHDESK_SEARCH_CONTACTS` - Find requester by email to get requester_id [Optional]362. `FRESHDESK_LIST_TICKET_FIELDS` - Check available custom fields and statuses [Optional]373. `FRESHDESK_CREATE_TICKET` - Create a new ticket with subject, description, requester info [Required]384. `FRESHDESK_UPDATE_TICKET` - Modify ticket status, priority, assignee, or other fields [Optional]395. `FRESHDESK_VIEW_TICKET` - Retrieve full ticket details by ID [Optional]4041**Key parameters for FRESHDESK_CREATE_TICKET**:42- `subject`: Ticket subject (required)43- `description`: HTML content of the ticket (required)44- `email`: Requester email (at least one requester identifier required)45- `requester_id`: User ID of requester (alternative to email)46- `status`: 2=Open, 3=Pending, 4=Resolved, 5=Closed (default 2)47- `priority`: 1=Low, 2=Medium, 3=High, 4=Urgent (default 1)48- `source`: 1=Email, 2=Portal, 3=Phone, 7=Chat (default 2)49- `responder_id`: Agent ID to assign the ticket to50- `group_id`: Group to assign the ticket to51- `tags`: Array of tag strings52- `custom_fields`: Object with `cf_<field_name>` keys5354**Pitfalls**:55- At least one requester identifier is required: `requester_id`, `email`, `phone`, `facebook_id`, `twitter_id`, or `unique_external_id`56- If `phone` is provided without `email`, then `name` becomes mandatory57- `description` supports HTML formatting58- `attachments` field expects multipart/form-data format, not file paths or URLs59- Custom field keys must be prefixed with `cf_` (e.g., `cf_reference_number`)60- Status and priority are integers, not strings6162### 2. Search and Filter Tickets6364**When to use**: User wants to find tickets by status, priority, date range, agent, or custom fields.6566**Tool sequence**:671. `FRESHDESK_GET_TICKETS` - List tickets with simple filters (status, priority, agent) [Required]682. `FRESHDESK_GET_SEARCH` - Advanced ticket search with query syntax [Required]693. `FRESHDESK_VIEW_TICKET` - Get full details for specific tickets from results [Optional]704. `FRESHDESK_LIST_TICKET_FIELDS` - Check available fields for search queries [Optional]7172**Key parameters for FRESHDESK_GET_TICKETS**:73- `status`: Filter by status integer (2=Open, 3=Pending, 4=Resolved, 5=Closed)74- `priority`: Filter by priority integer (1-4)75- `agent_id`: Filter by assigned agent76- `requester_id`: Filter by requester77- `email`: Filter by requester email78- `created_since`: ISO 8601 timestamp79- `page` / `per_page`: Pagination (default 30 per page)80- `sort_by` / `sort_order`: Sort field and direction8182**Key parameters for FRESHDESK_GET_SEARCH**:83- `query`: Query string like `"status:2 AND priority:3"` or `"(created_at:>'2024-01-01' AND tag:'urgent')"`84- `page`: Page number (1-10, max 300 total results)8586**Pitfalls**:87- `FRESHDESK_GET_SEARCH` query must be enclosed in double quotes88- Query string limited to 512 characters89- Maximum 10 pages (300 results) from search endpoints90- Date fields in queries use UTC format YYYY-MM-DD91- Use `null` keyword to find tickets with empty fields (e.g., `"agent_id:null"`)92- `FRESHDESK_LIST_ALL_TICKETS` takes no parameters and returns all tickets (use GET_TICKETS for filtering)9394### 3. Reply to and Add Notes on Tickets9596**When to use**: User wants to send a reply to a customer, add internal notes, or view conversation history.9798**Tool sequence**:991. `FRESHDESK_VIEW_TICKET` - Verify ticket exists and check current state [Prerequisite]1002. `FRESHDESK_REPLY_TO_TICKET` - Send a public reply to the requester [Required]1013. `FRESHDESK_ADD_NOTE_TO_TICKET` - Add a private or public note [Required]1024. `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS` - View all messages and notes on a ticket [Optional]1035. `FRESHDESK_UPDATE_CONVERSATIONS` - Edit an existing note [Optional]104105**Key parameters for FRESHDESK_REPLY_TO_TICKET**:106- `ticket_id`: Ticket ID (integer, required)107- `body`: Reply content, supports HTML (required)108- `cc_emails` / `bcc_emails`: Additional recipients (max 50 total across to/cc/bcc)109- `from_email`: Override sender email if multiple support emails configured110- `user_id`: Agent ID to reply on behalf of111112**Key parameters for FRESHDESK_ADD_NOTE_TO_TICKET**:113- `ticket_id`: Ticket ID (integer, required)114- `body`: Note content, supports HTML (required)115- `private`: true for agent-only visibility, false for public (default true)116- `notify_emails`: Only accepts agent email addresses, not external contacts117118**Pitfalls**:119- There are two reply tools: `FRESHDESK_REPLY_TO_TICKET` (more features) and `FRESHDESK_REPLY_TICKET` (simpler); both work120- `FRESHDESK_ADD_NOTE_TO_TICKET` defaults to private (agent-only); set `private: false` for public notes121- `notify_emails` in notes only accepts agent emails, not customer emails122- Only notes can be edited via `FRESHDESK_UPDATE_CONVERSATIONS`; incoming replies cannot be edited123124### 4. Manage Contacts and Companies125126**When to use**: User wants to create, search, or manage customer contacts and company records.127128**Tool sequence**:1291. `FRESHDESK_SEARCH_CONTACTS` - Search contacts by email, phone, or company [Required]1302. `FRESHDESK_GET_CONTACTS` - List contacts with filters [Optional]1313. `FRESHDESK_IMPORT_CONTACT` - Bulk import contacts from CSV [Optional]1324. `FRESHDESK_SEARCH_COMPANIES` - Search companies by custom fields [Required]1335. `FRESHDESK_GET_COMPANIES` - List all companies [Optional]1346. `FRESHDESK_CREATE_COMPANIES` - Create a new company [Optional]1357. `FRESHDESK_UPDATE_COMPANIES` - Update company details [Optional]1368. `FRESHDESK_LIST_COMPANY_FIELDS` - Check available company fields [Optional]137138**Key parameters for FRESHDESK_SEARCH_CONTACTS**:139- `query`: Search string like `"email:'user@example.com'"` (required)140- `page`: Pagination (1-10, max 30 per page)141142**Key parameters for FRESHDESK_CREATE_COMPANIES**:143- `name`: Company name (required)144- `domains`: Array of domain strings for auto-association with contacts145- `health_score`: "Happy", "Doing okay", or "At risk"146- `account_tier`: "Basic", "Premium", or "Enterprise"147- `industry`: Standard industry classification148149**Pitfalls**:150- `FRESHDESK_SEARCH_CONTACTS` requires exact matches; partial/regex searches are not supported151- `FRESHDESK_SEARCH_COMPANIES` cannot search by standard `name` field; use custom fields or `created_at`152- Company custom fields do NOT use the `cf_` prefix (unlike ticket custom fields)153- `domains` on companies enables automatic contact-to-company association by email domain154- Contact search queries require string values in single quotes inside double-quoted query155156## Common Patterns157158### ID Resolution159Always resolve display values to IDs before operations:160- **Requester email -> requester_id**: `FRESHDESK_SEARCH_CONTACTS` with `"email:'user@example.com'"`161- **Company name -> company_id**: `FRESHDESK_GET_COMPANIES` and match by name (search by name not supported)162- **Agent name -> agent_id**: Not directly available; use agent_id from ticket responses or admin configuration163164### Pagination165Freshdesk uses page-based pagination:166- `FRESHDESK_GET_TICKETS`: `page` (starting at 1) and `per_page` (max 100)167- `FRESHDESK_GET_SEARCH`: `page` (1-10, 30 results per page, max 300 total)168- `FRESHDESK_SEARCH_CONTACTS`: `page` (1-10, 30 per page)169- `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS`: `page` and `per_page` (max 100)170171## Known Pitfalls172173### ID Formats174- Ticket IDs, contact IDs, company IDs, agent IDs, and group IDs are all integers175- There are no string-based IDs in Freshdesk176177### Rate Limits178- Freshdesk enforces per-account API rate limits based on plan tier179- Bulk operations should be paced to avoid 429 responses180- Search endpoints are limited to 300 total results (10 pages of 30)181182### Parameter Quirks183- Status values: 2=Open, 3=Pending, 4=Resolved, 5=Closed (integers, not strings)184- Priority values: 1=Low, 2=Medium, 3=High, 4=Urgent (integers, not strings)185- Source values: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedback Widget, 10=Outbound Email186- Ticket custom fields use `cf_` prefix; company custom fields do NOT187- `description` in tickets supports HTML formatting188- Search query strings must be in double quotes with string values in single quotes189- `FRESHDESK_LIST_ALL_TICKETS` returns all tickets with no filter parameters190191### Response Structure192- Ticket details include nested objects for requester, assignee, and conversation data193- Search results are paginated with a maximum of 300 results across 10 pages194- Conversation lists include both replies and notes in chronological order195196## Quick Reference197198| Task | Tool Slug | Key Params |199|------|-----------|------------|200| Create ticket | `FRESHDESK_CREATE_TICKET` | `subject`, `description`, `email`, `priority` |201| Update ticket | `FRESHDESK_UPDATE_TICKET` | `ticket_id`, `status`, `priority` |202| View ticket | `FRESHDESK_VIEW_TICKET` | `ticket_id` |203| List tickets | `FRESHDESK_GET_TICKETS` | `status`, `priority`, `page`, `per_page` |204| List all tickets | `FRESHDESK_LIST_ALL_TICKETS` | (none) |205| Search tickets | `FRESHDESK_GET_SEARCH` | `query`, `page` |206| Reply to ticket | `FRESHDESK_REPLY_TO_TICKET` | `ticket_id`, `body`, `cc_emails` |207| Reply (simple) | `FRESHDESK_REPLY_TICKET` | `ticket_id`, `body` |208| Add note | `FRESHDESK_ADD_NOTE_TO_TICKET` | `ticket_id`, `body`, `private` |209| List conversations | `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS` | `ticket_id`, `page` |210| Update note | `FRESHDESK_UPDATE_CONVERSATIONS` | `conversation_id`, `body` |211| Search contacts | `FRESHDESK_SEARCH_CONTACTS` | `query`, `page` |212| List contacts | `FRESHDESK_GET_CONTACTS` | `email`, `company_id`, `page` |213| Import contacts | `FRESHDESK_IMPORT_CONTACT` | `file`, `name_column_index`, `email_column_index` |214| Create company | `FRESHDESK_CREATE_COMPANIES` | `name`, `domains`, `industry` |215| Update company | `FRESHDESK_UPDATE_COMPANIES` | `company_id`, `name`, `domains` |216| Search companies | `FRESHDESK_SEARCH_COMPANIES` | `query`, `page` |217| List companies | `FRESHDESK_GET_COMPANIES` | `page` |218| List ticket fields | `FRESHDESK_LIST_TICKET_FIELDS` | (none) |219| List company fields | `FRESHDESK_LIST_COMPANY_FIELDS` | (none) |220
Full transparency — inspect the skill content before installing.