Run a valid zendesk.add_ticket_reply call through the same SDK surface used by every toolkit.

Minimal tool call

ts
import { Eyeball } from "@eyeball/sdk";

const eyeball = new Eyeball({
  apiKey: process.env.EYEBALL_API_KEY!,
  baseUrl: process.env.EYEBALL_EXECUTOR_URL!,
});

const output = await eyeball.tools.run(
  "zendesk.add_ticket_reply",
  {
  "ticketId": "example_ticketId",
  "body": "example_body",
  "public": true
},
  { userId: "demo_user",
  idempotencyKey: "docs:zendesk.add_ticket_reply:demo-1" },
);
console.log(output);

The model receives canonical output. Your application retains the execution envelope through tools.execute or the execution APIs when it needs IDs, status, versions, and latency.

Supported canonical tools

ToolPurposeExecutionEffectVersion
zendesk.add_ticket_replyAdd a public reply or private internal note to a support ticket. This creates externally visible history when public is true.sync or asyncmutation1.0.0
zendesk.assign_ticketAssign a ticket to an agent, team, or group. Repeating the same assignment has no additional effect.sync or asyncmutation1.0.0
zendesk.create_ticketCreate a support ticket with requester identity, subject, content, priority, tags, and portable custom fields.sync or asyncmutation1.0.0
zendesk.get_conversationRetrieve one support conversation and its normalized message history.sync or asyncread1.0.0
zendesk.get_ticketRetrieve one support ticket with requester, status, assignment, tags, and portable custom fields.sync or asyncread1.0.0
zendesk.list_conversationsList customer-support inbox conversations using state, assignee, time, and pagination filters.sync or asyncread1.0.0
zendesk.list_ticketsList support tickets using requester, assignee, state, priority, time, and pagination filters.sync or asyncread1.0.0
zendesk.send_conversation_replyReply to a support inbox conversation as the connected workspace. This creates externally visible conversation history.sync or asyncmutation1.0.0
zendesk.update_ticketUpdate ticket subject, description, status, priority, tags, or portable custom fields. Repeating the same values has no additional effect.sync or asyncmutation1.0.0

Only the rows above are implemented. A capability tool omitted by this manifest returns not_supported; eyeball never synthesizes provider parity.

Supported canonical triggers

This manifest does not implement a canonical trigger.

Input and output schemas

