zendesk-automation

通过Rube MCP(Composio)自动化Zendesk任务:包括工单、用户、组织及回复处理。始终优先搜索工具以获取当前架构信息。

查看详情
name:zendesk-automationdescription:"Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas."requires:mcp:[rube]

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
    <div class="overflow-x-auto my-6"><table class="min-w-full divide-y divide-border border border-border"><thead><tr><th class="px-4 py-2 text-left text-sm font-semibold text-foreground bg-muted/50">^</th></tr></thead><tbody class="divide-y divide-border"></tbody></table></div>
    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)
  • Extract user ID from results

  • 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

    TaskTool SlugKey Params
    List ticketsZENDESK_LIST_ZENDESK_TICKETSpage, per_page, sort_by
    Get ticketZENDESK_GET_ZENDESK_TICKET_BY_IDticket_id
    Create ticketZENDESK_CREATE_ZENDESK_TICKETsubject, description, priority
    Update ticketZENDESK_UPDATE_ZENDESK_TICKETticket_id, status, tags
    Reply to ticketZENDESK_REPLY_ZENDESK_TICKETticket_id, body, public
    Delete ticketZENDESK_DELETE_ZENDESK_TICKETticket_id
    Search usersZENDESK_SEARCH_ZENDESK_USERSquery
    Create userZENDESK_CREATE_ZENDESK_USERname, email
    My profileZENDESK_GET_ABOUT_ME(none)
    List orgsZENDESK_GET_ALL_ZENDESK_ORGANIZATIONSpage, per_page
    Get orgZENDESK_GET_ZENDESK_ORGANIZATIONorganization_id
    Create orgZENDESK_CREATE_ZENDESK_ORGANIZATIONname
    Update orgZENDESK_UPDATE_ZENDESK_ORGANIZATIONorganization_id, name
    Count orgsZENDESK_COUNT_ZENDESK_ORGANIZATIONS(none)