Preparing Archive
zendesk-automation
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
Architectural Overview
"This module is grounded in security patterns and exposes 1 core capabilities across 1 execution phases."
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 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
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 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:
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 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:
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/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
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) |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Primary Stack
TypeScript
Tooling Surface
Guide only
Workspace Path
.agents/skills/zendesk-automation
Operational Ecosystem
The complete hardware and software toolchain required.
Module Topology
Antigravity Core
Principal Engineering Agent
Recommended for this workflow
Adjacent modules that complement this skill surface
An error occurred. Please try again later.