[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-01b88f8c-f179-4530-a691-f0dd65c6b38a":3,"$fSL02IaYhfFAdo-EGqjwYPl8qgGtUJYYy00hV6zNPqqw":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"01b88f8c-f179-4530-a691-f0dd65c6b38a","freshdesk-automation","自动化Freshdesk客服台操作，包括工单、联系人、公司、笔记和回复，通过Rube MCP（Composio）。始终首先搜索当前架构的工具。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: freshdesk-automation\ndescription: \"Automate Freshdesk helpdesk operations including tickets, contacts, companies, notes, and replies via Rube MCP (Composio). Always search tools first for current schemas.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Freshdesk Automation via Rube MCP\n\nAutomate Freshdesk customer support workflows including ticket management, contact and company operations, notes, replies, and ticket search through Composio's Freshdesk toolkit.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Freshdesk connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `freshdesk`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `freshdesk`\n3. If connection is not ACTIVE, follow the returned auth link to complete Freshdesk authentication\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create and Manage Tickets\n\n**When to use**: User wants to create a new support ticket, update an existing ticket, or view ticket details.\n\n**Tool sequence**:\n1. `FRESHDESK_SEARCH_CONTACTS` - Find requester by email to get requester_id [Optional]\n2. `FRESHDESK_LIST_TICKET_FIELDS` - Check available custom fields and statuses [Optional]\n3. `FRESHDESK_CREATE_TICKET` - Create a new ticket with subject, description, requester info [Required]\n4. `FRESHDESK_UPDATE_TICKET` - Modify ticket status, priority, assignee, or other fields [Optional]\n5. `FRESHDESK_VIEW_TICKET` - Retrieve full ticket details by ID [Optional]\n\n**Key parameters for FRESHDESK_CREATE_TICKET**:\n- `subject`: Ticket subject (required)\n- `description`: HTML content of the ticket (required)\n- `email`: Requester email (at least one requester identifier required)\n- `requester_id`: User ID of requester (alternative to email)\n- `status`: 2=Open, 3=Pending, 4=Resolved, 5=Closed (default 2)\n- `priority`: 1=Low, 2=Medium, 3=High, 4=Urgent (default 1)\n- `source`: 1=Email, 2=Portal, 3=Phone, 7=Chat (default 2)\n- `responder_id`: Agent ID to assign the ticket to\n- `group_id`: Group to assign the ticket to\n- `tags`: Array of tag strings\n- `custom_fields`: Object with `cf_\u003Cfield_name>` keys\n\n**Pitfalls**:\n- At least one requester identifier is required: `requester_id`, `email`, `phone`, `facebook_id`, `twitter_id`, or `unique_external_id`\n- If `phone` is provided without `email`, then `name` becomes mandatory\n- `description` supports HTML formatting\n- `attachments` field expects multipart\u002Fform-data format, not file paths or URLs\n- Custom field keys must be prefixed with `cf_` (e.g., `cf_reference_number`)\n- Status and priority are integers, not strings\n\n### 2. Search and Filter Tickets\n\n**When to use**: User wants to find tickets by status, priority, date range, agent, or custom fields.\n\n**Tool sequence**:\n1. `FRESHDESK_GET_TICKETS` - List tickets with simple filters (status, priority, agent) [Required]\n2. `FRESHDESK_GET_SEARCH` - Advanced ticket search with query syntax [Required]\n3. `FRESHDESK_VIEW_TICKET` - Get full details for specific tickets from results [Optional]\n4. `FRESHDESK_LIST_TICKET_FIELDS` - Check available fields for search queries [Optional]\n\n**Key parameters for FRESHDESK_GET_TICKETS**:\n- `status`: Filter by status integer (2=Open, 3=Pending, 4=Resolved, 5=Closed)\n- `priority`: Filter by priority integer (1-4)\n- `agent_id`: Filter by assigned agent\n- `requester_id`: Filter by requester\n- `email`: Filter by requester email\n- `created_since`: ISO 8601 timestamp\n- `page` \u002F `per_page`: Pagination (default 30 per page)\n- `sort_by` \u002F `sort_order`: Sort field and direction\n\n**Key parameters for FRESHDESK_GET_SEARCH**:\n- `query`: Query string like `\"status:2 AND priority:3\"` or `\"(created_at:>'2024-01-01' AND tag:'urgent')\"`\n- `page`: Page number (1-10, max 300 total results)\n\n**Pitfalls**:\n- `FRESHDESK_GET_SEARCH` query must be enclosed in double quotes\n- Query string limited to 512 characters\n- Maximum 10 pages (300 results) from search endpoints\n- Date fields in queries use UTC format YYYY-MM-DD\n- Use `null` keyword to find tickets with empty fields (e.g., `\"agent_id:null\"`)\n- `FRESHDESK_LIST_ALL_TICKETS` takes no parameters and returns all tickets (use GET_TICKETS for filtering)\n\n### 3. Reply to and Add Notes on Tickets\n\n**When to use**: User wants to send a reply to a customer, add internal notes, or view conversation history.\n\n**Tool sequence**:\n1. `FRESHDESK_VIEW_TICKET` - Verify ticket exists and check current state [Prerequisite]\n2. `FRESHDESK_REPLY_TO_TICKET` - Send a public reply to the requester [Required]\n3. `FRESHDESK_ADD_NOTE_TO_TICKET` - Add a private or public note [Required]\n4. `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS` - View all messages and notes on a ticket [Optional]\n5. `FRESHDESK_UPDATE_CONVERSATIONS` - Edit an existing note [Optional]\n\n**Key parameters for FRESHDESK_REPLY_TO_TICKET**:\n- `ticket_id`: Ticket ID (integer, required)\n- `body`: Reply content, supports HTML (required)\n- `cc_emails` \u002F `bcc_emails`: Additional recipients (max 50 total across to\u002Fcc\u002Fbcc)\n- `from_email`: Override sender email if multiple support emails configured\n- `user_id`: Agent ID to reply on behalf of\n\n**Key parameters for FRESHDESK_ADD_NOTE_TO_TICKET**:\n- `ticket_id`: Ticket ID (integer, required)\n- `body`: Note content, supports HTML (required)\n- `private`: true for agent-only visibility, false for public (default true)\n- `notify_emails`: Only accepts agent email addresses, not external contacts\n\n**Pitfalls**:\n- There are two reply tools: `FRESHDESK_REPLY_TO_TICKET` (more features) and `FRESHDESK_REPLY_TICKET` (simpler); both work\n- `FRESHDESK_ADD_NOTE_TO_TICKET` defaults to private (agent-only); set `private: false` for public notes\n- `notify_emails` in notes only accepts agent emails, not customer emails\n- Only notes can be edited via `FRESHDESK_UPDATE_CONVERSATIONS`; incoming replies cannot be edited\n\n### 4. Manage Contacts and Companies\n\n**When to use**: User wants to create, search, or manage customer contacts and company records.\n\n**Tool sequence**:\n1. `FRESHDESK_SEARCH_CONTACTS` - Search contacts by email, phone, or company [Required]\n2. `FRESHDESK_GET_CONTACTS` - List contacts with filters [Optional]\n3. `FRESHDESK_IMPORT_CONTACT` - Bulk import contacts from CSV [Optional]\n4. `FRESHDESK_SEARCH_COMPANIES` - Search companies by custom fields [Required]\n5. `FRESHDESK_GET_COMPANIES` - List all companies [Optional]\n6. `FRESHDESK_CREATE_COMPANIES` - Create a new company [Optional]\n7. `FRESHDESK_UPDATE_COMPANIES` - Update company details [Optional]\n8. `FRESHDESK_LIST_COMPANY_FIELDS` - Check available company fields [Optional]\n\n**Key parameters for FRESHDESK_SEARCH_CONTACTS**:\n- `query`: Search string like `\"email:'user@example.com'\"` (required)\n- `page`: Pagination (1-10, max 30 per page)\n\n**Key parameters for FRESHDESK_CREATE_COMPANIES**:\n- `name`: Company name (required)\n- `domains`: Array of domain strings for auto-association with contacts\n- `health_score`: \"Happy\", \"Doing okay\", or \"At risk\"\n- `account_tier`: \"Basic\", \"Premium\", or \"Enterprise\"\n- `industry`: Standard industry classification\n\n**Pitfalls**:\n- `FRESHDESK_SEARCH_CONTACTS` requires exact matches; partial\u002Fregex searches are not supported\n- `FRESHDESK_SEARCH_COMPANIES` cannot search by standard `name` field; use custom fields or `created_at`\n- Company custom fields do NOT use the `cf_` prefix (unlike ticket custom fields)\n- `domains` on companies enables automatic contact-to-company association by email domain\n- Contact search queries require string values in single quotes inside double-quoted query\n\n## Common Patterns\n\n### ID Resolution\nAlways resolve display values to IDs before operations:\n- **Requester email -> requester_id**: `FRESHDESK_SEARCH_CONTACTS` with `\"email:'user@example.com'\"`\n- **Company name -> company_id**: `FRESHDESK_GET_COMPANIES` and match by name (search by name not supported)\n- **Agent name -> agent_id**: Not directly available; use agent_id from ticket responses or admin configuration\n\n### Pagination\nFreshdesk uses page-based pagination:\n- `FRESHDESK_GET_TICKETS`: `page` (starting at 1) and `per_page` (max 100)\n- `FRESHDESK_GET_SEARCH`: `page` (1-10, 30 results per page, max 300 total)\n- `FRESHDESK_SEARCH_CONTACTS`: `page` (1-10, 30 per page)\n- `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS`: `page` and `per_page` (max 100)\n\n## Known Pitfalls\n\n### ID Formats\n- Ticket IDs, contact IDs, company IDs, agent IDs, and group IDs are all integers\n- There are no string-based IDs in Freshdesk\n\n### Rate Limits\n- Freshdesk enforces per-account API rate limits based on plan tier\n- Bulk operations should be paced to avoid 429 responses\n- Search endpoints are limited to 300 total results (10 pages of 30)\n\n### Parameter Quirks\n- Status values: 2=Open, 3=Pending, 4=Resolved, 5=Closed (integers, not strings)\n- Priority values: 1=Low, 2=Medium, 3=High, 4=Urgent (integers, not strings)\n- Source values: 1=Email, 2=Portal, 3=Phone, 7=Chat, 9=Feedback Widget, 10=Outbound Email\n- Ticket custom fields use `cf_` prefix; company custom fields do NOT\n- `description` in tickets supports HTML formatting\n- Search query strings must be in double quotes with string values in single quotes\n- `FRESHDESK_LIST_ALL_TICKETS` returns all tickets with no filter parameters\n\n### Response Structure\n- Ticket details include nested objects for requester, assignee, and conversation data\n- Search results are paginated with a maximum of 300 results across 10 pages\n- Conversation lists include both replies and notes in chronological order\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Create ticket | `FRESHDESK_CREATE_TICKET` | `subject`, `description`, `email`, `priority` |\n| Update ticket | `FRESHDESK_UPDATE_TICKET` | `ticket_id`, `status`, `priority` |\n| View ticket | `FRESHDESK_VIEW_TICKET` | `ticket_id` |\n| List tickets | `FRESHDESK_GET_TICKETS` | `status`, `priority`, `page`, `per_page` |\n| List all tickets | `FRESHDESK_LIST_ALL_TICKETS` | (none) |\n| Search tickets | `FRESHDESK_GET_SEARCH` | `query`, `page` |\n| Reply to ticket | `FRESHDESK_REPLY_TO_TICKET` | `ticket_id`, `body`, `cc_emails` |\n| Reply (simple) | `FRESHDESK_REPLY_TICKET` | `ticket_id`, `body` |\n| Add note | `FRESHDESK_ADD_NOTE_TO_TICKET` | `ticket_id`, `body`, `private` |\n| List conversations | `FRESHDESK_LIST_ALL_TICKET_CONVERSATIONS` | `ticket_id`, `page` |\n| Update note | `FRESHDESK_UPDATE_CONVERSATIONS` | `conversation_id`, `body` |\n| Search contacts | `FRESHDESK_SEARCH_CONTACTS` | `query`, `page` |\n| List contacts | `FRESHDESK_GET_CONTACTS` | `email`, `company_id`, `page` |\n| Import contacts | `FRESHDESK_IMPORT_CONTACT` | `file`, `name_column_index`, `email_column_index` |\n| Create company | `FRESHDESK_CREATE_COMPANIES` | `name`, `domains`, `industry` |\n| Update company | `FRESHDESK_UPDATE_COMPANIES` | `company_id`, `name`, `domains` |\n| Search companies | `FRESHDESK_SEARCH_COMPANIES` | `query`, `page` |\n| List companies | `FRESHDESK_GET_COMPANIES` | `page` |\n| List ticket fields | `FRESHDESK_LIST_TICKET_FIELDS` | (none) |\n| List company fields | `FRESHDESK_LIST_COMPANY_FIELDS` | (none) |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,85,1522,"2026-05-16 13:19:18",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"效率工具","productivity","mdi-lightning-bolt-outline","文档处理、数据分析、自动化工作流",4,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"自动化","automation","mdi-robot-outline","工作流自动化、批处理",3,101,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"a3637065-14f4-4f0f-8d50-ed3b0119d21a","1.0.0","freshdesk-automation.zip",4268,"uploads\u002Fskills\u002F01b88f8c-f179-4530-a691-f0dd65c6b38a\u002Ffreshdesk-automation.zip","3378f1e2c991cf07122b5b84eb5756a6ea0f8e86e56bb7b8c93a88acd8c020c4","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":11834}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]