zendesk.add_ticket_reply

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:add_ticket_reply:1.0.0:zendesk",
  "type": "object",
  "description": "Ticket, reply content, visibility, and optional author.",
  "additionalProperties": false,
  "required": [
    "ticketId",
    "body"
  ],
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Provider identifier of the ticket.",
      "minLength": 1
    },
    "body": {
      "type": "string",
      "description": "Plain-text reply or note content.",
      "minLength": 1
    },
    "public": {
      "type": "boolean",
      "description": "Whether the requester can see the reply.",
      "default": true
    },
    "authorId": {
      "type": "string",
      "description": "Provider identifier of the reply author.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:add_ticket_reply:output:1.0.0:zendesk",
  "type": "object",
  "description": "The newly created ticket reply or note.",
  "additionalProperties": false,
  "required": [
    "message"
  ],
  "properties": {
    "message": {
      "type": "object",
      "description": "One normalized support reply, note, or conversation message.",
      "additionalProperties": false,
      "required": [
        "messageId",
        "conversationId",
        "authorId",
        "body",
        "public",
        "createdAt"
      ],
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Provider identifier of the reply or message.",
          "minLength": 1
        },
        "conversationId": {
          "type": "string",
          "description": "Provider identifier of the ticket or conversation.",
          "minLength": 1
        },
        "authorId": {
          "type": "string",
          "description": "Provider identifier of the message author.",
          "minLength": 1
        },
        "body": {
          "type": "string",
          "description": "Plain-text message content."
        },
        "public": {
          "type": "boolean",
          "description": "Whether the requester can see the message."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Message creation timestamp."
        }
      }
    }
  }
}
zendesk.assign_ticket

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:assign_ticket:1.0.0:zendesk",
  "type": "object",
  "description": "Ticket and assignee identifiers.",
  "additionalProperties": false,
  "required": [
    "ticketId",
    "assigneeId"
  ],
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Provider identifier of the ticket.",
      "minLength": 1
    },
    "assigneeId": {
      "type": "string",
      "description": "Provider identifier of the target agent, team, or group.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:assign_ticket:output:1.0.0:zendesk",
  "type": "object",
  "description": "The assigned support ticket.",
  "additionalProperties": false,
  "required": [
    "ticket"
  ],
  "properties": {
    "ticket": {
      "type": "object",
      "description": "A normalized customer-support ticket.",
      "additionalProperties": false,
      "required": [
        "ticketId",
        "subject",
        "description",
        "requesterId",
        "status",
        "priority",
        "tags",
        "customFields",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "ticketId": {
          "type": "string",
          "description": "Provider identifier of the ticket.",
          "minLength": 1
        },
        "subject": {
          "type": "string",
          "description": "Ticket subject."
        },
        "description": {
          "type": "string",
          "description": "Initial ticket description."
        },
        "requesterId": {
          "type": "string",
          "description": "Provider identifier of the requester.",
          "minLength": 1
        },
        "submitterId": {
          "type": "string",
          "description": "Provider identifier of the ticket submitter.",
          "minLength": 1
        },
        "assigneeId": {
          "type": "string",
          "description": "Provider identifier of the assigned agent or team.",
          "minLength": 1
        },
        "status": {
          "type": "string",
          "description": "Ticket workflow state."
        },
        "priority": {
          "type": "string",
          "description": "Ticket priority."
        },
        "tags": {
          "type": "array",
          "description": "Ticket tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "customFields": {
          "type": "object",
          "description": "Portable ticket custom-field values.",
          "additionalProperties": true
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Ticket creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent ticket update timestamp."
        }
      }
    }
  }
}
zendesk.create_ticket

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:create_ticket:1.0.0:zendesk",
  "type": "object",
  "description": "Requester identity and initial ticket content.",
  "additionalProperties": false,
  "required": [
    "requesterEmail",
    "subject",
    "description"
  ],
  "properties": {
    "requesterEmail": {
      "type": "string",
      "format": "email",
      "description": "Requester email address."
    },
    "requesterName": {
      "type": "string",
      "description": "Requester display name; defaults to the email address."
    },
    "requesterPhone": {
      "type": "string",
      "description": "Requester phone number."
    },
    "subject": {
      "type": "string",
      "description": "Ticket subject.",
      "minLength": 1
    },
    "description": {
      "type": "string",
      "description": "Initial ticket description.",
      "minLength": 1
    },
    "priority": {
      "type": "string",
      "description": "Initial ticket priority.",
      "default": "normal"
    },
    "tags": {
      "type": "array",
      "description": "Initial ticket tags.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "customFields": {
      "type": "object",
      "description": "Portable custom-field values.",
      "additionalProperties": true
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:create_ticket:output:1.0.0:zendesk",
  "type": "object",
  "description": "The newly created support ticket.",
  "additionalProperties": false,
  "required": [
    "ticket"
  ],
  "properties": {
    "ticket": {
      "type": "object",
      "description": "A normalized customer-support ticket.",
      "additionalProperties": false,
      "required": [
        "ticketId",
        "subject",
        "description",
        "requesterId",
        "status",
        "priority",
        "tags",
        "customFields",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "ticketId": {
          "type": "string",
          "description": "Provider identifier of the ticket.",
          "minLength": 1
        },
        "subject": {
          "type": "string",
          "description": "Ticket subject."
        },
        "description": {
          "type": "string",
          "description": "Initial ticket description."
        },
        "requesterId": {
          "type": "string",
          "description": "Provider identifier of the requester.",
          "minLength": 1
        },
        "submitterId": {
          "type": "string",
          "description": "Provider identifier of the ticket submitter.",
          "minLength": 1
        },
        "assigneeId": {
          "type": "string",
          "description": "Provider identifier of the assigned agent or team.",
          "minLength": 1
        },
        "status": {
          "type": "string",
          "description": "Ticket workflow state."
        },
        "priority": {
          "type": "string",
          "description": "Ticket priority."
        },
        "tags": {
          "type": "array",
          "description": "Ticket tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "customFields": {
          "type": "object",
          "description": "Portable ticket custom-field values.",
          "additionalProperties": true
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Ticket creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent ticket update timestamp."
        }
      }
    }
  }
}
zendesk.get_conversation

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:get_conversation:1.0.0:zendesk",
  "type": "object",
  "description": "Identifier of the conversation to retrieve.",
  "additionalProperties": false,
  "required": [
    "conversationId"
  ],
  "properties": {
    "conversationId": {
      "type": "string",
      "description": "Provider identifier of the conversation.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:get_conversation:output:1.0.0:zendesk",
  "type": "object",
  "description": "The requested conversation and message history.",
  "additionalProperties": false,
  "required": [
    "conversation",
    "messages"
  ],
  "properties": {
    "conversation": {
      "type": "object",
      "description": "A normalized customer-support inbox conversation.",
      "additionalProperties": false,
      "required": [
        "conversationId",
        "subject",
        "status",
        "messageCount",
        "updatedAt"
      ],
      "properties": {
        "conversationId": {
          "type": "string",
          "description": "Provider identifier of the conversation.",
          "minLength": 1
        },
        "subject": {
          "type": "string",
          "description": "Conversation subject."
        },
        "status": {
          "type": "string",
          "description": "Conversation workflow state."
        },
        "assigneeId": {
          "type": "string",
          "description": "Provider identifier of the assigned agent or team.",
          "minLength": 1
        },
        "messageCount": {
          "type": "integer",
          "description": "Number of messages currently in the conversation.",
          "minimum": 0
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent conversation update timestamp."
        }
      }
    },
    "messages": {
      "type": "array",
      "description": "Conversation messages in provider order.",
      "items": {
        "type": "object",
        "description": "One normalized support reply, note, or conversation message.",
        "additionalProperties": false,
        "required": [
          "messageId",
          "conversationId",
          "authorId",
          "body",
          "public",
          "createdAt"
        ],
        "properties": {
          "messageId": {
            "type": "string",
            "description": "Provider identifier of the reply or message.",
            "minLength": 1
          },
          "conversationId": {
            "type": "string",
            "description": "Provider identifier of the ticket or conversation.",
            "minLength": 1
          },
          "authorId": {
            "type": "string",
            "description": "Provider identifier of the message author.",
            "minLength": 1
          },
          "body": {
            "type": "string",
            "description": "Plain-text message content."
          },
          "public": {
            "type": "boolean",
            "description": "Whether the requester can see the message."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Message creation timestamp."
          }
        }
      }
    }
  }
}
zendesk.get_ticket

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:get_ticket:1.0.0:zendesk",
  "type": "object",
  "description": "Identifier of the ticket to retrieve.",
  "additionalProperties": false,
  "required": [
    "ticketId"
  ],
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Provider identifier of the ticket.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:get_ticket:output:1.0.0:zendesk",
  "type": "object",
  "description": "The requested support ticket.",
  "additionalProperties": false,
  "required": [
    "ticket"
  ],
  "properties": {
    "ticket": {
      "type": "object",
      "description": "A normalized customer-support ticket.",
      "additionalProperties": false,
      "required": [
        "ticketId",
        "subject",
        "description",
        "requesterId",
        "status",
        "priority",
        "tags",
        "customFields",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "ticketId": {
          "type": "string",
          "description": "Provider identifier of the ticket.",
          "minLength": 1
        },
        "subject": {
          "type": "string",
          "description": "Ticket subject."
        },
        "description": {
          "type": "string",
          "description": "Initial ticket description."
        },
        "requesterId": {
          "type": "string",
          "description": "Provider identifier of the requester.",
          "minLength": 1
        },
        "submitterId": {
          "type": "string",
          "description": "Provider identifier of the ticket submitter.",
          "minLength": 1
        },
        "assigneeId": {
          "type": "string",
          "description": "Provider identifier of the assigned agent or team.",
          "minLength": 1
        },
        "status": {
          "type": "string",
          "description": "Ticket workflow state."
        },
        "priority": {
          "type": "string",
          "description": "Ticket priority."
        },
        "tags": {
          "type": "array",
          "description": "Ticket tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "customFields": {
          "type": "object",
          "description": "Portable ticket custom-field values.",
          "additionalProperties": true
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Ticket creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent ticket update timestamp."
        }
      }
    }
  }
}
zendesk.list_conversations

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:list_conversations:1.0.0:zendesk",
  "type": "object",
  "description": "Conversation filters and pagination.",
  "additionalProperties": false,
  "properties": {
    "status": {
      "type": "string",
      "description": "Conversation state to match.",
      "minLength": 1
    },
    "assigneeId": {
      "type": "string",
      "description": "Provider identifier of the assigned agent or team.",
      "minLength": 1
    },
    "updatedAfter": {
      "type": "string",
      "format": "date-time",
      "description": "Return conversations updated at or after this timestamp."
    },
    "updatedBefore": {
      "type": "string",
      "format": "date-time",
      "description": "Return conversations updated before this timestamp."
    },
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of conversations to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous conversation page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:list_conversations:output:1.0.0:zendesk",
  "type": "object",
  "description": "One page of normalized support conversations.",
  "additionalProperties": false,
  "required": [
    "conversations"
  ],
  "properties": {
    "conversations": {
      "type": "array",
      "description": "Conversations in provider order.",
      "items": {
        "type": "object",
        "description": "A normalized customer-support inbox conversation.",
        "additionalProperties": false,
        "required": [
          "conversationId",
          "subject",
          "status",
          "messageCount",
          "updatedAt"
        ],
        "properties": {
          "conversationId": {
            "type": "string",
            "description": "Provider identifier of the conversation.",
            "minLength": 1
          },
          "subject": {
            "type": "string",
            "description": "Conversation subject."
          },
          "status": {
            "type": "string",
            "description": "Conversation workflow state."
          },
          "assigneeId": {
            "type": "string",
            "description": "Provider identifier of the assigned agent or team.",
            "minLength": 1
          },
          "messageCount": {
            "type": "integer",
            "description": "Number of messages currently in the conversation.",
            "minimum": 0
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Most recent conversation update timestamp."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of conversations; absent when the result is complete.",
      "minLength": 1
    }
  }
}
zendesk.list_tickets

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:list_tickets:1.0.0:zendesk",
  "type": "object",
  "description": "Ticket filters and pagination.",
  "additionalProperties": false,
  "properties": {
    "requesterId": {
      "type": "string",
      "description": "Provider identifier of the requester.",
      "minLength": 1
    },
    "assigneeId": {
      "type": "string",
      "description": "Provider identifier of the assigned agent or team.",
      "minLength": 1
    },
    "status": {
      "type": "string",
      "description": "Ticket state to match.",
      "minLength": 1
    },
    "priority": {
      "type": "string",
      "description": "Ticket priority to match.",
      "minLength": 1
    },
    "updatedAfter": {
      "type": "string",
      "format": "date-time",
      "description": "Return tickets updated at or after this timestamp."
    },
    "updatedBefore": {
      "type": "string",
      "format": "date-time",
      "description": "Return tickets updated before this timestamp."
    },
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of tickets to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous ticket page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:list_tickets:output:1.0.0:zendesk",
  "type": "object",
  "description": "One page of normalized support tickets.",
  "additionalProperties": false,
  "required": [
    "tickets"
  ],
  "properties": {
    "tickets": {
      "type": "array",
      "description": "Tickets in provider order.",
      "items": {
        "type": "object",
        "description": "A normalized customer-support ticket.",
        "additionalProperties": false,
        "required": [
          "ticketId",
          "subject",
          "description",
          "requesterId",
          "status",
          "priority",
          "tags",
          "customFields",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "ticketId": {
            "type": "string",
            "description": "Provider identifier of the ticket.",
            "minLength": 1
          },
          "subject": {
            "type": "string",
            "description": "Ticket subject."
          },
          "description": {
            "type": "string",
            "description": "Initial ticket description."
          },
          "requesterId": {
            "type": "string",
            "description": "Provider identifier of the requester.",
            "minLength": 1
          },
          "submitterId": {
            "type": "string",
            "description": "Provider identifier of the ticket submitter.",
            "minLength": 1
          },
          "assigneeId": {
            "type": "string",
            "description": "Provider identifier of the assigned agent or team.",
            "minLength": 1
          },
          "status": {
            "type": "string",
            "description": "Ticket workflow state."
          },
          "priority": {
            "type": "string",
            "description": "Ticket priority."
          },
          "tags": {
            "type": "array",
            "description": "Ticket tags.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "customFields": {
            "type": "object",
            "description": "Portable ticket custom-field values.",
            "additionalProperties": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Ticket creation timestamp."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Most recent ticket update timestamp."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of tickets; absent when the result is complete.",
      "minLength": 1
    }
  }
}
zendesk.send_conversation_reply

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:send_conversation_reply:1.0.0:zendesk",
  "type": "object",
  "description": "Conversation, message content, visibility, and optional author.",
  "additionalProperties": false,
  "required": [
    "conversationId",
    "body"
  ],
  "properties": {
    "conversationId": {
      "type": "string",
      "description": "Provider identifier of the conversation.",
      "minLength": 1
    },
    "body": {
      "type": "string",
      "description": "Plain-text reply content.",
      "minLength": 1
    },
    "public": {
      "type": "boolean",
      "description": "Whether the requester can see the reply.",
      "default": true
    },
    "authorId": {
      "type": "string",
      "description": "Provider identifier of the reply author.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:send_conversation_reply:output:1.0.0:zendesk",
  "type": "object",
  "description": "The newly created conversation reply.",
  "additionalProperties": false,
  "required": [
    "message"
  ],
  "properties": {
    "message": {
      "type": "object",
      "description": "One normalized support reply, note, or conversation message.",
      "additionalProperties": false,
      "required": [
        "messageId",
        "conversationId",
        "authorId",
        "body",
        "public",
        "createdAt"
      ],
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Provider identifier of the reply or message.",
          "minLength": 1
        },
        "conversationId": {
          "type": "string",
          "description": "Provider identifier of the ticket or conversation.",
          "minLength": 1
        },
        "authorId": {
          "type": "string",
          "description": "Provider identifier of the message author.",
          "minLength": 1
        },
        "body": {
          "type": "string",
          "description": "Plain-text message content."
        },
        "public": {
          "type": "boolean",
          "description": "Whether the requester can see the message."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Message creation timestamp."
        }
      }
    }
  }
}
zendesk.update_ticket

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:update_ticket:1.0.0:zendesk",
  "type": "object",
  "description": "Ticket identifier and fields to update.",
  "additionalProperties": false,
  "required": [
    "ticketId"
  ],
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Provider identifier of the ticket.",
      "minLength": 1
    },
    "subject": {
      "type": "string",
      "description": "Updated ticket subject."
    },
    "description": {
      "type": "string",
      "description": "Updated ticket description."
    },
    "status": {
      "type": "string",
      "description": "Updated ticket state."
    },
    "priority": {
      "type": "string",
      "description": "Updated ticket priority."
    },
    "tags": {
      "type": "array",
      "description": "Replacement ticket tags.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "customFields": {
      "type": "object",
      "description": "Replacement portable custom-field values.",
      "additionalProperties": true
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:customer_support:update_ticket:output:1.0.0:zendesk",
  "type": "object",
  "description": "The updated support ticket.",
  "additionalProperties": false,
  "required": [
    "ticket"
  ],
  "properties": {
    "ticket": {
      "type": "object",
      "description": "A normalized customer-support ticket.",
      "additionalProperties": false,
      "required": [
        "ticketId",
        "subject",
        "description",
        "requesterId",
        "status",
        "priority",
        "tags",
        "customFields",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "ticketId": {
          "type": "string",
          "description": "Provider identifier of the ticket.",
          "minLength": 1
        },
        "subject": {
          "type": "string",
          "description": "Ticket subject."
        },
        "description": {
          "type": "string",
          "description": "Initial ticket description."
        },
        "requesterId": {
          "type": "string",
          "description": "Provider identifier of the requester.",
          "minLength": 1
        },
        "submitterId": {
          "type": "string",
          "description": "Provider identifier of the ticket submitter.",
          "minLength": 1
        },
        "assigneeId": {
          "type": "string",
          "description": "Provider identifier of the assigned agent or team.",
          "minLength": 1
        },
        "status": {
          "type": "string",
          "description": "Ticket workflow state."
        },
        "priority": {
          "type": "string",
          "description": "Ticket priority."
        },
        "tags": {
          "type": "array",
          "description": "Ticket tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "customFields": {
          "type": "object",
          "description": "Portable ticket custom-field values.",
          "additionalProperties": true
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Ticket creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent ticket update timestamp."
        }
      }
    }
  }
}

Authentication

PropertyValue
Auth classoauth2
Required scopesNone
Optional scopesNone
Credential fieldsNone

Credentials are resolved inside the executor by CredentialProvider. They never belong in tool input, x_provider, model context, logs, or execution output.

Provider-specific extensions

This manifest declares no provider-specific schema extensions. Use only canonical fields.

Provider differences may appear only under x_provider.zendesk and only when the schema above declares them.

Sync and async behavior

All tools are synchronous by nature, but callers may choose mode: "async" to queue them.

Mutations require a stable Idempotency-Key. The TypeScript SDK accepts it as idempotencyKey; it is never part of the JSON request body.

REST example

Bash
curl "$EYEBALL_EXECUTOR_URL/v1/execute" \
  -H "Authorization: Bearer $EYEBALL_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: docs:zendesk.add_ticket_reply:demo-1' \
  --data '{"tool":"zendesk.add_ticket_reply","userId":"demo_user","input":{"ticketId":"example_ticketId","body":"example_body","public":true},"mode":"sync"}'

Mock support

Point EYEBALL_EXECUTOR_URL at a mock-configured executor to run through the real catalog, validation, credential seam, adapter, normalized errors, and execution records with no Zendesk account. Mock selection changes the executor endpoint and trusted provider base-URL configuration, never the execute request.

Limitations

  • This page describes the manifest's explicit P0 subset, not every operation offered by the provider.
  • Provider account policy, consent UI, quota details, and current wire compatibility still require a real-provider certification pass.
  • Fields outside the canonical schemas and declared x_provider extensions are rejected.

Versions

ContractVersion
Runtime catalog1.1
Manifest catalog1.0
Manifest schema1.0
Sourceactivepieces-bridge
TierP0
Capabilitiescustomer_support

Next

Use Testing with mocks to exercise this toolkit before connecting a live provider account.