Zendesk Automation via Rube MCP
Automate Zendesk operations through Composio's Zendesk toolkit via Rube MCP.
Prerequisites
- •Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- •Active Zendesk connection via
RUBE_MANAGE_CONNECTIONSwith toolkitzendesk - •Always call
RUBE_SEARCH_TOOLSfirst 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
RUBE_SEARCH_TOOLSresponds - •Call
RUBE_MANAGE_CONNECTIONSwith 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:
- •
ZENDESK_LIST_ZENDESK_TICKETS- List all tickets with pagination [Required] - •
ZENDESK_GET_ZENDESK_TICKET_BY_ID- Get specific ticket details [Optional]
Key parameters:
- •
page: Page number (1-based) - •
per_page: Results per page (max 100) - •
sort_by: Sort field ('created_at', 'updated_at', 'priority', 'status') - •
sort_order: 'asc' or 'desc' - •
ticket_id: Ticket ID for single retrieval
Pitfalls:
- •LIST uses
page/per_pagepagination, NOT offset-based; checknext_pagein response - •Maximum 100 results per page; iterate with page numbers until
next_pageis null - •Deleted tickets are not returned by LIST; use GET_BY_ID which returns status 'deleted'
- •Ticket comments and audits are included in GET_BY_ID 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:
- •
ZENDESK_SEARCH_ZENDESK_USERS- Find requester/assignee [Prerequisite] - •
ZENDESK_CREATE_ZENDESK_TICKET- Create a new ticket [Required] - •
ZENDESK_UPDATE_ZENDESK_TICKET- Update ticket fields [Optional] - •
ZENDESK_DELETE_ZENDESK_TICKET- Delete a ticket [Optional]
Key parameters:
- •
subject: Ticket subject line - •
description: 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 assign - •
requester_id: Requester user ID - •
tags: Array of tag strings - •
ticket_id: Ticket ID (for update/delete)
Pitfalls:
- •Tags on UPDATE REPLACE existing tags entirely; merge with current tags to preserve them
- •Use
safe_updatewithupdated_stampto prevent concurrent modification conflicts - •DELETE is permanent and irreversible; tickets cannot be recovered
- •
descriptionis only used on creation; use REPLY_ZENDESK_TICKET 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:
- •
ZENDESK_GET_ZENDESK_TICKET_BY_ID- Get current ticket state [Prerequisite] - •
ZENDESK_REPLY_ZENDESK_TICKET- Add a reply/comment [Required]
Key parameters:
- •
ticket_id: Ticket ID to reply to - •
body: Reply text content - •
public: Boolean; true for public reply, false for internal note - •
author_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:
- •
ZENDESK_SEARCH_ZENDESK_USERS- Search for users [Required] - •
ZENDESK_CREATE_ZENDESK_USER- Create a new user [Optional] - •
ZENDESK_GET_ABOUT_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 address - •
role: '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:
- •
ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS- List all organizations [Required] - •
ZENDESK_GET_ZENDESK_ORGANIZATION- Get specific organization [Optional] - •
ZENDESK_CREATE_ZENDESK_ORGANIZATION- Create organization [Optional] - •
ZENDESK_UPDATE_ZENDESK_ORGANIZATION- Update organization [Optional] - •
ZENDESK_COUNT_ZENDESK_ORGANIZATIONS- Get total count [Optional]
Key parameters:
- •
name: Organization name (unique, required for creation) - •
organization_id: Organization ID for get/update - •
details: Organization details text - •
notes: Internal notes - •
domain_names: Array of associated domains - •
tags: 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 ticket - •
open: Assigned, being worked on - •
pending: Waiting for customer response - •
hold: Waiting for internal action - •
solved: Resolved, can be reopened - •
closed: 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
safe_update: truewithupdated_stamp(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 | ZENDESK_LIST_ZENDESK_TICKETS | page, per_page, sort_by |
| Get ticket | ZENDESK_GET_ZENDESK_TICKET_BY_ID | ticket_id |
| Create ticket | ZENDESK_CREATE_ZENDESK_TICKET | subject, description, priority |
| Update ticket | ZENDESK_UPDATE_ZENDESK_TICKET | ticket_id, status, tags |
| Reply to ticket | ZENDESK_REPLY_ZENDESK_TICKET | ticket_id, body, public |
| Delete ticket | ZENDESK_DELETE_ZENDESK_TICKET | ticket_id |
| Search users | ZENDESK_SEARCH_ZENDESK_USERS | query |
| Create user | ZENDESK_CREATE_ZENDESK_USER | name, email |
| My profile | ZENDESK_GET_ABOUT_ME | (none) |
| List orgs | ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS | page, per_page |
| Get org | ZENDESK_GET_ZENDESK_ORGANIZATION | organization_id |
| Create org | ZENDESK_CREATE_ZENDESK_ORGANIZATION | name |
| Update org | ZENDESK_UPDATE_ZENDESK_ORGANIZATION | organization_id, name |
| Count orgs | ZENDESK_COUNT_ZENDESK_ORGANIZATIONS | (none) |