[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-36935b08-476d-43bb-81f8-b7d3f678d477":3,"$f2n5IKNdJzQrSupmgDvuuR9VA9sChCHrj0wnQ96US2Qg":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},"36935b08-476d-43bb-81f8-b7d3f678d477","zendesk-automation","通过Rube MCP（Composio）自动化Zendesk任务：工单、用户、组织、回复。始终首先搜索当前架构的工具。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: zendesk-automation\ndescription: \"Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Zendesk Automation via Rube MCP\n\nAutomate Zendesk operations through Composio's Zendesk toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Zendesk connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `zendesk`\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\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `zendesk`\n3. If connection is not ACTIVE, follow the returned auth link to complete Zendesk auth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. List and Search Tickets\n\n**When to use**: User wants to view, filter, or search support tickets\n\n**Tool sequence**:\n1. `ZENDESK_LIST_ZENDESK_TICKETS` - List all tickets with pagination [Required]\n2. `ZENDESK_GET_ZENDESK_TICKET_BY_ID` - Get specific ticket details [Optional]\n\n**Key parameters**:\n- `page`: Page number (1-based)\n- `per_page`: Results per page (max 100)\n- `sort_by`: Sort field ('created_at', 'updated_at', 'priority', 'status')\n- `sort_order`: 'asc' or 'desc'\n- `ticket_id`: Ticket ID for single retrieval\n\n**Pitfalls**:\n- LIST uses `page`\u002F`per_page` pagination, NOT offset-based; check `next_page` in response\n- Maximum 100 results per page; iterate with page numbers until `next_page` is null\n- Deleted tickets are not returned by LIST; use GET_BY_ID which returns status 'deleted'\n- Ticket comments and audits are included in GET_BY_ID but not in LIST responses\n\n### 2. Create and Update Tickets\n\n**When to use**: User wants to create new tickets or modify existing ones\n\n**Tool sequence**:\n1. `ZENDESK_SEARCH_ZENDESK_USERS` - Find requester\u002Fassignee [Prerequisite]\n2. `ZENDESK_CREATE_ZENDESK_TICKET` - Create a new ticket [Required]\n3. `ZENDESK_UPDATE_ZENDESK_TICKET` - Update ticket fields [Optional]\n4. `ZENDESK_DELETE_ZENDESK_TICKET` - Delete a ticket [Optional]\n\n**Key parameters**:\n- `subject`: Ticket subject line\n- `description`: Ticket body (for creation; becomes first comment)\n- `priority`: 'urgent', 'high', 'normal', 'low'\n- `status`: 'new', 'open', 'pending', 'hold', 'solved', 'closed'\n- `type`: 'problem', 'incident', 'question', 'task'\n- `assignee_id`: Agent user ID to assign\n- `requester_id`: Requester user ID\n- `tags`: Array of tag strings\n- `ticket_id`: Ticket ID (for update\u002Fdelete)\n\n**Pitfalls**:\n- Tags on UPDATE REPLACE existing tags entirely; merge with current tags to preserve them\n- Use `safe_update` with `updated_stamp` to prevent concurrent modification conflicts\n- DELETE is permanent and irreversible; tickets cannot be recovered\n- `description` is only used on creation; use REPLY_ZENDESK_TICKET to add comments after creation\n- Closed tickets cannot be updated; create a follow-up ticket instead\n\n### 3. Reply to Tickets\n\n**When to use**: User wants to add comments or replies to tickets\n\n**Tool sequence**:\n1. `ZENDESK_GET_ZENDESK_TICKET_BY_ID` - Get current ticket state [Prerequisite]\n2. `ZENDESK_REPLY_ZENDESK_TICKET` - Add a reply\u002Fcomment [Required]\n\n**Key parameters**:\n- `ticket_id`: Ticket ID to reply to\n- `body`: Reply text content\n- `public`: Boolean; true for public reply, false for internal note\n- `author_id`: Author user ID (defaults to authenticated user)\n\n**Pitfalls**:\n- Set `public: false` for internal notes visible only to agents\n- Default is public reply which sends email to requester\n- HTML is supported in body text\n- Replying can also update ticket status simultaneously\n\n### 4. Manage Users\n\n**When to use**: User wants to find or create Zendesk users (agents, end-users)\n\n**Tool sequence**:\n1. `ZENDESK_SEARCH_ZENDESK_USERS` - Search for users [Required]\n2. `ZENDESK_CREATE_ZENDESK_USER` - Create a new user [Optional]\n3. `ZENDESK_GET_ABOUT_ME` - Get authenticated user info [Optional]\n\n**Key parameters**:\n- `query`: Search string (matches name, email, phone, etc.)\n- `name`: User's full name (required for creation)\n- `email`: User's email address\n- `role`: 'end-user', 'agent', or 'admin'\n- `verified`: Whether email is verified\n\n**Pitfalls**:\n- User search is fuzzy; may return partial matches\n- Creating a user with an existing email returns the existing user (upsert behavior)\n- Agent and admin roles may require specific plan features\n\n### 5. Manage Organizations\n\n**When to use**: User wants to list, create, or manage organizations\n\n**Tool sequence**:\n1. `ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS` - List all organizations [Required]\n2. `ZENDESK_GET_ZENDESK_ORGANIZATION` - Get specific organization [Optional]\n3. `ZENDESK_CREATE_ZENDESK_ORGANIZATION` - Create organization [Optional]\n4. `ZENDESK_UPDATE_ZENDESK_ORGANIZATION` - Update organization [Optional]\n5. `ZENDESK_COUNT_ZENDESK_ORGANIZATIONS` - Get total count [Optional]\n\n**Key parameters**:\n- `name`: Organization name (unique, required for creation)\n- `organization_id`: Organization ID for get\u002Fupdate\n- `details`: Organization details text\n- `notes`: Internal notes\n- `domain_names`: Array of associated domains\n- `tags`: Array of tag strings\n\n**Pitfalls**:\n- Organization names must be unique; duplicate names cause creation errors\n- Tags on UPDATE REPLACE existing tags (same behavior as tickets)\n- Domain names can be used for automatic user association\n\n## Common Patterns\n\n### Pagination\n\n**List endpoints**:\n- Use `page` (1-based) and `per_page` (max 100)\n- Check `next_page` URL in response; null means last page\n- `count` field gives total results\n\n### Ticket Lifecycle\n\n```\nnew -> open -> pending -> solved -> closed\n                  |          ^\n                  v          |\n                hold --------+\n```\n\n- `new`: Unassigned ticket\n- `open`: Assigned, being worked on\n- `pending`: Waiting for customer response\n- `hold`: Waiting for internal action\n- `solved`: Resolved, can be reopened\n- `closed`: Permanently closed, cannot be modified\n\n### User Search for Assignment\n\n```\n1. Call ZENDESK_SEARCH_ZENDESK_USERS with query (name or email)\n2. Extract user ID from results\n3. Use user ID as assignee_id in ticket creation\u002Fupdate\n```\n\n## Known Pitfalls\n\n**Tags Behavior**:\n- Tags on update REPLACE all existing tags\n- Always fetch current tags first and merge before updating\n- Tags are lowercase, no spaces (use underscores)\n\n**Safe Updates**:\n- Use `safe_update: true` with `updated_stamp` (ISO 8601) to prevent conflicts\n- Returns 409 if ticket was modified since the stamp\n\n**Deletion**:\n- Ticket deletion is permanent and irreversible\n- Consider setting status to 'closed' instead of deleting\n- Deleted tickets cannot be recovered via API\n\n**Rate Limits**:\n- Default: 400 requests per minute\n- Varies by plan tier\n- 429 responses include Retry-After header\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List tickets | ZENDESK_LIST_ZENDESK_TICKETS | page, per_page, sort_by |\n| Get ticket | ZENDESK_GET_ZENDESK_TICKET_BY_ID | ticket_id |\n| Create ticket | ZENDESK_CREATE_ZENDESK_TICKET | subject, description, priority |\n| Update ticket | ZENDESK_UPDATE_ZENDESK_TICKET | ticket_id, status, tags |\n| Reply to ticket | ZENDESK_REPLY_ZENDESK_TICKET | ticket_id, body, public |\n| Delete ticket | ZENDESK_DELETE_ZENDESK_TICKET | ticket_id |\n| Search users | ZENDESK_SEARCH_ZENDESK_USERS | query |\n| Create user | ZENDESK_CREATE_ZENDESK_USER | name, email |\n| My profile | ZENDESK_GET_ABOUT_ME | (none) |\n| List orgs | ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS | page, per_page |\n| Get org | ZENDESK_GET_ZENDESK_ORGANIZATION | organization_id |\n| Create org | ZENDESK_CREATE_ZENDESK_ORGANIZATION | name |\n| Update org | ZENDESK_UPDATE_ZENDESK_ORGANIZATION | organization_id, name |\n| Count orgs | ZENDESK_COUNT_ZENDESK_ORGANIZATIONS | (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,169,1241,"2026-05-16 13:48:19",{"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},"fff58988-94e7-4da8-a9b1-e0ee90ba5639","1.0.0","zendesk-automation.zip",3355,"uploads\u002Fskills\u002F36935b08-476d-43bb-81f8-b7d3f678d477\u002Fzendesk-automation.zip","e62b41d5326dfdff0e8e6404f3da7bbfde8bfafb4cc379b98211e8666021864e","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":8535}]",{"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]