Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
Add this skill
npx mdskills install sickn33/zendesk-automationComprehensive Zendesk automation skill with clear workflows, detailed pitfalls, and excellent API reference documentation
1---2name: zendesk-automation3description: "Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas."4requires:5 mcp: [rube]6---78# Zendesk Automation via Rube MCP910Automate Zendesk operations through Composio's Zendesk toolkit via Rube MCP.1112## Prerequisites1314- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)15- Active Zendesk connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `zendesk`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 `zendesk`253. If connection is not ACTIVE, follow the returned auth link to complete Zendesk auth264. Confirm connection status shows ACTIVE before running any workflows2728## Core Workflows2930### 1. List and Search Tickets3132**When to use**: User wants to view, filter, or search support tickets3334**Tool sequence**:351. `ZENDESK_LIST_ZENDESK_TICKETS` - List all tickets with pagination [Required]362. `ZENDESK_GET_ZENDESK_TICKET_BY_ID` - Get specific ticket details [Optional]3738**Key parameters**:39- `page`: Page number (1-based)40- `per_page`: Results per page (max 100)41- `sort_by`: Sort field ('created_at', 'updated_at', 'priority', 'status')42- `sort_order`: 'asc' or 'desc'43- `ticket_id`: Ticket ID for single retrieval4445**Pitfalls**:46- LIST uses `page`/`per_page` pagination, NOT offset-based; check `next_page` in response47- Maximum 100 results per page; iterate with page numbers until `next_page` is null48- Deleted tickets are not returned by LIST; use GET_BY_ID which returns status 'deleted'49- Ticket comments and audits are included in GET_BY_ID but not in LIST responses5051### 2. Create and Update Tickets5253**When to use**: User wants to create new tickets or modify existing ones5455**Tool sequence**:561. `ZENDESK_SEARCH_ZENDESK_USERS` - Find requester/assignee [Prerequisite]572. `ZENDESK_CREATE_ZENDESK_TICKET` - Create a new ticket [Required]583. `ZENDESK_UPDATE_ZENDESK_TICKET` - Update ticket fields [Optional]594. `ZENDESK_DELETE_ZENDESK_TICKET` - Delete a ticket [Optional]6061**Key parameters**:62- `subject`: Ticket subject line63- `description`: Ticket body (for creation; becomes first comment)64- `priority`: 'urgent', 'high', 'normal', 'low'65- `status`: 'new', 'open', 'pending', 'hold', 'solved', 'closed'66- `type`: 'problem', 'incident', 'question', 'task'67- `assignee_id`: Agent user ID to assign68- `requester_id`: Requester user ID69- `tags`: Array of tag strings70- `ticket_id`: Ticket ID (for update/delete)7172**Pitfalls**:73- Tags on UPDATE REPLACE existing tags entirely; merge with current tags to preserve them74- Use `safe_update` with `updated_stamp` to prevent concurrent modification conflicts75- DELETE is permanent and irreversible; tickets cannot be recovered76- `description` is only used on creation; use REPLY_ZENDESK_TICKET to add comments after creation77- Closed tickets cannot be updated; create a follow-up ticket instead7879### 3. Reply to Tickets8081**When to use**: User wants to add comments or replies to tickets8283**Tool sequence**:841. `ZENDESK_GET_ZENDESK_TICKET_BY_ID` - Get current ticket state [Prerequisite]852. `ZENDESK_REPLY_ZENDESK_TICKET` - Add a reply/comment [Required]8687**Key parameters**:88- `ticket_id`: Ticket ID to reply to89- `body`: Reply text content90- `public`: Boolean; true for public reply, false for internal note91- `author_id`: Author user ID (defaults to authenticated user)9293**Pitfalls**:94- Set `public: false` for internal notes visible only to agents95- Default is public reply which sends email to requester96- HTML is supported in body text97- Replying can also update ticket status simultaneously9899### 4. Manage Users100101**When to use**: User wants to find or create Zendesk users (agents, end-users)102103**Tool sequence**:1041. `ZENDESK_SEARCH_ZENDESK_USERS` - Search for users [Required]1052. `ZENDESK_CREATE_ZENDESK_USER` - Create a new user [Optional]1063. `ZENDESK_GET_ABOUT_ME` - Get authenticated user info [Optional]107108**Key parameters**:109- `query`: Search string (matches name, email, phone, etc.)110- `name`: User's full name (required for creation)111- `email`: User's email address112- `role`: 'end-user', 'agent', or 'admin'113- `verified`: Whether email is verified114115**Pitfalls**:116- User search is fuzzy; may return partial matches117- Creating a user with an existing email returns the existing user (upsert behavior)118- Agent and admin roles may require specific plan features119120### 5. Manage Organizations121122**When to use**: User wants to list, create, or manage organizations123124**Tool sequence**:1251. `ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS` - List all organizations [Required]1262. `ZENDESK_GET_ZENDESK_ORGANIZATION` - Get specific organization [Optional]1273. `ZENDESK_CREATE_ZENDESK_ORGANIZATION` - Create organization [Optional]1284. `ZENDESK_UPDATE_ZENDESK_ORGANIZATION` - Update organization [Optional]1295. `ZENDESK_COUNT_ZENDESK_ORGANIZATIONS` - Get total count [Optional]130131**Key parameters**:132- `name`: Organization name (unique, required for creation)133- `organization_id`: Organization ID for get/update134- `details`: Organization details text135- `notes`: Internal notes136- `domain_names`: Array of associated domains137- `tags`: Array of tag strings138139**Pitfalls**:140- Organization names must be unique; duplicate names cause creation errors141- Tags on UPDATE REPLACE existing tags (same behavior as tickets)142- Domain names can be used for automatic user association143144## Common Patterns145146### Pagination147148**List endpoints**:149- Use `page` (1-based) and `per_page` (max 100)150- Check `next_page` URL in response; null means last page151- `count` field gives total results152153### Ticket Lifecycle154155```156new -> open -> pending -> solved -> closed157 | ^158 v |159 hold --------+160```161162- `new`: Unassigned ticket163- `open`: Assigned, being worked on164- `pending`: Waiting for customer response165- `hold`: Waiting for internal action166- `solved`: Resolved, can be reopened167- `closed`: Permanently closed, cannot be modified168169### User Search for Assignment170171```1721. Call ZENDESK_SEARCH_ZENDESK_USERS with query (name or email)1732. Extract user ID from results1743. Use user ID as assignee_id in ticket creation/update175```176177## Known Pitfalls178179**Tags Behavior**:180- Tags on update REPLACE all existing tags181- Always fetch current tags first and merge before updating182- Tags are lowercase, no spaces (use underscores)183184**Safe Updates**:185- Use `safe_update: true` with `updated_stamp` (ISO 8601) to prevent conflicts186- Returns 409 if ticket was modified since the stamp187188**Deletion**:189- Ticket deletion is permanent and irreversible190- Consider setting status to 'closed' instead of deleting191- Deleted tickets cannot be recovered via API192193**Rate Limits**:194- Default: 400 requests per minute195- Varies by plan tier196- 429 responses include Retry-After header197198## Quick Reference199200| Task | Tool Slug | Key Params |201|------|-----------|------------|202| List tickets | ZENDESK_LIST_ZENDESK_TICKETS | page, per_page, sort_by |203| Get ticket | ZENDESK_GET_ZENDESK_TICKET_BY_ID | ticket_id |204| Create ticket | ZENDESK_CREATE_ZENDESK_TICKET | subject, description, priority |205| Update ticket | ZENDESK_UPDATE_ZENDESK_TICKET | ticket_id, status, tags |206| Reply to ticket | ZENDESK_REPLY_ZENDESK_TICKET | ticket_id, body, public |207| Delete ticket | ZENDESK_DELETE_ZENDESK_TICKET | ticket_id |208| Search users | ZENDESK_SEARCH_ZENDESK_USERS | query |209| Create user | ZENDESK_CREATE_ZENDESK_USER | name, email |210| My profile | ZENDESK_GET_ABOUT_ME | (none) |211| List orgs | ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS | page, per_page |212| Get org | ZENDESK_GET_ZENDESK_ORGANIZATION | organization_id |213| Create org | ZENDESK_CREATE_ZENDESK_ORGANIZATION | name |214| Update org | ZENDESK_UPDATE_ZENDESK_ORGANIZATION | organization_id, name |215| Count orgs | ZENDESK_COUNT_ZENDESK_ORGANIZATIONS | (none) |216
Full transparency — inspect the skill content before installing.