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_CONNECTIONS with toolkit zendesk
- Always call
RUBE_SEARCH_TOOLS first 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_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit zendesk
- 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_page pagination, NOT offset-based; check next_page in response
- Maximum 100 results per page; iterate with page numbers until
next_page is 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_update with updated_stamp to prevent concurrent modification conflicts
- DELETE is permanent and irreversible; tickets cannot be recovered
description is 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: false for 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) and per_page (max 100)
- Check
next_page URL in response; null means last page
count field 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: true with updated_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) |
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.
1---2name: zendesk-automation3description: Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.4---5
6# Zendesk Automation via Rube MCP
7
8Automate Zendesk operations through Composio's Zendesk toolkit via Rube MCP.
9
10## Prerequisites
11
12- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
13- Active Zendesk connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `zendesk`
14- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
15
16## Setup
17
18**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.
19
20
211. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
222. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `zendesk`
233. If connection is not ACTIVE, follow the returned auth link to complete Zendesk auth
244. Confirm connection status shows ACTIVE before running any workflows
25
26## Core Workflows
27
28### 1. List and Search Tickets
29
30**When to use**: User wants to view, filter, or search support tickets
31
32**Tool sequence**:
331. `ZENDESK_LIST_ZENDESK_TICKETS` - List all tickets with pagination [Required]
342. `ZENDESK_GET_ZENDESK_TICKET_BY_ID` - Get specific ticket details [Optional]
35
36**Key parameters**:
37- `page`: Page number (1-based)
38- `per_page`: Results per page (max 100)
39- `sort_by`: Sort field ('created_at', 'updated_at', 'priority', 'status')
40- `sort_order`: 'asc' or 'desc'
41- `ticket_id`: Ticket ID for single retrieval
42
43**Pitfalls**:
44- LIST uses `page`/`per_page` pagination, NOT offset-based; check `next_page` in response
45- Maximum 100 results per page; iterate with page numbers until `next_page` is null
46- Deleted tickets are not returned by LIST; use GET_BY_ID which returns status 'deleted'
47- Ticket comments and audits are included in GET_BY_ID but not in LIST responses
48
49### 2. Create and Update Tickets
50
51**When to use**: User wants to create new tickets or modify existing ones
52
53**Tool sequence**:
541. `ZENDESK_SEARCH_ZENDESK_USERS` - Find requester/assignee [Prerequisite]
552. `ZENDESK_CREATE_ZENDESK_TICKET` - Create a new ticket [Required]
563. `ZENDESK_UPDATE_ZENDESK_TICKET` - Update ticket fields [Optional]
574. `ZENDESK_DELETE_ZENDESK_TICKET` - Delete a ticket [Optional]
58
59**Key parameters**:
60- `subject`: Ticket subject line
61- `description`: Ticket body (for creation; becomes first comment)
62- `priority`: 'urgent', 'high', 'normal', 'low'
63- `status`: 'new', 'open', 'pending', 'hold', 'solved', 'closed'
64- `type`: 'problem', 'incident', 'question', 'task'
65- `assignee_id`: Agent user ID to assign
66- `requester_id`: Requester user ID
67- `tags`: Array of tag strings
68- `ticket_id`: Ticket ID (for update/delete)
69
70**Pitfalls**:
71- Tags on UPDATE REPLACE existing tags entirely; merge with current tags to preserve them
72- Use `safe_update` with `updated_stamp` to prevent concurrent modification conflicts
73- DELETE is permanent and irreversible; tickets cannot be recovered
74- `description` is only used on creation; use REPLY_ZENDESK_TICKET to add comments after creation
75- Closed tickets cannot be updated; create a follow-up ticket instead
76
77### 3. Reply to Tickets
78
79**When to use**: User wants to add comments or replies to tickets
80
81**Tool sequence**:
821. `ZENDESK_GET_ZENDESK_TICKET_BY_ID` - Get current ticket state [Prerequisite]
832. `ZENDESK_REPLY_ZENDESK_TICKET` - Add a reply/comment [Required]
84
85**Key parameters**:
86- `ticket_id`: Ticket ID to reply to
87- `body`: Reply text content
88- `public`: Boolean; true for public reply, false for internal note
89- `author_id`: Author user ID (defaults to authenticated user)
90
91**Pitfalls**:
92- Set `public: false` for internal notes visible only to agents
93- Default is public reply which sends email to requester
94- HTML is supported in body text
95- Replying can also update ticket status simultaneously
96
97### 4. Manage Users
98
99**When to use**: User wants to find or create Zendesk users (agents, end-users)
100
101**Tool sequence**:
1021. `ZENDESK_SEARCH_ZENDESK_USERS` - Search for users [Required]
1032. `ZENDESK_CREATE_ZENDESK_USER` - Create a new user [Optional]
1043. `ZENDESK_GET_ABOUT_ME` - Get authenticated user info [Optional]
105
106**Key parameters**:
107- `query`: Search string (matches name, email, phone, etc.)
108- `name`: User's full name (required for creation)
109- `email`: User's email address
110- `role`: 'end-user', 'agent', or 'admin'
111- `verified`: Whether email is verified
112
113**Pitfalls**:
114- User search is fuzzy; may return partial matches
115- Creating a user with an existing email returns the existing user (upsert behavior)
116- Agent and admin roles may require specific plan features
117
118### 5. Manage Organizations
119
120**When to use**: User wants to list, create, or manage organizations
121
122**Tool sequence**:
1231. `ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS` - List all organizations [Required]
1242. `ZENDESK_GET_ZENDESK_ORGANIZATION` - Get specific organization [Optional]
1253. `ZENDESK_CREATE_ZENDESK_ORGANIZATION` - Create organization [Optional]
1264. `ZENDESK_UPDATE_ZENDESK_ORGANIZATION` - Update organization [Optional]
1275. `ZENDESK_COUNT_ZENDESK_ORGANIZATIONS` - Get total count [Optional]
128
129**Key parameters**:
130- `name`: Organization name (unique, required for creation)
131- `organization_id`: Organization ID for get/update
132- `details`: Organization details text
133- `notes`: Internal notes
134- `domain_names`: Array of associated domains
135- `tags`: Array of tag strings
136
137**Pitfalls**:
138- Organization names must be unique; duplicate names cause creation errors
139- Tags on UPDATE REPLACE existing tags (same behavior as tickets)
140- Domain names can be used for automatic user association
141
142## Common Patterns
143
144### Pagination
145
146**List endpoints**:
147- Use `page` (1-based) and `per_page` (max 100)
148- Check `next_page` URL in response; null means last page
149- `count` field gives total results
150
151### Ticket Lifecycle
152
153```
154new -> open -> pending -> solved -> closed
155 | ^
156 v |
157 hold --------+
158```
159
160- `new`: Unassigned ticket
161- `open`: Assigned, being worked on
162- `pending`: Waiting for customer response
163- `hold`: Waiting for internal action
164- `solved`: Resolved, can be reopened
165- `closed`: Permanently closed, cannot be modified
166
167### User Search for Assignment
168
169```
1701. Call ZENDESK_SEARCH_ZENDESK_USERS with query (name or email)
1712. Extract user ID from results
1723. Use user ID as assignee_id in ticket creation/update
173```
174
175## Known Pitfalls
176
177**Tags Behavior**:
178- Tags on update REPLACE all existing tags
179- Always fetch current tags first and merge before updating
180- Tags are lowercase, no spaces (use underscores)
181
182**Safe Updates**:
183- Use `safe_update: true` with `updated_stamp` (ISO 8601) to prevent conflicts
184- Returns 409 if ticket was modified since the stamp
185
186**Deletion**:
187- Ticket deletion is permanent and irreversible
188- Consider setting status to 'closed' instead of deleting
189- Deleted tickets cannot be recovered via API
190
191**Rate Limits**:
192- Default: 400 requests per minute
193- Varies by plan tier
194- 429 responses include Retry-After header
195
196## Quick Reference
197
198| Task | Tool Slug | Key Params |
199|------|-----------|------------|
200| List tickets | ZENDESK_LIST_ZENDESK_TICKETS | page, per_page, sort_by |
201| Get ticket | ZENDESK_GET_ZENDESK_TICKET_BY_ID | ticket_id |
202| Create ticket | ZENDESK_CREATE_ZENDESK_TICKET | subject, description, priority |
203| Update ticket | ZENDESK_UPDATE_ZENDESK_TICKET | ticket_id, status, tags |
204| Reply to ticket | ZENDESK_REPLY_ZENDESK_TICKET | ticket_id, body, public |
205| Delete ticket | ZENDESK_DELETE_ZENDESK_TICKET | ticket_id |
206| Search users | ZENDESK_SEARCH_ZENDESK_USERS | query |
207| Create user | ZENDESK_CREATE_ZENDESK_USER | name, email |
208| My profile | ZENDESK_GET_ABOUT_ME | (none) |
209| List orgs | ZENDESK_GET_ALL_ZENDESK_ORGANIZATIONS | page, per_page |
210| Get org | ZENDESK_GET_ZENDESK_ORGANIZATION | organization_id |
211| Create org | ZENDESK_CREATE_ZENDESK_ORGANIZATION | name |
212| Update org | ZENDESK_UPDATE_ZENDESK_ORGANIZATION | organization_id, name |
213| Count orgs | ZENDESK_COUNT_ZENDESK_ORGANIZATIONS | (none) |
214
215## When to Use
216This skill is applicable to execute the workflow or actions described in the overview.
217
218## Limitations
219- Use this skill only when the task clearly matches the scope described above.
220- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
221- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.