SKILL.md
Zendesk Automation via Rube MCP
Automate Zendesk operations through Composio's Zendesk toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBESEARCHTOOLS available)
- Active Zendesk connection via
RUBEMANAGECONNECTIONSwith toolkitzendesk - Always call
RUBESEARCHTOOLSfirst 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
RUBESEARCHTOOLSresponds - Call
RUBEMANAGECONNECTIONSwith toolkitzendesk - If connection is not ACTIVE, follow the returned auth link to complete Zendesk auth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. List and Search Tickets
When to use: User wants to view, filter, or search support tickets
Tool sequence:
ZENDESKLISTZENDESK_TICKETS- List all tickets with pagination [Required]ZENDESKGETZENDESKTICKETBY_ID- Get specific ticket details [Optional]
Key parameters:
page: Page number (1-based)per_page: Results per page (max 100)sortby: Sort field ('createdat', 'updated_at', 'priority', 'status')sort_order: 'asc' or 'desc'ticket_id: Ticket ID for single retrieval
Pitfalls:
- LIST uses
page/perpagepagination, NOT offset-based; checknextpagein response - Maximum 100 results per page; iterate with page numbers until
next_pageis null - Deleted tickets are not returned by LIST; use GETBYID which returns status 'deleted'
- Ticket comments and audits are included in GETBYID but not in LIST responses
2. Create and Update Tickets
When to use: User wants to create new tickets or modify existing ones
Tool sequence:
ZENDESKSEARCHZENDESK_USERS- Find requester/assignee [Prerequisite]ZENDESKCREATEZENDESK_TICKET- Create a new ticket [Required]ZENDESKUPDATEZENDESK_TICKET- Update ticket fields [Optional]ZENDESKDELETEZENDESK_TICKET- Delete a ticket [Optional]
Key parameters:
subject: Ticket subject linedescription: Ticket body (for creation; becomes first comment)priority: 'urgent', 'high', 'normal', 'low'status: 'new', 'open', 'pending', 'hold', 'solved', 'closed'type: 'problem', 'incident', 'question', 'task'assignee_id: Agent user ID to assignrequester_id: Requester user IDtags: Array of tag stringsticket_id: Ticket ID (for update/delete)
Pitfalls:
- Tags on UPDATE REPLACE existing tags entirely; merge with current tags to preserve them
- Use
safeupdatewithupdatedstampto prevent concurrent modification conflicts - DELETE is permanent and irreversible; tickets cannot be recovered
descriptionis only used on creation; use REPLYZENDESKTICKET to add comments after creation- Closed tickets cannot be updated; create a follow-up ticket instead
3. Reply to Tickets
When to use: User wants to add comments or replies to tickets
Tool sequence:
ZENDESKGETZENDESKTICKETBY_ID- Get current ticket state [Prerequisite]ZENDESKREPLYZENDESK_TICKET- Add a reply/comment [Required]
Key parameters:
ticket_id: Ticket ID to reply tobody: Reply text contentpublic: Boolean; true for public reply, false for internal noteauthor_id: Author user ID (defaults to authenticated user)
Pitfalls:
- Set
public: falsefor internal notes visible only to agents - Default is public reply which sends email to requester
- HTML is supported in body text
- Replying can also update ticket status simultaneously
4. Manage Users
When to use: User wants to find or create Zendesk users (agents, end-users)
Tool sequence:
ZENDESKSEARCHZENDESK_USERS- Search for users [Required]ZENDESKCREATEZENDESK_USER- Create a new user [Optional]ZENDESKGETABOUT_ME- Get authenticated user info [Optional]
Key parameters:
query: Search string (matches name, email, phone, etc.)name: User's full name (required for creation)email: User's email addressrole: 'end-user', 'agent', or 'admin'verified: Whether email is verified
Pitfalls:
- User search is fuzzy; may return partial matches
- Creating a user with an existing email returns the existing user (upsert behavior)
- Agent and admin roles may require specific plan features
5. Manage Organizations
When to use: User wants to list, create, or manage organizations
Tool sequence:
ZENDESKGETALLZENDESKORGANIZATIONS- List all organizations [Required]ZENDESKGETZENDESK_ORGANIZATION- Get specific organization [Optional]ZENDESKCREATEZENDESK_ORGANIZATION- Create organization [Optional]ZENDESKUPDATEZENDESK_ORGANIZATION- Update organization [Optional]ZENDESKCOUNTZENDESK_ORGANIZATIONS- Get total count [Optional]
Key parameters:
name: Organization name (unique, required for creation)organization_id: Organization ID for get/updatedetails: Organization details textnotes: Internal notesdomain_names: Array of associated domainstags: Array of tag strings
Pitfalls:
- Organization names must be unique; duplicate names cause creation errors
- Tags on UPDATE REPLACE existing tags (same behavior as tickets)
- Domain names can be used for automatic user association
Common Patterns
Pagination
List endpoints:
- Use
page(1-based) andper_page(max 100) - Check
next_pageURL in response; null means last page countfield gives total results
Ticket Lifecycle
new -> open -> pending -> solved -> closed
| ^
v |
hold --------+
new: Unassigned ticketopen: Assigned, being worked onpending: Waiting for customer responsehold: Waiting for internal actionsolved: Resolved, can be reopenedclosed: Permanently closed, cannot be modified
User Search for Assignment
1. Call ZENDESK_SEARCH_ZENDESK_USERS with query (name or email)
2. Extract user ID from results
3. Use user ID as assignee_id in ticket creation/update
Known Pitfalls
Tags Behavior:
- Tags on update REPLACE all existing tags
- Always fetch current tags first and merge before updating
- Tags are lowercase, no spaces (use underscores)
Safe Updates:
- Use
safeupdate: truewithupdatedstamp(ISO 8601) to prevent conflicts - Returns 409 if ticket was modified since the stamp
Deletion:
- Ticket deletion is permanent and irreversible
- Consider setting status to 'closed' instead of deleting
- Deleted tickets cannot be recovered via API
Rate Limits:
- Default: 400 requests per minute
- Varies by plan tier
- 429 responses include Retry-After header
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List tickets | ZENDESKLISTZENDESK_TICKETS | page, perpage, sortby |
| Get ticket | ZENDESKGETZENDESKTICKETBY_ID | ticket_id |
| Create ticket | ZENDESKCREATEZENDESK_TICKET | subject, description, priority |
| Update ticket | ZENDESKUPDATEZENDESK_TICKET | ticket_id, status, tags |
| Reply to ticket | ZENDESKREPLYZENDESK_TICKET | ticket_id, body, public |
| Delete ticket | ZENDESKDELETEZENDESK_TICKET | ticket_id |
| Search users | ZENDESKSEARCHZENDESK_USERS | query |
| Create user | ZENDESKCREATEZENDESK_USER | name, email |
| My profile | ZENDESKGETABOUT_ME | (none) |
| List orgs | ZENDESKGETALLZENDESKORGANIZATIONS | page, per_page |
| Get org | ZENDESKGETZENDESK_ORGANIZATION | organization_id |
| Create org | ZENDESKCREATEZENDESK_ORGANIZATION | name |
| Update org | ZENDESKUPDATEZENDESK_ORGANIZATION | organization_id, name |
| Count orgs | ZENDESKCOUNTZENDESK_ORGANIZATIONS | (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 environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.